}
$scope.statcatUpdate = function (id) {
- var newval = $scope.working.statcats[id];
+ var newval;
+
+ // use sc_selected_text to find the selected stat cat's id and update the working.statcats object with that id
+ angular.forEach($scope.statcats, function(statcat) {
+ if (statcat.id() === id) {
+ angular.forEach(statcat.entries(), function (entry) {
+ if (statcat.sc_selected_text === '<NONE>') {
+ $scope.working.statcats[id] = null;
+ } else if (entry.value() === statcat.sc_selected_text) {
+ newval = entry.id();
+ $scope.working.statcats[id] = entry.id();
+ }
+ })
+ }
+ })
if (typeof newval != 'undefined') {
if (angular.isObject(newval)) { // we'll use the pkey
delete $scope.working.MultiMap[k];
});
egCore.hatch.setItem('cat.copy.last_template', n);
+ angular.forEach($scope.statcats, function(statcat) {
+ if ($scope.working.statcats[statcat.id()]) {
+ angular.forEach(statcat.entries(), function (entry) {
+ if (entry.id() === $scope.working.statcats[statcat.id()]) {
+ $scope.working.statcats[statcat.id()] = entry.id();
+ statcat.sc_selected_text = entry.value();
+ }
+ })
+ } else {
+ statcat.sc_selected_text = undefined;
+ $scope.working.statcats[statcat.id()] = undefined;
+ }
+ });
}
-
$scope.copytab = 'working';
$scope.tab = 'edit';
$scope.summaryRecord = null;
if (!none && Object.keys(value_hash).length == 1) {
$scope.working.statcats[sc.id()] = value_hash[Object.keys(value_hash)[0]];
+ // populate stat cat combo-box with correct text
+ angular.forEach(item.stat_cat_entries(), function (entry) {
+ if (entry.id() === $scope.working.statcats[sc.id()]) {
+ sc.sc_selected_text=entry.value();
+ }
+ });
$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;
if (!$scope.in_item_select) {
$scope.working.statcats[s.id()] = undefined;
}
+ s.sc_entry_values = s.entries().map(entry => {
+ return entry.value();
+ });
+ s.sc_entry_values.unshift('<NONE>');
+ if (!s.sc_selected_text) s.sc_selected_text = '';
createStatcatUpdateWatcher(s.id());
});
$scope.in_item_select = false;
$scope.workingSaveAndExit = function () {
$scope.workingToComplete();
+ $scope.removeNullStatCats();
$scope.saveAndExit();
}
$scope.saveCompletedCopies(true);
}
+ $scope.removeNullStatCats = function () {
+ $scope.completed_copies.forEach(cp => {
+ var sces = cp.stat_cat_entries();
+ sces = sces.filter(entry => {
+ var id = entry.stat_cat();
+ return ($scope.working.statcats[id] !== null);
+ });
+ cp.stat_cat_entries(sces);
+ });
+ }
+
}
$scope.copy_notes_dialog = function(copy_list) {
}
});
$scope.template_name = '';
+ angular.forEach($scope.statcats, function(statcat) {
+ if ($scope.working.statcats[statcat.id()]) {
+ angular.forEach(statcat.entries(), function (entry) {
+ if (entry.id() === $scope.working.statcats[statcat.id()]) {
+ $scope.working.statcats[statcat.id()] = entry.id();
+ statcat.sc_selected_text = entry.value();
+ }
+ })
+ } else {
+ statcat.sc_selected_text = undefined;
+ $scope.working.statcats[statcat.id()] = undefined;
+ }
+ })
}
$scope.deleteTemplate = function (n) {
$scope.saveTemplate = function (n) {
if (n) {
var tmpl = {};
+
+ angular.forEach($scope.statcats, function(statcat) {
+ angular.forEach(statcat.entries(), function (entry) {
+ if (entry.value() === statcat.sc_selected_text) {
+ $scope.working.statcats[statcat.id()] = entry.id();
+ }
+ })
+ })
angular.forEach($scope.working, function (v,k) {
if (angular.isObject(v)) { // we'll use the pkey
$scope.working.statcats = {};
$scope.working.statcats[s.id()] = undefined;
+ s.sc_entry_values = s.entries().map(entry => {
+ return entry.value();
+ });
createStatcatUpdateWatcher(s.id());
});
});