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-->
<%
}
%>