Subversion Repositories bacoAlunos

Rev

Rev 1699 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<%@ page import="pt.estgp.estgweb.domain.Course" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="pt.estgp.estgweb.utils.ConfigProperties" %>
<%@ page import="java.util.List" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld"  prefix="html" %>
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld"  prefix="nested" %>
<%@ 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-tiles.tld"  prefix="tiles" %>
<%@ taglib uri="/WEB-INF/tlds/baco.tld"  prefix="baco" %>
<%@taglib prefix="bacoTags" tagdir="/WEB-INF/tags" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    boolean showAllCourses = request.getParameter("showAllCourses") != null ? Boolean.parseBoolean(request.getParameter("showAllCourses")) : false;
    boolean showWithStudiesPlanActive = ! showAllCourses;
    boolean showStatusActive = !showAllCourses;
    List<String> institutionCodes = ConfigProperties.getListValues("institution.code.prefix.inverse.");
%>
<script>
    $(document).ready(
            function(){

            }
    );


    function showInstitutionCode(institutionCode)
    {
        <%
        for(String institutionCode: institutionCodes)
        {
        %>
        if(institutionCode == '<%=institutionCode%>')
        {
            $("#institution<%=institutionCode%>").show();
            $("#institutionsSeparators<%=institutionCode%>").addClass("active");
        }
        else
        {
            $("#institution<%=institutionCode%>").hide();
            $("#institutionsSeparators<%=institutionCode%>").removeClass("active");
        }
        <%
        }
        %>
    }

    function showDegreeInst(degree,inst)
    {
        $(".degree").hide();
        $("#institution" + inst + " #degree" + degree).show();
        $(".degreeSep").removeClass("active");
        $("#degreeSeparators" + degree).addClass("active");
    }
</script>

<p>Nesta listagem apenas são mostrados os Cursos ativos no PAE, se o curso que procura não está listado clique aqui para ver todos <a class="btn btn-default" href="<%=request.getContextPath()%>/user/showRoleUsers.do?showAllCourses=true#comissoes">Mostrar Todos</a></p>


<!--TBS DE INSTITUICAO-->
<ul class="nav nav-tabs">
    <%
        for(String institutionCode: institutionCodes)
        {
            String institutionName = ConfigProperties.getProperty("institution.code." + institutionCode);
    %>
    <li id="institutionsSeparators<%=institutionCode%>"><a href="javascript:showInstitutionCode('<%=institutionCode%>')"><%=institutionName%></a></li>
    <%
        }
    %>
</ul>
<!--TBS DE INSTITUICAO-->

<%
    for(String instCode : institutionCodes)
    {
%>
<div class="panel panel-default" id="institution<%=instCode%>" style="display: none">
    <div class="panel-heading">
        Tipos de Curso da <%=ConfigProperties.getProperty("institution.code." + instCode)%>
    </div>
    <div class="panel-body">


        <%
            List<String> degrees = DaoFactory.getCourseDaoImpl().findDegrees(instCode,showWithStudiesPlanActive);
        %>
        <!--TBS DE DEGREES-->
        <ul class="nav nav-tabs">
            <%
                for(String degree: degrees)
                {
            %>
            <li class="degreeSep" id="degreeSeparators<%=degree%>"><a href="javascript:showDegreeInst('<%=degree%>','<%=instCode%>')"><%=ConfigProperties.getProperty("course.degree.desc.plural." + degree)%></a></li>
            <%
                }
            %>
        </ul>
        <!--TBS DE DEGREES-->
        <%
            for(String degree: degrees)
            {

        %>



        <div class="degree" id="degree<%=degree%>" style="display: none">
            <%
                List<Course> courses =  DaoFactory.getCourseDaoImpl().findAllCoursesOrderByNameEvenWithoutCourseUnit( instCode,degree,false,showStatusActive);
                for(Course course: courses)
                {
                    request.setAttribute("course",course);
            %>
            <h4 class="well well-sm clearfix">
                <%=course.getName()%> (<%=course.getCode()%>)
                <baco:isAdmin>
                    <%--<bacoTags:callAjaxModal targetUrl="/user/courseControllerFromServiceZone.do?dispatch=editAdmin&courseView.id=${course.id}" title="Atalho para Edição do Curso ${course.name}" btnClass="btn btn-warning pull-right btn-xs" btnIconClass="glyphicon-wrench"/>--%>
                    <a class="btn btn-warning pull-right btn-xs" target="_blank" href="<%=request.getContextPath()%>/user/courseControllerFromServiceZone.do?dispatch=editAdmin&courseView.id=${course.id}">
                        <span class="glyphicon glyphicon-wrench"></span>
                    </a>
                </baco:isAdmin>
            </h4>

            <p>Papel da Coordenação:
                <logic:notEmpty name="course" property="validationRole"><bean:message key="user.role.${course.validationRole}"/></logic:notEmpty>
                <logic:empty name="course" property="validationRole">Este curso não tem papel definido para a sua Coordenação, por favor contacte os serviços de informática, terá de ser definido um papel para a coordenação para lhe poder adicionar elementos</logic:empty>

                <baco:hasRole role="admin,all,servicesRolesManagement,servicesCoursesManagement,services">
                    <script>
                        function addValidationRoleCourse${course.id}(button)
                        {
                            widgetSimpleCallWithActionParameters(
                                    "<%=request.getContextPath()%>/user/courseControllerWidget.do",
                                    "addCourseComissionRole",
                                    {
                                        "courseId" : ${course.id}
                                    },
                                    "#roleGroupCourse${course.id}WebMessagesContainer",
                                    function()
                                    {
                                        $(button).hide();
                                        $("#roleGroupCourse${course.id}").html("<div class=\"alert alert-info\">Para adicionar utilizadores é necessário recarregar a página</div>");
                                    }
                            );
                        }
                    </script>
                    <logic:empty name="course" property="validationRole">
                        (Gestores de Papeis, Cursos e Admins)
                        <button onclick="addValidationRoleCourse${course.id}(this)" type="button" class="btn btn-success">Adicionar</button>
                    </logic:empty>
                    <logic:notEmpty name="course" property="validationRole">
                        <baco:hasRole role="admin,all">
                            (Apenas Admins)
                            <button onclick="addValidationRoleCourse${course.id}(this)" type="button" class="btn btn-success">Normalizar Papel</button>
                        </baco:hasRole>
                    </logic:notEmpty>
                </baco:hasRole>
            </p>
            <logic:notEmpty name="course" property="validationRole">
                <baco:hasRole role="admin,all">
                    <p>Código do Papel: ${course.validationRole}</p>
                </baco:hasRole>
            </logic:notEmpty>

            <div class="row">
                <div class="col-md-6">Coordenador:
                    <label id="statusCoordinator${course.id}">
                    <%
                        if(course.getCoordinator() != null)
                        {
                    %><%=course.getCoordinator().getName()%> (<%=course.getCoordinator().getSigesCode()%>)<%
                        }
                        else
                        {
                    %>
                        Não está atribuido
                    <%
                        }
                    %>
                    </label>
                    <div id="coordinatorCourse${course.id}WebMessagesContainer">
                        <div class="web-messages"> </div>
                    </div>
                </div>
                <div>
                    <p>Activo: ${course.status} / Visivel no Site IPP: ${course.showStudiesPlan}</p>
                </div>
                <div class="col-md-6">
                    <baco:hasRole role="admin,all,servicesRolesManagement,servicesCoursesManagement,services">
                        <bacoTags:searchUserTab callbackFunction="mudarCoordenador${course.id}" title="Procurar novo coordenador" useModals="true"/>
                        <script>
                            function mudarCoordenador${course.id}(id, name, sigesCode)
                            {
                                widgetCallWithActionParameters(
                                        "<%=request.getContextPath()%>/user/courseControllerWidget.do",
                                        "changeCoordinator",
                                        {
                                            "courseId": ${course.id},
                                            "teacherId" : id
                                        },
                                        "coordinatorCourse${course.id}WebMessagesContainer",
                                        function(data){
                                            $("#statusCoordinator${course.id}").html(name + " (" + sigesCode + ")");
                                        }
                                );
                            }
                        </script>
                    </baco:hasRole>
                </div>
            </div>
            <div id="roleGroupCourse${course.id}WebMessagesContainer">
                <div class="web-messages"> </div>
            </div>
            <div id="roleGroupCourse${course.id}">
            <%
                if(course.getValidationRole() != null && course.getValidationRole().length() > 0){
            %>
            <bacoTags:printRoleGroup title="Restante Coordenação" role="${course.validationRole}" transactional="true"/>
            <%
                }
            %>
            </div>

            <%
            }
            %>

        </div><!--Degree div End-->
        <%
            }

        %>
    </div><!--Panel Body-->
</div><!--Panel Instituicao-->
<%
    }
%>