/branches/v3/impl/src/web/admin/profile/menu.jsp |
---|
32,16 → 32,19 |
<html:link action="/user/startProfile"><bean:message key="profile.home"/></html:link> |
</li> |
<li> |
<html:link action="/user/startChangeProfile"><bean:message key="profile.personal.data"/></html:link> |
<baco:hasRole role="admin,services"> |
<html:link action="/user/startChangeProfile?id=${ProfileForm.userView.id}"><bean:message key="profile.personal.data"/></html:link> |
</baco:hasRole> |
</li> |
<baco:isModuleOn module="profile"> |
<logic:equal value="${ProfileForm.userView.id}" name="UserSession" property="user.id"> |
<li> |
<html:link action="/user/startProfileCurriculum"><bean:message key="profile.curriculum"/></html:link> |
</li> |
</logic:equal> |
</baco:isModuleOn> |
<baco:isModuleOn module="courseunits"> |
<%--Se for aluno so ve o link se forem as suas se for Admin mete-se o link do profileId em uso--%> |
<!--Se for aluno so ve o link se forem as suas se for Admin mete-se o link do profileId em uso--> |
<baco:hasRole role="student"> |
<logic:equal value="${ProfileForm.userView.id}" name="UserSession" property="user.id"> |
<li> |
73,12 → 76,16 |
<html:link action="/user/startProfile"><bean:message key="profile.home"/></html:link> |
</div> |
<div class="col-sm-4"> |
<html:link action="/user/startChangeProfile"><bean:message key="profile.personal.data"/></html:link> |
<baco:hasRole role="admin,services"> |
<html:link action="/user/startChangeProfile?id=${ProfileForm.userView.id}"><bean:message key="profile.personal.data"/></html:link> |
</baco:hasRole> |
</div> |
<baco:isModuleOn module="profile"> |
<logic:equal value="${ProfileForm.userView.id}" name="UserSession" property="user.id"> |
<div class="col-sm-4"> |
<html:link action="/user/startProfileCurriculum"><bean:message key="profile.curriculum"/></html:link> |
</div> |
</logic:equal> |
</baco:isModuleOn> |
<baco:isModuleOn module="courseunits"> |
<%--Se for aluno so ve o link se forem as suas se for Admin mete-se o link do profileId em uso--%> |
/branches/v3/impl/src/web/admin/questionarios/pedagogicoEstudante/courseInfoJson.jsp |
---|
New file |
0,0 → 1,19 |
<%@ page import="jomm.dao.impl.AbstractDao"%><%@ page import="org.hibernate.Query"%><%@ page import="org.json.JSONObject"%><%@ page import="pt.estgp.estgweb.domain.QuestionarioPedagogicoCursoAfeto"%><%@ page import="java.util.List"%><%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory"%><%@ page import="pt.estgp.estgweb.domain.dao.impl.QuestionarioPedagogicoCursoAfetoDaoImpl"%><%@ page contentType="application/json;charset=UTF-8" language="java" %> |
<% |
long cursoAfetoId = Long.parseLong(request.getParameter("cursoAfetoId")); |
AbstractDao.getCurrentSession().beginTransaction(); |
QuestionarioPedagogicoCursoAfetoDaoImpl.CourseStatsVars stats = DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().loadStats(cursoAfetoId); |
JSONObject json = new JSONObject(); |
json.put("porVer",stats.porVer); |
json.put("naoUsadas",stats.naoUsadas); |
json.put("marcadas",stats.marcadas); |
json.put("observadas",stats.observadas); |
json.put("unidades",stats.unidades); |
out.print(json.toString()); |
AbstractDao.getCurrentSession().getTransaction().commit(); |
%> |
/branches/v3/impl/src/web/admin/questionarios/pedagogicoEstudante/pedagogicoCourseCheckCursoAfeto.jsp |
---|
18,58 → 18,115 |
cursoAfeto = DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().narrow(cursoAfeto); |
request.setAttribute("CursoAfeto",cursoAfeto); |
%> |
<table class="tablesorter-blue"> |
<script> |
$(document).ready( |
function() |
{ |
$("#cursoAfetoTable${CursoAfeto.id} .usarCheck").each(function() |
{ |
if($(this).prop("checked")) |
{ |
$(this).closest("td").addClass("usarChecked"); |
$(this).closest("td").removeClass("usarNotChecked"); |
} |
else |
{ |
$(this).closest("td").removeClass("usarChecked"); |
$(this).closest("td").addClass("usarNotChecked"); |
} |
} |
); |
$("#cursoAfetoTable${CursoAfeto.id} .vistaCheck").each(function() |
{ |
if($(this).prop("checked")) |
{ |
$(this).closest("td").addClass("vistaChecked"); |
$(this).closest("td").removeClass("vistaNotChecked"); |
} |
else |
{ |
$(this).closest("td").removeClass("vistaChecked"); |
$(this).closest("td").addClass("vistaNotChecked"); |
} |
}); |
$("#cursoAfetoTable${CursoAfeto.id} .usarCheck").on("change",function() |
{ |
if($(this).prop("checked")) |
{ |
$(this).closest("td").addClass("usarChecked"); |
$(this).closest("td").removeClass("usarNotChecked"); |
} |
else |
{ |
$(this).closest("td").removeClass("usarChecked"); |
$(this).closest("td").addClass("usarNotChecked"); |
} |
}); |
$("#cursoAfetoTable${CursoAfeto.id} .vistaCheck").on("change",function() |
{ |
if($(this).prop("checked")) |
{ |
$(this).closest("td").addClass("vistaChecked"); |
$(this).closest("td").removeClass("vistaNotChecked"); |
} |
else |
{ |
$(this).closest("td").removeClass("vistaChecked"); |
$(this).closest("td").addClass("vistaNotChecked"); |
} |
}); |
} |
); |
</script> |
<table id="cursoAfetoTable${CursoAfeto.id}" class="tablesorter-blue"> |
<thead> |
<tr> |
<th></th> |
<th>Codigo</th> |
<th>Nome</th> |
<th>Tipologias Manuais</th> |
<%--<th>Tipologias Manuais</th>--%> |
<th>Turmas</th> |
<th>Docentes</th> |
<th>Marcada</th> |
<th>Estudantes</th> |
<th>Alertas</th> |
<th>Docentes s/ turma</th> |
<th>Turmas s/ docente</th> |
<th></th> |
<th>Usar</th> |
<th>Vista</th> |
<th>Obs.</th> |
</tr> |
</thead> |
<tbody> |
<logic:iterate id="unidade" name="CursoAfeto" property="unidadesAfetas" type="pt.estgp.estgweb.domain.QuestionarioPedagogicoUnidadeCurricularAfetaImpl"> |
<tr> |
<td>${unidade.codigoUnidade}</td> |
<tr id="unidadeAfetaRow${unidade.id}"> |
<td> |
<html:link target="_blank" action="/user/startLoadCourseUnitFromHome.do?id=${unidade.courseUnit.id}"> |
${unidade.nome} |
</html:link> |
</td> |
<td>${unidade.addedTipologias}</td> |
<td> |
<a href="#" data-href="<%=request.getContextPath()%>/admin/questionarios/pedagogicoEstudante/listCunitTurmas.jsp?courseUnitId=${unidade.courseUnit.id}" data-title="Turmas da Unidade ${unidade.nome} (${unidade.codigoUnidade}) do curso de ${CursoAfeto.nome} (${CursoAfeto.codigoCurso})" data-toggle="modal" data-target="#modalAjaxRequest"> |
${unidade.turmas} |
</a> |
<td> |
<a href="#" data-href="<%=request.getContextPath()%>/user/courseunits/teachersInfo.jsp?courseUnitId=${unidade.courseUnit.id}" data-title="Docentes da unidade de ${unidade.nome} (${unidade.codigoUnidade}) do curso de ${CursoAfeto.nome} (${CursoAfeto.codigoCurso})" data-toggle="modal" data-target="#modalAjaxRequest"> |
${unidade.profs} |
</a> |
</td> |
<td> |
<logic:equal value="true" name="unidade" property="marked"> |
<span class="glyphicon glyphicon-alert"></span> |
</logic:equal> |
</td> |
<td>${unidade.profsWithoutTurma}</td> |
<td>${unidade.turmaWithoutProf}</td> |
<td> |
<script> |
$(document).ready( |
function(){ |
function() |
{ |
$('#tipologias${unidade.id}').on('shown.bs.collapse', function () { |
$("#tipologias${unidade.id}Button .glyphicon").removeClass("glyphicon-zoom-in").addClass("glyphicon-zoom-out"); |
}); |
$('#tipologias${unidade.id}').on('hidden.bs.collapse', function () { |
$("#tipologias${unidade.id}Button .glyphicon").removeClass("glyphicon-zoom-out").addClass("glyphicon-zoom-in"); |
}); |
$("#unidadeAfetaRow${unidade.id} .usarCheck").on("change",function(){ |
var val =$(this).prop("checked") ? "true" : "false"; |
var op = "usar"; |
setUnidadeAfetaVar('${CursoAfeto.id}','${unidade.id}',op,val,$(this).closest("td")); |
}); |
$("#unidadeAfetaRow${unidade.id} .vistaCheck").on("change",function() |
{ |
var val =$(this).prop("checked") ? "true" : "false"; |
var op = "vista"; |
setUnidadeAfetaVar('${CursoAfeto.id}','${unidade.id}',op,val,$(this).closest("td")); |
}); |
} |
); |
</script> |
<button id="tipologias${unidade.id}Button" class="btn btn-default btn-small" type="button" data-toggle="collapse" data-target="#tipologias${unidade.id}"><span class="glyphicon glyphicon-zoom-in"></span></button> |
85,9 → 142,48 |
); |
</script> |
</td> |
<td>${unidade.codigoUnidade}</td> |
<td> |
<html:link target="_blank" action="/user/startLoadCourseUnitFromHome.do?id=${unidade.courseUnit.id}"> |
${unidade.nome} |
</html:link> |
</td> |
<%-- <td>${unidade.addedTipologias}</td>--%> |
<td> |
<a href="#" data-href="<%=request.getContextPath()%>/admin/questionarios/pedagogicoEstudante/listCunitTurmas.jsp?courseUnitId=${unidade.courseUnit.id}" data-title="Turmas da Unidade ${unidade.nome} (${unidade.codigoUnidade}) do curso de ${CursoAfeto.nome} (${CursoAfeto.codigoCurso})" data-toggle="modal" data-target="#modalAjaxRequest"> |
${unidade.turmas} |
</a> |
<td> |
<a href="#" data-href="<%=request.getContextPath()%>/user/courseunits/teachersInfo.jsp?courseUnitId=${unidade.courseUnit.id}" data-title="Docentes da unidade de ${unidade.nome} (${unidade.codigoUnidade}) do curso de ${CursoAfeto.nome} (${CursoAfeto.codigoCurso})" data-toggle="modal" data-target="#modalAjaxRequest"> |
${unidade.profs} |
</a> |
</td> |
<td> |
<a href="#" data-href="<%=request.getContextPath()%>/user/courseunits/listStudentsService.jsp?courseUnitView.id=${unidade.courseUnit.id}" data-title="Alunos da unidade de ${unidade.nome} (${unidade.codigoUnidade}) do curso de ${CursoAfeto.nome} (${CursoAfeto.codigoCurso})" data-toggle="modal" data-target="#modalAjaxRequest"> |
${unidade.students} |
</a> |
</td> |
<td> |
<logic:equal value="true" name="unidade" property="marked"> |
<span class="glyphicon glyphicon-alert"></span> |
</logic:equal> |
</td> |
<td>${unidade.profsWithoutTurma}</td> |
<td>${unidade.turmaWithoutProf}</td> |
<td> |
<html:checkbox styleClass="usarCheck" name="unidade" property="usar"/> |
</td> |
<td> |
<html:checkbox styleClass="vistaCheck" name="unidade" property="vista"/> |
</td> |
<td> |
<button id="obs${unidade.id}Button" class="btn btn-warning btn-small" type="button"><span class="glyphicon glyphicon-pencil"></span></button> |
</td> |
</tr> |
<tr class="collapse" id="tipologias${unidade.id}"> |
<td colspan="9" class="tipologias" style="padding-left: 25px"> |
<td></td> |
<td colspan="10" class="tipologias" style="padding-left: 25px"> |
<div class="panel panel-default"> |
<div class="panel-body"> |
/branches/v3/impl/src/web/admin/questionarios/pedagogicoEstudante/pedagogicoCourseCheckUnidadeAfeta.jsp |
---|
54,6 → 54,42 |
<logic:iterate id="tipologia" name="tipologias" type="pt.estgp.estgweb.domain.CourseUnitImpl.Tipologia"> |
<% |
CourseUnitImpl.TipologiaPersistent tipoPersistente = courseUnit.loadPersistent(tipologia); |
if(tipoPersistente == null) |
{ |
%> |
<tr> |
<td>${tipologia.cdDocente}</td> |
<td>ERRO PROFESSOR NAO SINCRONIZADO</td> |
<td>${tipologia.dsTipologia}</td> |
<td>${tipologia.ocorrencias}</td> |
<td>${tipologia.cdTurma}</td> |
<td>ERRO TURMA NAO SINCRONIZADA TENTE CORRER AS IMPORTACOES ALUNOS E DOCENTES</td> |
<td> |
<logic:equal value="true" name="tipologia" property="extra"> |
<span class="glyphicon glyphicon-asterisk"></span> |
</logic:equal> |
</td> |
<td> |
<logic:equal value="true" name="tipologia" property="horRef"> |
<span class="glyphicon glyphicon-asterisk"></span> |
</logic:equal> |
</td> |
<td> |
<logic:equal value="true" name="tipologia" property="sumario"> |
<span class="glyphicon glyphicon-asterisk"></span> |
</logic:equal> |
</td> |
<td> |
<logic:equal value="true" name="tipologia" property="sumario"> |
<span class="glyphicon glyphicon-ok"></span> |
</logic:equal> |
</td> |
</tr> |
<% |
} |
else |
{ |
request.setAttribute("tipoPersistente",tipoPersistente); |
%> |
<tr> |
62,8 → 98,12 |
<td>${tipologia.dsTipologia}</td> |
<td>${tipologia.ocorrencias}</td> |
<td>${tipologia.cdTurma}</td> |
<td><%=tipoPersistente.getCourseUnitTurma().getStudents().size()%></td> |
<td> |
<a href="#" data-href="<%=request.getContextPath()%>/user/courseunits/listStudentsService.jsp?courseUnitView.id=${unidade.courseUnit.id}&filterTurma=${tipologia.cdTurma}" data-title="Alunos da turma ${tipologia.cdTurma} da unidade de ${unidade.nome} (${unidade.codigoUnidade}) do curso de ${unidade.cursoAfeto.nome} (${unidade.cursoAfeto.codigoCurso})" data-toggle="modal" data-target="#modalAjaxRequest"> |
<%=tipoPersistente.getCourseUnitTurma().getStudents().size()%> |
</a> |
</td> |
<td> |
<logic:equal value="true" name="tipologia" property="extra"> |
<span class="glyphicon glyphicon-asterisk"></span> |
</logic:equal> |
86,6 → 126,7 |
</td> |
</tr> |
<% |
} |
DaoFactory.getCourseUnitDaoImpl().evict(unidade.getCourseUnit()); |
%> |
</logic:iterate> |
/branches/v3/impl/src/web/admin/questionarios/pedagogicoEstudante/setUnidadeAfetaVar.jsp |
---|
New file |
0,0 → 1,20 |
<%@ page import="org.json.JSONObject"%><%@ page import="pt.estgp.estgweb.web.utils.RequestUtils"%><%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager"%><%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager"%><%@ page contentType="application/json;charset=UTF-8" language="java" %> |
<% |
String questionarioId = request.getParameter("questionarioId"); |
String unidadeAfetaId = request.getParameter("unidadeAfetaId"); |
String op = request.getParameter("op"); |
String val = request.getParameter("val"); |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = {"questionarioId","cursosAfetos"}; |
Object[] args = {Long.parseLong(questionarioId),Long.parseLong(unidadeAfetaId),op,val}; |
sm.execute(RequestUtils.getRequester(request, response),"QuestionarioUpdateCheckVarPedagogico",args,names); |
JSONObject json = new JSONObject(); |
json.put("ok","ok"); |
out.print(json.toString()); |
%> |
/branches/v3/impl/src/web/admin/questionarios/pedagogicoEstudante/pedagogicoEstudanteCoursesCheck.jsp |
---|
67,7 → 67,43 |
background-color: #baffdc !important; |
} |
td.vistaChecked |
{ |
background-color: #20ff05 !important; |
} |
td.vistaNotChecked |
{ |
background-color: gray !important; |
} |
td.usarNotChecked |
{ |
background-color: red !important; |
} |
td.usarChecked |
{ |
} |
@keyframes waitPost { |
from { opacity: 1; } |
to { opacity: 0; } |
} |
td.waitPost |
{ |
background-color: yellow !important; |
animation: waitPost 0.5s cubic-bezier(.2, 0, 1, 1) infinite alternate; |
/* |
-webkit-animation-name: waitPost !important; |
-webkit-animation-iteration-count: infinite !important; |
-webkit-animation-timing-function: cubic-bezier(.5, 0, 1, 1) !important; |
-webkit-animation-duration: 1.7s !important;*/ |
} |
</style> |
<div class="panel panel-primary"> |
<div class="panel-heading"> |
Selecção de Cursos para o Questionário ${Questionario.id} - Periodo: ${Questionario.semestre} de ${Questionario.year} |
98,17 → 134,29 |
showInstitutionCode('GerarFinal'); |
<baco:notClearOperation name="Questionario" op="QUESTIONARIO_CHANGE_TIPOLOGIES"> |
$(".checkAll").remove(); |
</baco:notClearOperation> |
$(".courseCheck").attr("data-toogle","toggle"); |
$('.courseCheck').bootstrapToggle({ |
on: 'Tipologias', |
off: 'Simples' |
}); |
<baco:clearOperation name="Questionario" op="QUESTIONARIO_CHANGE_TIPOLOGIES"> |
$('.checkAll').bootstrapToggle({ |
on: 'Tipologias', |
off: 'Simples' |
}); |
</baco:clearOperation> |
<baco:notClearOperation name="Questionario" op="QUESTIONARIO_CHANGE_TIPOLOGIES"> |
$(".courseCheck").prop("disabled",true); |
$("#updateTipologiasButton").prop("disabled",true); |
</baco:notClearOperation> |
} |
); |
function selectAll(code,source) |
157,6 → 205,67 |
} |
function setUnidadeAfetaVar(cursoAfetoId,unidadeAfetaId,op,val,targetObject) |
{ |
$(targetObject).addClass("waitPost"); |
$.post("<%=request.getContextPath()%>/admin/questionarios/pedagogicoEstudante/setUnidadeAfetaVar.jsp", |
{ |
"questionarioId" : ${Questionario.id}, |
"unidadeAfetaId":unidadeAfetaId, |
"op":op, |
"val": val |
}, |
function(data, textStatus) |
{ |
if(data.ok == "ok") |
{ |
$(targetObject).removeClass("waitPost"); |
reloadCursoStats(cursoAfetoId); |
} |
}, |
"json"); |
} |
function reloadCursoStats(cursoAfetoId) |
{ |
$.getJSON("<%=request.getContextPath()%>/admin/questionarios/pedagogicoEstudante/courseInfoJson.jsp?cursoAfetoId="+cursoAfetoId, |
function(dataJson) |
{ |
var porVer = dataJson.porVer + " "; |
if(dataJson.porVer > 0) |
{ |
porVer += "<span class=\"glyphicon glyphicon-alert\"></span>"; |
} |
$("#cursoAfetoRow" + cursoAfetoId + " .porVerCount").html(porVer); |
var marcadas = dataJson.marcadas + " "; |
if(dataJson.marcadas > 0) |
{ |
marcadas += "<span class=\"glyphicon glyphicon-alert\"></span>"; |
} |
$("#cursoAfetoRow" + cursoAfetoId + " .marcadasCount").html(marcadas); |
var observadas = dataJson.observadas + " "; |
if(dataJson.observadas > 0) |
{ |
observadas += "<span class=\"glyphicon glyphicon-alert\"></span>"; |
} |
$("#cursoAfetoRow" + cursoAfetoId + " .observadasCount").html(observadas); |
var naoUsadas = dataJson.naoUsadas + " "; |
if(dataJson.naoUsadas > 0) |
{ |
naoUsadas += "<span class=\"glyphicon glyphicon-alert\"></span>"; |
} |
$("#cursoAfetoRow" + cursoAfetoId + " .naoUsadasCount").html(naoUsadas) |
$("#cursoAfetoRow" + cursoAfetoId + " .unidadesCount").html(dataJson.unidades); |
} |
); |
} |
</script> |
<% |
176,14 → 285,18 |
<table class="tablesorter-blue"> |
<thead> |
<tr> |
<th></th> |
<th>Codigo</th> |
<th>Tipo de Curso</th> |
<th>Curso</th> |
<th>Papel Comissão Curso</th> |
<th>Unidades</th> |
<th>Marcadas </th> |
<th>Alertas </th> |
<th>Por Ver</th> |
<th>Não Usadas</th> |
<th>Observadas</th> |
<th>Turmas</th> |
<th></th> |
<th class="filter-false" data-sorter="false"> |
<input class="checkAll" type="checkbox" onchange="selectAll('<%=institutionCode%>',this)"> |
</th> |
202,8 → 315,41 |
request.setAttribute("CursoAfeto",cursoAfeto); |
%> |
<tr> |
<tr id="cursoAfetoRow${cursoAfeto.id}"> |
<td> |
<script> |
$(document).ready( |
function(){ |
reloadCursoStats("${cursoAfeto.id}"); |
$('#${CursoAfeto.codigoCurso}unidades').on('shown.bs.collapse', function (e) { |
if ($(this).is(e.target)) { |
$("#${CursoAfeto.codigoCurso}unidadesButton .glyphicon").removeClass("glyphicon-folder-close").addClass("glyphicon-folder-open"); |
} |
}); |
$('#${CursoAfeto.codigoCurso}unidades').on('hidden.bs.collapse', function (e) { |
if ($(this).is(e.target)) { |
$("#${CursoAfeto.codigoCurso}unidadesButton .glyphicon").removeClass("glyphicon-folder-open").addClass("glyphicon-folder-close"); |
} |
}); |
} |
); |
</script> |
<button id="${CursoAfeto.codigoCurso}unidadesButton" class="btn btn-default btn-small" type="button" data-toggle="collapse" data-target="#${CursoAfeto.codigoCurso}unidades"><span class="glyphicon glyphicon-folder-close"></span></button> |
<script> |
$(document).ready( |
function(){ |
$.post("<%=request.getContextPath()%>/admin/questionarios/pedagogicoEstudante/pedagogicoCourseCheckCursoAfeto.jsp?cursoAfetoId=${CursoAfeto.id}", function(data) { |
$("#${CursoAfeto.codigoCurso}unidades .unidades") |
.html(data); |
evaluateTableSortersInside("#${CursoAfeto.codigoCurso}unidades .unidades"); |
}); |
} |
); |
</script> |
</td> |
<td> |
<nested:hidden property="id"/> |
${CourseView.code} |
</td> |
217,54 → 363,33 |
Papel não atribuido (Corrigir Situação) |
</logic:empty> |
</td> |
<td> |
<td class="unidadesCount"> |
<a href="#" data-href="<%=request.getContextPath()%>/admin/questionarios/pedagogicoEstudante/listCourseUnits.jsp?importYear=${CourseView.importYear}&courseId=${CourseView.id}" data-title="Unidades do Curso de ${CourseView.name} (${CourseView.code})" data-toggle="modal" data-target="#modalAjaxRequest"> |
<%=cursoAfeto.getUnidadesAfetas().size()%> |
</a> |
</td> |
<td> |
<td class="marcadasCount"> |
${CursoAfeto.marcadas} |
<logic:greaterThan value="0" name="CursoAfeto" property="marcadas"> |
<span class="glyphicon glyphicon-alert"></span> |
</logic:greaterThan> |
</td> |
<td class="porVerCount"> ... </td> |
<td class="naoUsadasCount"> ... </td> |
<td class="observadasCount"> ... </td> |
<td> |
<a href="#" data-href="<%=request.getContextPath()%>/admin/questionarios/pedagogicoEstudante/listCourseUnitsTurmas.jsp?importYear=${CourseView.importYear}&courseId=${CourseView.id}" data-title="Turmas do Curso de ${CourseView.name} (${CourseView.code})" data-toggle="modal" data-target="#modalAjaxRequest"> |
<%=turmasSize%> |
</a> |
</td> |
<td> |
<script> |
$(document).ready( |
function(){ |
$('#${CursoAfeto.codigoCurso}unidades').on('shown.bs.collapse', function () { |
$("#${CursoAfeto.codigoCurso}unidadesButton .glyphicon").removeClass("glyphicon-folder-close").addClass("glyphicon-folder-open"); |
}); |
$('#${CursoAfeto.codigoCurso}unidades').on('hidden.bs.collapse', function () { |
$("#${CursoAfeto.codigoCurso}unidadesButton .glyphicon").removeClass("glyphicon-folder-open").addClass("glyphicon-folder-close"); |
}); |
} |
); |
</script> |
<button id="${CursoAfeto.codigoCurso}unidadesButton" class="btn btn-default btn-small" type="button" data-toggle="collapse" data-target="#${CursoAfeto.codigoCurso}unidades"><span class="glyphicon glyphicon-folder-close"></span></button> |
<script> |
$(document).ready( |
function(){ |
$.post("<%=request.getContextPath()%>/admin/questionarios/pedagogicoEstudante/pedagogicoCourseCheckCursoAfeto.jsp?cursoAfetoId=${CursoAfeto.id}", function(data) { |
$("#${CursoAfeto.codigoCurso}unidades .unidades") |
.html(data); |
evaluateTableSortersInside("#${CursoAfeto.codigoCurso}unidades .unidades"); |
}); |
} |
); |
</script> |
</td> |
<td> |
<nested:checkbox property="usarTipologias" styleClass="courseCheck"/> |
</td> |
</tr> |
<tr id="${CursoAfeto.codigoCurso}unidades" class="collapse"> |
<td colspan="9" class="unidades" style="padding-left: 25px"> |
<td></td> |
<td colspan="11" class="unidades" style="padding-left: 25px"> |
<div class="panel panel-default"> |
<div class="panel-body"> |
<p>Por favor aguarde um momento, o sistema está a carregar as unidades curriculares <img src="<%=request.getContextPath()%>/imgs/wait.gif"/></p> |
290,36 → 415,19 |
<div class="panel panel-primary" id="institutionGerarFinal"> |
<div class="panel-heading"> |
Atribuição de Cursos e Unidades ao Questionário |
Verificação de Atribuições |
</div> |
<div class="panel-body"> |
<div class="col-sm-6"> |
<baco:clearOperation name="Questionario" op="QUESTIONARIO_SCHEDULLE_SELECT_COURSES"> |
<div class="alert alert-warning">Esta operação vai associar todos os cursos seleccionados e respectivas unidades curriculares |
ao questionário ${Questionario.id} criado para o periodo ${Questionario.semestre} de ${Questionario.year}</div> |
<div class="alert alert-info alert-small">Esta operação poderá ser revertida ou então repetida para atualizar os cursos alvo do questionário</div> |
<div class="alert alert-info alert-small">Esta operação poderá demorar alguns instantes</div> |
<html:hidden property="questionario.id" value="${Questionario.id}"/> |
<input type="hidden" name="questionarioId" value="${Questionario.id}"/> |
<input type="hidden" name="dispatch" value="selectCourses"/> |
<baco:clearOperation name="Questionario" op="QUESTIONARIO_CHANGE_TIPOLOGIES"> |
<div class="alert alert-warning">Está neste momento no painel de verificações do questionário ${Questionario.id} criado para o periodo ${Questionario.semestre} de ${Questionario.year}</div> |
</baco:clearOperation> |
<baco:clearOperation name="Questionario" op="QUESTIONARIO_SCHEDULLE_SELECT_COURSES"> |
<button class="btn btn-warning" type="button" onclick="this.form.submit()">Associar Cursos e Unidades Curriculares</button> |
</baco:clearOperation> |
<baco:notClearOperation name="Questionario" op="QUESTIONARIO_SCHEDULLE_SELECT_COURSES"> |
<baco:clearOperation name="Questionario" op="QUESTIONARIO_SCHEDULLE_SEE_SELECT_COURSES"> |
<div class="alert alert-warning">O sistema agendou a atribuição de cursos e unidades ao questionário ${Questionario.id} criado para o periodo ${Questionario.semestre} de ${Questionario.year}. Veja o progresso em baixo, caso não termine no final de 30 minutos esta tarefa ficará de novo disponivel</div> |
</baco:clearOperation> |
<baco:notClearOperation name="Questionario" op="QUESTIONARIO_SCHEDULLE_SEE_SELECT_COURSES"> |
<div class="alert alert-warning">Não têm autorização para ver esta secção</div> |
<baco:notClearOperation name="Questionario" op="QUESTIONARIO_CHANGE_TIPOLOGIES"> |
<div class="alert alert-warning">Não tem permissão para verificar atribuições no questionário ${Questionario.id} criado para o periodo ${Questionario.semestre} de ${Questionario.year}</div> |
</baco:notClearOperation> |
</baco:notClearOperation> |
<a class="btn btn-default" href="#" data-href="<%=request.getContextPath()%>/admin/questionarios/pedagogicoEstudante/questionarioLogState.jsp?questionarioId=${Questionario.id}" data-title="Registo de mudanças de estado do questionario ${Questionario.id}" data-toggle="modal" data-target="#modalAjaxRequest"> |
Registo de Mudanças de Estado |
</a> |
333,7 → 441,8 |
</div> |
<div class="col-sm-12"> |
<button class="btn btn-success">Atualizar Tipologias</button> |
<button id="updateTipologiasButton" class="btn btn-success">Atualizar Tipologias</button> |
<html:link action="/admin/adminQuestionario?questionario.id=${Questionario.id}#NOWTASK" styleClass="btn btn-danger">Voltar à administração</html:link> |
</div> |
</div> |
/branches/v3/impl/src/web/css/ipp/style.css |
---|
27,7 → 27,22 |
width: 1%; |
} |
h1 { |
font-size: 1.3em !important; |
margin: 5; |
color: #808081; |
} |
h3 { |
font-size: 1.1em !important; |
} |
h2 { |
font-size: 1.2em !important; |
} |
/*********************************************************************************/ |
/****************** topnav **********************/ |
321,7 → 336,66 |
.listClean UL, .files UL /*Lista sem nada*/ |
{ |
LIST-STYLE-TYPE: none; |
padding: 0; |
/*margin-left: 5px;*/ |
} |
.linkMenuBlock .linkLeftMenu li |
{ |
border-bottom: 1px solid #808081; |
} |
.linkMenuBlock |
{ |
margin-top: 15px; |
} |
.linkMenuBlock .linkLeftMenu{ |
border-left: 1px solid #808081; |
} |
.linkMenuBlockRight { |
margin-top: 15px; |
border-right: 1px solid #808081; |
color:#323431; |
} |
.linkMenuBlock .linkMenuBlockTitle |
{ |
border-top-left-radius: 4px !important; |
border-right: 0 !important; |
} |
.linkMenuBlock .linkMenuBlockTitle, .linkMenuBlockRight .linkMenuBlockTitle { |
border-bottom: 0px solid #323431; |
background-color: #faf2cc; |
color: #323431; |
white-space: nowrap; |
text-align: right; |
padding: 4px; |
margin: 0; |
border: 1px solid #808081; |
} |
.linkLeftMenu ul,.linkRightMenu ul { |
margin:0; |
LIST-STYLE-TYPE: none; |
} |
.linkLeftMenu |
{ |
margin-bottom:15px; |
border-bottom: 1px solid #808081; |
} |
.linkLeftMenu li, .linkRightMenu li { |
border-bottom: 1px solid #FFFFFF; |
white-space: nowrap; |
padding:5px; |
margin:0; |
} |
/************************************************* |
BOOTSTRAP OVERRIDES |
*************************************************/ |
/branches/v3/impl/src/web/public/profile/profileGrades.jsp |
---|
13,8 → 13,11 |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<jsp:useBean id="ProfileForm" type="pt.estgp.estgweb.web.form.profile.ProfileForm" scope="request"/> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/> |
<div id="contentIntranet"> |
<div id="contentPane"> |
<div class="panel panel-default"> |
<div class="panel-heading"> |
<bean:message key="profile.grades"/> |
</div> |
<div class="panel-body"> |
<jomm:messages/> |
<%--<jsp:useBean id="ProfileForm" class="pt.estgp.estgweb.web.form.profile.ProfileForm"/>--%> |
/branches/v3/impl/src/web/user/courseunits/listStudentsService.jsp |
---|
New file |
0,0 → 1,48 |
<%@ page import="pt.estgp.estgweb.web.utils.RequestUtils" %> |
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %> |
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ 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 uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
<% |
if(request.getAttribute("CourseUnitView") != null) |
{ |
%> |
<jsp:include page="students.jsp"/> |
<% |
} |
else |
{ |
long courseUnitId = 0; |
if(request.getParameter("courseUnitId")!=null) |
courseUnitId = Long.parseLong(request.getParameter("courseUnitId")); |
else if(request.getParameter("courseUnitView.id")!=null) |
courseUnitId = Long.parseLong(request.getParameter("courseUnitView.id")); |
else if(request.getParameter("courseUnit.id")!=null) |
courseUnitId = Long.parseLong(request.getParameter("courseUnit.id")); |
if(courseUnitId == 0) |
{ |
response.sendError(404); |
} |
else |
{ |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{}; |
Object[] args = new Object[]{courseUnitId,false,true,false};//unitId,teachers,students,blog |
pt.estgp.estgweb.domain.views.CourseUnitView courseUnitView = (pt.estgp.estgweb.domain.views.CourseUnitView) sm.execute(RequestUtils.getRequester(request, response), "LoadCourseUnit", args, names); |
request.setAttribute("CourseUnitView",courseUnitView); |
%> |
<jsp:include page="students.jsp"/> |
<% |
} |
} |
%> |
/branches/v3/impl/src/web/user/courseunits/students.jsp |
---|
1,3 → 1,5 |
<%@ page import="pt.estgp.estgweb.domain.views.UserView" %> |
<%@ page import="java.util.List" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
9,6 → 11,10 |
<jsp:useBean id="CourseUnitView" type="pt.estgp.estgweb.domain.views.CourseUnitView" scope="request"/> |
<% |
String turma = request.getParameter("filterTurma"); |
if(turma == null && request.getAttribute("filterTurma")!=null) |
turma = (String) request.getAttribute("filterTurma"); |
String fromAction = ""; |
String user = ""; |
if (request.getParameter("from") != null) |
24,15 → 30,37 |
request.setAttribute("fromAction", fromAction); |
String orderBy = request.getParameter("order"); |
List<UserView> students = null; |
if(turma != null) |
{ |
if(orderBy != null && orderBy.equals("byNumber")) |
request.setAttribute("students",CourseUnitView.getStudentsOrderedByNumber()); |
students = CourseUnitView.getStudentsTurmaOrderedByNumber(turma); |
else |
request.setAttribute("students",CourseUnitView.getStudentsOrderedByName()); |
students = CourseUnitView.getStudentsTurmaOrderedByName(turma); |
} |
else |
{ |
if(orderBy != null && orderBy.equals("byNumber")) |
students = CourseUnitView.getStudentsOrderedByNumber(); |
else |
students = CourseUnitView.getStudentsOrderedByName(); |
} |
request.setAttribute("turma",turma); |
request.setAttribute("students",students); |
request.setAttribute("studentsSize",students.size()); |
%> |
<div class="panel panel-default"> |
<div class="panel-body"> |
<p><bean:message key="courseunit.students.count"/>: ${CourseUnitView.studentsSize}</p> |
<p> |
<logic:notEmpty name="turma"> |
(${turma}) |
</logic:notEmpty> |
<bean:message key="courseunit.students.count"/>: ${studentsSize} |
</p> |
<table id="myTable" class="tablesorterfiltered"> |
<thead> |
<tr> |
60,13 → 88,23 |
${student.code} |
</td> |
<td> |
<logic:notEmpty name="fromAction"> |
<html:link action="${user}/startLoadStudentCourseUnit${fromAction}?code=${student.code}&courseUnitView.id=${CourseUnitView.id}">${student.name}</html:link> |
</logic:notEmpty> |
<logic:empty name="fromAction"> |
<html:link target="_blank" action="/user/startProfileFromHome.do?userView.id=${student.id}">${student.name}</html:link> |
</logic:empty> |
</td> |
<td> |
${student.username} |
</td> |
<td> |
<logic:empty name="UserSession" property="user"> |
${student.safeEmail} |
</logic:empty> |
<logic:notEmpty name="UserSession" property="user"> |
${student.email} |
</logic:notEmpty> |
</td> |
<baco:hasRole role="teacher"> |
<td>${student.phonenumber} </td> |