Subversion Repositories bacoAlunos

Rev

Rev 1728 | Rev 1730 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1670 jmachado 1
<%@ page import="jomm.dao.impl.AbstractDao" %>
2
<%@ page import="pt.estgp.estgweb.Globals" %>
3
<%@ page import="pt.estgp.estgweb.domain.CourseSchool" %>
4
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
5
<%@ page import="pt.estgp.estgweb.web.filters.UserRoleProxy" %>
6
<%@ page import="java.util.ArrayList" %>
7
<%@ page import="java.util.List" %>
8
<%@ page import="pt.estgp.estgweb.domain.CourseSchoolImpl" %>
9
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
10
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
11
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
12
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %>
13
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
14
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
15
<%@ taglib tagdir="/WEB-INF/tags" prefix="bacoTags" %>
16
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
17
<%
18
    AbstractDao.getCurrentSession().beginTransaction();
19
 
20
    ArrayList<CourseSchool> schools = (ArrayList<CourseSchool>) DaoFactory.getCourseSchoolDaoImpl().findAll();
21
    String jsonArraySchools = CourseSchoolImpl.getJson(schools);
22
 
23
 
24
    request.setAttribute("jsonArraySchools",jsonArraySchools);
25
    request.setAttribute("schools",schools);
26
 
27
    request.setAttribute("userRoleSchoolPresidents",UserRoleProxy.getUserRolesByPrefix("school.president"));
28
    request.setAttribute("userRoleSchoolBoards",UserRoleProxy.getUserRolesByPrefix("school.board"));
29
    request.setAttribute("userRoleSchoolSecretariados",UserRoleProxy.getUserRolesByPrefix("school.secretariado"));
30
 
31
    request.setAttribute("userRoleCTCPresidents",UserRoleProxy.getUserRolesByPrefix("scientificCouncil.president"));
32
    request.setAttribute("userRoleCTCBoards",UserRoleProxy.getUserRolesByPrefix("scientificCouncil.board"));
33
    request.setAttribute("userRoleCTCSecretariados",UserRoleProxy.getUserRolesByPrefix("scientificCouncil.secretariado"));
34
 
35
    request.setAttribute("userRolePedagogicoPresidents",UserRoleProxy.getUserRolesByPrefix("pedagogicCouncil.president"));
36
    request.setAttribute("userRolePedagogicoBoards",UserRoleProxy.getUserRolesByPrefix("pedagogicCouncil.board"));
37
    request.setAttribute("userRolePedagogicoSecretariados",UserRoleProxy.getUserRolesByPrefix("pedagogicCouncil.secretariado"));
38
 
1729 jmachado 39
    request.setAttribute("userRoleFuncionarios",UserRoleProxy.getUserRolesByPrefix("worker."));
1728 jmachado 40
    request.setAttribute("userRoleEstudantes",UserRoleProxy.getUserRolesByPrefix("student."));
41
    request.setAttribute("userRoleDocentes",UserRoleProxy.getUserRolesByPrefix("teacher."));
1670 jmachado 42
 
43
 
44
%>
45
 
46
<div class="container-fluid">
47
 
48
    <div id="schoolsModule"
49
         ng-app="schoolsModule"
50
         ng-controller="schoolsModuleController">
51
 
52
        <script>
53
            //DECLARACAO DA APLICACAO LOCAL EM ANGULAR
54
            var schoolsModule = angular.module('schoolsModule', []);
55
            GLOBAL_BacoAngularAppDependencies.push('schoolsModule');
56
 
57
            schoolsModule.controller('schoolsModuleController', function($scope) {
58
                $scope.schools = ${jsonArraySchools};
59
                $scope.setDirty = function(school)
60
                {
61
                   school.dirty = "true";
62
                }
63
                $scope.save = function(school)
64
                {
65
                    var d = JSON.stringify(school);
66
 
67
                    widgetCallWithActionParameters(
68
                            "<%=request.getContextPath()%>/admin/adminSchool.do",
69
                            "updateCourseSchool",
70
                            {
71
                                "courseSchoolJson" : d
72
                            },
73
                            ".form-horizontal",
74
                            function(schoolJson)
75
                            {
76
                                school.dirty = "false";
77
                                $scope.$apply();
78
                            }
79
 
80
                    );
81
                }
82
                $scope.removeSchool = function(school,$index)
83
                {
84
 
85
                    var d = JSON.stringify(school);
86
                    widgetCallWithActionParameters(
87
                            "<%=request.getContextPath()%>/admin/adminSchool.do",
88
                            "removeCourseSchool",
89
                            {
90
                                "courseSchoolJson" : d
91
                            },
92
                            ".form-horizontal",
93
                            function(schoolJson)
94
                            {
95
                                $scope.schools.splice($index,1);
96
                                $scope.$apply();
97
                            }
98
 
99
                    );
100
                }
101
                $scope.newSchool = function()
102
                {
103
 
104
                    widgetCallWithActionParameters(
105
                            "<%=request.getContextPath()%>/admin/adminSchool.do",
106
                            "newCourseSchool",{},
107
                            ".form-horizontal",
108
                            function(schoolJson)
109
                            {
110
                                schoolJson.dirty = "true";
111
                                $scope.schools.push(schoolJson);
112
                                $scope.$apply();
113
                            }
114
 
115
                    );
116
                }
117
 
118
            });
119
        </script>
120
 
121
 
122
 
123
        <p><label class="label-info">Papeis das Escolas:</label> Os papeis de departamento são escolhidos da lista de papeis do sistema considerando-se todos os papeis com os prefixos:</p>
124
        <ul>
125
            <li>school.president: para diretores de escola</li>
126
            <li>school.board: para membros da direcção de escola</li>
127
            <li>school.secretariado: para membros do secretariado de escola</li>
128
 
129
            <li>scientificCouncil.president: para presidentes dos CTC</li>
130
            <li>scientificCouncil.board: para membros do CTC</li>
131
            <li>scientificCouncil.secretariado: para membros do secretariado do CTC</li>
132
 
133
            <li>pedagogicCouncil.president: para presidentes de Pedagógico</li>
134
            <li>pedagogicCouncil.board: para membros do Pedagógico</li>
135
            <li>pedagogicCouncil.secretariado: para membros do secretariado do Pedagógico</li>
136
 
137
        </ul>
138
        <p>Caso seja necessário um novo papel deverá administrar os papeis institucionais dirija-se <html:link action="/user/configurationUserRoles">Aqui</html:link></p>
139
        <button class="btn btn-default" data-toggle="collapse" data-target=".languageNames">Mostrar Campos Multinliguisticos</button>
140
 
141
        <button class="btn btn-success pull-right" ng-click="newSchool()"><span class="glyphicon glyphicon-plus"/></button>
142
        <div class="form-horizontal">
1728 jmachado 143
            <div class="web-messages">
144
 
145
            </div>
1670 jmachado 146
            <table class="tablesorter-blue">
147
                <thead>
148
                    <tr>
149
                        <th>Identificador</th>
150
                        <th>Ativo</th>
151
                        <th>Código de SIGES</th>
152
                        <th style="width: 30%">Nome</th>
153
                        <th>Papeis Direcção</th>
154
                        <th>Papeis CTC</th>
155
                        <th>Papeis Pedagógico</th>
1728 jmachado 156
                        <th>Papeis Escola</th>
1670 jmachado 157
                        <th></th>
158
                        <th></th>
159
                    </tr>
160
                </thead>
161
                <tbody>
162
                    <tr ng-class="{dirty: d.dirty=='true'}" ng-repeat="d in schools | orderBy:institutionalCode:false">
163
                        <td>
164
                            <input class="form-control" type="hidden" ng-model="d.id">
165
                            <div class="row">
166
                                <div class="col-md-8">
167
                                    {{d.id}}
168
                                </div>
169
                                <div class="col-md-2">*</div>
170
                            </div>
171
                        </td>
172
                        <td>
173
                            <select class="chosenOff" ng-model="d.active" ng-change="setDirty(d)">
174
                                <option ng-value="true" ng-selected="d.active == true">Ativo</option>
175
                                <option ng-value="false" ng-selected="d.active == false">Inativo</option>
176
                            </select>
177
                        </td>
178
                        <td>
179
                            <input class="form-control" type="text" ng-model="d.institutionalCode">
180
                        </td>
181
                        <td>
182
                            <input class="form-control" type="text" ng-model="d.name" ng-keyup="setDirty(d)">
183
                            <div class="languageNames collapse">
184
                                EN:<input class="form-control" type="text" ng-model="d.nameEn" ng-keyup="setDirty(d)">
185
                                ES:<input class="form-control" type="text" ng-model="d.nameEs" ng-keyup="setDirty(d)">
186
                                FR:<input class="form-control" type="text" ng-model="d.nameFr" ng-keyup="setDirty(d)">
187
                            </div>
188
                        </td>
189
 
190
                        <td style="font-size: 0.7em !important">
191
 
192
                            <div class="list-group">
193
                                <div class="list-group-item">
194
                                    <select class="chosenOff" ng-model="d.schoolDirectorRole" ng-change="setDirty(d)">
195
                                        <option value="">Escolha</option>
196
                                        <logic:iterate id="role" name="userRoleSchoolPresidents">
197
                                            <option value="${role}"><bean:message key="user.role.${role}"/></option>
198
                                        </logic:iterate>
199
                                    </select>
200
                                </div>
201
                                <div class="list-group-item">
202
                                    <select class="chosenOff" ng-model="d.schoolBoardRole" ng-change="setDirty(d)">
203
                                        <option value="">Escolha</option>
204
                                        <logic:iterate id="role" name="userRoleSchoolBoards">
205
                                            <option value="${role}"><bean:message key="user.role.${role}"/></option>
206
                                        </logic:iterate>
207
                                    </select>
208
                                </div>
209
                                <div class="list-group-item">
210
                                    <select class="chosenOff" ng-model="d.schoolSecretariadoRole" ng-change="setDirty(d)">
211
                                        <option value="">Escolha</option>
212
                                        <logic:iterate id="role" name="userRoleSchoolSecretariados">
213
                                            <option value="${role}"><bean:message key="user.role.${role}"/></option>
214
                                        </logic:iterate>
215
                                    </select>
216
                                </div>
217
                            </div>
218
 
219
                        </td>
220
 
221
                        <td style="font-size: 0.7em !important">
222
 
223
                            <div class="list-group">
224
                                <div class="list-group-item">
225
                                    <select class="chosenOff" ng-model="d.ctcPresidentRole" ng-change="setDirty(d)">
226
                                        <option value="">Escolha</option>
227
                                        <logic:iterate id="role" name="userRoleCTCPresidents">
228
                                            <option value="${role}"><bean:message key="user.role.${role}"/></option>
229
                                        </logic:iterate>
230
                                    </select>
231
                                </div>
232
                                <div class="list-group-item">
233
                                    <select class="chosenOff" ng-model="d.ctcMemberRole" ng-change="setDirty(d)">
234
                                        <option value="">Escolha</option>
235
                                        <logic:iterate id="role" name="userRoleCTCBoards">
236
                                            <option value="${role}"><bean:message key="user.role.${role}"/></option>
237
                                        </logic:iterate>
238
                                    </select>
239
                                </div>
240
                                <div class="list-group-item">
241
                                    <select class="chosenOff" ng-model="d.ctcSecretariadoRole" ng-change="setDirty(d)">
242
                                        <option value="">Escolha</option>
243
                                        <logic:iterate id="role" name="userRoleCTCSecretariados">
244
                                            <option value="${role}"><bean:message key="user.role.${role}"/></option>
245
                                        </logic:iterate>
246
                                    </select>
247
                                </div>
248
                            </div>
249
 
250
                        </td>
251
 
252
                        <td style="font-size: 0.7em !important">
253
 
254
                            <div class="list-group">
255
                                <div class="list-group-item">
256
                                    <select class="chosenOff" ng-model="d.pedagogicoPresidentRole" ng-change="setDirty(d)">
257
                                        <option value="">Escolha</option>
258
                                        <logic:iterate id="role" name="userRolePedagogicoPresidents">
259
                                            <option value="${role}"><bean:message key="user.role.${role}"/></option>
260
                                        </logic:iterate>
261
                                    </select>
262
                                </div>
263
                                <div class="list-group-item">
264
                                    <select class="chosenOff" ng-model="d.pedagogicoMemberRole" ng-change="setDirty(d)">
265
                                        <option value="">Escolha</option>
266
                                        <logic:iterate id="role" name="userRolePedagogicoBoards">
267
                                            <option value="${role}"><bean:message key="user.role.${role}"/></option>
268
                                        </logic:iterate>
269
                                    </select>
270
                                </div>
271
                                <div class="list-group-item">
272
                                    <select class="chosenOff" ng-model="d.pedagogicoSecretariadoRole" ng-change="setDirty(d)">
273
                                        <option value="">Escolha</option>
274
                                        <logic:iterate id="role" name="userRolePedagogicoSecretariados">
275
                                            <option value="${role}"><bean:message key="user.role.${role}"/></option>
276
                                        </logic:iterate>
277
                                    </select>
278
                                </div>
279
                            </div>
280
                        </td>
281
 
1728 jmachado 282
 
283
 
284
                        <td style="font-size: 0.7em !important">
285
 
286
                            <div class="list-group">
287
                                <div class="list-group-item">
288
                                    <select class="chosenOff" ng-model="d.funcionarioRole" ng-change="setDirty(d)">
289
                                        <option value="">Escolha</option>
290
                                        <logic:iterate id="role" name="userRoleFuncionarios">
291
                                            <option value="${role}"><bean:message key="user.role.${role}"/></option>
292
                                        </logic:iterate>
293
                                    </select>
294
                                </div>
295
                                <div class="list-group-item">
296
                                    <select class="chosenOff" ng-model="d.studentRole" ng-change="setDirty(d)">
297
                                        <option value="">Escolha</option>
298
                                        <logic:iterate id="role" name="userRoleEstudantes">
299
                                            <option value="${role}"><bean:message key="user.role.${role}"/></option>
300
                                        </logic:iterate>
301
                                    </select>
302
                                </div>
303
                                <div class="list-group-item">
304
                                    <select class="chosenOff" ng-model="d.teacherRole" ng-change="setDirty(d)">
305
                                        <option value="">Escolha</option>
306
                                        <logic:iterate id="role" name="userRoleDocentes">
307
                                            <option value="${role}"><bean:message key="user.role.${role}"/></option>
308
                                        </logic:iterate>
309
                                    </select>
310
                                </div>
311
                            </div>
312
                        </td>
313
 
1670 jmachado 314
                        <td>
315
                            <button type="button" class="btn btn-success btn-xs" ng-click="save(d)">
316
                                <span class="glyphicon glyphicon-ok"/>
317
                            </button>
318
                        </td>
319
                        <td>
320
                            <bacoTags:confirm  msg="Tem a certeza que deseja remover o departamento {{d.name}}" targetFunction="angular.element($('#schoolsModule')).scope().removeSchool({{d}},{{$index}});angular.element($('#schoolsModule')).scope().$apply();" btnClass="btn btn-danger btn-xs" icon="glyphicon glyphicon-remove"/>
321
                        </td>
322
 
323
 
324
 
325
                    </tr>
326
                </tbody>
327
            </table>
328
            <p class="label label-warning">* - A sigla é o identificador do departamento, altere a sigla apenas se perceber as suas implicações. Existem Classes no sistema que dependem da sigla do departamento, a sigla tem de ser unica</p>
329
            <%--
330
            <model:id name="school" property="id"/>
331
            <model:field name="school" property="name"/>
332
            <model:field name="school" property="nameEn"/>
333
            <model:field name="school" property="nameEs"/>
334
            <model:field name="school" property="nameFr"/>
335
            <model:remove name="school"/>
336
    --%>
337
        </div>
338
 
339
 
340
    </div>
341
</div>
342
<%
343
    AbstractDao.getCurrentSession().getTransaction().commit();
344
%>