createEditPrefetch: {
ccs : { id : {'!=' : null} }
},
- createDefaults : { 'in_renew' : 'f' },
+ createDefaults : { 'in_renew' : 'f', 'next_status' : [] },
createEditOrgExpand: ['scope_org'],
+ createEditIntarray: ['next_status'],
createEditNullableBool : ['in_renew', 'at_circ', 'at_owning']
});
$scope.createEditPrefetch = $route.current.$$route.createEditPrefetch || {};
$scope.createEditOrgExpand = $route.current.$$route.createEditOrgExpand || [];
$scope.createEditNullableBool = $route.current.$$route.createEditNullableBool || [];
+ $scope.createEditIntarray = $route.current.$$route.createEditIntarray || [];
$scope.createDefaults = $route.current.$$route.createDefaults || [];
$scope.gridControls = {
setQuery : function(q) {
angular.forEach($scope.createEditOrgExpand, function(ou_field) {
$scope.record[ou_field] = egCore.org.get($scope.record[ou_field]);
});
+ angular.forEach($scope.createEditIntarray, function(intarray_field) {
+ if (!($scope.record[intarray_field] == null) && $scope.record[intarray_field] != "") {
+ $scope.record[intarray_field] = $scope.record[intarray_field]
+ .replace('{', '')
+ .replace('}', '')
+ .split(',');
+ } else {
+ $scope.record[intarray_field] = [];
+ }
+ });
});
}
$scope.ok = function(record) { $uibModalInstance.close(record) };
openCreateEditDialog().result.then(function(record) {
var newRec = new egCore.idl[$scope.baseFmClass]();
angular.forEach(record, function(val, key) {
- if (typeof(val) === 'object') {
+ if (typeof(val) === 'object' && !angular.isArray(val)) {
newRec[key](val.id());
} else {
newRec[key](val);
if (!(record[nb_field] == null) && record[nb_field] == "")
newRec[nb_field](null);
});
+ angular.forEach($scope.createEditIntarray, function(intarray_field) {
+ if (newRec[intarray_field]().length > 0) {
+ newRec[intarray_field]('{' + newRec[intarray_field]().join(',') + '}');
+ } else {
+ newRec[intarray_field](null);
+ }
+ });
return egCore.pcrud.create(newRec);
}).then(function(){
$scope.gridControls.refresh();
openCreateEditDialog(items[0].id).result.then(function(record) {
var editedRec = new egCore.idl[$scope.baseFmClass]();
angular.forEach(record, function(val, key) {
- if (angular.isObject(val)) {
+ if (angular.isObject(val) && !angular.isArray(val)) {
editedRec[key](val.id());
} else {
editedRec[key](val);
if (!(record[nb_field] == null) && record[nb_field] == "")
editedRec[nb_field](null);
});
+ angular.forEach($scope.createEditIntarray, function(intarray_field) {
+ if (editedRec[intarray_field]().length > 0) {
+ editedRec[intarray_field]('{' + editedRec[intarray_field]().join(',') + '}');
+ } else {
+ editedRec[intarray_field](null);
+ }
+ });
return egCore.pcrud.update(editedRec);
}).then(function(){
$scope.gridControls.refresh();