rsanchez
2017-06-27 8b7b5083e099e975101fc8cdbd9af72823b9bd21
securis/src/main/webapp/src/app/forms/base.ts
....@@ -90,17 +90,21 @@
9090 });
9191 }
9292
93
+ private applyDefaultValues(default_values: any, target_data: any = {}) : any {
94
+ Object.keys(default_values).forEach((k : string) => (target_data[k] === undefined) && (target_data[k] = default_values[k]));
95
+ return target_data;
96
+ }
97
+
9398 protected prepareInitialData(idparam: string, default_values: any = {}, callback?: (data: any) => void) : void {
9499 super.setViewData(() => {
95100 this.form_title = this.$L.get('{} data', this.resourceName.capitalize());
96
- this.isNew = true;
101
+ this.isNew = true;
97102 });
98103 !!this.route && this.route.params.subscribe(params => {
99104 var eleId = params[idparam];
100105 if (!eleId) {
101106 super.setViewData(() => {
102
- this.data = {};
103
- Object.keys(default_values).forEach((k : string) => this.data[k] = default_values[k]);
107
+ this.data = this.applyDefaultValues(default_values, {});
104108 this.form_subtitle = this.$L.get('Create a new {}', this.resourceName) ;
105109 });
106110 } else {
....@@ -108,8 +112,7 @@
108112 this.isNew = false;
109113 this.resourceServices.get(eleId).subscribe(eleData => {
110114 super.setViewData(() => {
111
- this.data = eleData;
112
- Object.keys(default_values).forEach((k : string) => (this.data[k] === undefined) && (this.data[k] = default_values[k]));
115
+ this.data = this.applyDefaultValues(default_values, eleData);
113116 callback && callback(this.data);
114117 });
115118 });