Rev 1728 | Rev 1730 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1728 | Rev 1729 | ||
---|---|---|---|
Line 9... | Line 9... | ||
9 | <%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
9 | <%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
10 | <%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
10 | <%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
11 | <%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
11 | <%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
12 | <%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
12 | <%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
13 | <%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
13 | <%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
- | 14 | <%@ taglib tagdir="/WEB-INF/tags" prefix="bacoTags" %> |
|
14 | <%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
15 | <%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
15 | <baco:isAdmin> |
16 | <baco:isAdmin> |
16 | <% |
17 | <% |
17 | AbstractDao.getCurrentSession().beginTransaction(); |
18 | AbstractDao.getCurrentSession().beginTransaction(); |
18 | 19 | ||
Line 35... | Line 36... | ||
35 | 36 | ||
36 | <div id="configSepModule" |
37 | <div id="configSepModule" |
37 | ng-app="configSepModule" |
38 | ng-app="configSepModule" |
38 | ng-controller="configSepModuleController"> |
39 | ng-controller="configSepModuleController"> |
39 | 40 | ||
- | 41 | ||
40 | <script> |
42 | <script> |
- | 43 | ||
- | 44 | ||
41 | //DECLARACAO DA APLICACAO LOCAL EM ANGULAR |
45 | //DECLARACAO DA APLICACAO LOCAL EM ANGULAR |
42 | var configSepModule = angular.module('configSepModule', ['ui.tree']); |
46 | var configSepModule = angular.module('configSepModule', ['ui.tree','checklist-model']); |
43 | GLOBAL_BacoAngularAppDependencies.push('configSepModule'); |
47 | GLOBAL_BacoAngularAppDependencies.push('configSepModule'); |
44 | 48 | ||
45 | configSepModule.controller('configSepModuleController', function($scope) { |
49 | configSepModule.controller('configSepModuleController', function($scope) { |
46 | $scope.schools = ${jsonArraySchools}; |
50 | $scope.schools = ${jsonArraySchools}; |
47 | $scope.seps = ${seps}; |
51 | $scope.seps = ${jsonArraySeps}; |
48 | $scope.setDirty = function(school) |
52 | $scope.setDirty = function(school) |
49 | { |
53 | { |
50 | school.dirty = "true"; |
54 | school.dirty = "true"; |
51 | } |
55 | } |
- | 56 | ||
52 | $scope.save = function(school) |
57 | $scope.save = function(separator) |
53 | { |
58 | { |
54 | var d = JSON.stringify(school); |
59 | var d = JSON.stringify(separator); |
55 | 60 | ||
56 | widgetCallWithActionParameters( |
61 | widgetCallWithActionParameters( |
57 | "<%=request.getContextPath()%>/admin/adminSchool.do", |
62 | "<%=request.getContextPath()%>/admin/setConfigurationSeparators.do", |
58 | "updateCourseSchool", |
63 | "updateConfigSeparator", |
59 | { |
64 | { |
60 | "courseSchoolJson" : d |
65 | "separatorJson" : d |
61 | }, |
66 | }, |
62 | ".form-horizontal", |
67 | ".form-horizontal", |
63 | function(schoolJson) |
68 | function(separatorJson) |
64 | { |
69 | { |
65 | school.dirty = "false"; |
70 | separatorJson.dirty = "false"; |
66 | $scope.$apply(); |
71 | $scope.$apply(); |
67 | } |
72 | } |
68 | 73 | ||
69 | ); |
74 | ); |
70 | } |
75 | } |
71 | $scope.removeSchool = function(school,$index) |
76 | $scope.removeSeparator = function(separator,$index) |
72 | { |
77 | { |
73 | 78 | ||
74 | var d = JSON.stringify(school); |
79 | var d = JSON.stringify(separator); |
75 | widgetCallWithActionParameters( |
80 | widgetCallWithActionParameters( |
76 | "<%=request.getContextPath()%>/admin/adminSchool.do", |
81 | "<%=request.getContextPath()%>/admin/setConfigurationSeparators.do", |
77 | "removeCourseSchool", |
82 | "removeConfigSeparator", |
78 | { |
83 | { |
79 | "courseSchoolJson" : d |
84 | "separatorJson" : d |
80 | }, |
85 | }, |
81 | ".form-horizontal", |
86 | ".form-horizontal", |
82 | function(schoolJson) |
87 | function(separatorJson) |
83 | { |
88 | { |
84 | $scope.schools.splice($index,1); |
89 | $scope.seps.splice($index,1); |
85 | $scope.$apply(); |
90 | $scope.$apply(); |
86 | } |
91 | } |
87 | 92 | ||
88 | ); |
93 | ); |
89 | } |
94 | } |
90 | $scope.newSchool = function() |
95 | $scope.newSeparator = function() |
91 | { |
96 | { |
92 | - | ||
93 | widgetCallWithActionParameters( |
97 | widgetCallWithActionParameters( |
94 | "<%=request.getContextPath()%>/admin/adminSchool.do", |
98 | "<%=request.getContextPath()%>/admin/setConfigurationSeparators.do", |
95 | "newCourseSchool",{}, |
99 | "newConfigSeparator", |
- | 100 | {}, |
|
96 | ".form-horizontal", |
101 | ".form-horizontal", |
97 | function(schoolJson) |
102 | function(separatorJson) |
98 | { |
103 | { |
99 | schoolJson.dirty = "true"; |
104 | separatorJson.dirty = "true"; |
100 | $scope.schools.push(schoolJson); |
105 | $scope.seps.push(separatorJson); |
101 | $scope.$apply(); |
106 | $scope.$apply(); |
102 | } |
107 | } |
103 | - | ||
104 | ); |
108 | ); |
105 | } |
109 | } |
106 | 110 | ||
107 | }); |
111 | }); |
108 | </script> |
112 | </script> |
109 | 113 | ||
110 | 114 | ||
111 | 115 | ||
112 | <p><label class="label-info">Explicação do Módulo:</label> </p> |
116 | <p><label class="label-info">Informação sobre o Módulo:</label> </p> |
113 | <ul> |
117 | <ul> |
114 | <li>Papeis das Escolas são usados para decidir quem vê o separador</li> |
118 | <li>Papeis das Escolas são usados para decidir quem vê o separador</li> |
115 | <li>Necessita de confirmação de Funcionários, Alunos e Professores</li> |
119 | <li>Necessita de confirmação de Funcionários, Alunos e Professores</li> |
116 | <li>Necessita de escolha das escolas afetas</li> |
120 | <li>Necessita de escolha das escolas afetas</li> |
117 | <li>Necessita de escolha se aparece no DashBoard (PAE) ou eEscola (BACO)</li> |
121 | <li>Necessita de escolha se aparece no DashBoard (PAE) ou eEscola (BACO)</li> |
118 | <li>Necessita de escolha da pasta do Virtual File System a escolher</li> |
122 | <li>Necessita de escolha da pasta do Virtual File System a escolher</li> |
119 | <li>O Módulo de escrita de separadores seprators.jsp depende deste sistema</li> |
123 | <li>O Módulo de escrita de separadores seprators.jsp depende deste sistema</li> |
120 | 124 | ||
121 | </ul> |
125 | </ul> |
122 | 126 | ||
- | 127 | ||
- | 128 | ||
- | 129 | ||
- | 130 | ||
123 | <button class="btn btn-default" data-toggle="collapse" data-target=".languageNames">Mostrar Campos Multinliguisticos</button> |
131 | <button class="btn btn-default" data-toggle="collapse" data-target=".languageNames">Mostrar Campos Multinliguisticos</button> |
124 | 132 | ||
125 | <button class="btn btn-success pull-right" ng-click="newSchool()"><span class="glyphicon glyphicon-plus"/></button> |
133 | <button class="btn btn-success pull-right" ng-click="newSchool()"><span class="glyphicon glyphicon-plus"/></button> |
126 | <div class="form-horizontal"> |
134 | <div class="form-horizontal"> |
127 | <div class="web-messages"> |
135 | <div class="web-messages"> |
Line 129... | Line 137... | ||
129 | </div> |
137 | </div> |
130 | <table class="tablesorter-blue"> |
138 | <table class="tablesorter-blue"> |
131 | <thead> |
139 | <thead> |
132 | <tr> |
140 | <tr> |
133 | <th>Identificador</th> |
141 | <th>Identificador</th> |
134 | <th>Ativo</th> |
- | |
135 | <th>Código de SIGES</th> |
- | |
136 | <th style="width: 30%">Nome</th> |
142 | <th style="width: 30%">Nome</th> |
137 | <th>Papeis Direcção</th> |
143 | <th>Estado</th> |
138 | <th>Papeis CTC</th> |
144 | <th>Pasta VFS</th> |
139 | <th>Papeis Pedagógico</th> |
- | |
140 | <th>Papeis Escola</th> |
145 | <th>Escolas</th> |
141 | <th></th> |
146 | <th></th> |
142 | <th></th> |
147 | <th></th> |
143 | </tr> |
148 | </tr> |
144 | </thead> |
149 | </thead> |
145 | <tbody> |
150 | <tbody> |
146 | <tr ng-class="{dirty: d.dirty=='true'}" ng-repeat="d in schools | orderBy:institutionalCode:false"> |
151 | <tr ng-class="{dirty: d.dirty=='true'}" ng-repeat="d in seps | orderBy:id:false"> |
147 | <td> |
152 | <td> |
148 | <input class="form-control" type="hidden" ng-model="d.id"> |
153 | <input class="form-control" type="hidden" ng-model="d.id"> |
149 | <div class="row"> |
154 | <div class="row"> |
150 | <div class="col-md-8"> |
155 | <div class="col-md-8"> |
151 | {{d.id}} |
156 | {{d.id}} |
152 | </div> |
157 | </div> |
153 | <div class="col-md-2">*</div> |
158 | <div class="col-md-2">*</div> |
154 | </div> |
159 | </div> |
155 | </td> |
160 | </td> |
156 | <td> |
161 | <td> |
157 | <select class="chosenOff" ng-model="d.active" ng-change="setDirty(d)"> |
- | |
158 | <option ng-value="true" ng-selected="d.active == true">Ativo</option> |
- | |
159 | <option ng-value="false" ng-selected="d.active == false">Inativo</option> |
- | |
160 | </select> |
- | |
161 | </td> |
- | |
162 | <td> |
- | |
163 | <input class="form-control" type="text" ng-model="d.institutionalCode"> |
- | |
164 | </td> |
- | |
165 | <td> |
- | |
166 | <input class="form-control" type="text" ng-model="d.name" ng-keyup="setDirty(d)"> |
162 | <input class="form-control" type="text" ng-model="d.name" ng-keyup="setDirty(d)"> |
167 | <div class="languageNames collapse"> |
163 | <div class="languageNames collapse"> |
168 | EN:<input class="form-control" type="text" ng-model="d.nameEn" ng-keyup="setDirty(d)"> |
164 | EN:<input class="form-control" type="text" ng-model="d.nameEn" ng-keyup="setDirty(d)"> |
169 | ES:<input class="form-control" type="text" ng-model="d.nameEs" ng-keyup="setDirty(d)"> |
165 | ES:<input class="form-control" type="text" ng-model="d.nameEs" ng-keyup="setDirty(d)"> |
170 | FR:<input class="form-control" type="text" ng-model="d.nameFr" ng-keyup="setDirty(d)"> |
166 | FR:<input class="form-control" type="text" ng-model="d.nameFr" ng-keyup="setDirty(d)"> |
171 | </div> |
167 | </div> |
172 | </td> |
168 | </td> |
173 | - | ||
174 | <td style="font-size: 0.7em !important"> |
- | |
175 | - | ||
176 | <div class="list-group"> |
- | |
177 | <div class="list-group-item"> |
- | |
178 | <select class="chosenOff" ng-model="d.schoolDirectorRole" ng-change="setDirty(d)"> |
- | |
179 | <option value="">Escolha</option> |
- | |
180 | <logic:iterate id="role" name="userRoleSchoolPresidents"> |
- | |
181 | <option value="${role}"><bean:message key="user.role.${role}"/></option> |
- | |
182 | </logic:iterate> |
- | |
183 | </select> |
- | |
184 | </div> |
- | |
185 | <div class="list-group-item"> |
- | |
186 | <select class="chosenOff" ng-model="d.schoolBoardRole" ng-change="setDirty(d)"> |
- | |
187 | <option value="">Escolha</option> |
- | |
188 | <logic:iterate id="role" name="userRoleSchoolBoards"> |
- | |
189 | <option value="${role}"><bean:message key="user.role.${role}"/></option> |
- | |
190 | </logic:iterate> |
- | |
191 | </select> |
- | |
192 | </div> |
- | |
193 | <div class="list-group-item"> |
- | |
194 | <select class="chosenOff" ng-model="d.schoolSecretariadoRole" ng-change="setDirty(d)"> |
- | |
195 | <option value="">Escolha</option> |
- | |
196 | <logic:iterate id="role" name="userRoleSchoolSecretariados"> |
- | |
197 | <option value="${role}"><bean:message key="user.role.${role}"/></option> |
- | |
198 | </logic:iterate> |
- | |
199 | </select> |
- | |
200 | </div> |
- | |
201 | </div> |
- | |
202 | - | ||
203 | </td> |
169 | <td> |
204 | - | ||
205 | <td style="font-size: 0.7em !important"> |
- | |
206 | - | ||
207 | <div class="list-group"> |
- | |
208 | <div class="list-group-item"> |
- | |
209 | <select class="chosenOff" ng-model="d.ctcPresidentRole" ng-change="setDirty(d)"> |
- | |
210 | <option value="">Escolha</option> |
- | |
211 | <logic:iterate id="role" name="userRoleCTCPresidents"> |
- | |
212 | <option value="${role}"><bean:message key="user.role.${role}"/></option> |
- | |
213 | </logic:iterate> |
- | |
214 | </select> |
- | |
215 | </div> |
- | |
216 | <div class="list-group-item"> |
- | |
217 | <select class="chosenOff" ng-model="d.ctcMemberRole" ng-change="setDirty(d)"> |
170 | <select class="chosenOff" ng-model="d.active" ng-change="setDirty(d)"> |
218 | <option value="">Escolha</option> |
- | |
219 | <logic:iterate id="role" name="userRoleCTCBoards"> |
- | |
220 | <option value="${role}"><bean:message key="user.role.${role}"/></option> |
171 | <option ng-value="true" ng-selected="d.active == true">Ativo</option> |
221 | </logic:iterate> |
- | |
222 | </select> |
- | |
223 | </div> |
- | |
224 | <div class="list-group-item"> |
- | |
225 | <select class="chosenOff" ng-model="d.ctcSecretariadoRole" ng-change="setDirty(d)"> |
- | |
226 | <option value="">Escolha</option> |
- | |
227 | <logic:iterate id="role" name="userRoleCTCSecretariados"> |
- | |
228 | <option value="${role}"><bean:message key="user.role.${role}"/></option> |
172 | <option ng-value="false" ng-selected="d.active == false">Inativo</option> |
229 | </logic:iterate> |
- | |
230 | </select> |
- | |
231 | </div> |
- | |
232 | </div> |
173 | </select> |
233 | - | ||
234 | </td> |
174 | </td> |
235 | - | ||
236 | <td style="font-size: 0.7em !important"> |
175 | <td></td> |
237 | 176 | <td> |
|
238 | <div class="list-group"> |
177 | <div class="list-group"> |
239 | <div class="list-group-item"> |
- | |
240 | <select class="chosenOff" ng-model="d.pedagogicoPresidentRole" ng-change="setDirty(d)"> |
178 | <div class="list-group-item" style="text-align: left" ng-repeat="school in schools" data-ng-element-ready="setCheck()"> |
241 | <option value="">Escolha</option> |
- | |
242 | <logic:iterate id="role" name="userRolePedagogicoPresidents"> |
- | |
243 | <option value="${role}"><bean:message key="user.role.${role}"/></option> |
- | |
244 | </logic:iterate> |
- | |
245 | </select> |
- | |
246 | </div> |
- | |
247 | <div class="list-group-item"> |
- | |
248 | <select class="chosenOff" ng-model="d.pedagogicoMemberRole" ng-change="setDirty(d)"> |
- | |
249 | <option value="">Escolha</option> |
- | |
250 | <logic:iterate id="role" name="userRolePedagogicoBoards"> |
- | |
251 | <option value="${role}"><bean:message key="user.role.${role}"/></option> |
- | |
252 | </logic:iterate> |
- | |
253 | </select> |
- | |
254 | </div> |
- | |
255 | <div class="list-group-item"> |
- | |
256 | <select class="chosenOff" ng-model="d.pedagogicoSecretariadoRole" ng-change="setDirty(d)"> |
179 | <input style="zoom: 1.5;" class="schoolCheck" type="checkbox" checklist-model="d.schoolsIds" checklist-value="school.id"> - {{school.name}} |
257 | <option value="">Escolha</option> |
- | |
258 | <logic:iterate id="role" name="userRolePedagogicoSecretariados"> |
- | |
259 | <option value="${role}"><bean:message key="user.role.${role}"/></option> |
- | |
260 | </logic:iterate> |
- | |
261 | </select> |
- | |
262 | </div> |
180 | </div> |
263 | </div> |
181 | </div> |
264 | </td> |
182 | </td> |
265 | 183 | ||
266 | 184 | ||
267 | 185 | ||
268 | <td style="font-size: 0.7em !important"> |
- | |
269 | - | ||
270 | <div class="list-group"> |
- | |
271 | <div class="list-group-item"> |
- | |
272 | <select class="chosenOff" ng-model="d.funcionarioRole" ng-change="setDirty(d)"> |
- | |
273 | <option value="">Escolha</option> |
- | |
274 | <logic:iterate id="role" name="userRoleFuncionarios"> |
- | |
275 | <option value="${role}"><bean:message key="user.role.${role}"/></option> |
- | |
276 | </logic:iterate> |
- | |
277 | </select> |
- | |
278 | </div> |
- | |
279 | <div class="list-group-item"> |
- | |
280 | <select class="chosenOff" ng-model="d.studentRole" ng-change="setDirty(d)"> |
- | |
281 | <option value="">Escolha</option> |
- | |
282 | <logic:iterate id="role" name="userRoleEstudantes"> |
- | |
283 | <option value="${role}"><bean:message key="user.role.${role}"/></option> |
- | |
284 | </logic:iterate> |
- | |
285 | </select> |
- | |
286 | </div> |
- | |
287 | <div class="list-group-item"> |
- | |
288 | <select class="chosenOff" ng-model="d.teacherRole" ng-change="setDirty(d)"> |
- | |
289 | <option value="">Escolha</option> |
- | |
290 | <logic:iterate id="role" name="userRoleDocentes"> |
- | |
291 | <option value="${role}"><bean:message key="user.role.${role}"/></option> |
- | |
292 | </logic:iterate> |
- | |
293 | </select> |
- | |
294 | </div> |
- | |
295 | </div> |
- | |
296 | </td> |
- | |
297 | - | ||
298 | <td> |
186 | <td> |
299 | <button type="button" class="btn btn-success btn-xs" ng-click="save(d)"> |
187 | <button type="button" class="btn btn-success btn-xs" ng-click="save(d)"> |
300 | <span class="glyphicon glyphicon-ok"/> |
188 | <span class="glyphicon glyphicon-ok"/> |
301 | </button> |
189 | </button> |
302 | </td> |
190 | </td> |
303 | <td> |
191 | <td> |
304 | <bacoTags:confirm msg="Tem a certeza que deseja remover o departamento {{d.name}}" targetFunction="angular.element($('#configSepModule')).scope().removeSchool({{d}},{{$index}});angular.element($('#configSepModule')).scope().$apply();" btnClass="btn btn-danger btn-xs" icon="glyphicon glyphicon-remove"/> |
192 | <bacoTags:confirm msg="Tem a certeza que deseja remover o separador {{d.name}}" targetFunction="angular.element($('#configSepModule')).scope().removeSchool({{d}},{{$index}});angular.element($('#configSepModule')).scope().$apply();" btnClass="btn btn-danger btn-xs" icon="glyphicon glyphicon-remove"/> |
305 | </td> |
193 | </td> |
306 | 194 | ||
307 | 195 | ||
308 | 196 | ||
309 | </tr> |
197 | </tr> |
Line 318... | Line 206... | ||
318 | <model:field name="school" property="nameFr"/> |
206 | <model:field name="school" property="nameFr"/> |
319 | <model:remove name="school"/> |
207 | <model:remove name="school"/> |
320 | --%> |
208 | --%> |
321 | </div> |
209 | </div> |
322 | 210 | ||
- | 211 | <pre>{{seps | json}}</pre> |
|
- | 212 | ||
323 | 213 | ||
324 | </div> |
214 | </div> |
325 | </div> |
215 | </div> |
326 | <% |
216 | <% |
327 | AbstractDao.getCurrentSession().getTransaction().commit(); |
217 | AbstractDao.getCurrentSession().getTransaction().commit(); |