move pending patrons to /circ/patron/pending; wire up load action
authorBill Erickson <berick@esilibrary.com>
Mon, 14 Jul 2014 16:41:48 +0000 (12:41 -0400)
committerBill Erickson <berick@esilibrary.com>
Mon, 14 Jul 2014 16:41:48 +0000 (12:41 -0400)
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Open-ILS/src/templates/staff/circ/patron/pending.tt2 [new file with mode: 0644]
Open-ILS/src/templates/staff/circ/patron/t_pending_list.tt2 [new file with mode: 0644]
Open-ILS/src/templates/staff/circ/pending_patrons/index.tt2 [deleted file]
Open-ILS/src/templates/staff/circ/pending_patrons/t_list.tt2 [deleted file]
Open-ILS/src/templates/staff/navbar.tt2
Open-ILS/web/js/ui/default/staff/circ/patron/pending.js [new file with mode: 0644]
Open-ILS/web/js/ui/default/staff/circ/pending_patrons/app.js [deleted file]

diff --git a/Open-ILS/src/templates/staff/circ/patron/pending.tt2 b/Open-ILS/src/templates/staff/circ/patron/pending.tt2
new file mode 100644 (file)
index 0000000..21c21cb
--- /dev/null
@@ -0,0 +1,17 @@
+[%
+  WRAPPER "staff/base.tt2";
+  ctx.page_title = l("Pending Patrons"); 
+  ctx.page_app = "egPendingPatronsApp";
+%]
+
+[% BLOCK APP_JS %]
+<script src="[% ctx.media_prefix %]/js/ui/default/staff/services/grid.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/user.js"></script>
+<script src="[% ctx.media_prefix %]/js/ui/default/staff/circ/patron/pending.js"></script>
+<link rel="stylesheet" href="[% ctx.base_path %]/staff/css/circ.css" />
+[% END %]
+
+<div ng-view></div>
+
+[% END %]
diff --git a/Open-ILS/src/templates/staff/circ/patron/t_pending_list.tt2 b/Open-ILS/src/templates/staff/circ/patron/t_pending_list.tt2
new file mode 100644 (file)
index 0000000..3809d12
--- /dev/null
@@ -0,0 +1,34 @@
+<div class="container-fluid" style="text-align:center">
+  <div class="alert alert-info alert-less-pad strong-text-2">
+    <span>[% l('Pending Patrons') %]</span>
+  </div>
+</div>
+
+<span>[% l('Home Library: ' ) %]</span>
+<span><eg-org-selector selected="context_org"></eg-org-selector></span>
+<hr/>
+
+<eg-grid
+  id-field="id"
+  features="-sort,-multisort"
+  items-provider="grid_data_provider"
+  grid-controls="grid_controls"
+  persist-key="circ.pending_patrons.list">
+
+  <eg-grid-menu-item handler="load_patron" 
+    label="[% l('Load Patron') %]"></eg-grid-menu-item>
+
+  <eg-grid-field path='user.row_date' label="[% l('Create Date') %]"></eg-grid-field>
+  <eg-grid-field path='user.first_given_name' label="[% l('First Name') %]"></eg-grid-field>
+  <eg-grid-field path='user.second_given_name' label="[% l('Middle Name') %]"></eg-grid-field>
+  <eg-grid-field path='user.family_name' label="[% l('Last Name') %]"></eg-grid-field>
+  <eg-grid-field path='user.email' label="[% l('Email') %]"></eg-grid-field>
+  <eg-grid-field path='user.home_ou.shortname' label="[% l('Home Library') %]"></eg-grid-field>
+  <eg-grid-field path='mailing_address.street1' label="[% l('Street 1') %]"></eg-grid-field>
+  <eg-grid-field path='mailing_address.city' label="[% l('City') %]"></eg-grid-field>
+  <eg-grid-field path='mailing_address.post_code' label="[% l('Post Code') %]"></eg-grid-field>
+  <eg-grid-field path='user.usrname' label="[% l('Requested Username') %]"></eg-grid-field>
+  <eg-grid-field path='user.*' parent-idl-class="stgu" hidden></eg-grid-field>
+  <eg-grid-field path='mailing_address.*' parent-idl-class="stgma" hidden></eg-grid-field>
+</eg-grid>
+
diff --git a/Open-ILS/src/templates/staff/circ/pending_patrons/index.tt2 b/Open-ILS/src/templates/staff/circ/pending_patrons/index.tt2
deleted file mode 100644 (file)
index 99539e5..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-[%
-  WRAPPER "staff/base.tt2";
-  ctx.page_title = l("Pending Patrons"); 
-  ctx.page_app = "egPendingPatronsApp";
-%]
-
-[% BLOCK APP_JS %]
-<script src="[% ctx.media_prefix %]/js/ui/default/staff/services/grid.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/user.js"></script>
-<script src="[% ctx.media_prefix %]/js/ui/default/staff/circ/pending_patrons/app.js"></script>
-<link rel="stylesheet" href="[% ctx.base_path %]/staff/css/circ.css" />
-[% END %]
-
-<div ng-view></div>
-
-[% END %]
diff --git a/Open-ILS/src/templates/staff/circ/pending_patrons/t_list.tt2 b/Open-ILS/src/templates/staff/circ/pending_patrons/t_list.tt2
deleted file mode 100644 (file)
index 3809d12..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<div class="container-fluid" style="text-align:center">
-  <div class="alert alert-info alert-less-pad strong-text-2">
-    <span>[% l('Pending Patrons') %]</span>
-  </div>
-</div>
-
-<span>[% l('Home Library: ' ) %]</span>
-<span><eg-org-selector selected="context_org"></eg-org-selector></span>
-<hr/>
-
-<eg-grid
-  id-field="id"
-  features="-sort,-multisort"
-  items-provider="grid_data_provider"
-  grid-controls="grid_controls"
-  persist-key="circ.pending_patrons.list">
-
-  <eg-grid-menu-item handler="load_patron" 
-    label="[% l('Load Patron') %]"></eg-grid-menu-item>
-
-  <eg-grid-field path='user.row_date' label="[% l('Create Date') %]"></eg-grid-field>
-  <eg-grid-field path='user.first_given_name' label="[% l('First Name') %]"></eg-grid-field>
-  <eg-grid-field path='user.second_given_name' label="[% l('Middle Name') %]"></eg-grid-field>
-  <eg-grid-field path='user.family_name' label="[% l('Last Name') %]"></eg-grid-field>
-  <eg-grid-field path='user.email' label="[% l('Email') %]"></eg-grid-field>
-  <eg-grid-field path='user.home_ou.shortname' label="[% l('Home Library') %]"></eg-grid-field>
-  <eg-grid-field path='mailing_address.street1' label="[% l('Street 1') %]"></eg-grid-field>
-  <eg-grid-field path='mailing_address.city' label="[% l('City') %]"></eg-grid-field>
-  <eg-grid-field path='mailing_address.post_code' label="[% l('Post Code') %]"></eg-grid-field>
-  <eg-grid-field path='user.usrname' label="[% l('Requested Username') %]"></eg-grid-field>
-  <eg-grid-field path='user.*' parent-idl-class="stgu" hidden></eg-grid-field>
-  <eg-grid-field path='mailing_address.*' parent-idl-class="stgma" hidden></eg-grid-field>
-</eg-grid>
-
index 7bf674c..c4ff869 100644 (file)
@@ -93,7 +93,7 @@
           </li>
           <li>
             <a href="./circ/patron/register" target="_self">
-              <span class="glyphicon glyphicon-refresh"></span>
+              <span class="glyphicon glyphicon-user"></span>
               [% l('Register Patron') %]
             </a>
           </li>
             </a>
           </li>
           <li>
-            <a href="./circ/pending_patrons/list" target="_self">
+            <a href="./circ/patron/pending/list" target="_self">
               <span class="glyphicon glyphicon-thumbs-up"></span>
               [% l('Pending Patrons') %]
             </a>
diff --git a/Open-ILS/web/js/ui/default/staff/circ/patron/pending.js b/Open-ILS/web/js/ui/default/staff/circ/patron/pending.js
new file mode 100644 (file)
index 0000000..9c2bc65
--- /dev/null
@@ -0,0 +1,84 @@
+angular.module('egPendingPatronsApp', 
+    ['ngRoute', 'ui.bootstrap', 'egCoreMod', 'egUiMod', 'egGridMod'])
+
+.config(function($routeProvider, $locationProvider, $compileProvider) {
+    $locationProvider.html5Mode(true);
+    $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|blob):/); // grid export
+
+    var resolver = {delay : 
+        ['egStartup', function(egStartup) {return egStartup.go()}]}
+
+    $routeProvider.when('/circ/patron/pending/list', {
+        templateUrl: './circ/patron/t_pending_list',
+        controller: 'PendingPatronsCtrl',
+        resolve : resolver
+    });
+
+    $routeProvider.otherwise({redirectTo : '/circ/patron/pending/list'});
+})
+
+.controller('PendingPatronsCtrl',
+       ['$scope','$q','$routeParams','$window','$location','egCore','egGridDataProvider',
+function($scope , $q , $routeParams , $window , $location , egCore , egGridDataProvider) {
+
+    console.log('HERE');
+
+    var pending_patrons = [];
+    var provider = egGridDataProvider.instance({});
+    $scope.grid_data_provider = provider;
+
+    function load_patron(item) {
+        if (angular.isArray(item)) item = item[0];
+        if (!item) return;
+        $window.open(
+            $location.path(
+                '/circ/patron/register/stage/' + item.user.usrname()).absUrl(),
+            '_blank'
+        ).focus();
+    }
+
+    $scope.load_patron = function(action, data, items) {
+        load_patron(items);
+    }
+
+    $scope.grid_controls = {
+        activateItem : load_patron
+    }
+
+    function refresh_page() {
+        pending_patrons = [];
+        provider.refresh();
+    }
+
+    provider.get = function(offset, count) {
+        var deferred = $q.defer();
+        var recv_index = 0;
+
+        egCore.net.request(
+            'open-ils.actor',
+            'open-ils.actor.user.stage.retrieve.by_org',
+            egCore.auth.token(), $scope.context_org.id()
+
+        ).then(
+            deferred.resolve, null, 
+            function(user) {
+                user.id = user.user.row_id();
+                user.user.home_ou(egCore.org.get(user.user.home_ou()));
+
+                // only one (mailing) address is captured during patron
+                // self-registration
+                user.mailing_address = user.mailing_addresses[0];
+                pending_patrons[offset + recv_index++] = user;
+                deferred.notify(user);
+            }
+        );
+
+        return deferred.promise;
+    }
+
+    $scope.context_org = egCore.org.get(egCore.auth.user().ws_ou())
+    $scope.$watch('context_org', function(newVal, oldVal) {
+        if (newVal && newVal != oldVal) refresh_page();
+    });
+}])
+
diff --git a/Open-ILS/web/js/ui/default/staff/circ/pending_patrons/app.js b/Open-ILS/web/js/ui/default/staff/circ/pending_patrons/app.js
deleted file mode 100644 (file)
index 7a1b4e3..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-angular.module('egPendingPatronsApp', 
-    ['ngRoute', 'ui.bootstrap', 'egCoreMod', 'egUiMod', 'egGridMod'])
-
-.config(function($routeProvider, $locationProvider, $compileProvider) {
-    $locationProvider.html5Mode(true);
-    $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|blob):/); // grid export
-
-    var resolver = {delay : 
-        ['egStartup', function(egStartup) {return egStartup.go()}]}
-
-    $routeProvider.when('/circ/pending_patrons/list', {
-        templateUrl: './circ/pending_patrons/t_list',
-        controller: 'PendingPatronsCtrl',
-        resolve : resolver
-    });
-
-    $routeProvider.otherwise({redirectTo : '/circ/pending_patrons/list'});
-})
-
-.controller('PendingPatronsCtrl',
-       ['$scope','$q','$routeParams','$window','$location','egCore','egGridDataProvider',
-function($scope , $q , $routeParams , $window , $location , egCore , egGridDataProvider) {
-
-    var pending_patrons = [];
-    var provider = egGridDataProvider.instance({});
-    $scope.grid_data_provider = provider;
-
-    function load_patron(item) {
-        if (angular.isArray(item)) item = item[0];
-        if (!item) return;
-        // TODO: where does patron editor w/ no context patron live?
-    }
-
-    $scope.grid_controls = {
-        activateItem : load_patron
-    }
-
-    function refresh_page() {
-        pending_patrons = [];
-        provider.refresh();
-    }
-
-    provider.get = function(offset, count) {
-        var deferred = $q.defer();
-        var recv_index = 0;
-
-        egCore.net.request(
-            'open-ils.actor',
-            'open-ils.actor.user.stage.retrieve.by_org',
-            egCore.auth.token(), $scope.context_org.id()
-
-        ).then(
-            deferred.resolve, null, 
-            function(user) {
-                user.id = user.user.row_id();
-                user.user.home_ou(egCore.org.get(user.user.home_ou()));
-
-                // only one (mailing) address is captured during patron
-                // self-registration
-                user.mailing_address = user.mailing_addresses[0];
-                pending_patrons[offset + recv_index++] = user;
-                deferred.notify(user);
-            }
-        );
-
-        return deferred.promise;
-    }
-
-    $scope.context_org = egCore.org.get(egCore.auth.user().ws_ou())
-    $scope.$watch('context_org', function(newVal, oldVal) {
-        if (newVal && newVal != oldVal) refresh_page();
-    });
-}])
-