From fb2a0fb7fb414820dc667125e5d11ddcf9bfe025 Mon Sep 17 00:00:00 2001 From: rockstardev Date: Sat, 1 Feb 2020 01:44:01 -0600 Subject: [PATCH] Special page to handle 500 errors --- BTCPayServer/Controllers/ErrorController.cs | 3 ++- BTCPayServer/Views/Error/500.cshtml | 15 +++++++++++++++ .../wwwroot/img/errorpages/500_mrkukks.jpg | Bin 0 -> 18781 bytes 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 BTCPayServer/Views/Error/500.cshtml create mode 100644 BTCPayServer/wwwroot/img/errorpages/500_mrkukks.jpg diff --git a/BTCPayServer/Controllers/ErrorController.cs b/BTCPayServer/Controllers/ErrorController.cs index 1113aa6da..2bca043f9 100644 --- a/BTCPayServer/Controllers/ErrorController.cs +++ b/BTCPayServer/Controllers/ErrorController.cs @@ -14,7 +14,8 @@ namespace BTCPayServer.Controllers { if (statusCode.HasValue) { - if (statusCode.Value == 404) + var specialPages = new[] { 404, 500 }; + if (specialPages.Any(a => a == statusCode.Value)) { var viewName = statusCode.ToString(); return View(viewName); diff --git a/BTCPayServer/Views/Error/500.cshtml b/BTCPayServer/Views/Error/500.cshtml new file mode 100644 index 000000000..bf014b3f7 --- /dev/null +++ b/BTCPayServer/Views/Error/500.cshtml @@ -0,0 +1,15 @@ +@{ + ViewData["ErrorTitle"] = "500 - Internal Server Error"; +} + +

+ Whoops, something really went wrong! Mr Kukks is so sorry. +

+ + Mr Kukks puppy eyes + +

+ Consult server log and consider submitting issue on BTCPayServer GitHub. +

+ Navigate back to home. +

diff --git a/BTCPayServer/wwwroot/img/errorpages/500_mrkukks.jpg b/BTCPayServer/wwwroot/img/errorpages/500_mrkukks.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4fd4ef216053563fc24e32adf367e8d619818c51 GIT binary patch literal 18781 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