webstaff: teach egEditFmRecord when to allow OU to default to WS OU
authorGalen Charlton <gmc@equinoxinitiative.org>
Fri, 7 Jul 2017 21:01:43 +0000 (17:01 -0400)
committerGalen Charlton <gmc@equinoxinitiative.org>
Fri, 7 Jul 2017 21:01:43 +0000 (17:01 -0400)
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Open-ILS/src/templates/staff/share/t_fm_record_editor.tt2
Open-ILS/web/js/ui/default/staff/services/fm_record_editor.js

index 38f3ea8..cd103c9 100644 (file)
               ng-model-options="{ getterSetter : true }">
             </select>
           </span>
-          <eg-org-selector ng-if="field.datatype == 'org_unit'"
+          <eg-org-selector ng-if="field.datatype == 'org_unit' && !field.org_default_allowed"
             selected="rec_org_values[field.name]"
             onchange="rec_orgs[field.name]" nodefault>
           </eg-org-selector>
+          <eg-org-selector ng-if="field.datatype == 'org_unit' && field.org_default_allowed"
+            selected="rec_org_values[field.name]"
+            onchange="rec_orgs[field.name]">
+          </eg-org-selector>
         </span>
       </div>
     </div>
index 5c62eb3..7d16e1d 100644 (file)
@@ -36,6 +36,10 @@ angular.module('egFmRecordEditorMod',
             // supplements what the IDL considers required
             requiredFields : '@',
 
+            // comma-separated list of org_unit fields where
+            // the selector should default to the workstation OU
+            orgDefaultAllowed : '@',
+
             // hash, keyed by field name, of functions to invoke
             // to check whether a field is required.  Each
             // callback is passed the field name and the record
@@ -79,6 +83,7 @@ angular.module('egFmRecordEditorMod',
             $scope.required = list_to_hash($scope.requiredFields);
             $scope.readonly = list_to_hash($scope.readonlyFields);
             $scope.hidden = list_to_hash($scope.hiddenFields);
+            $scope.org_default_allowed = list_to_hash($scope.orgDefaultAllowed);
 
             $scope.record_label = egCore.idl.classes[$scope.idlClass].label;
             $scope.rec_orgs = {};
@@ -180,6 +185,7 @@ angular.module('egFmRecordEditorMod',
                         if ($scope.rec[field.name]()) {
                             $scope.rec_org_values[field.name] = $scope.rec_orgs[field.name]();
                         }
+                        field.org_default_allowed = (field.name in $scope.org_default_allowed);
                     }
                     if (field.name in $scope.customFieldTemplates) {
                         field.use_custom_template = true;