setup global ysod overlay + change error model

This commit is contained in:
Mads Rasmussen
2015-12-10 21:52:57 +01:00
parent 41b5ab697f
commit fe7f73ff57
6 changed files with 29 additions and 13 deletions

View File

@@ -158,9 +158,10 @@ function umbRequestHelper($http, $q, umbDataFormatter, angularHelper, dialogServ
//show a ysod dialog
if (Umbraco.Sys.ServerVariables["isDebuggingEnabled"] === true) {
dialogService.ysodDialog({
errorMsg: result.errorMsg,
data: result.data
eventsService.emit('app.ysod',
{
errorMsg: 'An error occured',
data: data
});
}
else {
@@ -253,8 +254,9 @@ function umbRequestHelper($http, $q, umbDataFormatter, angularHelper, dialogServ
}
else if (Umbraco.Sys.ServerVariables["isDebuggingEnabled"] === true) {
//show a ysod dialog
dialogService.ysodDialog({
errorMsg: 'An error occurred',
eventsService.emit('app.ysod',
{
errorMsg: 'An error occured',
data: data
});
}

View File

@@ -118,6 +118,14 @@ function MainController($scope, $rootScope, $location, $routeParams, $timeout, $
}));
evts.push(eventsService.on("app.ysod", function(name, error) {
$scope.ysodOverlay = {
view: "ysod",
error: error,
show: true
};
}));
//ensure to unregister from all events!
$scope.$on('$destroy', function () {
for (var e in evts) {

View File

@@ -5,9 +5,9 @@ angular.module("umbraco")
$scope.model.title = "Received an error from the server";
}
if ($scope.model.data && $scope.model.data.StackTrace) {
if ($scope.model.error && $scope.model.error.data && $scope.model.error.data.StackTrace) {
//trim whitespace
$scope.model.data.StackTrace = $scope.model.data.StackTrace.trim();
$scope.model.error.data.StackTrace = $scope.model.error.data.StackTrace.trim();
}
});

View File

@@ -1,15 +1,15 @@
<div ng-controller="Umbraco.Overlays.YsodController">
<h4 class="heading red">{{model.errorMsg}}</h4>
<p>{{model.data.ExceptionMessage || model.data.Message}}</p>
<h4 class="heading red">{{model.error.errorMsg}}</h4>
<p>{{model.error.data.ExceptionMessage || model.error.data.Message}}</p>
<div class="umb-control-group">
<h5>Exception Details: </h5>
{{model.data.ExceptionType}}: {{model.data.ExceptionMessage}}
{{model.error.data.ExceptionType}}: {{model.error.data.ExceptionMessage}}
</div>
<div class="umb-control-group">
<h5>Stacktrace: </h5>
<pre style="white-space: pre-wrap; overflow-x: auto;">{{model.data.StackTrace}}</pre>
<pre style="white-space: pre-wrap; overflow-x: auto;">{{model.error.data.StackTrace}}</pre>
</div>
</div>

View File

@@ -111,8 +111,7 @@ function listViewController($rootScope, $scope, $routeParams, $injector, $cookie
// Open ysod overlay
$scope.ysodOverlay = {
view : "ysod",
errorMsg : err.errorMsg,
data : err.data,
error : err,
show : true
};
}

View File

@@ -87,5 +87,12 @@
@Html.RenderProfiler()
}
<umb-overlay
ng-if="ysodOverlay.show"
model="ysodOverlay"
position="right"
view="ysodOverlay.view">
</umb-overlay>
</body>
</html>