From 79121484b7e6f721f5435a102018152a164ed655 Mon Sep 17 00:00:00 2001
From: Roberto Sánchez <roberto.sanchez@curisit.net>
Date: Wed, 22 Jan 2014 18:55:29 +0000
Subject: [PATCH] #395 feature - Implemented pack section

---
 securis/src/main/resources/static/licenses.html |  132 ++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 116 insertions(+), 16 deletions(-)

diff --git a/securis/src/main/resources/static/licenses.html b/securis/src/main/resources/static/licenses.html
index 53e911a..63b5b2a 100644
--- a/securis/src/main/resources/static/licenses.html
+++ b/securis/src/main/resources/static/licenses.html
@@ -3,7 +3,7 @@
 
 	<div class="container">
 		<div class="col-md-12">&nbsp;</div>
-		<div id="packs_section" class="col-md-6">
+		<div id="packs_section" class="col-md-6" ng-controller="PacksCtrl">
 						<nav class="navbar navbar-default navbar-static-top">
 					<!-- Brand and toggle get grouped for better mobile display -->
 					<div class="navbar-header">
@@ -14,7 +14,7 @@
 					<div class="collapse navbar-collapse"
 						id="bs-example-navbar-collapse-1">
 						<ul class="nav navbar-nav">
-							<li><a i18n ng-click="editNew()"><span class="glyphicon glyphicon-plus"></span>
+							<li><a i18n ng-click="newPack()"><span class="glyphicon glyphicon-plus"></span>
 									New</a></li>
 							<li><a i18n ng-click="cancel()"> <span
 									class="glyphicon glyphicon-ban-circle"></span> Cancel
@@ -23,12 +23,112 @@
 						<div class="navbar-form navbar-right">
 						<div class="input-group input-group-sm">
 						  	<span class="input-group-addon glyphicon glyphicon-search" style="top: 0px;"></span>
-						  <input type="text" class="form-control" placeholder="Search" ng-model="$parent.searchText" >
-								<span class="btn input-group-addon glyphicon glyphicon-remove" ng-click="$parent.searchText = ''" style="top: 0px;"></span>
+						  <input type="text" class="form-control" placeholder="Search" ng-model="searchText" >
+								<span class="btn input-group-addon glyphicon glyphicon-remove" ng-click="searchText = ''" style="top: 0px;"></span>
 						</div>
 						</div>
 					</div>
 				</nav>
+
+				<div class="panel panel-default animate-show ng-hide" ng-show="showForm">
+					<form role="form" class="form-horizontal " name="packForm" id="packForm" ng-submit="save()" >
+						<div class="form-group" ng-if="!isNew">
+							<label class="col-md-3 control-label" >ID</label>
+							<div class="col-md-8">
+								<p class="form-control-static" ng-bind="pack.id"></p>
+							</div>
+						</div>
+						<div class="form-group" >
+							<label class="col-md-3 control-label" for="code" i18n>Code</label>
+							<div class="col-md-8">
+								<input type="string" id="code" name="code" placeholder="" class="form-control" ng-model="pack.code" ng-required="mandatory.code" ng-maxlength="{{maxlength.code}}" />
+							<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)"></span>
+							    <span ng-show="packForm.code.$error.required" ng-bind="mandatoryFieldErrorMsg('Code')"></span>
+							</div>
+							</div>
+						</div>
+
+						<div class="form-group" >
+							<label class="col-md-3 control-label" for="num_licenses" i18n>Num. Licenses</label>
+							<div class="col-md-8">
+									<input type="number" id="num_licenses" name="num_licenses" placeholder="" class="form-control" ng-model="pack.num_licenses" ng-required="mandatory.num_licenses"  />
+							<div class="alert inline-alert alert-warning" ng-show="packForm.num_licenses.$invalid">
+							    <span class="glyphicon glyphicon-warning-sign"></span>
+							    <span ng-show="packForm.num_licenses.$error.maxlength" ng-bind="maxlengthErrorMsg('Num. Licenses', maxlength.num_licenses)"></span>
+							    <span ng-show="packForm.num_licenses.$error.required" ng-bind="mandatoryFieldErrorMsg('Num. Licenses')"></span>
+							</div>
+							</div>
+						</div>
+
+						<div class="form-group" >
+							<label class="col-md-3 control-label" for="license_type_id" i18n>License type</label>
+							<div class="col-md-8">
+									<select class="form-control" ng-required="mandatory.license_type_id" ng-model="pack.license_type_id"
+										ng-options="o.id as o.label for o in refs.license_type_id" >
+										<option selected="true" ng-if="!mandatory.license_type_id" value=""></option>
+									</select>
+							<div class="alert inline-alert alert-warning" ng-show="packForm.license_type_id.$invalid">
+							    <span class="glyphicon glyphicon-warning-sign"></span>
+							    <span ng-show="packForm.license_type_id.$error.required" ng-bind="mandatoryFieldErrorMsg('License type')"></span>
+							</div>
+							</div>
+						</div>
+
+						<div class="form-group" >
+							<label class="col-md-3 control-label" for="organization_id" i18n>Organization</label>
+							<div class="col-md-8">
+									<select class="form-control" ng-required="field.mandatory" ng-model="pack.organization_id"
+										ng-options="o.id as o.label for o in refs.organization_id" >
+										<option selected="true" ng-if="!mandatory.organization_id" value=""></option>
+									</select>
+							<div class="alert inline-alert alert-warning" ng-show="packForm.organization_id.$invalid">
+							    <span class="glyphicon glyphicon-warning-sign"></span>
+							    <span ng-show="packForm.organization_id.$error.required" ng-bind="mandatoryFieldErrorMsg('Organization')"></span>
+							</div>
+							</div>
+						</div>
+
+
+						<div class="form-group" >
+							<label class="col-md-3 control-label" for="comments" i18n>Comments</label>
+							<div class="col-md-8">
+								<textarea type="string" id="comments" name="comments" placeholder=""
+										class="form-control" ng-model="pack.comments" rows="2" ng-required="mandatory.comments" ng-maxlength="{{maxlength.comments}}"></textarea>
+							<div class="alert inline-alert alert-warning" ng-show="packForm.comments.$invalid">
+							    <span class="glyphicon glyphicon-warning-sign"></span>
+							    <span ng-show="packForm.comments.$error.maxlength" ng-bind="maxlengthErrorMsg('Comments', maxlength.comments)"></span>
+							    <span ng-show="packForm.comments.$error.required" ng-bind="mandatoryFieldErrorMsg('comments')"></span>
+							</div>
+							</div>
+						</div>
+
+						<div class="form-group" ng-if="!isNew">
+							<label class="col-md-3 control-label" >Created by</label>
+							<div class="col-md-8">
+								<p class="form-control-static" ng-bind="pack.created_by_name"></p>
+							</div>
+						</div>
+
+						<div class="form-group" ng-if="!isNew">
+							<label class="col-md-3 control-label" >Creation date</label>
+							<div class="col-md-8">
+								<p class="form-control-static" ng-bind="pack.creationTimestamp | date:'medium'"></p>
+							</div>
+						</div>
+									
+						<div class="form-group">
+							<div class="col-md-offset-3 col-md-10" id="saveContainer">
+								<button id="save" type="submit" class="btn btn-primary" >
+									<span i18n class="glyphicon glyphicon-floppy-disk"></span> Save
+								</button>
+							</div>
+						</div>
+					</form>
+				</div>
+
+
 			<div class="panel panel-default" >
 				<div class="panel-heading">
 					Packs <span class="badge pull-right" ng-bind="packs.length || 0"></span>
@@ -37,22 +137,22 @@
 				<table class="table table-hover table-condensed">
 					<thead>
 						<tr>
+							<th i18n >Code</th>
 							<th i18n >Organization</th>
 							<th i18n >Application</th>
-							<th i18n >Code</th>
 							<th i18n >Licenses</th>
 							<th></th>
 						</tr>
 					</thead>
 					<tbody>
-						<tr ng-repeat="pack in packs | filter:searchText" ng-dblclick="editPack(row)" ng-class="{success: currentPack.id === pack.id}" ng-click="selectPack(pack)">
-						    <td ng-bind="ellipsis(pack.organization_name, 20)" title="{{pack.organization_name}}" ></td>
-						    <td ng-bind="pack.application_name"></td>
-						    <td style="white-space: nowrap;" ng-bind="pack.code"></td>
-						    <td title="Total: {{pack.licenses}}, avaliable: {{pack.lic_available}}">{{pack.licenses}} ({{pack.lic_available}})</td>
-							<td><span ng-click="editPack(row)"
+						<tr ng-repeat="p in packs | filter:searchText" ng-dblclick="editPack(p)" ng-class="{success: currentPackId === p.id}" ng-click="selectPack(p.id)">
+						    <td style="white-space: nowrap;" ng-bind="p.code"></td>
+						    <td ng-bind="ellipsis(p.organization_name, 20)" title="{{pack.organization_name}}" ></td>
+						    <td ng-bind="p.application_name"></td>
+						    <td title="Total: {{p.num_licenses}}, available: {{p.num_available}}">{{p.num_licenses}} ({{p.num_available}})</td>
+							<td><span ng-click="editPack(p)"
 								class="glyphicon glyphicon-pencil"></span>
-								<span ng-click="deletePack(row)"
+								<span ng-click="deletePack(p)"
 								class="glyphicon glyphicon-remove"></span>
 								</td>
 						</tr>
@@ -61,11 +161,11 @@
 					</tfoot>
 				</table>
 			</div>
-		
+			
 		</div>
 
 		<div id="licenses_section" class="col-md-6" >
-				<nav class="navbar navbar-default navbar-static-top" ng-disabled="!!currentPack">
+				<nav class="navbar navbar-default navbar-static-top" ng-disabled="currentPackId === null">
 					<!-- Brand and toggle get grouped for better mobile display -->
 					<div class="navbar-header success">
 						<a class="navbar-brand" i18n>Licenses</a>
@@ -91,12 +191,12 @@
 					</div>
 				</nav>
 				
-				<div ng-if="!currentPack" class="well well-lg">
+				<div ng-if="currentPackId === null" class="well well-lg">
 			      <h4 i18n>No pack selected</h4>
 			      <p i18n>Please, select a pack to manage its licenses</p>
 			    </div>
 
-				<div class="panel panel-default" ng-if="currentPack">
+				<div class="panel panel-default" ng-if="currentPackId !== null">
 					<div class="panel-heading">
 						<span i18n>Licenses for pack: </span>{{currentPack.code}} 
 						<span style="color: lightgreen;" class="badge pull-right" ng-bind="currentPack.lic_available || 0"></span>

--
Gitblit v1.3.2