From 85faf875b000dca04e19e9fff79477976e4013b9 Mon Sep 17 00:00:00 2001 From: Mike Rylander Date: Wed, 10 Jan 2018 11:25:27 -0500 Subject: [PATCH] LP#1742779: Distinguish between no statcat values and multiple values in copy editor to assist staff WRT stat cats, the copy editor in the web client will display the value of a stat cat IFF all selected copies both use the stat cat AND use the same value for that stat cat. Otherwise it displays , which is confusing in the case of some selected copies just not using the stat cat, or all selected copies using it, but using different values. This commit provides tracking of the mixed-use stat, and displays for the value instead of in that case. Signed-off-by: Mike Rylander Signed-off-by: Kathy Lussier --- Open-ILS/src/templates/staff/cat/volcopy/t_attr_edit.tt2 | 4 +++- Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js | 13 ++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Open-ILS/src/templates/staff/cat/volcopy/t_attr_edit.tt2 b/Open-ILS/src/templates/staff/cat/volcopy/t_attr_edit.tt2 index 5b9181e5d5..116db23985 100644 --- a/Open-ILS/src/templates/staff/cat/volcopy/t_attr_edit.tt2 +++ b/Open-ILS/src/templates/staff/cat/volcopy/t_attr_edit.tt2 @@ -461,7 +461,9 @@ ng-model="working.statcats[sc.id()]" ng-options="e.id() as e.value() for e in sc.entries()" ng-required="sc.required() == 't'"> - + diff --git a/Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js b/Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js index a7269e0379..6280cbce76 100644 --- a/Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js +++ b/Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js @@ -1098,6 +1098,7 @@ function($scope , $q , $window , $routeParams , $location , $timeout , egCore , $scope.working = { statcats: {}, + statcats_multi: {}, statcat_filter: undefined }; @@ -1507,6 +1508,8 @@ function($scope , $q , $window , $routeParams , $location , $timeout , egCore , } else { none = true; } + } else { + none = true; } } else { none = true; @@ -1515,9 +1518,15 @@ function($scope , $q , $window , $routeParams , $location , $timeout , egCore , if (!none && Object.keys(value_hash).length == 1) { $scope.working.statcats[sc.id()] = value_hash[Object.keys(value_hash)[0]]; + $scope.working.statcats_multi[sc.id()] = false; + } else if (item_list.length > 1 && Object.keys(value_hash).length > 0) { + $scope.working.statcats[sc.id()] = undefined; + $scope.working.statcats_multi[sc.id()] = true; } else { $scope.working.statcats[sc.id()] = undefined; + $scope.working.statcats_multi[sc.id()] = false; } + }); } else { @@ -1569,7 +1578,9 @@ function($scope , $q , $window , $routeParams , $location , $timeout , egCore , angular.forEach($scope.statcats, function (s) { if (!$scope.working) - $scope.working = { statcats: {}, statcat_filter: undefined}; + $scope.working = { statcats_multi: {}, statcats: {}, statcat_filter: undefined}; + if (!$scope.working.statcats_multi) + $scope.working.statcats_multi = {}; if (!$scope.working.statcats) $scope.working.statcats = {}; -- 2.11.0