LP#1673857: teach egFmRecordEditor how to create non-sequence-controlled ID values
authorGalen Charlton <gmc@equinoxinitiative.org>
Mon, 10 Apr 2017 18:33:34 +0000 (18:33 +0000)
committerGalen Charlton <gmc@equinoxinitiative.org>
Mon, 24 Jul 2017 15:29:06 +0000 (11:29 -0400)
Since config.copy_tag_type uses a natural key, the egFmRecordEditor
dialog needs to allow the user to set it when creating a new
type.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Josh Stompro <stomproj@larl.org>
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 f7a7a6e..f2328a1 100644 (file)
         <label for="rec-{{field.name}}">{{field.label}}</label>
       </div>
       <div class="col-md-9">
-        <span  ng-if="field.datatype == 'id'">{{rec[field.name]()}}</span>
+        <span  ng-if="field.datatype == 'id' && !id_is_editable">{{rec[field.name]()}}</span>
+        <input ng-if="field.datatype == 'id' &&  id_is_editable"
+          ng-readonly="field.readonly"
+          ng-required="field.is_required()"
+          ng-model="rec[field.name]"
+          ng-model-options="{ getterSetter : true }">
+        </input>
         <input ng-if="field.datatype == 'text'"
           ng-readonly="field.readonly"
           ng-required="field.is_required()"
index be04844..8157f18 100644 (file)
@@ -75,6 +75,7 @@ angular.module('egFmRecordEditorMod',
             $scope.record_label = egCore.idl.classes[$scope.idlClass].label;
             $scope.rec_orgs = {};
             $scope.rec_org_values = {};
+            $scope.id_is_editable = false;
 
             if ($scope.mode == 'update') {
                 egCore.pcrud.retrieve($scope.idlClass, $scope.recordId).then(function(r) {
@@ -83,6 +84,9 @@ angular.module('egFmRecordEditorMod',
                     $scope.fields = get_field_list();
                 });
             } else {
+                if (!('pkey_sequence' in egCore.idl.classes[$scope.idlClass])) {
+                    $scope.id_is_editable = true;
+                }
                 $scope.rec = new egCore.idl[$scope.idlClass]();
                 $scope.fields = get_field_list();
             }