From: Bill Erickson Date: Mon, 20 Jul 2015 01:38:07 +0000 (-0400) Subject: webstaff: browser client: age to lost UI X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=45f8829636546402e25d979d1e5b408bb0f07ce3;p=evergreen%2Fmasslnc.git webstaff: browser client: age to lost UI Signed-off-by: Bill Erickson Signed-off-by: Galen Charlton Signed-off-by: Kathy Lussier --- diff --git a/Open-ILS/src/templates/staff/admin/circ/index.tt2 b/Open-ILS/src/templates/staff/admin/circ/index.tt2 new file mode 100644 index 0000000000..50c52b824f --- /dev/null +++ b/Open-ILS/src/templates/staff/admin/circ/index.tt2 @@ -0,0 +1,15 @@ +[% + WRAPPER "staff/base.tt2"; + ctx.page_title = l("Evergreen Configuration"); + ctx.page_app = "egAdminCirc"; +%] + +[% BLOCK APP_JS %] + + + +[% END %] + +
+ +[% END %] diff --git a/Open-ILS/src/templates/staff/admin/circ/t_age_to_lost.tt2 b/Open-ILS/src/templates/staff/admin/circ/t_age_to_lost.tt2 new file mode 100644 index 0000000000..c1e28dda69 --- /dev/null +++ b/Open-ILS/src/templates/staff/admin/circ/t_age_to_lost.tt2 @@ -0,0 +1,80 @@ +
+
+ [% l('Age Circulations to Lost') %] +
+
+ + +[% | l %] +Choose the user profile and circulation library for the overdue circulations +you wish to age to a Lost status. Note the descendants of these values +(sub-groups, sub-libraries) will also be affected. +[% END %] + + +
+
+
+ +
+ + +
+
+
+ + +
+
+ + +
+
+
+ +
+
+ +
+
+
+
+ [% l('Processing...') %] +
+
+
+ +
+
+
+ [% l('Chunks Processed: [_1]', '{{chunks_processed}}') %]
+
+ [% l('Events Created: [_1]', '{{events_created}}') %]
+
+ + +
+
+
+ +
+
+ + + + + + diff --git a/Open-ILS/src/templates/staff/css/admin.css.tt2 b/Open-ILS/src/templates/staff/css/admin.css.tt2 new file mode 100644 index 0000000000..f4185467fd --- /dev/null +++ b/Open-ILS/src/templates/staff/css/admin.css.tt2 @@ -0,0 +1,12 @@ + +#age-to-lost-container { + margin-top: 20px; +} + +#age-to-lost-container .row { + margin-top: 20px; +} + +#age-to-lost-container .form-group { + padding-right: 10px; +} diff --git a/Open-ILS/web/js/ui/default/staff/admin/circ/app.js b/Open-ILS/web/js/ui/default/staff/admin/circ/app.js new file mode 100644 index 0000000000..24d3aadaa4 --- /dev/null +++ b/Open-ILS/web/js/ui/default/staff/admin/circ/app.js @@ -0,0 +1,86 @@ +/** + * App to drive the base page. + * Login Form + * Splash Page + */ + +angular.module('egAdminCirc', + ['ngRoute', 'ui.bootstrap', 'egCoreMod','egUiMod']) + +.config(['$routeProvider','$locationProvider','$compileProvider', + function($routeProvider , $locationProvider , $compileProvider) { + + $locationProvider.html5Mode(true); + $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|blob):/); + var resolver = {delay : function(egStartup) {return egStartup.go()}}; + + $routeProvider.when('/admin/circ/age_to_lost', { + templateUrl: './admin/circ/t_age_to_lost', + controller: 'AgeToLostCtl', + resolve : resolver + }); + + // default page + /* + $routeProvider.otherwise({ + templateUrl : 'user-perms-template', + controller: 'UserPermsCtrl', + resolve : resolver + }); + */ +}]) + +.controller('AgeToLostCtl', + ['$scope','egCore', +function($scope , egCore) { + $scope.i_am_sure = false; + $scope.chunks_processed = 0; + $scope.events_created = 0; + + egCore.pcrud.search('pgt', {parent : null}, + {flesh : -1, flesh_fields : {pgt : ['children']}} + ).then( + function(tree) { + egCore.env.absorbTree(tree, 'pgt') + $scope.profiles = egCore.env.pgt.list; + $scope.selected_profile = tree; + } + ); + + $scope.set_profile = function(g) {$scope.selected_profile = g} + + // determine the tree depth of the profile group + $scope.pgt_depth = function(grp) { + var d = 0; + while (grp = egCore.env.pgt.map[grp.parent()]) d++; + return d; + } + + $scope.age_to_lost = function() { + $scope.in_progress = true; + $scope.i_am_sure = false; // reset + $scope.all_done = false; + + egCore.net.request( + 'open-ils.circ', + 'open-ils.circ.circulation.age_to_lost', + egCore.auth.token(), { + user_profile : $scope.selected_profile.id(), + circ_lib : $scope.context_org.id() + } + ).then( + function() { + $scope.in_progress = false; + $scope.all_done = true; + }, + null, // on-error + function(response) { + if (!response) return; + if (response.progress) + $scope.chunks_processed = response.progress; + if (response.created) + $scope.events_created = response.created; + } + ); + } +}])