LP#1402797 Attempt to implement disabling tests for orgs in the magic dropdown
authorMike Rylander <mrylander@gmail.com>
Sun, 1 Feb 2015 22:05:29 +0000 (17:05 -0500)
committerBill Erickson <berickxx@gmail.com>
Wed, 25 Feb 2015 16:16:09 +0000 (11:16 -0500)
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Open-ILS/src/templates/staff/circ/share/t_hold_edit_pickup_lib.tt2
Open-ILS/web/js/ui/default/staff/circ/services/holds.js
Open-ILS/web/js/ui/default/staff/services/org.js
Open-ILS/web/js/ui/default/staff/services/ui.js

index 895cda0..b70b9ce 100644 (file)
@@ -10,7 +10,7 @@
     <div class="form-group">
       <div class="col-md-4">[% l('Select Library:') %]</div>
       <div class="col-md-8">
-        <eg-org-selector selected="args.org_unit"></eg-org-selector>
+        <eg-org-selector disable-test="can_be_pickup" selected="args.org_unit"></eg-org-selector>
       </div>
     </div>
   </div>
index 1ea2dc5..af255b2 100644 (file)
@@ -198,7 +198,8 @@ function($modal , $q , egCore , egConfirmDialog , egAlertDialog) {
             controller : 
                 ['$scope', '$modalInstance',
                 function($scope, $modalInstance) {
-                    $scope.args = {}
+                    $scope.can_be_pickup = egCore.org.CanHaveUsers;
+                    $scope.args = {};
                     $scope.ok = function() { 
                         var vals = hold_ids.map(function(hold_id) {
                             return {
index 8ff7137..dd89d82 100644 (file)
@@ -41,6 +41,22 @@ function($q,  egEnv,  egAuth,  egNet) {
         return nodes;
     };
 
+    // tests that a node can have users
+    service.CanHaveUsers = function(node_or_id) {
+        return Boolean(service
+            .get(node_or_id)
+            .ou_type()
+            .can_have_users());
+    }
+
+    // tests that a node can have volumes
+    service.CanHaveVolumes = function(node_or_id) {
+        return Boolean(service
+            .get(node_or_id)
+            .ou_type()
+            .can_have_vols());
+    }
+
     // list of org_unit objects  or IDs for me + descendants
     service.descendants = function(node_or_id, as_id) {
         var node = service.get(node_or_id);
index 35e6887..ca79115 100644 (file)
@@ -196,7 +196,12 @@ function($modal, $interpolate) {
             // Each org unit is passed into this function and, for
             // any org units where the response value is true, the
             // org unit will not be added to the selector.
-            hiddenTest : '=',
+            hiddenTest : '&',
+
+            // Each org unit is passed into this function and, for
+            // any org units where the response value is true, the
+            // org unit will not be available for selection.
+            disableTest : '&',
 
             // Caller can either $watch(selected, ..) or register an
             // onchange handler.
@@ -215,7 +220,7 @@ function($modal, $interpolate) {
            + '</button>'
            + '<ul class="dropdown-menu">'
              + '<li ng-repeat="org in orgList" ng-hide="hiddenTest(org.id)">'
-               + '<a href ng-click="orgChanged(org)"'
+               + '<a href ng-click="orgChanged(org)" ng-disabled="disableTest(org.id)" '
                  + 'style="padding-left: {{org.depth * 10 + 5}}px">'
                  + '{{org.shortname}}'
                + '</a>'