server/src/main/webapp/WEB-INF/templates/fragment/spaceForm.html
author ymh <ymh.work@gmail.com>
Fri, 05 Apr 2013 13:59:23 +0200
changeset 141 64af5273ac5e
parent 128 93a1fbe6a848
child 150 5b62100b8562
permissions -rw-r--r--
In the admin for space: - Add a link to open a space - add two button to format (pretty print) or compact the json - use soft tab of size 2 for ace editor
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
123
daa99448319d first step for site administration
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<!DOCTYPE html>
daa99448319d first step for site administration
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
<html xmlns="http://www.w3.org/1999/xhtml"
daa99448319d first step for site administration
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
 xmlns:th="http://www.thymeleaf.org">
daa99448319d first step for site administration
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
<head>
127
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
     5
<meta charset="utf-8"/>
123
daa99448319d first step for site administration
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
<title>Space form</title>
daa99448319d first step for site administration
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
</head>
daa99448319d first step for site administration
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
<body>
127
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
     9
<div id="spaceForm" th:fragment="spaceFormFragment" >
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    10
  <script type="text/javascript" th:inline="javascript">
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    11
    //<![CDATA[
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    12
               
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    13
        function showformErrors(errors) {
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    14
        	$(".form-error").remove();
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    15
        	
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    16
        	$.each(errors,function(k,v){
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    17
        		$("#"+k).after('<div class="form-error">'+v+'</div>');
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    18
        	});
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    19
        	$(".form-error").effect("highlight", {}, 1500);
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    20
        }
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    21
              
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    22
        function spaceFormSubmit() {
128
93a1fbe6a848 Correct add space and improve space form validation message
ymh <ymh.work@gmail.com>
parents: 127
diff changeset
    23
127
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    24
        	var errors = {};
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    25
        	var valid = true;
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    26
        	
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    27
        	if(!$('#title').val()) {
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    28
        		errors['title'] = /*[[#{renkan.error.title.empty}]]*/"renkan.error.title.empty";
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    29
        		valid = false;
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    30
        	}
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    31
            
128
93a1fbe6a848 Correct add space and improve space form validation message
ymh <ymh.work@gmail.com>
parents: 127
diff changeset
    32
        	if($('#binConfig').val()) {
93a1fbe6a848 Correct add space and improve space form validation message
ymh <ymh.work@gmail.com>
parents: 127
diff changeset
    33
        		
93a1fbe6a848 Correct add space and improve space form validation message
ymh <ymh.work@gmail.com>
parents: 127
diff changeset
    34
        		var editor = ace.edit("binConfigDiv");
93a1fbe6a848 Correct add space and improve space form validation message
ymh <ymh.work@gmail.com>
parents: 127
diff changeset
    35
        		var annotations = editor.getSession().getAnnotations();
93a1fbe6a848 Correct add space and improve space form validation message
ymh <ymh.work@gmail.com>
parents: 127
diff changeset
    36
        		if(annotations.length>0) {
93a1fbe6a848 Correct add space and improve space form validation message
ymh <ymh.work@gmail.com>
parents: 127
diff changeset
    37
                    var error_message = /*[[#{renkan.error.bin_config.json}]]*/"renkan.error.bin_config.json";
93a1fbe6a848 Correct add space and improve space form validation message
ymh <ymh.work@gmail.com>
parents: 127
diff changeset
    38
                    errors['binConfigDiv'] = error_message + ". "+ annotations[0].type + ": (" +(annotations[0].row+1)+","+annotations[0].column+") " + annotations[0].text; 
93a1fbe6a848 Correct add space and improve space form validation message
ymh <ymh.work@gmail.com>
parents: 127
diff changeset
    39
        			valid = false;        			
93a1fbe6a848 Correct add space and improve space form validation message
ymh <ymh.work@gmail.com>
parents: 127
diff changeset
    40
        		}
93a1fbe6a848 Correct add space and improve space form validation message
ymh <ymh.work@gmail.com>
parents: 127
diff changeset
    41
        	}
127
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    42
            
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    43
            showformErrors(errors);
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    44
                        
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    45
            return valid;
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    46
        }
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    47
        
141
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    48
        function formatJson(jsonText, tabSize) {
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    49
        	var obj = JSON.parse(jsonText);
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    50
        	return JSON.stringify(obj, undefined, tabSize);
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    51
        }
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    52
        function compactJson(jsonText) {
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    53
        	var obj = JSON.parse(jsonText);
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    54
        	return JSON.stringify(obj);
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    55
        }
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    56
        
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    57
        function _setBinConfigStatus(editor) {
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    58
            var annotations = editor.getSession().getAnnotations();
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    59
            if(annotations.length>0) {
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    60
                $('.binConfigButton').attr("disabled", "disabled");                 
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    61
            }
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    62
            else {
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    63
                $('.binConfigButton').removeAttr("disabled");
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    64
            }        	
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    65
        }
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    66
        
127
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    67
        $(function(){
141
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    68
        	var tabSize = 2;
127
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    69
            var editor = ace.edit("binConfigDiv");
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    70
            editor.setTheme("ace/theme/xcode");
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    71
            editor.getSession().setMode("ace/mode/json");
141
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    72
            editor.getSession().setTabSize(tabSize);
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    73
            editor.getSession().setUseSoftTabs(true);
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    74
            _setBinConfigStatus(editor);
127
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    75
            editor.getSession().on('change', function(e) {
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    76
            	$('#binConfig').val(editor.getValue());
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
    77
            });
141
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    78
            editor.getSession().on('changeAnnotation', function() {
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    79
                _setBinConfigStatus(editor);
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    80
            });
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    81
            
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    82
            $('#binConfigFormatButton').click(function(){
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    83
            	var jsonText = editor.getValue();
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    84
            	try {
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    85
					editor.setValue(formatJson(jsonText, tabSize),0);
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    86
					editor.moveCursorTo(0,0);
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    87
					editor.clearSelection();
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    88
				} catch (e) {
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    89
					//do nothing
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    90
				}
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    91
            });
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    92
            
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    93
            $('#binConfigCompactButton').click(function(){
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    94
                var jsonText = editor.getValue();
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    95
                try {
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    96
                    editor.setValue(compactJson(jsonText),0);
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    97
                    editor.moveCursorTo(0,0);
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    98
                    editor.clearSelection();
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
    99
                } catch (e) {
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
   100
                    //do nothing
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
   101
                }
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
   102
            });
127
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   103
            
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   104
            $('#color').spectrum({
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   105
            	showInput: true,
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   106
            	showAlpha: true,
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   107
            	showPalette: true,
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   108
            	showInitial: true
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   109
            });
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   110
        });
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   111
    //]]>
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   112
  </script>
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   113
  <form action="#" th:object="${space}" th:action="@{/admin/spaces/save}" method="post" onsubmit="return spaceFormSubmit()">
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   114
     <fieldset class="form-fields">
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   115
       <input type="hidden" th:field="*{id}" th:if="*{id}" />
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   116
       <input type="hidden" th:field="*{binConfig}"/>
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   117
       <div>
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   118
         <label for="title" th:text="#{renkanAdmin.form.title}">Title: </label> 
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   119
         <input type="text" th:field="*{title}" />
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   120
         <div th:if="${#fields.hasErrors('title')}" th:errors="*{title}" class="form-error"></div>
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   121
       </div> 
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   122
       <div>
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   123
         <label for="uri" th:text="#{renkanAdmin.form.uri}">Uri: </label> 
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   124
         <input type="text" th:field="*{uri}" /> 
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   125
       </div> 
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   126
       <div>
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   127
         <label for="description" th:text="#{renkanAdmin.form.description}">Description: </label> 
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   128
         <textarea th:field="*{description}"></textarea> 
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   129
       </div> 
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   130
       <div>
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   131
         <label for="color" th:text="#{renkanAdmin.form.color}">Color: </label> 
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   132
         <input type="text" th:field="*{color}" /> 
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   133
       </div>
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   134
       <div>
141
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
   135
         <label for="binConfigContainer" th:text="#{renkanAdmin.form.space.bin_config}">Bin config: </label>
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
   136
         <div id="binConfigContainer">
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
   137
           <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>
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
   138
           <div id="binConfigDiv" th:text="*{binConfig}"></div>
64af5273ac5e In the admin for space:
ymh <ymh.work@gmail.com>
parents: 128
diff changeset
   139
         </div>
127
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   140
         <div th:if="${#fields.hasErrors('binConfig')}" th:errors="*{binConfig}" class="form-error"></div>
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   141
       </div> 
123
daa99448319d first step for site administration
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
daa99448319d first step for site administration
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
       <div class="submit"> 
127
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   144
         <button type="submit" name="save" th:text="#{renkanAdmin.form.space.submit}">Save</button>
906fed13c1e1 space admin edit.
ymh <ymh.work@gmail.com>
parents: 123
diff changeset
   145
         <!--button type="button" name="cancel" th:text="#{renkanAdmin.form.space.cancel}" th:onclick="location">Cancel</button-->
123
daa99448319d first step for site administration
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
       </div> 
daa99448319d first step for site administration
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
      
daa99448319d first step for site administration
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
     </fieldset>  
daa99448319d first step for site administration
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
  </form>
daa99448319d first step for site administration
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
</div>
daa99448319d first step for site administration
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
</body>
daa99448319d first step for site administration
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
</html>