server/src/main/webapp/WEB-INF/templates/fragment/spaceForm.html
author ymh <ymh.work@gmail.com>
Mon, 21 Oct 2013 17:55:12 +0200
branchuser_management
changeset 224 0167b777ad15
parent 222 6ac00231ee34
child 225 0fcce86e650c
permissions -rw-r--r--
remove deprecated warnings + fix date picker default langauge

<!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>Space form</title>
  </head>
<body>
<div id="spaceForm" th:fragment="spaceFormFragment" >
  <script type="text/javascript" th:inline="javascript">
    //<![CDATA[

        function spaceFormSubmit() {

        	var errors = {};
        	var valid = true;
        	
        	if(!$('#title').val()) {
        		errors['title'] = /*[[#{renkan.error.title.empty}]]*/"renkan.error.title.empty";
        		valid = false;
        	}
            
        	if($('#binConfig').val()) {
        		
        		var editor = ace.edit("binConfigDiv");
        		var annotations = editor.getSession().getAnnotations();
        		if(annotations.length>0) {
                    var error_message = /*[[#{renkan.error.bin_config.json}]]*/"renkan.error.bin_config.json";
                    errors['binConfigDiv'] = error_message + ". "+ annotations[0].type + ": (" +(annotations[0].row+1)+","+annotations[0].column+") " + annotations[0].text; 
        			valid = false;        			
        		}
        	}
            
            showformErrors(errors);
                        
            return valid;
        }


        function _setBinConfigStatus(editor) {
            var annotations = editor.getSession().getAnnotations();
            if(annotations.length>0) {
                $('.binConfigButton').attr("disabled", "disabled");
            }
            else {
                $('.binConfigButton').removeAttr("disabled");
            }        	
        }
        
        $(function(){
        	var tabSize = 2;
            var editor = ace.edit("binConfigDiv");
            editor.setTheme("ace/theme/xcode");
            editor.getSession().setMode("ace/mode/json");
            editor.getSession().setTabSize(tabSize);
            editor.getSession().setUseSoftTabs(true);
            _setBinConfigStatus(editor);
            editor.getSession().on('change', function(e) {
            	$('#binConfig').val(editor.getValue());
            });
            editor.getSession().on('changeAnnotation', function() {
                _setBinConfigStatus(editor);
            });
            
            $('#binConfigFormatButton').click(function(){
            	var jsonText = editor.getValue();
            	try {
					editor.setValue(formatJson(jsonText, tabSize),0);
					editor.moveCursorTo(0,0);
					editor.clearSelection();
				} catch (e) {
					//do nothing
				}
            });
            
            $('#binConfigCompactButton').click(function(){
                var jsonText = editor.getValue();
                try {
                    editor.setValue(compactJson(jsonText),0);
                    editor.moveCursorTo(0,0);
                    editor.clearSelection();
                } catch (e) {
                    //do nothing
                }
            });
            
            $('#color').spectrum({
            	showInput: true,
            	showAlpha: true,
            	showPalette: true,
            	showInitial: true
            });
        });
    //]]>
  </script>
  <form action="#" th:object="${space}" th:action="@{/admin/spaces/save}" method="post" onsubmit="return spaceFormSubmit()">
     <fieldset class="form-fields">
       <input type="hidden" th:field="*{id}" th:if="*{id}" />
       <input type="hidden" th:field="*{binConfig}"/>
       <div>
         <label for="title" th:text="#{renkanAdmin.form.title}">Title: </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="binConfigContainer" th:text="#{renkanAdmin.form.space.bin_config}">Bin config: </label>
         <div id="binConfigContainer">
           <div id="binConfigButtonsDiv"><button type="button" id="binConfigFormatButton" th:text="#{renkanAdmin.form.space.format}" class="binConfigButton">Format</button><button type="button" id="binConfigCompactButton" th:text="#{renkanAdmin.form.space.compact}" class="binConfigButton">Compact</button></div>
           <div id="binConfigDiv" th:text="*{binConfig}"></div>
         </div>
         <div th:if="${#fields.hasErrors('binConfig')}" th:errors="*{binConfig}" class="form-error"></div>
       </div> 

       <div class="submit"> 
         <button type="submit" name="save" th:text="#{renkanAdmin.form.space.submit}">Save</button>
         <!--button type="button" name="cancel" th:text="#{renkanAdmin.form.space.cancel}" th:onclick="location">Cancel</button-->
       </div> 
      
     </fieldset>  
  </form>
</div>
</body>
</html>