mail/src/js/controller/app/dialog.js

67 lines
1.7 KiB
JavaScript

'use strict';
var axe = require('axe-logger');
var DialogCtrl = function($scope, $q, dialog) {
var callback;
//
// Set dialog disply functions
//
dialog.displayInfo = function(options) {
return $q(function(resolve) {
setOptions(options);
resolve();
});
};
dialog.displayError = function(options) {
return $q(function(resolve) {
if (options) {
axe.error((options.errMsg || options.message) + (options.stack ? ('\n' + options.stack) : ''));
setOptions(options);
$scope.title = options.title || 'Error';
$scope.showBugReporter = (typeof options.showBugReporter !== 'undefined' ? options.showBugReporter : !options.title); // if title is set, presume it's not an error by default
}
resolve();
});
};
dialog.displayConfirm = function(options) {
return $q(function(resolve) {
setOptions(options);
resolve();
});
};
function setOptions(options) {
$scope.open = true;
$scope.title = options.title;
$scope.message = options.errMsg || options.message;
$scope.faqLink = options.faqLink;
$scope.positiveBtnStr = options.positiveBtnStr || 'Ok';
$scope.negativeBtnStr = options.negativeBtnStr || 'Cancel';
$scope.showNegativeBtn = options.showNegativeBtn || false;
callback = options.callback;
}
//
// Scope functions
//
$scope.confirm = function(ok) {
$scope.open = false;
if (callback) {
callback(ok);
}
callback = undefined;
};
};
module.exports = DialogCtrl;