From 8e6db5714c3884cc74c3230abf7b20589ccd1552 Mon Sep 17 00:00:00 2001
From: Roberto Sánchez <roberto.sanchez@curisit.net>
Date: Wed, 05 Feb 2014 09:51:58 +0000
Subject: [PATCH] #0 feature - Upgrade to Bootstrap 3.1 and jQuery 1.11.0
---
securis/src/main/resources/static/licenses.html | 944 +++++++++++++++++++++++++++++++++-------------------------
1 files changed, 539 insertions(+), 405 deletions(-)
diff --git a/securis/src/main/resources/static/licenses.html b/securis/src/main/resources/static/licenses.html
index 50e97c6..6ba2104 100644
--- a/securis/src/main/resources/static/licenses.html
+++ b/securis/src/main/resources/static/licenses.html
@@ -1,420 +1,554 @@
- <div ng-include="'header.html'" ></div>
+<div ng-include="'header.html'"></div>
- <div class="container">
- <div class="col-md-12"> </div>
- <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">
- <a class="navbar-brand" i18n >Packs</a>
- </div>
-
- <!-- Collect the nav links, forms, and other content for toggling -->
- <div class="collapse navbar-collapse"
- id="bs-example-navbar-collapse-1">
- <ul class="nav navbar-nav">
- <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
- </a></li>
- </ul>
- <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="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="license_preactivation" i18n>License preactivation</label>
- <div class="col-md-8">
- <input type="checkbox" class="form-control" ng-model="pack.license_preactivation" />
- </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 class="container">
+ <div class="col-md-12"> </div>
+ <div id="packs_section" class="col-md-6" ng-controller="PacksCtrl">
+ <nav class="navbar navbar-default navbar-static-top" role="navigation">
+ <div class="container-fluid">
+ <!-- Brand and toggle get grouped for better mobile display -->
+ <div class="navbar-header">
+ <a class="navbar-brand" i18n>Packs</a>
</div>
-
- <div class="panel panel-default" >
- <div class="panel-heading">
- Packs <span class="badge pull-right" ng-bind="packs.length || 0"></span>
+ <!-- Collect the nav links, forms, and other content for toggling -->
+ <div class="collapse navbar-collapse">
+ <ul class="nav navbar-nav">
+ <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
+ </a></li>
+ </ul>
+ <div class="navbar-form navbar-right form-group">
+ <span class="input-group input-group-sm">
+ <div class="input-group-addon" style="width: 28px;" >
+ <span class=" glyphicon glyphicon-search"></span>
+ </div>
+ <input type="text" class="form-control" placeholder="Search" ng-model="$searchPacksText">
+ <div class="input-group-addon" style="width: 20px;" >
+ <span class=" glyphicon glyphicon-remove" ng-click="$searchPacksText = '';"></span>
+ </div>
+ </span>
+ </div>
</div>
-
- <table class="table table-hover table-condensed">
- <thead>
- <tr>
- <th i18n >Code</th>
- <th i18n >Organization</th>
- <th i18n >Application</th>
- <th i18n >Licenses</th>
- <th></th>
- </tr>
- </thead>
- <tbody>
- <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>
- <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(p)"
- class="glyphicon glyphicon-remove"></span>
- </td>
- </tr>
- </tbody>
- <tfoot>
- </tfoot>
- </table>
</div>
-
- </div>
-{{license | json}}
- <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>
- </div>
+ </nav>
- <!-- Collect the nav links, forms, and other content for toggling -->
- <div class="collapse navbar-collapse"
- id="bs-example-navbar-collapse-1">
- <ul class="nav navbar-nav">
- <li><a i18n ng-click="newLicense()"><span class="glyphicon glyphicon-plus"></span>
- New</a></li>
- <li><a i18n ng-click="cancel()"> <span
- class="glyphicon glyphicon-ban-circle"></span> Cancel
- </a></li>
- </ul>
- <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="$searchPacksText" >
- <span class="btn input-group-addon glyphicon glyphicon-remove" ng-click="$searchPacksText = ''" style="top: 0px;"></span>
- </div>
+ <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>
- </nav>
-
- <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 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 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>
- <input file-loader="license.request_data" type="file" title="" >
- <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>
- <span class="badge pull-right" ng-bind="licenses.length || 0"></span>
+ <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>
-
-
- <table class="table table-hover table-condensed" >
- <thead>
- <tr>
- <th i18n >License code</th>
- <th i18n >User fullname</th>
- <th i18n >Email</th>
- <th i18n >Status</th>
- <th></th>
- </tr>
- </thead>
- <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.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 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>
- </tr>
- </tbody>
- <tfoot>
- </tfoot>
- </table>
- </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="license_preactivation"
+ i18n>License preactivation</label>
+ <div class="col-md-8">
+ <input type="checkbox" class="form-control"
+ ng-model="pack.license_preactivation" />
+ </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>
+ </div>
+
+ <table class="table table-hover table-condensed">
+ <thead>
+ <tr>
+ <th i18n>Code</th>
+ <th i18n>Organization</th>
+ <th i18n>Application</th>
+ <th i18n>Licenses</th>
+ <th></th>
+ </tr>
+ </thead>
+ <tbody>
+ <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>
+ <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(p)" class="glyphicon glyphicon-remove"></span>
+ </td>
+ </tr>
+ </tbody>
+ <tfoot>
+ </tfoot>
+ </table>
+ </div>
+
</div>
+ {{license | json}}
+ <div id="licenses_section" class="col-md-6"
+ ng-controller="LicensesCtrl">
+ <nav class="navbar navbar-default navbar-static-top"
+ ng-disabled="!currentPack">
+ <div class="container-fluid">
+ <!-- Brand and toggle get grouped for better mobile display -->
+ <div class="navbar-header success">
+ <a class="navbar-brand" i18n>Licenses</a>
+ </div>
+
+ <!-- Collect the nav links, forms, and other content for toggling -->
+ <div class="collapse navbar-collapse"
+ id="bs-example-navbar-collapse-1">
+ <ul class="nav navbar-nav">
+ <li><a i18n ng-click="newLicense()"><span
+ class="glyphicon glyphicon-plus"></span> New</a></li>
+ <li><a i18n ng-click="cancel()"> <span
+ class="glyphicon glyphicon-ban-circle"></span> Cancel
+ </a></li>
+ </ul>
+ <div class="navbar-form navbar-right form-group">
+ <span class="input-group input-group-sm">
+ <div class="input-group-addon" style="width: 28px;" >
+ <span class=" glyphicon glyphicon-search"></span>
+ </div>
+ <input type="text" class="form-control" placeholder="Search" ng-model="$searchLicensesText">
+ <div class="input-group-addon" style="width: 20px;" >
+ <span class=" glyphicon glyphicon-remove" ng-click="$searchLicensesText = '';"></span>
+ </div>
+ </span>
+ </div>
+ </div>
+ </div>
+ </nav>
+
+ <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 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="showStatusLong(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-7">
+ <textarea 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>
+ <span class="btn btn-file btn-default btn-xs"> <span
+ class="glyphicon glyphicon-folder-open"></span> <input
+ file-loader="license.request_data" type="file">
+ </span>
+ </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-9" id="saveContainer">
+ <button id="save" type="submit" class="btn btn-primary">
+ <span i18n class="glyphicon glyphicon-floppy-disk"></span> Save
+ </button>
+ <button id="activate" class="btn btn-success"
+ ng-click="activateLicense(license)"
+ ng-if="isActionVisible('activate', license)">
+ <span i18n class="glyphicon glyphicon-check"></span> Activate
+ </button>
+ <button id="send" class="btn btn-info"
+ ng-click="sendLicense(license)"
+ ng-if="isActionVisible('send', license)">
+ <span i18n class="glyphicon glyphicon-send"></span> Send
+ </button>
+ <button id="cancel" class="btn btn-warning"
+ ng-click="cancelLicense(license)"
+ ng-if="isActionVisible('cancel', license)">
+ <span i18n class="glyphicon glyphicon-ban-circle"></span> Cancel
+ </button>
+ <button id="remove" class="btn btn-danger"
+ ng-click="removeLicense(license)"
+ ng-if="isActionVisible('delete', license)">
+ <span i18n class="glyphicon glyphicon-trash"></span> Delete
+ </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> <span
+ class="badge pull-right" ng-bind="licenses.length || 0"></span>
+ </div>
+
+
+ <table class="table table-hover table-condensed">
+ <thead>
+ <tr>
+ <th i18n>License code</th>
+ <th i18n>User fullname</th>
+ <th i18n>Email</th>
+ <th i18n>Status</th>
+ <th></th>
+ </tr>
+ </thead>
+ <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.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 ng-if="isActionVisible('download', lic)"><a
+ ng-click="downloadLicense(lic)"><span
+ class="glyphicon glyphicon-download"></span> <span i18n>Download</span></a></li>
+ <li ng-if="isActionVisible('edit', lic)"><a
+ ng-click="editLicense(lic)"><span
+ class="glyphicon glyphicon-pencil"></span> <span i18n>Edit</span></a></li>
+ <li ng-if="isActionVisible('activate', lic)"><a
+ ng-click="activateLicense(lic)"><span
+ class="glyphicon glyphicon-check"></span> <span i18n>Activate</span></a></li>
+ <li ng-if="isActionVisible('send', lic)"><a
+ ng-click="sendEmail(lic)"><span
+ class="glyphicon glyphicon-send"></span> <span i18n>Send
+ email</span></a></li>
+ <li ng-if="isActionVisible('cancel', lic)"><a
+ ng-click="deleteLicense(lic)"><span
+ class="glyphicon glyphicon-ban-circle"></span> <span i18n>Cancel</span></a></li>
+ <li ng-if="isActionVisible('delete', lic)"><a
+ ng-click="deleteLicense(lic)"><span
+ class="glyphicon glyphicon-trash"></span> <span i18n>Delete</span></a></li>
+ </ul>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ <tfoot>
+ </tfoot>
+ </table>
+ </div>
+
+ </div>
+</div>
--
Gitblit v1.3.2