Projekt

Obecné

Profil

Stáhnout (11.2 KB) Statistiky
| Větev: | Revize:
1
<html xmlns:th="http://www.thymeleaf.org"
2
      xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
3
      layout:decorator="~{/layouts/layout}">
4

    
5
    <head>
6
      <title>Editace</title>
7
    </head>
8

    
9
    <div layout:fragment="content">
10

    
11
      <select class="hidden" id="allParametersHiddenSelect">
12
        <option th:each="parameterType : ${allParameterTypes}" th:value="${parameterType.id}" th:text="${parameterType.name}"></option>
13
      </select>
14

    
15

    
16
      <select class="hidden" id="allFunctionsHiddenSelect">
17
        <option th:each="function : ${allFunctions}" th:value="${{function.id}}" th:text="${function.name}"></option>
18
      </select>
19

    
20

    
21
      <select class="hidden" id="allOperatorsHiddenSelect">
22
        <option th:each="operator : ${allOperators}" th:value="${{operator.id}}" th:text="${operator.name}"></option>
23
      </select>
24

    
25
      <div class="container">
26
        <h1>Editace sestavy - <span th:text="${title}"></span></h1>
27
        <a href="/" class="btn btn-success mb-2">Zpět</a>
28
      </div>
29

    
30

    
31
      <form th:object="${assembly}" th:action="${assembly.id} != null ? @{/assembly_edit(assemblyID=${assembly.id})} : @{/assembly_new}" method="post">
32
        <input type="hidden" th:field="*{id}" th:value="*{id}" />
33
        <div class="container box">
34
          <div class="col-md-12">
35
              <div class="form-group row">
36
                <label for="name" class="col-sm-2 col-form-label">Název sestavy:</label>
37
                <div class="col-sm-10">
38
                  <input type="text" class="form-control" name="assemblyName" id="assemblyName" th:field="*{name}" th:value="*{name}" required>
39
                </div>
40
              </div>
41
              <div class="form-group row">
42
                <label for="assemblySQLQuery" class="col-sm-2 col-form-label">SQL dotaz:</label>
43
                <div class="col-sm-10">
44
                  <textarea class="form-control" name="assemblySQLQuery" id="assemblySQLQuery" rows="6" th:field="*{SQLQuery}" th:text="*{SQLQuery}" required></textarea>
45
                </div>
46
              </div>
47
              <div class="form-group row">
48
                <label class="form-check-label col-sm-2" for="checkboxPublic">Veřejný:</label>
49
                <div class="col-sm-10">
50
                  <div class="form-check">
51
                    <input class="form-check-input" type="checkbox"  th:checked="*{isPublic} == 1" name="checkboxPublic" id="checkboxPublic">
52
                  </div>
53
                </div>
54
              </div>
55
          </div>
56
        </div>
57

    
58

    
59
        <div class="container box">
60
          <div class="col-md-12">
61
          <div class="box-header">
62
            <h3 class="box-title">Parametry</h3>
63
            <span class="btn btn-success" id="add-param-button"><i class="fas fa-plus"></i> Přidat parametr</span>
64
          </div>
65

    
66
          <div id="accordion" class="panel-wrapper">
67
            <div th:each="parameter, i : *{parameters}" class="panel-group parameter">
68
              <input type="hidden" th:field="*{parameters[__${i.index}__]}" th:value="*{parameters[__${i.index}__].id}" />
69
              <input type="hidden" class="parametr-order" th:field="*{parameters[__${i.index}__].parameterOrder}" th:value="*{parameters[__${i.index}__].parameterOrder}" />
70
              <div class="panel panel-default">
71
                <div class="panel-heading">
72
                  <span class="panel-title">
73
                    <a data-toggle="collapse" data-parent="#accordion" th:attr="href='#collapse' + ${i.index}">
74
                      <i class="fas fa-angle-right"></i> <span th:text="*{parameters[__${i.index}__].name}"></span>
75
                    </a>
76
                    <span class="align-right collapse-actions">
77
                      <span class="action-padding input-action-margin-collapse sort-icon">
78
                        <i class="fas fa-sort"></i>
79
                      </span>
80
                      <span class="action-padding action-button input-action-margin-collapse">
81
                        <span href=# class="action-link far fa-trash-alt" onclick="removePanel(this);"></span>
82
                      </span>
83
                    </span>
84
                  </span>
85
                </div>
86
                <div th:id="'collapse' + ${i.index}" class="panel-collapse collapse">
87
                  <div class="panel-body">
88
                    <div class="form-group row">
89
                      <label th:for="'parameterName' + ${i.index}" class="col-sm-2 col-form-label">Název:</label>
90
                      <div class="col-sm-10">
91
                        <input type="text" class="form-control" th:name="'parameterName' + ${i.index}" th:id="'parameterName' + ${i.index}" th:field="*{parameters[__${i.index}__].name}" th:value="*{parameters[__${i.index}__].name}" required>
92
                      </div>
93
                    </div>
94
                    <div class="form-group row">
95
                      <label th:for="'parameterSQLName' + ${i.index}" class="col-sm-2 col-form-label">V&nbsp;SQL:</label>
96
                      <div class="col-sm-10">
97
                        <input type="text" class="form-control" th:name="'parameterSQLName' + ${i.index}" th:id="'parameterSQLName' + ${i.index}" th:field="*{parameters[__${i.index}__].nameOfSelect}" th:value="*{parameters[__${i.index}__].nameOfSelect}" required>
98
                      </div>
99
                    </div>
100
                    <div class="form-group row">
101
                      <label for="exampleFormControlSelect1" class="col-sm-2">Typ:</label>
102
                      <div class="col-sm-10">
103
                        <select th:field="*{parameters[__${i.index}__].parameterType}" class="form-control type-select" id="exampleFormControlSelect1">
104
                          <option th:each="parameterType : ${allParameterTypes}" th:value="${parameterType.id}" th:text="${parameterType.name}"></option>
105
                        </select>
106
                      </div>
107
                    </div>
108

    
109
                    <div th:classappend="!(*{parameters[__${i.index}__].parameterType.name.equals('Výčet')}) ? 'hidden' : ''" class="enum_box">
110
                      Hodnoty:
111
                      <div class="enum_values col-md-8">
112
                        <div class="enum-wrapper">
113
                          <input type="hidden" class="enum-index" th:value="${i.index}">
114
                          <div th:each="parameterValue, j : *{parameters[__${i.index}__].parameterValues}" class="input-action-box input-border-bottom enum-row">
115
                            <input type="hidden" class="enum-parameter-index" th:value="${j.index}">
116
                            <input type="text" readonly class="form-control-plaintext" th:field="*{parameters[__${i.index}__].parameterValues[__${j.index}__].value}" th:value="*{parameters[__${i.index}__].parameterValues[__${j.index}__].value}">
117

    
118
                            <span class="action-padding input-action-margin sort-icon">
119
                              <i class="fas fa-sort"></i>
120
                            </span>
121
                            <span class="action-padding action-button input-action-margin">
122
                              <span class="action-link far fa-trash-alt" onclick="removeEnum(this)"></span>
123
                            </span>
124
                          </div>
125
                        </div>
126

    
127
                        <div class="form-group row form-add-item">
128
                          <div class="col-md-9">
129
                            <input type="text" class="form-control enum-add-input">
130
                          </div>
131
                          <span class="btn btn-primary mb-2 enum-add-button">Přidat</span>
132
                        </div>
133
                      </div>
134
                    </div>
135

    
136
                    <div th:name="'parameterLocations' + ${i.index}" class="form-group row">
137
                      <label for="exampleFormControlSelect1" class="col-sm-2">Umístění:</label>
138
                      <div class="col-sm-10">
139
                        <div th:each="location, j : ${allLocations}" class="form-check form-check-inline">
140
                          <input class="form-check-input" th:field="*{parameters[__${i.index}__].locations}" type="checkbox" th:value="${location.id}" >
141
                          <label class="form-check-label" th:for="${location.name}" th:text="${location.name}"></label>
142
                        </div>
143
                      </div>
144
                    </div>
145
                    <div class="form-group row">
146
                        <label for="exampleFormControlSelect1" class="col-sm-2">Funkce:</label>
147
                        <div class="col-sm-10">
148
                          <select th:field="*{parameters[__${i.index}__].functions}" class="mbSelect selectpicker" multiple data-live-search="true">
149
                            <option th:each="function : ${allFunctions}" th:value="${{function.id}}" th:text="${function.name}"></option>
150
                          </select>
151
                        </div>
152
                    </div>
153
                    <div class="form-group row">
154
                        <label for="exampleFormControlSelect1" class="col-sm-2">Operátory:</label>
155
                        <div class="col-sm-10">
156
                          <select th:field="*{parameters[__${i.index}__].operators}" class="mbSelect selectpicker" multiple data-live-search="true">
157
                            <option th:each="operator : ${allOperators}" th:value="${{operator.id}}" th:text="${operator.name}"></option>
158
                          </select>
159
                        </div>
160
                    </div>
161
                  </div>
162
                </div>
163
              </div>
164
            </div>
165
          </div>
166
        </div>
167
      </div>
168

    
169
        <div class="container box">
170
          <div class="col-md-4">
171
            <div class="box-header">
172
              <h3 class="box-title">Oprávnění</h3>
173
            </div>
174
            <div id ="permission-wrapper">
175
              <div th:each="roleWithAccess, i : ${assembly.roles}" class="input-action-box input-border-bottom permission-row">
176
                <input type="hidden" class="permission-role" th:field="${assembly.roles[__${i.index}__].id}" th:value="${roleWithAccess.id}">
177
                <input type="text" readonly class="form-control-plaintext permission-title" th:field="${assembly.roles[__${i.index}__].name}" th:value="${roleWithAccess.name}">
178

    
179

    
180
                <span class="action-padding action-button input-action-margin">
181
                  <span class="action-link far fa-trash-alt" onclick="removeRole(this);"></span>
182
                </span>
183
              </div>
184
            </div>
185

    
186
            <div class="form-group row form-add-item">
187
              <div class="col-md-9">
188
                <select class="form-control " id="permission-select" name="permission-select">
189
                  <option th:each="role : ${allRoles}" th:value="${role.id}" th:text="${role.name}"></option>
190
                </select>
191
              </div>
192
              <span class="btn btn-primary mb-2" id="permission-button">Přidat</span>
193
            </div>
194
          </div>
195
        </div>
196

    
197
        <div class="submit_center_button">
198
            <button type="submit" class="btn btn-success mb-2">Uložit</button>
199
        </div>
200

    
201
      </form>
202

    
203

    
204
    </div>
205

    
206
    <div layout:fragment="scripts">
207
      <script type="text/javascript" src="js/assemblyManageScripts.js"></script>
208
    </div>
209

    
210
</html>
(2-2/4)