<script src="[% ctx.media_prefix %]/js/ui/default/staff/services/statusbar.js"></script>
<script src="[% ctx.media_prefix %]/js/ui/default/staff/services/ui.js"></script>
<script src="[% ctx.media_prefix %]/js/ui/default/staff/services/date.js"></script>
+<script src="[% ctx.media_prefix %]/js/ui/default/staff/services/op_change.js"></script>
[% ELSE %]
s.EG_CONFIRM_DELETE_RECORD_BODY = "[% l('Delete record {{id}}?') %]";
s.OP_CHANGE_SUCCESS = "[% l('Operator Change Succeeded') %]";
s.OP_CHANGE_FAILURE = "[% l('Operator Change Failed') %]";
+ s.OP_CHANGE_TITLE = "[% l('Operator Change') %]";
+ s.OP_CHANGE_PERM_MESSAGE = "[% l('Another staff member with the above permission may authorize this specific action. Please notify your library administrator if you need this permission. If you feel you have received this exception in error, please inform your friendly Evergreen developers or helpdesk staff of the above permission.') %]";
}]);
</script>
<div class="modal-header">
<button type="button" class="close"
ng-click="cancel()" aria-hidden="true">×</button>
- <h4 class="modal-title alert alert-info">[% l('Operator Change') %]</h4>
+ <h4 class="modal-title alert alert-info">{{title}}</h4>
</div>
<div class="modal-body">
+ <div class="row" ng-if="message">
+ <div class="col-md-12">
+ <p>{{message}}</p>
+ </div>
+ </div>
<div class="row">
<div class="col-md-4">
[% l('Username:') %]
<input ng-keyup="$event.keyCode == 13 ? ok() : null" type='password' ng-model="args.password" class="form-control"/>
</div>
</div>
- <div class="row">
+ <div class="row" ng-if="displayTypeField == true">
<div class="col-md-4">
[% l('Login Type:') %]
</div>
'services/statusbar.js',
'services/ui.js',
'services/date.js',
+ 'services/op_change.js',
],
dest: 'build/js/<%= pkg.name %>.<%= pkg.version %>.min.js'
}
{barcode : params.copy_barcode}
);
- case 'PERM_FAILURE':
- egCore.audio.play('warning.renew.permission');
- return service.exit_alert(
- egCore.strings[evt[0].textcode],
- {permission : evt[0].ilsperm}
- );
-
default:
egCore.audio.play('warning.renew.unknown');
return service.exit_alert(
{barcode : params.copy_barcode}
);
- case 'PERM_FAILURE':
- egCore.audio.play('warning.checkout.permission');
- return service.exit_alert(
- egCore.strings[evt[0].textcode],
- {permission : evt[0].ilsperm}
- );
-
default:
egCore.audio.play('error.checkout.unknown');
return service.exit_alert(
},
controller:['$scope','$window','$location','$timeout','hotkeys','egCore','$uibModal','ngToast',
- function($scope , $window , $location , $timeout , hotkeys , egCore , $uibModal , ngToast) {
+ 'egOpChange',
+ function($scope , $window , $location , $timeout , hotkeys , egCore , $uibModal , ngToast,
+ egOpChange) {
function navTo(path) {
// Strip the leading "./" if any.
}
$scope.changeOperatorUndo = function() {
- egCore.auth.opChangeUndo();
- $scope.op_changed = false;
- $scope.username = egCore.auth.user().usrname();
- ngToast.create(egCore.strings.OP_CHANGE_SUCCESS);
+ $scope.op_changed = egOpChange.changeOperatorUndo();
}
$scope.changeOperator = function() {
- $uibModal.open({
- templateUrl: './share/t_opchange',
- controller:
- ['$scope', '$uibModalInstance', function($scope, $uibModalInstance) {
- $scope.args = {username : '', password : '', type : 'temp'};
- $scope.focus = true;
- $scope.ok = function() { $uibModalInstance.close($scope.args) }
- $scope.cancel = function () { $uibModalInstance.dismiss() }
- }]
- }).result.then(function (args) {
- if (!args || !args.username || !args.password) return;
- args.type = args.type || 'temp';
- args.workstation = egCore.auth.workstation();
- egCore.auth.opChange(args).then(
- function() {
- console.log('op change success');
- $scope.op_changed = egCore.auth.OCtoken() ? true : false;
- $scope.username = egCore.auth.user().usrname();
- ngToast.create(egCore.strings.OP_CHANGE_SUCCESS);
- }, // note success with toast?
- function() {
- console.log('op change failure');
- ngToast.warning(egCore.strings.OP_CHANGE_FAILURE);
- } // note failure with toast?
- );
- });
+ $scope.op_changed = egOpChange.changeOperator(true);
}
$scope.currentToken = function () {
--- /dev/null
+angular.module('egCoreMod')
+
+/**
+ * egPermLoginDialog.open(
+ * open("some message goes {{here}}", {
+ * here : 'foo', ok : function() {}, cancel : function() {}},
+ * 'OK', 'Cancel');
+ */
+.factory('egOpChange',
+
+ ['$uibModal','$interpolate', '$rootScope', '$q', 'egAuth', 'egStrings', 'egNet', 'ngToast',
+function($uibModal, $interpolate, $rootScope, $q, egAuth, egStrings, egNet, ngToast) {
+
+ var service = {};
+
+
+ service.changeOperator = function(calledFromNavbar, failedRequest) {
+ var _op_changed = false;
+ $uibModal.open({
+ templateUrl: './share/t_opchange',
+ controller:
+ ['$scope', '$uibModalInstance', function($scope, $uibModalInstance) {
+ $scope.args = {username : '', password : '', type : 'temp'};
+ $scope.displayTypeField = calledFromNavbar;
+ $scope.title = egStrings.OP_CHANGE_TITLE;
+ if(failedRequest) {
+ $scope.title = failedRequest.perm_evt.desc + ": "
+ + failedRequest.perm_evt.ilsperm;
+ $scope.message = egStrings.OP_CHANGE_PERM_MESSAGE;
+ console.log($scope.message);
+ }
+ $scope.focus = true;
+ $scope.ok = function() { $uibModalInstance.close($scope.args) }
+ $scope.cancel = function () { $uibModalInstance.dismiss() }
+ }]
+ }).result.then(function (args) {
+ if (!args || !args.username || !args.password) return;
+ args.type = args.type || 'temp';
+ args.workstation = egAuth.workstation();
+ egAuth.opChange(args).then(
+ function() {
+ _op_changed = true;
+ if(failedRequest) {
+ console.log(js2JSON(failedRequest));
+ egNet.request(
+ failedRequest.service,
+ failedRequest.method,
+ egAuth.token(),
+ failedRequest.params[1]
+ ).then(service.changeOperatorUndo());
+ } else {
+ ngToast.create(egStrings.OP_CHANGE_SUCCESS);
+ }
+ },
+ function() {
+ ngToast.warning(egStrings.OP_CHANGE_FAILURE);
+ }
+ );
+ });
+ return _op_changed;
+ }
+
+ service.changeOperatorUndo = function() {
+ egAuth.opChangeUndo();
+ var _op_changed = false;
+ ngToast.create(egStrings.OP_CHANGE_SUCCESS);
+ return _op_changed;
+ }
+
+ //Check for any permission failure broadcasts. then call changeOperator and retry the action
+ $rootScope.$on('egNetPermFailure', function(args, request_info) {
+ var op_changed = service.changeOperator(false, request_info);
+ })
+
+ return service;
+}])
'services/ui.js',
'services/statusbar.js',
'services/grid.js',
+ 'services/op_change.js',
'services/navbar.js', 'services/date.js',
// load app scripts
'app.js',