LP#1685232: fix egCore.pcrud.apply() user/gmcharlt/lp1685232_fix_pcrud_apply
authorGalen Charlton <gmc@equinoxinitiative.org>
Fri, 21 Apr 2017 14:06:17 +0000 (10:06 -0400)
committerGalen Charlton <gmc@equinoxinitiative.org>
Fri, 21 Apr 2017 14:16:04 +0000 (10:16 -0400)
This patch fixes egCore.pcrud.apply() method so that it
behaves as intended (i.e., process an array of fieldmapper
objects and either creates, updates, or deletes them based
on the value of the isnew(), ischanged(), and isdeleted()
flags).

To test
-------
Currently no code uses this method (but some will soon), but
it can be tested by writing some code like this:

   var notes = [];
   var n1 = new egCore.idl.aun();
   n1.usr(userid); // etc.
   n1.isnew(true);
   notes.push(n1);
   var n2 = new egCore.idl.aun();
   n2.usr(userid); // etc.
   n2.isnew(true);
   notes.push(n1);

   egCore.pcrud.apply(notes).then(...

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Open-ILS/web/js/ui/default/staff/services/pcrud.js

index 1f78b17..66fdba9 100644 (file)
@@ -267,12 +267,12 @@ angular.module('egCoreMod')
             var action = this.cud_action;
             var fm_obj = this.cud_list[this.cud_idx++];
 
-            if (action == 'auto') {
+            if (action == 'apply') {
                 if (fm_obj.ischanged()) action = 'update';
                 if (fm_obj.isnew())     action = 'create';
                 if (fm_obj.isdeleted()) action = 'delete';
 
-                if (action == 'auto') {
+                if (action == 'apply') {
                     // object does not need updating; move along
                     this._CUD_next_request();
                 }