LP#1812900: fix retention of saved defaults in holdings editor user/rsteed/lp1812900_fix_save_volcopy_defaults
authorGalen Charlton <gmc@equinoxinitiative.org>
Fri, 19 Apr 2019 20:29:21 +0000 (16:29 -0400)
committerRemington Steed <rjs7@calvin.edu>
Fri, 24 May 2019 20:51:33 +0000 (16:51 -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>
Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js

index 76e637a..89b938e 100644 (file)
@@ -1082,8 +1082,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