From c897c7eb261a70f1c5d7bb8d839d7080b4cd0e24 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Tue, 26 Jun 2018 22:45:52 -0700 Subject: [PATCH] GUACAMOLE-598: Add convenience promise callback for REST requests which displays a fatal error. --- .../app/rest/services/requestService.js | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/guacamole/src/main/webapp/app/rest/services/requestService.js b/guacamole/src/main/webapp/app/rest/services/requestService.js index 9aef12486..8b13caf36 100644 --- a/guacamole/src/main/webapp/app/rest/services/requestService.js +++ b/guacamole/src/main/webapp/app/rest/services/requestService.js @@ -25,8 +25,9 @@ angular.module('rest').factory('requestService', ['$injector', function requestService($injector) { // Required services - var $http = $injector.get('$http'); - var $log = $injector.get('$log'); + var $http = $injector.get('$http'); + var $log = $injector.get('$log'); + var $rootScope = $injector.get('$rootScope'); // Required types var Error = $injector.get('Error'); @@ -115,6 +116,21 @@ angular.module('rest').factory('requestService', ['$injector', $log.warn(error.type, error.message || error.translatableMessage); }); + /** + * Promise error callback which replaces the content of the page with a + * generic error message warning that the page could not be displayed. All + * rejections are logged to the browser console as errors. This callback + * should be used in favor of @link{WARN} if REST errors will result in the + * page being unusable. + * + * @constant + * @type Function + */ + service.DIE = service.createErrorCallback(function fatalPageError(error) { + $rootScope.$broadcast('guacFatalPageError', error); + $log.error(error.type, error.message || error.translatableMessage); + }); + return service; }]);