Update: Error UI Updated

This commit is contained in:
Gary Sharp
2013-11-14 13:34:53 +11:00
parent b1048588e7
commit fe00963cb0
19 changed files with 514 additions and 160 deletions
@@ -0,0 +1,11 @@
@model Disco.Services.Authorization.AccessDeniedException
@{
ViewBag.Title = "Authorization Required";
Disco.Services.Authorization.AccessDeniedException ex = (Disco.Services.Authorization.AccessDeniedException)Model;
}
<i class="icon accessDenied"></i>
<div>
<h2 class="error">@ex.Message</h2>
<h4>Feature:</h4>
<div class="code stacktrace" style="width: 560px;">@ex.Resource</div>
</div>
@@ -0,0 +1,91 @@
#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.34003
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Disco.Web.Views.Shared.DisplayTemplates
{
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Web;
using System.Web.Helpers;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
using System.Web.Mvc.Html;
using System.Web.Routing;
using System.Web.Security;
using System.Web.UI;
using System.Web.WebPages;
using Disco.BI.Extensions;
using Disco.Models.Repository;
using Disco.Services.Authorization;
using Disco.Services.Web;
using Disco.Web;
using Disco.Web.Extensions;
[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "2.0.0.0")]
[System.Web.WebPages.PageVirtualPathAttribute("~/Views/Shared/DisplayTemplates/AccessDeniedException.cshtml")]
public partial class AccessDeniedException : Disco.Services.Web.WebViewPage<Disco.Services.Authorization.AccessDeniedException>
{
public AccessDeniedException()
{
}
public override void Execute()
{
#line 2 "..\..\Views\Shared\DisplayTemplates\AccessDeniedException.cshtml"
ViewBag.Title = "Authorization Required";
Disco.Services.Authorization.AccessDeniedException ex = (Disco.Services.Authorization.AccessDeniedException)Model;
#line default
#line hidden
WriteLiteral("\r\n<i");
WriteLiteral(" class=\"icon accessDenied\"");
WriteLiteral("></i>\r\n<div>\r\n <h2");
WriteLiteral(" class=\"error\"");
WriteLiteral(">");
#line 8 "..\..\Views\Shared\DisplayTemplates\AccessDeniedException.cshtml"
Write(ex.Message);
#line default
#line hidden
WriteLiteral("</h2>\r\n <h4>Feature:</h4>\r\n <div");
WriteLiteral(" class=\"code stacktrace\"");
WriteLiteral(" style=\"width: 560px;\"");
WriteLiteral(">");
#line 10 "..\..\Views\Shared\DisplayTemplates\AccessDeniedException.cshtml"
Write(ex.Resource);
#line default
#line hidden
WriteLiteral("</div>\r\n</div>");
}
}
}
#pragma warning restore 1591
@@ -0,0 +1,52 @@
@model System.Exception
@{
var ex = Model;
}
<i class="icon"></i>
@while (ex != null)
{
<div class="form" style="width: 650px">
<h2 class="error">@ex.Message</h2>
<table>
<tr>
<td>
Details <a href="#" class="toClipboard smallMessage">(Copy to Clipboard)</a>
</td>
</tr>
<tr>
<td>
<div class="code stacktrace" style="width: 638px;">@ex.Message
[@ex.GetType().FullName]
Stack Trace:
@ex.StackTrace</div>
</td>
</tr>
</table>
</div>
ex = ex.InnerException;
}
<script>
$(function () {
var toClipboardLinks = $('#layout_Error').find('a.toClipboard');
if (window.clipboardData) {
// Clipboard access available
toClipboardLinks.click(function (e) {
$this = $(this);
var details = $this.closest('table').find('div.stacktrace').text();
details = $.trim(details).replace(/\n/gm, '\r\n');
window.clipboardData.setData('Text', details);
alert('Details copied to Clipboard');
return false;
});
} else {
// No Clipboard access available - hide links
toClipboardLinks.hide();
}
});
</script>
@@ -0,0 +1,166 @@
#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.34003
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Disco.Web.Views.Shared.DisplayTemplates
{
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Web;
using System.Web.Helpers;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
using System.Web.Mvc.Html;
using System.Web.Routing;
using System.Web.Security;
using System.Web.UI;
using System.Web.WebPages;
using Disco.BI.Extensions;
using Disco.Models.Repository;
using Disco.Services.Authorization;
using Disco.Services.Web;
using Disco.Web;
using Disco.Web.Extensions;
[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "2.0.0.0")]
[System.Web.WebPages.PageVirtualPathAttribute("~/Views/Shared/DisplayTemplates/Exception.cshtml")]
public partial class Exception : Disco.Services.Web.WebViewPage<System.Exception>
{
public Exception()
{
}
public override void Execute()
{
#line 2 "..\..\Views\Shared\DisplayTemplates\Exception.cshtml"
var ex = Model;
#line default
#line hidden
WriteLiteral("\r\n<i");
WriteLiteral(" class=\"icon\"");
WriteLiteral("></i>\r\n");
#line 6 "..\..\Views\Shared\DisplayTemplates\Exception.cshtml"
while (ex != null)
{
#line default
#line hidden
WriteLiteral(" <div");
WriteLiteral(" class=\"form\"");
WriteLiteral(" style=\"width: 650px\"");
WriteLiteral(">\r\n <h2");
WriteLiteral(" class=\"error\"");
WriteLiteral(">");
#line 9 "..\..\Views\Shared\DisplayTemplates\Exception.cshtml"
Write(ex.Message);
#line default
#line hidden
WriteLiteral("</h2>\r\n <table>\r\n <tr>\r\n <td>\r\n " +
" Details <a");
WriteLiteral(" href=\"#\"");
WriteLiteral(" class=\"toClipboard smallMessage\"");
WriteLiteral(">(Copy to Clipboard)</a>\r\n </td>\r\n </tr>\r\n <" +
"tr>\r\n <td>\r\n <div");
WriteLiteral(" class=\"code stacktrace\"");
WriteLiteral(" style=\"width: 638px;\"");
WriteLiteral(">");
#line 18 "..\..\Views\Shared\DisplayTemplates\Exception.cshtml"
Write(ex.Message);
#line default
#line hidden
WriteLiteral("\r\n[");
#line 19 "..\..\Views\Shared\DisplayTemplates\Exception.cshtml"
Write(ex.GetType().FullName);
#line default
#line hidden
WriteLiteral("]\r\n\r\nStack Trace:\r\n");
#line 22 "..\..\Views\Shared\DisplayTemplates\Exception.cshtml"
Write(ex.StackTrace);
#line default
#line hidden
WriteLiteral("</div>\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n");
#line 27 "..\..\Views\Shared\DisplayTemplates\Exception.cshtml"
ex = ex.InnerException;
}
#line default
#line hidden
WriteLiteral(@"<script>
$(function () {
var toClipboardLinks = $('#layout_Error').find('a.toClipboard');
if (window.clipboardData) {
// Clipboard access available
toClipboardLinks.click(function (e) {
$this = $(this);
var details = $this.closest('table').find('div.stacktrace').text();
details = $.trim(details).replace(/\n/gm, '\r\n');
window.clipboardData.setData('Text', details);
alert('Details copied to Clipboard');
return false;
});
} else {
// No Clipboard access available - hide links
toClipboardLinks.hide();
}
});
</script>
");
}
}
}
#pragma warning restore 1591
+11 -34
View File
@@ -1,38 +1,15 @@
@model System.Web.Mvc.HandleErrorInfo
@{
ViewBag.Title = "Server Error";
ViewBag.Title = "An Error Occurred";
var ex = Model.Exception;
while (ex != null)
{
<div class="form" style="width: 650px">
<h2 style="white-space: pre;">@ex.Message</h2>
<table style="background-color: #fff;">
<tr>
<th style="width: 40px;">Type:</th>
<td>
@ex.GetType().Name
</td>
</tr>
<tr>
<th>Stack:
</th>
<td>
<div class="code" style="width: 560px; white-space: pre; overflow: auto;">@ex.StackTrace</div>
</td>
</tr>
</table>
</div>
ex = ex.InnerException;
}
}
<script>
$(function () {
$('#layout_PageHeading').css({ 'background': '#C80000', 'color': '#fff' });
$('#layout_Page').css({ 'background': 'linear-gradient(to top, #F2B0B0, #C80000 200px)' }).find('h2').css({ 'color': '#fff' });
});
</script>
<div id="layout_Error">
@Html.DisplayFor(m => m.Exception)
<script>
$(function () {
$('#layout_PageHeading').css({ 'background': '#C80000', 'color': '#fff' });
$('#layout_Page').css({ 'background': 'linear-gradient(to top, #F2B0B0, #C80000 200px)' });
});
</script>
</div>
+15 -70
View File
@@ -45,91 +45,36 @@ namespace Disco.Web.Views.Shared
#line 2 "..\..\Views\Shared\Error.cshtml"
ViewBag.Title = "Server Error";
ViewBag.Title = "An Error Occurred";
var ex = Model.Exception;
while (ex != null)
{
#line default
#line hidden
WriteLiteral(" <div");
WriteLiteral("\r\n<div");
WriteLiteral(" class=\"form\"");
WriteLiteral(" id=\"layout_Error\"");
WriteLiteral(" style=\"width: 650px\"");
WriteLiteral(">\r\n");
WriteLiteral(">\r\n <h2");
WriteLiteral(" style=\"white-space: pre;\"");
WriteLiteral(">");
WriteLiteral(" ");
#line 12 "..\..\Views\Shared\Error.cshtml"
Write(ex.Message);
#line default
#line hidden
WriteLiteral("</h2>\r\n <table");
WriteLiteral(" style=\"background-color: #fff;\"");
WriteLiteral(">\r\n <tr>\r\n <th");
WriteLiteral(" style=\"width: 40px;\"");
WriteLiteral(">Type:</th>\r\n <td>\r\n");
WriteLiteral(" ");
#line 17 "..\..\Views\Shared\Error.cshtml"
Write(ex.GetType().Name);
#line default
#line hidden
WriteLiteral("\r\n </td>\r\n </tr>\r\n <tr>\r\n <th" +
">Stack:\r\n </th>\r\n <td>\r\n <div");
WriteLiteral(" class=\"code\"");
WriteLiteral(" style=\"width: 560px; white-space: pre; overflow: auto;\"");
WriteLiteral(">");
#line 24 "..\..\Views\Shared\Error.cshtml"
Write(ex.StackTrace);
#line default
#line hidden
WriteLiteral("</div>\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n");
#line 29 "..\..\Views\Shared\Error.cshtml"
ex = ex.InnerException;
}
#line 8 "..\..\Views\Shared\Error.cshtml"
Write(Html.DisplayFor(m => m.Exception));
#line default
#line hidden
WriteLiteral(@"
<script>
$(function () {
$('#layout_PageHeading').css({ 'background': '#C80000', 'color': '#fff' });
$('#layout_Page').css({ 'background': 'linear-gradient(to top, #F2B0B0, #C80000 200px)' }).find('h2').css({ 'color': '#fff' });
});
</script>
");
<script>
$(function () {
$('#layout_PageHeading').css({ 'background': '#C80000', 'color': '#fff' });
$('#layout_Page').css({ 'background': 'linear-gradient(to top, #F2B0B0, #C80000 200px)' });
});
</script>
</div>");
}
}
@@ -0,0 +1,43 @@
@{
Html.BundleDeferred("~/Style/Site");
Html.BundleDeferred("~/ClientScripts/Core");
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Disco - @CommonHelpers.BreadcrumbsTitle(ViewBag.Title)</title>
@Html.BundleRenderDeferred()
@RenderSection("head", false)
</head>
<body class="layout">
<div class="page">
<header>
<div class="clearfix">
<div id="heading">
<a href="@Url.Action(MVC.Public.Public.Index())">
<img src="@Links.ClientSource.Style.Images.Heading_png" alt="DISCO - ICT Asset Management" /></a>
</div>
<div id="headerMenu">
</div>
</div>
<nav>
<ul id="menu">
<li>@Html.ActionLink("Public Reports", MVC.Public.Public.Index())</li>
<li class="sep"></li>
<li style="margin-left: 10px;">@Html.ActionLink("Disco Administration", MVC.Job.Index(), accesskey: "1")</li>
</ul>
</nav>
</header>
<div id="layout_PageHeading">@CommonHelpers.Breadcrumbs(ViewBag.Title)</div>
<section id="layout_Page">
@RenderBody()
</section>
<footer>
Disco v@(Disco.Web.DiscoApplication.Version) @@ @(Disco.Web.DiscoApplication.OrganisationName) | @Html.ActionLink("Credits", MVC.Public.Public.Credits()) | @Html.ActionLink("Licence", MVC.Public.Public.Licence())
</footer>
</div>
@{ Disco.Services.Plugins.Features.UIExtension.UIExtensions.ExecuteExtensionResult(this); }
</body>
</html>
@@ -0,0 +1,258 @@
#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.34003
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Disco.Web.Views.Shared
{
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Web;
using System.Web.Helpers;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
using System.Web.Mvc.Html;
using System.Web.Routing;
using System.Web.Security;
using System.Web.UI;
using System.Web.WebPages;
using Disco.BI.Extensions;
using Disco.Models.Repository;
using Disco.Services.Authorization;
using Disco.Services.Web;
using Disco.Web;
using Disco.Web.Extensions;
[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "2.0.0.0")]
[System.Web.WebPages.PageVirtualPathAttribute("~/Views/Shared/_PublicLayout.cshtml")]
public partial class PublicLayout : Disco.Services.Web.WebViewPage<dynamic>
{
public PublicLayout()
{
}
public override void Execute()
{
#line 1 "..\..\Views\Shared\_PublicLayout.cshtml"
Html.BundleDeferred("~/Style/Site");
Html.BundleDeferred("~/ClientScripts/Core");
#line default
#line hidden
WriteLiteral("\r\n<!DOCTYPE html>\r\n<html>\r\n<head>\r\n <meta");
WriteLiteral(" charset=\"utf-8\"");
WriteLiteral(" />\r\n <meta");
WriteLiteral(" http-equiv=\"X-UA-Compatible\"");
WriteLiteral(" content=\"IE=edge\"");
WriteLiteral(" />\r\n <title>Disco - ");
#line 10 "..\..\Views\Shared\_PublicLayout.cshtml"
Write(CommonHelpers.BreadcrumbsTitle(ViewBag.Title));
#line default
#line hidden
WriteLiteral("</title>\r\n");
WriteLiteral(" ");
#line 11 "..\..\Views\Shared\_PublicLayout.cshtml"
Write(Html.BundleRenderDeferred());
#line default
#line hidden
WriteLiteral("\r\n");
WriteLiteral(" ");
#line 12 "..\..\Views\Shared\_PublicLayout.cshtml"
Write(RenderSection("head", false));
#line default
#line hidden
WriteLiteral("\r\n</head>\r\n<body");
WriteLiteral(" class=\"layout\"");
WriteLiteral(">\r\n <div");
WriteLiteral(" class=\"page\"");
WriteLiteral(">\r\n <header>\r\n <div");
WriteLiteral(" class=\"clearfix\"");
WriteLiteral(">\r\n <div");
WriteLiteral(" id=\"heading\"");
WriteLiteral(">\r\n <a");
WriteAttribute("href", Tuple.Create(" href=\"", 535), Tuple.Create("\"", 580)
#line 19 "..\..\Views\Shared\_PublicLayout.cshtml"
, Tuple.Create(Tuple.Create("", 542), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.Public.Public.Index())
#line default
#line hidden
, 542), false)
);
WriteLiteral(">\r\n <img");
WriteAttribute("src", Tuple.Create(" src=\"", 612), Tuple.Create("\"", 662)
#line 20 "..\..\Views\Shared\_PublicLayout.cshtml"
, Tuple.Create(Tuple.Create("", 618), Tuple.Create<System.Object, System.Int32>(Links.ClientSource.Style.Images.Heading_png
#line default
#line hidden
, 618), false)
);
WriteLiteral(" alt=\"DISCO - ICT Asset Management\"");
WriteLiteral(" /></a>\r\n </div>\r\n <div");
WriteLiteral(" id=\"headerMenu\"");
WriteLiteral(">\r\n </div>\r\n </div>\r\n <nav>\r\n " +
" <ul");
WriteLiteral(" id=\"menu\"");
WriteLiteral(">\r\n <li>");
#line 27 "..\..\Views\Shared\_PublicLayout.cshtml"
Write(Html.ActionLink("Public Reports", MVC.Public.Public.Index()));
#line default
#line hidden
WriteLiteral("</li>\r\n <li");
WriteLiteral(" class=\"sep\"");
WriteLiteral("></li>\r\n <li");
WriteLiteral(" style=\"margin-left: 10px;\"");
WriteLiteral(">");
#line 29 "..\..\Views\Shared\_PublicLayout.cshtml"
Write(Html.ActionLink("Disco Administration", MVC.Job.Index(), accesskey: "1"));
#line default
#line hidden
WriteLiteral("</li>\r\n </ul>\r\n </nav>\r\n </header>\r\n <div" +
"");
WriteLiteral(" id=\"layout_PageHeading\"");
WriteLiteral(">");
#line 33 "..\..\Views\Shared\_PublicLayout.cshtml"
Write(CommonHelpers.Breadcrumbs(ViewBag.Title));
#line default
#line hidden
WriteLiteral("</div>\r\n <section");
WriteLiteral(" id=\"layout_Page\"");
WriteLiteral(">\r\n");
WriteLiteral(" ");
#line 35 "..\..\Views\Shared\_PublicLayout.cshtml"
Write(RenderBody());
#line default
#line hidden
WriteLiteral("\r\n </section>\r\n <footer>\r\n Disco v");
#line 38 "..\..\Views\Shared\_PublicLayout.cshtml"
Write(Disco.Web.DiscoApplication.Version);
#line default
#line hidden
WriteLiteral(" ");
WriteLiteral("@ ");
#line 38 "..\..\Views\Shared\_PublicLayout.cshtml"
Write(Disco.Web.DiscoApplication.OrganisationName);
#line default
#line hidden
WriteLiteral(" | ");
#line 38 "..\..\Views\Shared\_PublicLayout.cshtml"
Write(Html.ActionLink("Credits", MVC.Public.Public.Credits()));
#line default
#line hidden
WriteLiteral(" | ");
#line 38 "..\..\Views\Shared\_PublicLayout.cshtml"
Write(Html.ActionLink("Licence", MVC.Public.Public.Licence()));
#line default
#line hidden
WriteLiteral("\r\n </footer>\r\n </div>\r\n");
#line 41 "..\..\Views\Shared\_PublicLayout.cshtml"
#line default
#line hidden
#line 41 "..\..\Views\Shared\_PublicLayout.cshtml"
Disco.Services.Plugins.Features.UIExtension.UIExtensions.ExecuteExtensionResult(this);
#line default
#line hidden
WriteLiteral("\r\n</body>\r\n</html>\r\n");
}
}
}
#pragma warning restore 1591