From 86a407cd3fcbefb16b00ea9ef10bd80f2b0e0a0f Mon Sep 17 00:00:00 2001
From: Roberto Sánchez <roberto.sanchez@curisit.net>
Date: Mon, 30 Dec 2013 17:03:43 +0000
Subject: [PATCH] #333 feature - Added form validation in catalog page

---
 securis/src/main/resources/static/admin.html |   34 ++++++++++++++++++++++++++--------
 1 files changed, 26 insertions(+), 8 deletions(-)

diff --git a/securis/src/main/resources/static/admin.html b/securis/src/main/resources/static/admin.html
index fa8b84c..ada0461 100644
--- a/securis/src/main/resources/static/admin.html
+++ b/securis/src/main/resources/static/admin.html
@@ -36,8 +36,18 @@
   opacity: 0;
 }
 
-input.ng-invalid-maxlength {
+input.ng-invalid, textarea.ng-invalid {
 	border: solid 1px red;
+}
+
+input.ng-dirty.ng-valid, textarea.ng-dirty.ng-valid {
+	border: solid 1px green;
+}
+
+.alert.inline-alert {
+	padding-top: 5px;
+	padding-bottom: 5px;
+	margin-bottom: 5px;
 }
 
 </style>
@@ -111,20 +121,28 @@
 					</div>
 				</nav>
 				<div class="panel panel-default animate-show ng-hide" ng-show="showForm">
-					<form role="form" class="form-horizontal " name="licenseForm">
+					<form role="form" class="form-horizontal " name="catalogForm" id="catalogForm" ng-submit="saveCatalog()" >
+					<pre>Form: {{catalogForm | json}}</pre>
+					<pre>formu: {{formu | json}}</pre>
 						<div class="form-group" ng-repeat="field in catalogMetadata.fields" ng-if="!isNew || !field.readOnly">
 							<label class="col-md-3 control-label" for="{{field.name}}">{{field.display}}</label>
 							<div class="col-md-5">
-								<input ng-if="!field.readOnly && !field.multiline" type="{{field.type}}" id="{{field.name}}" name="{{field.name}}" placeholder=""
-									class="form-control" ng-model="formu[field.name]" ng-required="field.mandatory" ng-maxlength="20" />
-								<textarea ng-if="!field.readOnly && field.multiline" type="{{field.type}}" id="{{field.name}}" name="{{field.name}}" placeholder=""
-									class="form-control" ng-model="formu[field.name]" rows="{{field.multiline}}" ng-required="field.mandatory" ng-maxlength="field.maxlength" ></textarea>
+								<input catalog-field ng-if="!field.readOnly && !field.multiline" type="{{field.type}}" id="{{field.name}}" name="{{field.name}}" placeholder=""
+									class="form-control" ng-model="formu[field.name]" ng-required="field.mandatory" ng-maxlength="{{field.maxlength}}" />
+								<textarea catalog-field ng-if="!field.readOnly && field.multiline" type="{{field.type}}" id="{{field.name}}" name="{{field.name}}" placeholder=""
+									class="form-control" ng-model="formu[field.name]" rows="{{field.multiline}}" ng-required="field.mandatory" ng-maxlength="{{field.maxlength}}"></textarea>
 								<p ng-if="field.readOnly" class="form-control-static">{{formu[field.name]}}</p>
+								
+								<div class="alert inline-alert alert-warning" ng-show="catalogForm[field.name].$invalid">
+								    <span class="glyphicon glyphicon-warning-sign"></span>
+								    <span ng-show="catalogForm[field.name].$error.maxlength">{{field.display}} length is too long (max: {{field.maxlength}}).<br/></span>
+								    <span ng-show="catalogForm[field.name].$error.required">{{field.display}} is required.</span>
+								</div>
 							</div>
 						</div>
 						<div class="form-group">
-							<div class="col-md-offset-3 col-md-10">
-								<button type="submit" class="btn btn-primary">
+							<div class="col-md-offset-3 col-md-10" id="saveContainer">
+								<button id="save" type="submit" class="btn btn-primary" >
 									<span class="glyphicon glyphicon-floppy-disk"></span> Save
 								</button>
 							</div>

--
Gitblit v1.3.2