server/java/renkan-web/src/main/webapp/WEB-INF/templates/fragment/userForm.html
changeset 316 242510015401
parent 309 0c3e6e66881f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/server/java/renkan-web/src/main/webapp/WEB-INF/templates/fragment/userForm.html	Mon Jul 21 14:48:01 2014 +0200
@@ -0,0 +1,155 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" th:lang="${#ctx.getLocale().toLanguageTag()}" >
+  <head>
+    <meta charset="utf-8"/>
+    <title>User form</title>
+  </head>
+<body>
+<div id="userForm" th:fragment="userFormFragment" >
+  <script type="text/javascript" th:inline="javascript">
+    //<![CDATA[
+
+        function userFormSubmit() {
+
+            var errors = {};
+            var valid = true;
+
+            if(!$('#title').val()) {
+                errors['title'] = /*[[#{renkan.error.title.empty}]]*/"renkan.error.title.empty";
+                valid = false;
+            }
+
+            var password = $('#password').val();
+            var passwordConf = $('#passwordConfirm').val();
+            var objId = $('#id').val();
+            
+            if(!objId && !password) {
+                errors['password'] = /*[[#{renkan.error.password.missing}]]*/"renkan.error.passwsord.missing";
+                valid = false;
+            }
+            if(valid && password !== passwordConf) {
+                errors['password'] = /*[[#{renkan.error.password.equals}]]*/"renkan.error.passwsord.equals";
+                valid = false;
+            }
+
+            showformErrors(errors);
+
+            return valid;
+        }
+        
+        
+        $(function(){
+            var regionalValue = /*[[${#ctx.getLocale().getLanguage()}]]*/"";
+            var dateFormat = /*[[#{date.date.datePicker.format}]]*/"yy/mm/dd";
+            $.datepicker.setDefaults($.datepicker.regional[ "" ]);
+            $('.datepicker').each(function (i,elt) {
+                var picker_options = $.extend({showButtonPanel: true},$.datepicker.regional[regionalValue=="en"?"":regionalValue]);
+                picker_options.dateFormat = dateFormat;
+                picker_options.altFormat = $.datepicker.ISO_8601;
+                var elt = $(elt);
+                picker_options.altField = '#'+elt.attr('id').replace('-disp', '');
+                elt.datepicker(picker_options);
+            });
+            
+            $('#color').spectrum({
+                showInput: true,
+                showAlpha: true,
+                showPalette: true,
+                showInitial: true,
+                preferredFormat: 'hex'
+            });
+            $("#model-form").submit(function(e) {
+                $('.datepicker').each(function (i,elt) {
+                    var elt = $(elt);
+                    elt_val = elt.val();
+                    console.log(elt.attr('id'),elt_val);
+                    if(!elt_val) {
+                        $('#'+elt.attr('id').replace('-disp', '')).val("");
+                    }
+                });
+                return userFormSubmit();
+            });
+            
+        });
+    //]]>
+  </script>
+  <form action="#" th:object="${user}" th:action="@{/admin/users/save}" method="post" id="model-form">
+     <fieldset class="form-fields">
+       <input type="hidden" th:field="*{id}" th:if="*{id}" />
+       <div>
+         <label for="title" th:text="#{renkanAdmin.form.name}">Name: </label> 
+         <input type="text" th:field="*{title}" />
+         <div th:if="${#fields.hasErrors('title')}" th:errors="*{title}" class="form-error"></div>
+       </div> 
+       <div>
+         <label for="uri" th:text="#{renkanAdmin.form.uri}">Uri: </label> 
+         <input type="text" th:field="*{uri}" /> 
+       </div> 
+       <div>
+         <label for="description" th:text="#{renkanAdmin.form.description}">Description: </label> 
+         <textarea th:field="*{description}"></textarea> 
+       </div> 
+       <div>
+         <label for="color" th:text="#{renkanAdmin.form.color}">Color: </label> 
+         <input type="text" th:field="*{color}" /> 
+       </div>
+       <div>
+         <label for="avatar" th:text="#{renkanAdmin.form.avatar}">Avatar: </label> 
+         <input type="text" th:field="*{avatar}" /> 
+       </div>
+       <div>
+         <label for="password" th:text="#{renkanAdmin.form.password}">Password: </label> 
+         <input type="password" th:field="*{password}" /> 
+         <div th:if="${#fields.hasErrors('password')}" th:errors="*{password}" class="form-error"></div>
+       </div>
+       <div>
+         <label for="passwordConfirm" th:text="#{renkanAdmin.form.passwordConfirm}">Confirm password: </label> 
+         <input type="password" th:field="*{passwordConfirm}" /> 
+         <div th:if="${#fields.hasErrors('passwordConfirm')}" th:errors="*{passwordConfirm}" class="form-error"></div>
+       </div>       
+       <div>
+         <label for="credentialsExpirationDate" th:text="#{renkanAdmin.form.credentialsExpirationDate}">Credential expiration date: </label>
+         <input type="hidden" name="credentialsExpirationDate" th:field="*{credentialsExpirationDate}"/>
+         <input type="text" id="credentialsExpirationDate-disp" class="datepicker" value="01/01/1970" th:value="${user.credentialsExpirationDate != null}?${user.credentialsExpirationDate.toString(#messages.msg('date.date.format'))}:''"/>
+          
+       </div>
+       <div>
+         <label for="expirationDate" th:text="#{renkanAdmin.form.expirationDate}">Expiration date: </label>
+         <input type="hidden" name="expirationDate" th:field="*{expirationDate}" />
+         <input type="text" id="expirationDate-disp" class="datepicker" value="01/01/1970" th:value="${user.expirationDate != null}?${user.expirationDate.toString(#messages.msg('date.date.format'))}:''"/> 
+       </div>
+       <div>
+         <label for="email" th:text="#{renkanAdmin.form.email}">Email: </label> 
+         <input type="email" th:field="*{email}" /> 
+       </div>
+       <div>
+         <label for="enabled" th:text="#{renkanAdmin.form.enabled}">Enabled: </label> 
+         <input type="checkbox" th:field="*{enabled}" /> 
+       </div>
+       <div>
+         <label for="locked" th:text="#{renkanAdmin.form.locked}">Locked: </label> 
+         <input type="checkbox" th:field="*{locked}" /> 
+       </div>
+<!-- todo: only user of admin group can see that -->
+       <div>
+           <label for="groups" th:text="#{renkanAdmin.form.groups}">Groups: </label>
+           <select th:field="*{groups}" multiple="multiple">
+               <option th:each="group: ${allGroups}" th:value="${group.id}" th:text="${group.title}">GROUP</option>
+           </select>
+       </div>
+       <div>
+           <label for="userAuthorities" th:text="#{renkanAdmin.form.roles}">Roles: </label>
+           <select th:field="*{userAuthorities}" multiple="multiple">
+               <option th:each="role: ${T(org.iri_research.renkan.Constants).USER_ROLES_SELECT}" th:value="${role}"  th:text="#{${'renkan.user.roles.'+role}}">USER_ROLE</option>
+           </select>
+       </div>
+       <div class="submit"> 
+         <button type="submit" name="save" th:text="#{renkanAdmin.form.user.submit}">Save</button>
+         <!--button type="button" name="cancel" th:text="#{renkanAdmin.form.user.cancel}" th:onclick="location">Cancel</button-->
+       </div> 
+      
+     </fieldset>  
+  </form>
+</div>
+</body>
+</html>
\ No newline at end of file