From 7163fc28f700785424ec10601ce6aa58d6d05223 Mon Sep 17 00:00:00 2001
From: rsanchez <rsanchez@curisit.net>
Date: Fri, 23 Jun 2017 15:27:51 +0000
Subject: [PATCH] #3646 - Bugfixing in license form

---
 /dev/null                                                           |   28 --------------
 securis/src/main/webapp/src/app/common/utils.ts                     |    5 ++
 securis/src/main/webapp/src/app/forms/licensetype.form.component.ts |    6 +-
 securis/src/main/webapp/src/app/forms/base.ts                       |   32 ++++++++++------
 securis/src/main/webapp/src/app/forms/pack.form.component.ts        |    8 ++--
 securis/src/main/webapp/src/app/forms/license.form.component.ts     |    3 +
 6 files changed, 35 insertions(+), 47 deletions(-)

diff --git a/securis/src/main/webapp/src/app/app.module2.ts b/securis/src/main/webapp/src/app/app.module2.ts
deleted file mode 100644
index 83d8195..0000000
--- a/securis/src/main/webapp/src/app/app.module2.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { NgModule, Injectable, Component } from '@angular/core';
-import { HttpModule, Http } from '@angular/http';
-import { BrowserModule } from '@angular/platform-browser';
-
-@Component({
-  selector: 'app-home',
-  template: `<h2>Hola</h2>`
-
-})
-export class HomeComponent {
-  constructor(private http : Http) {
-    console.log('Http is injected ok: ' + http)
-  }
-}
-
-@NgModule({
-  imports: [
-    BrowserModule, HttpModule
-  ],
-  declarations: [
-    HomeComponent
-  ],
-  bootstrap: [ HomeComponent ],
-  entryComponents: [  ],
-  providers: [
-  ]
-})
-export class AppModule2 { }
diff --git a/securis/src/main/webapp/src/app/common/utils.ts b/securis/src/main/webapp/src/app/common/utils.ts
index 6e63b6a..ecc46de 100644
--- a/securis/src/main/webapp/src/app/common/utils.ts
+++ b/securis/src/main/webapp/src/app/common/utils.ts
@@ -1,5 +1,6 @@
 
 import { Component, Injectable, Input } from '@angular/core';
+import { Response } from '@angular/http';
 import { LocaleService } from './i18n';
 import { Observable } from 'rxjs/Observable';
 
@@ -42,6 +43,10 @@
 
 	constructor(protected $L: LocaleService) { }
 
+	public setViewData(callback: any) {
+		setTimeout(callback, 0);
+	}
+
 	public processErrorResponse(errorResponse: Response) {
 		// In a real world app, we might use a remote logging infrastructure
 		var error: IError = <IError>{};
diff --git a/securis/src/main/webapp/src/app/forms/base.ts b/securis/src/main/webapp/src/app/forms/base.ts
index 1fc2ca1..45d773b 100644
--- a/securis/src/main/webapp/src/app/forms/base.ts
+++ b/securis/src/main/webapp/src/app/forms/base.ts
@@ -91,22 +91,30 @@
 	}
 
 	protected prepareInitialData(idparam: string, default_values: any = {}, callback?: (data: any) => void) : void {
-		this.form_title = this.$L.get('{} data', this.resourceName.capitalize());
-		this.isNew = true;
+		super.setViewData(() => {
+			this.form_title = this.$L.get('{} data', this.resourceName.capitalize());
+			this.isNew = true;
+		});
 		!!this.route && this.route.params.subscribe(params => {
 			var eleId = params[idparam];
 			if (!eleId) {
-				this.data = {};
-				Object.keys(default_values).forEach((k : string) => this.data[k] = default_values[k]);
-				this.form_subtitle = this.$L.get('Create a new {}', this.resourceName) ;
-			} else {
-				this.isNew = false;
-				this.resourceServices.get(eleId).subscribe(eleData => {
-					this.data = eleData;
-					Object.keys(default_values).forEach((k : string) => (this.data[k] === undefined) && (this.data[k] = default_values[k]));
-					callback && callback(this.data);
+				super.setViewData(() => {
+					this.data = {};
+					Object.keys(default_values).forEach((k : string) => this.data[k] = default_values[k]);
+					this.form_subtitle = this.$L.get('Create a new {}', this.resourceName) ;
 				});
-				this.form_subtitle = this.$L.get('Modify the {} data', this.resourceName) ;
+			} else {
+				super.setViewData(() => {
+					this.isNew = false;
+					this.resourceServices.get(eleId).subscribe(eleData => {
+						super.setViewData(() => {
+							this.data = eleData;
+							Object.keys(default_values).forEach((k : string) => (this.data[k] === undefined) && (this.data[k] = default_values[k]));
+							callback && callback(this.data);
+						});
+					});
+					this.form_subtitle = this.$L.get('Modify the {} data', this.resourceName) ;
+				});
 			}
 		});
 	}
diff --git a/securis/src/main/webapp/src/app/forms/license.form.component.ts b/securis/src/main/webapp/src/app/forms/license.form.component.ts
index f6bf27c..8f16bb7 100644
--- a/securis/src/main/webapp/src/app/forms/license.form.component.ts
+++ b/securis/src/main/webapp/src/app/forms/license.form.component.ts
@@ -130,6 +130,9 @@
       this.packs.get(packId).subscribe(
           packData => {
             this.pack = packData;
+            if (this.isNew) {
+              this.data.metadata = packData.metadata;
+            }
           },
           err => console.error(err)
         );
diff --git a/securis/src/main/webapp/src/app/forms/licensetype.form.component.ts b/securis/src/main/webapp/src/app/forms/licensetype.form.component.ts
index 2a459cd..a60e426 100644
--- a/securis/src/main/webapp/src/app/forms/licensetype.form.component.ts
+++ b/securis/src/main/webapp/src/app/forms/licensetype.form.component.ts
@@ -54,7 +54,7 @@
     this.applications.get(this.data.application_id)
         .map(app_data => this._prepareMetadata(app_data.metadata))
         .subscribe(
-          metadata => this.data.metadata = metadata,
+          metadata => super.setViewData(() => this.data.metadata = metadata),
           err => console.error('Error loading application metadata')
         );
   }
@@ -65,7 +65,7 @@
       this.applications.get()
         .map(list => list.map((app : any) => <IComboOption>{id: app.id, label: `(${app.code}) ${app.name}`}))
         .subscribe(
-          data => this.allApplications = (<IComboOption[]>data).sort((e1, e2) => e1.label.localeCompare(e2.label)),
+          data => super.setViewData(() => this.allApplications = (<IComboOption[]>data).sort((e1, e2) => e1.label.localeCompare(e2.label))),
           err => console.error('Error loading applications')
         );
   }
@@ -80,7 +80,7 @@
     super.reset();
     super.prepareInitialData('licensetypeId', {
       metadata: []
-    }, (data) => this._prepareMetadata(data.metadata));
+    }, (data) => super.setViewData(() => this._prepareMetadata(data.metadata)));
   }
  
   ngAfterViewInit(): void {
diff --git a/securis/src/main/webapp/src/app/forms/pack.form.component.ts b/securis/src/main/webapp/src/app/forms/pack.form.component.ts
index 866e81f..d8614ec 100644
--- a/securis/src/main/webapp/src/app/forms/pack.form.component.ts
+++ b/securis/src/main/webapp/src/app/forms/pack.form.component.ts
@@ -27,7 +27,7 @@
               private packs: PacksService,
               router: Router,
               toaster: ToastsManager,
-              route: ActivatedRoute,              
+              route: ActivatedRoute,
               $L: LocaleService,
               dialogs: TdDialogService) {
     super($L, router, route, toaster, packs, $L.get('pack'), dialogs);
@@ -37,13 +37,13 @@
       this.http.get('organization')
         .map(response => response.json().map((org : any) => <IComboOption>{id: org.id, label: `(${org.code}) ${org.name}`}))
         .subscribe(
-          data => this.organizations = (<IComboOption[]>data).sort((e1, e2) => e1.label.localeCompare(e2.label)),
+          data => super.setViewData(() => this.organizations = (<IComboOption[]>data).sort((e1, e2) => e1.label.localeCompare(e2.label))),
           err => console.error('Error loading orgs')
         );
       this.licenseTypes.get()
         .map(list => list.map((lt : any) => <IComboOption>{id: lt.id, label: `(${lt.code}) ${lt.name}`}))
         .subscribe(
-          data => this.licensetypes = (<IComboOption[]>data).sort((e1, e2) => e1.label.localeCompare(e2.label)),
+          data => super.setViewData(() => this.licensetypes = (<IComboOption[]>data).sort((e1, e2) => e1.label.localeCompare(e2.label))),
           err => console.error('Error loading license types')
         );
   }
@@ -57,7 +57,7 @@
     this.licenseTypes.get(this.data.license_type_id)
         .map(lt_data => lt_data.metadata)
         .subscribe(
-          metadata => this.data.metadata = metadata,
+          metadata => super.setViewData(() => this.data.metadata = metadata),
           err => {
             console.error('Error loading license type metadata');
             console.error(err);

--
Gitblit v1.3.2