LP#1812900: fix retention of saved defaults in holdings editor
authorGalen Charlton <gmc@equinoxinitiative.org>
Fri, 19 Apr 2019 20:29:21 +0000 (16:29 -0400)
committerJason Stephenson <jason@sigio.com>
Thu, 13 Jun 2019 16:07:52 +0000 (12:07 -0400)
Because the $watch on the statistical category default OU filter
in the holdings editor can fire before the form is fully initialized,
saved defaults (i.e., the cat.copy.defaults workstation setting)
could get overwritten with the hard-coded default value for that, er,
set of defaults.

This patch ensures that that $watch saves the defaults only when the
value of the default stat cat OU filter has changed.

To test
-------
[1] Use the holdings editor on an item. Change to the defaults
    tab and check or uncheck checkboxes such as "Use checkdigit"
    and "Print Item Labels on Save and Exit"
[2] Refresh the page or open the holdings editor on a different item.
    Note that the settings from step #1 are not retained.
[3] Apply the patch.
[4] Repeat steps #1 and #2. This time, the settings should be retained.
[5] Set the Default Filter Library in the same tab and refresh. Verify
    that the OU you chose is retained.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Remington Steed <rjs7@calvin.edu>
Signed-off-by: John Amundson <jsamundson@cwmars.org>
Signed-off-by: Janet Schrader <jschrader@cwmars.org>
Signed-off-by: Jason Stephenson <jason@sigio.com>

Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js

index c27170a..80d2a37 100644 (file)
@@ -1090,8 +1090,9 @@ function($scope , $q , $window , $routeParams , $location , $timeout , egCore ,
         });
     }
 
-    $scope.$watch('defaults.statcat_filter', function() {
-        $scope.saveDefaults();
+    $scope.$watch('defaults.statcat_filter', function(n,o) {
+        if (n && n != o)
+            $scope.saveDefaults();
     });
     $scope.$watch('defaults.auto_gen_barcode', function (n,o) {
         itemSvc.auto_gen_barcode = n