Subversion Repositories bacoAlunos

Rev

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

<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="pt.estgp.estgweb.Globals" %>
<%@ page import="pt.estgp.estgweb.domain.CourseSchool" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="pt.estgp.estgweb.web.filters.UserRoleProxy" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page import="pt.estgp.estgweb.domain.CourseSchoolImpl" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %>
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="bacoTags" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    AbstractDao.getCurrentSession().beginTransaction();

    ArrayList<CourseSchool> schools = (ArrayList<CourseSchool>) DaoFactory.getCourseSchoolDaoImpl().findAll();
    String jsonArraySchools = CourseSchoolImpl.toJson(schools);


    request.setAttribute("jsonArraySchools",jsonArraySchools);
    request.setAttribute("schools",schools);

    request.setAttribute("userRoleSchoolPresidents",UserRoleProxy.getUserRolesByPrefix("school.president"));
    request.setAttribute("userRoleSchoolBoards",UserRoleProxy.getUserRolesByPrefix("school.board"));
    request.setAttribute("userRoleSchoolSecretariados",UserRoleProxy.getUserRolesByPrefix("school.secretariado"));

    request.setAttribute("userRoleCTCPresidents",UserRoleProxy.getUserRolesByPrefix("scientificCouncil.president"));
    request.setAttribute("userRoleCTCBoards",UserRoleProxy.getUserRolesByPrefix("scientificCouncil.board"));
    request.setAttribute("userRoleCTCSecretariados",UserRoleProxy.getUserRolesByPrefix("scientificCouncil.secretariado"));

    request.setAttribute("userRolePedagogicoPresidents",UserRoleProxy.getUserRolesByPrefix("pedagogicCouncil.president"));
    request.setAttribute("userRolePedagogicoBoards",UserRoleProxy.getUserRolesByPrefix("pedagogicCouncil.board"));
    request.setAttribute("userRolePedagogicoSecretariados",UserRoleProxy.getUserRolesByPrefix("pedagogicCouncil.secretariado"));

    request.setAttribute("userRoleFuncionarios",UserRoleProxy.getUserRolesByPrefix("worker."));
    request.setAttribute("userRoleEstudantes",UserRoleProxy.getUserRolesByPrefix("student."));
    request.setAttribute("userRoleDocentes",UserRoleProxy.getUserRolesByPrefix("teacher."));


%>

<div class="container-fluid">

    <div id="schoolsModule"
         ng-app="schoolsModule"
         ng-controller="schoolsModuleController">

        <script>
            //DECLARACAO DA APLICACAO LOCAL EM ANGULAR
            var schoolsModule = angular.module('schoolsModule', []);
            GLOBAL_BacoAngularAppDependencies.push('schoolsModule');

            schoolsModule.controller('schoolsModuleController', function($scope) {
                $scope.schools = ${jsonArraySchools};
                $scope.setDirty = function(school)
                {
                   school.dirty = "true";
                }
                $scope.save = function(school)
                {
                    var d = JSON.stringify(school);

                    widgetCallWithActionParameters(
                            "<%=request.getContextPath()%>/admin/adminSchool.do",
                            "updateCourseSchool",
                            {
                                "courseSchoolJson" : d
                            },
                            ".form-horizontal",
                            function(schoolJson)
                            {
                                school.dirty = "false";
                                $scope.$apply();
                            }

                    );
                }
                $scope.removeSchool = function(school,$index)
                {

                    var d = JSON.stringify(school);
                    widgetCallWithActionParameters(
                            "<%=request.getContextPath()%>/admin/adminSchool.do",
                            "removeCourseSchool",
                            {
                                "courseSchoolJson" : d
                            },
                            ".form-horizontal",
                            function(schoolJson)
                            {
                                $scope.schools.splice($index,1);
                                $scope.$apply();
                            }

                    );
                }
                $scope.newSchool = function()
                {

                    widgetCallWithActionParameters(
                            "<%=request.getContextPath()%>/admin/adminSchool.do",
                            "newCourseSchool",{},
                            ".form-horizontal",
                            function(schoolJson)
                            {
                                schoolJson.dirty = "true";
                                $scope.schools.push(schoolJson);
                                $scope.$apply();
                            }

                    );
                }

            });
        </script>



        <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>
        <ul>
            <li>school.president: para diretores de escola</li>
            <li>school.board: para membros da direcção de escola</li>
            <li>school.secretariado: para membros do secretariado de escola</li>

            <li>scientificCouncil.president: para presidentes dos CTC</li>
            <li>scientificCouncil.board: para membros do CTC</li>
            <li>scientificCouncil.secretariado: para membros do secretariado do CTC</li>

            <li>pedagogicCouncil.president: para presidentes de Pedagógico</li>
            <li>pedagogicCouncil.board: para membros do Pedagógico</li>
            <li>pedagogicCouncil.secretariado: para membros do secretariado do Pedagógico</li>

        </ul>
        <p>Caso seja necessário um novo papel deverá administrar os papeis institucionais dirija-se <html:link action="/user/configurationUserRoles">Aqui</html:link></p>
        <button class="btn btn-default" data-toggle="collapse" data-target=".languageNames">Mostrar Campos Multinliguisticos</button>

        <button class="btn btn-success pull-right" ng-click="newSchool()"><span class="glyphicon glyphicon-plus"/></button>
        <div class="form-horizontal">
            <div class="web-messages">

            </div>
            <table class="tablesorter-blue">
                <thead>
                    <tr>
                        <th>Identificador</th>
                        <th>Ativo</th>
                        <th>Código de SIGES</th>
                        <th>Iniciais**</th>
                        <th style="width: 30%">Nome</th>
                        <th>Papeis Direcção</th>
                        <th>Papeis CTC</th>
                        <th>Papeis Pedagógico</th>
                        <th>Papeis Escola</th>
                        <th></th>
                        <th></th>
                    </tr>
                </thead>
                <tbody>
                    <tr ng-class="{dirty: d.dirty=='true'}" ng-repeat="d in schools | orderBy:institutionalCode:false">
                        <td>
                            <input class="form-control" type="hidden" ng-model="d.id">
                            <div class="row">
                                <div class="col-md-8">
                                    {{d.id}}
                                </div>
                                <div class="col-md-2">*</div>
                            </div>
                        </td>
                        <td>
                            <select class="chosenOff" ng-model="d.active" ng-change="setDirty(d)">
                                <option ng-value="true" ng-selected="d.active == true">Ativo</option>
                                <option ng-value="false" ng-selected="d.active == false">Inativo</option>
                            </select>
                        </td>
                        <td>
                            <input class="form-control" type="text" ng-model="d.institutionalCode">
                        </td>
                        <td>
                            <input class="form-control" type="text" ng-model="d.initials">
                        </td>
                        <td>
                            <input class="form-control" type="text" ng-model="d.name" ng-keyup="setDirty(d)">
                            <div class="languageNames collapse">
                                EN:<input class="form-control" type="text" ng-model="d.nameEn" ng-keyup="setDirty(d)">
                                ES:<input class="form-control" type="text" ng-model="d.nameEs" ng-keyup="setDirty(d)">
                                FR:<input class="form-control" type="text" ng-model="d.nameFr" ng-keyup="setDirty(d)">
                            </div>
                        </td>

                        <td style="font-size: 0.7em !important">

                            <div class="list-group">
                                <div class="list-group-item">
                                    <select class="chosenOff" ng-model="d.schoolDirectorRole" ng-change="setDirty(d)">
                                        <option value="">Escolha</option>
                                        <logic:iterate id="role" name="userRoleSchoolPresidents">
                                            <option value="${role}"><bean:message key="user.role.${role}"/></option>
                                        </logic:iterate>
                                    </select>
                                </div>
                                <div class="list-group-item">
                                    <select class="chosenOff" ng-model="d.schoolBoardRole" ng-change="setDirty(d)">
                                        <option value="">Escolha</option>
                                        <logic:iterate id="role" name="userRoleSchoolBoards">
                                            <option value="${role}"><bean:message key="user.role.${role}"/></option>
                                        </logic:iterate>
                                    </select>
                                </div>
                                <div class="list-group-item">
                                    <select class="chosenOff" ng-model="d.schoolSecretariadoRole" ng-change="setDirty(d)">
                                        <option value="">Escolha</option>
                                        <logic:iterate id="role" name="userRoleSchoolSecretariados">
                                            <option value="${role}"><bean:message key="user.role.${role}"/></option>
                                        </logic:iterate>
                                    </select>
                                </div>
                            </div>

                        </td>

                        <td style="font-size: 0.7em !important">

                            <div class="list-group">
                                <div class="list-group-item">
                                    <select class="chosenOff" ng-model="d.ctcPresidentRole" ng-change="setDirty(d)">
                                        <option value="">Escolha</option>
                                        <logic:iterate id="role" name="userRoleCTCPresidents">
                                            <option value="${role}"><bean:message key="user.role.${role}"/></option>
                                        </logic:iterate>
                                    </select>
                                </div>
                                <div class="list-group-item">
                                    <select class="chosenOff" ng-model="d.ctcMemberRole" ng-change="setDirty(d)">
                                        <option value="">Escolha</option>
                                        <logic:iterate id="role" name="userRoleCTCBoards">
                                            <option value="${role}"><bean:message key="user.role.${role}"/></option>
                                        </logic:iterate>
                                    </select>
                                </div>
                                <div class="list-group-item">
                                    <select class="chosenOff" ng-model="d.ctcSecretariadoRole" ng-change="setDirty(d)">
                                        <option value="">Escolha</option>
                                        <logic:iterate id="role" name="userRoleCTCSecretariados">
                                            <option value="${role}"><bean:message key="user.role.${role}"/></option>
                                        </logic:iterate>
                                    </select>
                                </div>
                            </div>

                        </td>

                        <td style="font-size: 0.7em !important">

                            <div class="list-group">
                                <div class="list-group-item">
                                    <select class="chosenOff" ng-model="d.pedagogicoPresidentRole" ng-change="setDirty(d)">
                                        <option value="">Escolha</option>
                                        <logic:iterate id="role" name="userRolePedagogicoPresidents">
                                            <option value="${role}"><bean:message key="user.role.${role}"/></option>
                                        </logic:iterate>
                                    </select>
                                </div>
                                <div class="list-group-item">
                                    <select class="chosenOff" ng-model="d.pedagogicoMemberRole" ng-change="setDirty(d)">
                                        <option value="">Escolha</option>
                                        <logic:iterate id="role" name="userRolePedagogicoBoards">
                                            <option value="${role}"><bean:message key="user.role.${role}"/></option>
                                        </logic:iterate>
                                    </select>
                                </div>
                                <div class="list-group-item">
                                    <select class="chosenOff" ng-model="d.pedagogicoSecretariadoRole" ng-change="setDirty(d)">
                                        <option value="">Escolha</option>
                                        <logic:iterate id="role" name="userRolePedagogicoSecretariados">
                                            <option value="${role}"><bean:message key="user.role.${role}"/></option>
                                        </logic:iterate>
                                    </select>
                                </div>
                            </div>
                        </td>



                        <td style="font-size: 0.7em !important">

                            <div class="list-group">
                                <div class="list-group-item">
                                    <select class="chosenOff" ng-model="d.funcionarioRole" ng-change="setDirty(d)">
                                        <option value="">Escolha</option>
                                        <logic:iterate id="role" name="userRoleFuncionarios">
                                            <option value="${role}"><bean:message key="user.role.${role}"/></option>
                                        </logic:iterate>
                                    </select>
                                </div>
                                <div class="list-group-item">
                                    <select class="chosenOff" ng-model="d.studentRole" ng-change="setDirty(d)">
                                        <option value="">Escolha</option>
                                        <logic:iterate id="role" name="userRoleEstudantes">
                                            <option value="${role}"><bean:message key="user.role.${role}"/></option>
                                        </logic:iterate>
                                    </select>
                                </div>
                                <div class="list-group-item">
                                    <select class="chosenOff" ng-model="d.teacherRole" ng-change="setDirty(d)">
                                        <option value="">Escolha</option>
                                        <logic:iterate id="role" name="userRoleDocentes">
                                            <option value="${role}"><bean:message key="user.role.${role}"/></option>
                                        </logic:iterate>
                                    </select>
                                </div>
                            </div>
                        </td>

                        <td>
                            <button type="button" class="btn btn-success btn-xs" ng-click="save(d)">
                                <span class="glyphicon glyphicon-ok"/>
                            </button>
                        </td>
                        <td>
                            <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"/>
                        </td>



                    </tr>
                </tbody>
            </table>
            <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>
            <p class="label label-warning">** - As iniciais vão ser usadas para dar nomes a pastas no sistema visrtual de ficheiros e para identificadores internos, não altere as iniciais sem falar com a equipa de desenvolvimento</p>
            <%--
            <model:id name="school" property="id"/>
            <model:field name="school" property="name"/>
            <model:field name="school" property="nameEn"/>
            <model:field name="school" property="nameEs"/>
            <model:field name="school" property="nameFr"/>
            <model:remove name="school"/>
    --%>
        </div>


    </div>
</div>
<%
    AbstractDao.getCurrentSession().getTransaction().commit();
%>

Generated by GNU Enscript 1.6.5.2.