[CORD-1927] Fixing generate url for service models
Change-Id: I08d0d853ba2ab041626e133d079ab4562d73171e
(cherry picked from commit 6349847ecd1040111de5e7def26304e9e093cb92)
diff --git a/src/app/core/services/helpers/config.helpers.ts b/src/app/core/services/helpers/config.helpers.ts
index 445386a..b6f28f7 100644
--- a/src/app/core/services/helpers/config.helpers.ts
+++ b/src/app/core/services/helpers/config.helpers.ts
@@ -23,6 +23,7 @@
import {IXosFormCfg, IXosFormInput, IXosFormInputValidator, IXosFormInputOptions} from '../../form/form';
import {IXosModelStoreService} from '../../../datasources/stores/model.store';
import {IXosState} from '../runtime-states';
+import {IXosFormHelpersService} from '../../form/form-helpers';
export interface IXosModelDefsFieldValidators {
name: string;
@@ -61,9 +62,12 @@
export class ConfigHelpers implements IXosConfigHelpersService {
static $inject = [
+ '$q',
'$state',
'toastr',
- 'XosModelStore'];
+ 'XosModelStore',
+ 'XosFormHelpers'
+ ];
public excluded_fields = [
'created',
@@ -96,9 +100,11 @@
]);
constructor(
+ private $q: ng.IQService,
private $state: ng.ui.IStateService,
private toastr: ng.toastr.IToastrService,
- private XosModelStore: IXosModelStoreService
+ private XosModelStore: IXosModelStoreService,
+ private XosFormHelpers: IXosFormHelpersService
) {
pluralize.addIrregularRule('xos', 'xoses');
pluralize.addPluralRule(/slice$/i, 'slices');
@@ -299,7 +305,7 @@
};
formCfg.actions[0].cb = (item, form: angular.IFormController) => {
-
+ const d = this.$q.defer();
if (!form.$valid) {
formCfg.feedback = {
show: true,
@@ -318,9 +324,15 @@
// remove field added by xosTable
_.forEach(Object.keys(item), prop => {
- if (prop.indexOf('-formatted') > -1) {
+ // FIXME what _ptr fields comes from??
+ if (prop.indexOf('-formatted') > -1 || prop.indexOf('_ptr') > -1) {
delete item[prop];
}
+
+ // convert dates back to UnixTime
+ if (this.XosFormHelpers._getFieldFormat(item[prop]) === 'date') {
+ item[prop] = new Date(item[prop]).getTime() / 1000;
+ }
});
const itemName = (angular.isUndefined(itemCopy.name)) ? model.name : itemCopy.name;
@@ -334,6 +346,7 @@
closeBtn: true
};
this.toastr.success(`${itemName} successfully saved`);
+ d.resolve(res);
})
.catch(err => {
formCfg.feedback = {
@@ -343,7 +356,10 @@
closeBtn: true
};
this.toastr.error(err.specific_error || '', `Error while saving ${itemName}: ${err.error}`);
+ d.reject(err);
});
+
+ return d.promise;
};
return formCfg;