LP#1452950 browser client patron reg additions
authorBill Erickson <berickxx@gmail.com>
Thu, 20 Aug 2015 03:16:46 +0000 (23:16 -0400)
committerGalen Charlton <gmc@esilibrary.com>
Thu, 25 Feb 2016 22:31:55 +0000 (17:31 -0500)
* generate password
* update expire date
* phone / email invalide buttons (display only)

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Open-ILS/src/templates/staff/circ/patron/index.tt2
Open-ILS/src/templates/staff/circ/patron/register.tt2
Open-ILS/src/templates/staff/circ/patron/t_edit.tt2
Open-ILS/web/js/ui/default/staff/circ/patron/regctl.js

index 9cfd554..df0cea5 100644 (file)
@@ -10,6 +10,7 @@
 <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/services/eframe.js"></script>
+<script src="[% ctx.media_prefix %]/js/ui/default/staff/services/date.js"></script>
 <script src="[% ctx.media_prefix %]/js/ui/default/staff/circ/services/billing.js"></script>
 <script src="[% ctx.media_prefix %]/js/ui/default/staff/circ/services/circ.js"></script>
 [% INCLUDE 'staff/circ/share/circ_strings.tt2' %]
index ddd9da2..96332d2 100644 (file)
@@ -6,6 +6,7 @@
 
 [% BLOCK APP_JS %]
 <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/circ/patron/register.js"></script>
 <script src="[% ctx.media_prefix %]/js/ui/default/staff/circ/patron/regctl.js"></script>
 <link rel="stylesheet" href="[% ctx.base_path %]/staff/css/circ.css" />
index 29c15ec..9912d59 100644 (file)
   </div>
 
   <!-- supplemental actions and example text -->
-  <div class="col-md-3 patron-reg-example">
+  <div class="col-md-6 patron-reg-example">
 
     [% IF field == 'barcode' %]
 
       <button class="btn btn-default">[% l('Replace Barcode') %]</button>
       <button class="btn btn-default">[% l('See All') %]</button>
 
-    [% ELSIF field == 'password' %]
+    [% ELSIF field == 'passwd' %]
 
-      <button class="btn btn-default">[% l('Generate Password') %]</button>
+      <button class="btn btn-default" ng-click="generate_password()">
+        [% l('Generate Password') %]</button>
 
     [% ELSE %]
 
+      <!-- invalidate buttons -->
+
+      [% IF field.match('phone') OR field.match('email') %]
+        <button ng-show="patron.[% field %]" class="btn btn-default"
+          ng-click="">[% l('Invalidate') %]</button>
+      [% END %]
+
       <!-- example strings -->
 
       [% set_str = "org_settings['ui.patron.edit." _ 
         [% l('Example: [_1]', "{{" _ set_str _ "}}") %]
       </span>
 
+      <!-- phones have a fall-through example strings -->
       [% IF field.match('phone') %]
-        <!-- phones have a fall-through example option -->
         <span ng-if="![% set_str %] && org_settings['ui.patron.edit.phone.example']">
           [% l('Example: [_1]', 
-           "{{org_settings['ui.patron.edit.phone.example']}}") %]
+          "{{org_settings['ui.patron.edit.phone.example']}}") %]
         </span>
       [% END %]
     [% END %]
-
   </div>
 </div>
 [% END %]
         <li ng-repeat="grp in profiles">
           <a href 
             style="padding-left: {{pgt_depth(grp) * 10 + 5}}px"
-            ng-click="patron.profile = grp">{{grp.name()}}</a>
+            ng-click="set_profile(grp)">{{grp.name()}}</a>
         </li>
       </ul>
     </div>
   </div>
+  <div class="col-md-3">
+    <button class="btn btn-default">[% l('Secondary Groups') %]</button>
+  </div> 
 </div>
 
 <div class="row reg-field-row" ng-show="show_field('au.expire_date')">
       class="form-control" ng-model="patron.expire_date"/>
   </div>
   <div class="col-md-3">
-    <button class="btn btn-default">[% l('Update Expire Date') %]</button>
+    <button class="btn btn-default" ng-click="set_expire_date()">
+      [% l('Update Expire Date') %]</button>
   </div>
 </div>
 
index f8aef69..3a46e61 100644 (file)
@@ -437,6 +437,26 @@ function PatronRegCtrl($scope, $routeParams,
 
         return field_visibility[field_key] >= $scope.edit_passthru.vis_level;
     }
+
+    // generates a random 4-digit password
+    $scope.generate_password = function() {
+        $scope.patron.passwd = Math.floor(Math.random()*9000) + 1000;
+    }
+
+    $scope.set_expire_date = function() {
+        if (!$scope.patron.profile) return;
+        var seconds = egCore.date.intervalToSeconds(
+            $scope.patron.profile.perm_interval());
+        var now_epoch = new Date().getTime();
+        $scope.patron.expire_date = new Date(
+            now_epoch + (seconds * 1000 /* milliseconds */))
+    }
+
+    // grp is the pgt object
+    $scope.set_profile = function(grp) {
+        $scope.patron.profile = grp;
+        $scope.set_expire_date();
+    }
 }