From 280daa7f3f858ecfef9c91ffd5dea1007f021048 Mon Sep 17 00:00:00 2001
From: rsanchez <rsanchez@curisit.net>
Date: Sun, 19 Mar 2017 11:29:37 +0000
Subject: [PATCH] #3527 fix - Added applications and some minor refactoring

---
 securis/src/main/webapp/src/app/forms/license.form.html |  193 ++++++++++++++++++++++++++++++------------------
 1 files changed, 121 insertions(+), 72 deletions(-)

diff --git a/securis/src/main/webapp/src/app/forms/license.form.html b/securis/src/main/webapp/src/app/forms/license.form.html
index df65d4d..0d4ec82 100644
--- a/securis/src/main/webapp/src/app/forms/license.form.html
+++ b/securis/src/main/webapp/src/app/forms/license.form.html
@@ -1,75 +1,124 @@
-<form #packForm="ngForm" class="inset" (keyup.enter)="save()">
-	<md-card>
-		<md-card-title>
-			{{form_title}}
-		</md-card-title>
-		<md-card-subtitle>
-			{{form_subtitle}}
-		</md-card-subtitle>
-<md-divider></md-divider>
-		<md-card-content>
-	<div layout="column" layout-align="start center" layout-fill>
-		<div layout="row" layout-fill layout-padding>
-			<div layout="column" layout-fill  flex="50">
-			<md-input-container>
-				<input mdInput maxLength="50" type="text" [(ngModel)]="data.code" name="code" required />
-				<md-placeholder>
-          			<span i18n>Code</span>
-        		</md-placeholder>
-			</md-input-container>
-			{{log(packForm.controls)}}
-			<div *ngIf="packForm.controls.code?.touched && packForm.controls.code.invalid" layout="column">
-				<span *ngIf="packForm.controls.code.errors.required" align="end">Code is required</span>
-				<span align="end">Code is ok</span>
+<td-layout-card-over cardWidth="60">
+	<md-toolbar role="toolbar" class="mat-secondary">
+		<button md-icon-button (click)="goBack()" color="accent">
+			<md-icon>arrow_back</md-icon>
+		</button>
+		<span>{{form_title}}</span>
+		<span flex></span>
+		<button md-icon-button (click)="save()"><md-icon>save</md-icon></button>
+		<md-toolbar-row class="inner-padding" *ngIf="!!pack" >
+			<div>
+				<span i18n>Pack</span>: {{pack.code}}
 			</div>
+			<div class="inner-padding" flex="70" style="margin-left: 10px;" layout-align="start center" layout="row">
+				<md-chip selected [mdTooltip]="$L.get('field.application_name')" color="primary">{{pack.application_name}} </md-chip>
+				<md-chip selected [mdTooltip]="$L.get('field.organization_id')" color="accent">{{pack.organization_name}} </md-chip>
+				<md-chip selected [mdTooltip]="$L.get('field.license_type_id')" color="accent">{{pack.licensetype_code}} </md-chip>
 			</div>
-	<!-- TODO: <div class="alert inline-alert alert-warning" ng-show="packForm.code.$invalid">
-		<span class="glyphicon glyphicon-warning-sign"></span> 
-		<span ng-show="packForm.code.$error.maxlength" ng-bind="maxLengthErrorMsg('Code', maxlength.code)" 
-		class="ng-binding ng-hide">Code length is too long (max: 50).</span> 
-		<span ng-show="packForm.code.$error.required" ng-bind="mandatoryFieldErrorMsg('Code')" class="ng-binding">'Code' is required.</span>
-	</div> -->
-			<md-input-container flex="50">
-				<input mdInput type="number" type="text" [(ngModel)]="data.num_licenses" name="num_licenses" required />
-				<md-placeholder>
-          			<span i18n>Num. licenses</span>
-        		</md-placeholder>
-			</md-input-container>
-		</div>
-		<div layout="row" layout-align="start center" layout-fill layout-padding>
-			<md-input-container flex>
-				<input mdInput type="date" type="text" [(ngModel)]="data.init_valid_date" name="init_valid_date" required />
-				<md-placeholder>
-          			<span i18n>Initial date</span>
-        		</md-placeholder>
-				<md-hint align="end">YYYY-MM-DD</md-hint>
-			</md-input-container>
-			<md-input-container flex>
-				<input mdInput type="date" type="text" [(ngModel)]="data.end_valid_date" name="end_valid_date" required />
-				<md-placeholder>
-          			<span i18n>End date</span>
-        		</md-placeholder>
-				<md-hint align="end">YYYY-MM-DD</md-hint>
-			</md-input-container>
-		</div>
-		<div layout="row" layout-fill layout-padding>
-			<md-select flex placeholder="Organization" [(ngModel)]="data.organization_id" name="organization_id">
-				<md-option *ngFor="let org of organizations" [value]="org.id">
-					{{org.label}}
-				</md-option>
-			</md-select>
-			<md-select flex placeholder="License type" [(ngModel)]="data.license_type_id" name="license_type_id">
-				<md-option *ngFor="let lt of licensetypes" [value]="lt.id">
-					{{lt.label}}
-				</md-option>
-			</md-select>
-		</div>
+			<span flex></span>
+			<md-chip-list>
+				<md-chip [mdTooltip]="$L.get('field.num_available')" color="secondary" [class.bgc-red-A100]="pack.num_available <= 0">
+					<span i18n="field.num_available"></span>: {{pack.num_available}} </md-chip>
+			</md-chip-list>
+		</md-toolbar-row>
+	</md-toolbar>
+	<div class="margin" layout-align-gt-xs="center start" layout-fill="" layout-gt-xs="row">
+			<md-card  flex="70">
+				<md-card-title>
+					{{form_subtitle}}
+				</md-card-title>
+				<md-divider></md-divider>
+				<md-card-content>
+					<form #licenseForm="ngForm" class="inset" (keyup.enter)="save()">
+						<div layout="column" layout-align="start center">
+							<div layout="row" layout-fill layout-padding>
+								<field-readonly [value]="data.id" label="field.id" flex="20" *ngIf="!isNew"></field-readonly>
+								<field-readonly [value]="data.code" label="field.code" flex></field-readonly>
+							</div>
+							<div layout="row" layout-fill layout-padding>
+								<field-readonly [value]="data.activation_code" label="field.activation_code" flex></field-readonly>
+							</div>
+							<div layout="row" layout-fill layout-padding *ngIf="!isNew">
+								<field-readonly [value]="data.expiration_date | date: 'dateMedium'" label="field.expiration_date" flex></field-readonly>
+								<field-readonly [value]="licenses.getStatusName(data.status)" label="field.status" flex></field-readonly>
+							</div>
+							<div layout="row" layout-fill layout-padding>
+								<div layout="column" layout-fill flex>
+									<md-input-container flex>
+										<input mdInput type="text" [(ngModel)]="data.full_name" name="full_name" required maxlength="200" />
+										<md-placeholder>
+											<span i18n="field.full_name"></span>
+										</md-placeholder>
+									</md-input-container>
+									<error-checker [fieldName]="$L.get('field.full_name')" [formField]="licenseForm.controls.full_name"></error-checker>
+								</div>
+								<div layout="column" layout-fill flex>
+									<md-input-container flex>
+										<input mdInput type="email" [(ngModel)]="data.email" name="email" required maxlength="200" />
+										<md-placeholder>
+											<span i18n="field.email"></span>
+										</md-placeholder>
+									</md-input-container>
+									<error-checker [fieldName]="$L.get('field.full_name')" [formField]="licenseForm.controls.email"></error-checker>
+								</div>
+							</div>
+							<div layout="row" layout-fill layout-padding>
+								<div layout="column" layout-fill flex>
+									<md-input-container flex>
+										<textarea mdInput type="text" type="text" [(ngModel)]="data.request_data" name="request_data" maxlength="2048"></textarea>
+										<md-placeholder>
+											<span i18n="field.request_data"></span>
+										</md-placeholder>
+										<md-hint align="end">(max 2048)</md-hint>
+									</md-input-container>
+								</div>
+								<td-file-input #requestFileUploader (select)="requestFileSelected($event)" accept=".req,.txt,.json">
+									<md-icon>attachment</md-icon>
+								</td-file-input>
+							</div>
+							<div layout="row" layout-fill layout-padding>
+								<div layout="column" layout-fill flex>
+									<md-input-container flex>
+										<textarea mdInput type="text" type="text" [(ngModel)]="data.comments" name="comments" maxlength="1024"></textarea>
+										<md-placeholder>
+											<span i18n="field.comments"></span>
+										</md-placeholder>
+										<md-hint align="end">(max 1024)</md-hint>
+									</md-input-container>
+								</div>
+							</div>
+							<div layout="row" layout-fill layout-padding *ngIf="!isNew">
+								<field-readonly [value]="data.created_by_id" label="field.created_by" flex></field-readonly>
+								<field-readonly [value]="data.creation_date | date: 'medium'" label="field.creation_date" flex></field-readonly>
+							</div>
+							<div layout="column" layout-fill>
+								<span class="md-title" i18n>License metadata</span>
+								<div layout="row" layout-fill layout-padding *ngFor="let pair of pack?.metadata">
+									<md-input-container flex="40">
+										<input mdInput type="text" [ngModelOptions]="{standalone: true}" [(ngModel)]="pair.key" readonly />
+										<md-placeholder>
+											<span i18n="field.key"></span>
+										</md-placeholder>
+									</md-input-container>
+									<md-input-container flex>
+										<input mdInput type="text" [ngModelOptions]="{standalone: true}" [(ngModel)]="pair.value" readonly />
+										<md-placeholder>
+											<span i18n="field.value"></span>
+										</md-placeholder>
+									</md-input-container>
+								</div>
+							</div>
+						</div>
+					</form>
+				</md-card-content>
+				<md-divider></md-divider>
+				<md-card-actions>
+					<div layout="row" layout-align="start center" class="margin">
+						<span flex></span>
+						<button [disabled]="!licenseForm.form.valid" md-raised-button color="primary" (click)="save()">Save</button>
+						<button md-button (click)="goBack()">Cancel</button>
+					</div>
+				</md-card-actions>
+			</md-card>
 	</div>
-</md-card-content>
-<md-divider></md-divider>
-<md-card-actions>
-	<button [disabled]="!packForm.form.valid" md-raised-button color="primary" (click)="save()">Save</button>
-	<button md-button md-dialog-close>Cancel</button>
-</md-card-actions>
-</md-card>
-</form>	
+</td-layout-card-over>
\ No newline at end of file

--
Gitblit v1.3.2