From cbfe9207ad7c9bba96b39c550d250d12097fd06f Mon Sep 17 00:00:00 2001
From: Roberto Sánchez <roberto.sanchez@curisit.net>
Date: Thu, 23 Jan 2014 19:21:10 +0000
Subject: [PATCH] #395 feature - Implemented license section at 75%

---
 securis/src/main/resources/static/licenses.html |  196 +++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 182 insertions(+), 14 deletions(-)

diff --git a/securis/src/main/resources/static/licenses.html b/securis/src/main/resources/static/licenses.html
index 63b5b2a..79de58e 100644
--- a/securis/src/main/resources/static/licenses.html
+++ b/securis/src/main/resources/static/licenses.html
@@ -145,7 +145,7 @@
 						</tr>
 					</thead>
 					<tbody>
-						<tr ng-repeat="p in packs | filter:searchText" ng-dblclick="editPack(p)" ng-class="{success: currentPackId === p.id}" ng-click="selectPack(p.id)">
+						<tr ng-repeat="p in packs | filter:searchText" ng-dblclick="editPack(p)" ng-class="{success: currentPack.id === p.id}" ng-click="selectPack(p)">
 						    <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>
@@ -164,8 +164,8 @@
 			
 		</div>
 
-		<div id="licenses_section" class="col-md-6" >
-				<nav class="navbar navbar-default navbar-static-top" ng-disabled="currentPackId === null">
+		<div id="licenses_section" class="col-md-6"  ng-controller="LicensesCtrl">
+				<nav class="navbar navbar-default navbar-static-top" ng-disabled="!currentPack">
 					<!-- Brand and toggle get grouped for better mobile display -->
 					<div class="navbar-header success">
 						<a class="navbar-brand" i18n>Licenses</a>
@@ -175,9 +175,9 @@
 					<div class="collapse navbar-collapse"
 						id="bs-example-navbar-collapse-1">
 						<ul class="nav navbar-nav">
-							<li><a i18n ng-click="editNewLicense()"><span class="glyphicon glyphicon-plus"></span>
+							<li><a i18n ng-click="newLicense()"><span class="glyphicon glyphicon-plus"></span>
 									New</a></li>
-							<li><a i18n ng-click="cancelEditionLicense()"> <span
+							<li><a i18n ng-click="cancel()"> <span
 									class="glyphicon glyphicon-ban-circle"></span> Cancel
 							</a></li>
 						</ul>
@@ -191,12 +191,179 @@
 					</div>
 				</nav>
 				
-				<div ng-if="currentPackId === null" class="well well-lg">
+				<div ng-if="!currentPack" 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="currentPackId !== null">
+				<div ng-if="currentPack" class="panel panel-default animate-show ng-hide" ng-show="showForm">
+					<form role="form" class="form-horizontal " name="licenseForm" id="licenseForm" 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="license.id"></p>
+							</div>
+						</div>
+						<div class="form-group" >
+							<label class="col-md-3 control-label" for="pack_id" i18n>Pack</label>
+							<div class="col-md-8">
+								<p class="form-control-static" ng-bind="currentPack.code"></p>
+								<input type="hidden" id="pack_id" name="pack_id" ng-model="license.pack_id"  />
+							</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="license.code" ng-required="mandatory.code" ng-maxlength="{{maxlength.code}}" />
+							<div class="alert inline-alert alert-warning" ng-show="licenseForm.code.$invalid">
+							    <span class="glyphicon glyphicon-warning-sign"></span>
+							    <span ng-show="licenseForm.code.$error.maxlength" ng-bind="maxlengthErrorMsg('Code', maxlength.code)"></span>
+							    <span ng-show="licenseForm.code.$error.required" ng-bind="mandatoryFieldErrorMsg('Code')"></span>
+							</div>
+							</div>
+						</div>
+						<div class="form-group" ng-if="!isNew">
+							<label class="col-md-3 control-label" i18n>Status</label>
+							<div class="col-md-8">
+								<p class="form-control-static" ng-bind="showStatusComplete(license)"></p>
+							</div>
+						</div>
+
+						<div class="form-group" >
+							<label class="col-md-3 control-label" for="full_name" i18n>User full name</label>
+							<div class="col-md-8">
+									<input type="string" id="full_name" name="full_name" placeholder="" class="form-control" ng-model="license.full_name" ng-required="mandatory.full_name"  />
+							<div class="alert inline-alert alert-warning" ng-show="licenseForm.full_name.$invalid">
+							    <span class="glyphicon glyphicon-warning-sign"></span>
+							    <span ng-show="licenseForm.full_name.$error.maxlength" ng-bind="maxlengthErrorMsg('User full name', maxlength.full_name)"></span>
+							    <span ng-show="licenseForm.full_name.$error.required" ng-bind="mandatoryFieldErrorMsg('User full name')"></span>
+							</div>
+							</div>
+						</div>
+
+						<div class="form-group" >
+							<label class="col-md-3 control-label" for="email" i18n>User email</label>
+							<div class="col-md-8">
+									<input type="email" id="email" name="email" placeholder="" class="form-control" ng-model="license.email" ng-required="mandatory.email"  />
+							<div class="alert inline-alert alert-warning" ng-show="licenseForm.email.$invalid">
+							    <span class="glyphicon glyphicon-warning-sign"></span>
+							    <span ng-show="licenseForm.email.$error.email" ng-bind="'Please, write a valid email address'"></span>
+							    <span ng-show="licenseForm.email.$error.maxlength" ng-bind="maxlengthErrorMsg('User email', maxlength.email)"></span>
+							    <span ng-show="licenseForm.email.$error.required" ng-bind="mandatoryFieldErrorMsg('User email')"></span>
+							</div>
+							</div>
+						</div>
+
+						<div class="form-group" ng-if="isNew || !license.request_data" >
+							<label class="col-md-3 control-label" for="request_data" i18n>Request data</label>
+							<div class="col-md-8">
+								<textarea type="string" id="request_data" name="request_data" placeholder=""
+										class="form-control" ng-model="license.request_data" rows="2" ng-required="mandatory.request_data" ng-maxlength="{{maxlength.request_data}}"></textarea>
+							<div class="alert inline-alert alert-warning" ng-show="licenseForm.request_data.$invalid">
+							    <span class="glyphicon glyphicon-warning-sign"></span>
+							    <span ng-show="licenseForm.request_data.$error.maxlength" ng-bind="maxlengthErrorMsg('Request data', maxlength.request_data)"></span>
+							    <span ng-show="licenseForm.request_data.$error.required" ng-bind="mandatoryFieldErrorMsg('Request data')"></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="license.comments" rows="2" ng-required="mandatory.comments" ng-maxlength="{{maxlength.comments}}"></textarea>
+							<div class="alert inline-alert alert-warning" ng-show="licenseForm.comments.$invalid">
+							    <span class="glyphicon glyphicon-warning-sign"></span>
+							    <span ng-show="licenseForm.comments.$error.maxlength" ng-bind="maxlengthErrorMsg('Comments', maxlength.comments)"></span>
+							    <span ng-show="licenseForm.comments.$error.required" ng-bind="mandatoryFieldErrorMsg('comments')"></span>
+							</div>
+							</div>
+						</div>
+
+						<div class="form-group" ng-if="!isNew && license.request_data">
+							<label class="col-md-3 control-label" i18n>Request data</label>
+							<div class="col-md-8">
+								<pre class="form-control-static" ng-bind="license.request_data | json"></pre>
+							</div>
+						</div>
+
+						<div class="form-group" ng-if="!isNew && license.license_data">
+							<label class="col-md-3 control-label" i18n >License file</label>
+							<div class="col-md-8">
+								<p class="form-control-static" ng-bind="license.license_data"></p>
+								<button id="downloadLicense" class="btn btn-xs btn-link" ng-click="downloadLicense(license)">
+									<span i18n class="glyphicon glyphicon-download"></span>
+								</button>
+							</div>
+						</div>
+
+						<div class="form-group" ng-if="!isNew">
+							<label class="col-md-3 control-label" i18n>Created by</label>
+							<div class="col-md-8">
+								<p class="form-control-static" ng-bind="license.created_by_name"></p>
+							</div>
+						</div>
+
+						<div class="form-group" ng-if="!isNew && license.canceled_by_name">
+							<label class="col-md-3 control-label" >Canceled by</label>
+							<div class="col-md-8">
+								<p class="form-control-static" ng-bind="license.canceled_by_name"></p>
+							</div>
+						</div>
+
+						<div class="form-group" ng-if="!isNew">
+							<label class="col-md-3 control-label" i18n>Creation date</label>
+							<div class="col-md-8">
+								<p class="form-control-static" ng-bind="license.creationTimestamp | date:'medium'"></p>
+							</div>
+						</div>
+									
+						<div class="form-group" ng-if="!isNew">
+							<label class="col-md-3 control-label" i18n >Modification date</label>
+							<div class="col-md-8">
+								<p class="form-control-static" ng-bind="license.modificationTimestamp | date:'medium'"></p>
+							</div>
+						</div>
+									
+						<div class="form-group" ng-if="!isNew && license.activationTimestamp">
+							<label class="col-md-3 control-label" i18n >Activation date</label>
+							<div class="col-md-8">
+								<p class="form-control-static" ng-bind="license.activationTimestamp | date:'medium'"></p>
+							</div>
+						</div>
+									
+						<div class="form-group" ng-if="!isNew && license.sendTimestamp">
+							<label class="col-md-3 control-label" i18n >Send date</label>
+							<div class="col-md-8">
+								<p class="form-control-static" ng-bind="license.sendTimestamp | date:'medium'"></p>
+							</div>
+						</div>
+									
+						<div class="form-group" ng-if="!isNew && license.cancelationTimestamp">
+							<label class="col-md-3 control-label" i18n >Cancelation date</label>
+							<div class="col-md-8">
+								<p class="form-control-static" ng-bind="license.cancelationTimestamp | date:'medium'"></p>
+							</div>
+						</div>
+									
+						<div class="form-group" ng-if="!isNew && license.lastAccessTimestamp">
+							<label class="col-md-3 control-label"  i18n>Last access date</label>
+							<div class="col-md-8">
+								<p class="form-control-static" ng-bind="license.lastAccessTimestamp | 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" ng-if="currentPack">
 					<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>
@@ -217,19 +384,20 @@
 					<tbody>
 						<tr ng-repeat="lic in licenses | filter:searchLicenseText" ng-dblclick="editLicense(lic)" >
 						    <td style="white-space: nowrap;" ng-bind="lic.code"></td>
-						    <td ng-bind="ellipsis(lic.user_fullname, 20)" title="{{lic.user_fullname}}" ></td>
-						    <td ng-bind="ellipsis(lic.user_email, 30)" title="{{lic.user_email}}" ></td>
-						    <td ng-bind="lic.status"></td>
+						    <td ng-bind="ellipsis(lic.full_name, 20)" title="{{lic.full_name}}" ></td>
+						    <td ng-bind="ellipsis(lic.email, 30)" title="{{lic.email}}" ></td>
+						    <td ng-bind="showStatus(lic.status)"></td>
 							<td>
 							<div class="dropdown">
 							    <a class="dropdown-toggle" data-toggle="dropdown" >
 							      <span class="glyphicon glyphicon-align-justify"></span> <span class="caret"></span>
 							    </a>
 							    <ul class="dropdown-menu">
-							      <li><a ng-click="editLicense(lic)"><span class="glyphicon glyphicon-pencil"></span> <span i18n>Edit</span></a></li>
-							      <li><a ng-click="activateLicense(lic)"><span class="glyphicon glyphicon-check"></span> <span i18n>Activate</span></a></li>
-							      <li><a ng-click="sendEmail(lic)"><span class="glyphicon glyphicon-send"></span> <span i18n>Send email</span></a></li>
-							      <li><a ng-click="editLicense(lic)"><span class="glyphicon glyphicon-remove"></span> <span i18n>Remove</span></a></li>
+							      <li ng-if="isActionVisible(1, lic)"><a ng-click="downloadLicense(lic)"><span class="glyphicon glyphicon-download"></span> <span i18n>Download</span></a></li>
+							      <li ng-if="isActionVisible(2, lic)"><a ng-click="editLicense(lic)"><span class="glyphicon glyphicon-pencil"></span> <span i18n>Edit</span></a></li>
+							      <li ng-if="isActionVisible(4, lic)"><a ng-click="activateLicense(lic)"><span class="glyphicon glyphicon-check"></span> <span i18n>Activate</span></a></li>
+							      <li ng-if="isActionVisible(8, lic)"><a ng-click="sendEmail(lic)"><span class="glyphicon glyphicon-send"></span> <span i18n>Send email</span></a></li>
+							      <li ng-if="isActionVisible(16, lic)"><a ng-click="deleteLicense(lic)"><span class="glyphicon glyphicon-remove"></span> <span i18n>Remove</span></a></li>
 							    </ul>
 							  </div>
 							</td>

--
Gitblit v1.3.2