/branches/v3/impl/src/web/admin/profile/menu.jsp |
---|
29,7 → 29,7 |
<div class="listClean"> |
<ul> |
<li> |
<html:link action="/user/startProfile"><bean:message key="profile.home"/></html:link> |
<html:link action="/user/startProfile?id=${ProfileForm.userView.id}"><bean:message key="profile.home"/></html:link> |
</li> |
<baco:hasRole role="admin,services"> |
/branches/v3/impl/src/web/admin/configuration/configs.jsp |
---|
1,7 → 1,9 |
<%@ page import="jomm.dao.impl.AbstractDao" %> |
<%@ page import="pt.estgp.estgweb.domain.Configuration" %> |
<%@ page import="pt.estgp.estgweb.domain.Course" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="pt.estgp.estgweb.web.form.configuration.ConfigurationsForm" %> |
<%@ page import="pt.estgp.estgweb.utils.DatesUtils" %> |
<%@ 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-logic.tld" prefix="logic" %> |
9,7 → 11,7 |
<%@ 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" %> |
<baco:isAdmin> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/> |
<jomm:messages/> |
<html:errors/> |
22,19 → 24,318 |
%> |
<html:form action="/admin/setConfigurations"> |
<jsp:useBean id="ConfigurationsForm" type="pt.estgp.estgweb.web.form.configuration.ConfigurationsForm" scope="request"/> |
<% |
ConfigurationsForm.setConfiguration(configuration); |
%> |
Ano de Interface : <html:text property="configuration.interfaceImportYear"/> |
Cursos Ficticios : <html:text property="configuration.cursosFicticios"/> |
Ano em Avaliação : <html:text property="configuration.courseUnitEvaluationActiveYear"/> |
Tipos de Cursos em Avaliação : <html:text property="configuration.courseUnitEvaluationActiveDegrees"/> |
Cursos Ativos para Avaliação : <html:text property="configuration.courseUnitEvaluationActiveCourseIds"/> |
Informação de Abertura da Intranet : <html:textarea property="configuration.openInfoIntranet"/> |
</html:form> |
<div class="panel panel-default"> |
<div class="panel-heading">Configurações Gerais do Sistema</div> |
<div class="panel-body"> |
<html:form styleClass="form-horizontal" action="/admin/setConfigurations"> |
<input type="hidden" name="dispatch" value="saveConfigsGerais"/> |
<jsp:useBean id="ConfigurationsForm" type="pt.estgp.estgweb.web.form.configuration.ConfigurationsForm" scope="request"/> |
<% |
ConfigurationsForm.setConfiguration(configuration); |
%> |
<div class="form-group"> |
<label class="control-label col-sm-2">Ano de Interface</label> |
<div class="col-sm-10"> |
<% |
List<String> years = DatesUtils.getImportYears(10); |
%> |
<html:select styleClass="form-control" property="configuration.interfaceImportYear"> |
<% |
for(String year:years) |
{ |
request.setAttribute("year",year); |
%> |
<html:option value="${year}">${year}</html:option> |
<% |
} |
%> |
</html:select> |
</div> |
</div> |
<div class="form-group"> |
<label class="control-label col-sm-2">Cursos Ficticios (separados por virgulas)</label> |
<div class="col-sm-10"> |
<html:text styleClass="form-control" property="configuration.cursosFicticios"/> |
</div> |
</div> |
<div class="form-group"> |
<label class="control-label col-sm-2">Informação de Abertura da Intranet</label> |
<div class="col-sm-10"> |
<html:textarea styleClass="form-control" rows="5" property="configuration.openInfoIntranet"/> |
</div> |
</div> |
<div class="panel panel-default"> |
<div class="panel-heading">Relatórios de Avaliação das Unidades Curriculares</div> |
<div class="panel-body"> |
<div class="form-group"> |
<label class="control-label col-sm-2">Ano aberto para relatórios de avaliação</label> |
<div class="col-sm-10"> |
<html:select styleClass="form-control" property="configuration.courseUnitEvaluationActiveYear"> |
<% |
for(String year:years) |
{ |
request.setAttribute("year",year); |
%> |
<html:option value="${year}">${year}</html:option> |
<% |
} |
%> |
</html:select> |
</div> |
</div> |
<div class="form-group"> |
<label class="control-label col-sm-2">Tipos de Cursos em Avaliação</label> |
<div class="col-sm-4"> |
<html:hidden styleId="degree" property="configuration.courseUnitEvaluationActiveDegrees" /> |
<div class="list-group" id="degreesListGroup"> |
</div> |
<script> |
var degrees = '${ConfigurationsForm.configuration.courseUnitEvaluationActiveDegrees}'; |
jsonObjDegrees = []; |
if(degrees.length > 0) |
{ |
var degreesArray = degrees.split(","); |
for(i=0;i< degreesArray.length;i++) |
{ |
item = {} |
item ["degree"] = degreesArray[i]; |
jsonObjDegrees.push(item); |
} |
} |
function persistDegrees(){ |
var finalDegrees = ""; |
$("#degreesListGroup").html(""); |
jsonObjDegrees.forEach( |
function(obj) { |
if(finalDegrees == "") |
finalDegrees+= obj.degree; |
else |
finalDegrees+= "," + obj.degree; |
var elementNew = $("<div class=\"list-group-item\">" + |
$('#degreeCombo option[value="' + obj.degree + '"]').html() + |
"</div>"); |
$("#degreesListGroup").append(elementNew); |
var removeBtn = $('<button class="btn btn-xs btn-danger pull-right" type="button"><span class="glyphicon glyphicon-remove"/></button>'); |
elementNew.append(removeBtn); |
removeBtn.click( |
function(){ |
var found = false; |
for(var degree in jsonObjDegrees) |
{ |
if(jsonObjDegrees[degree].degree == obj.degree) |
{ |
jsonObjDegrees.splice(degree, 1); |
break; |
} |
} |
persistDegrees(); |
} |
); |
} |
); |
$("#degree").val(finalDegrees); |
} |
$(document).ready( |
function(){ |
persistDegrees(); |
$("#addDegreeBtn").click( |
function() |
{ |
var found = false; |
for(var degree in jsonObjDegrees) |
{ |
if(jsonObjDegrees[degree].degree == $("#degreeCombo").val()) |
{ |
found = true; |
} |
} |
if(!found) |
{ |
item = {} |
item ["degree"] = $("#degreeCombo").val(); |
jsonObjDegrees.push(item); |
persistDegrees(); |
} |
} |
); |
$("#removeDegreeBtn").click( |
function() |
{ |
var found = false; |
for(var degree in jsonObjDegrees) |
{ |
if(jsonObjDegrees[degree].degree == $("#degreeCombo").val()) |
{ |
jsonObjDegrees.splice(degree, 1); |
break; |
} |
} |
persistDegrees(); |
} |
); |
} |
); |
</script> |
</div> |
<div class="col-sm-3"> |
<select class="form-control" id="degreeCombo"> |
<option value="B"><bean:message key="course.B"/> (B)</option> |
<option value="L"><bean:message key="course.L"/> (L)</option> |
<option value="M"><bean:message key="course.M"/> (M)</option> |
<option value="P"><bean:message key="course.P"/> (P)</option> |
<option value="E"><bean:message key="course.E"/> (E)</option> |
<option value="A"><bean:message key="course.A"/> (A)</option> |
<option value="C"><bean:message key="course.C"/> (C)</option> |
<option value="O"><bean:message key="course.O"/> (O)</option> |
<option value="T"><bean:message key="course.T"/> (T)</option> |
</select> |
</div> |
<div class="col-sm-3"> |
<button class="btn btn-small btn-success" type="button" id="addDegreeBtn"><span class="glyphicon glyphicon-plus"/></button> |
<button class="btn btn-small btn-danger" type="button" id="removeDegreeBtn"><span class="glyphicon glyphicon-remove"/></button> |
</div> |
</div> |
<div class="form-group"> |
<label class="control-label col-sm-2">Cursos Ativos para Avaliação</label> |
<div class="col-sm-4"> |
<html:hidden styleId="course" property="configuration.courseUnitEvaluationActiveCourseIds" /> |
<div class="list-group" id="coursesListGroup"> |
</div> |
<script> |
var courses = '${ConfigurationsForm.configuration.courseUnitEvaluationActiveCourseIds}'; |
jsonObjCourses = []; |
if(courses.length > 0) |
{ |
var coursesArray = courses.split(";"); |
for(i=0;i< coursesArray.length;i++) |
{ |
item = {} |
item ["courseId"] = coursesArray[i]; |
jsonObjCourses.push(item); |
} |
} |
function persistCourses(){ |
var finalCourses = ""; |
$("#coursesListGroup").html(""); |
jsonObjCourses.forEach( |
function(obj) { |
if(finalCourses == "") |
finalCourses+= obj.courseId; |
else |
finalCourses+= ";" + obj.courseId; |
var elementNew = $( "<div class=\"list-group-item\">" + |
$('#coursesCombo option[value="' + obj.courseId + '"]').html() + |
"</div>"); |
$("#coursesListGroup").append(elementNew); |
var removeBtn = $('<button class="btn btn-xs btn-danger pull-right" type="button"><span class="glyphicon glyphicon-remove"/></button>'); |
elementNew.append(removeBtn); |
removeBtn.click( |
function(){ |
var found = false; |
for(var course in jsonObjCourses) |
{ |
if(jsonObjCourses[course].courseId == obj.courseId) |
{ |
jsonObjCourses.splice(course, 1); |
break; |
} |
} |
persistCourses(); |
} |
); |
} |
); |
$("#course").val(finalCourses); |
} |
$(document).ready( |
function(){ |
persistCourses(); |
$("#addCourseBtn").click( |
function() |
{ |
var found = false; |
for(var course in jsonObjCourses) |
{ |
if(jsonObjCourses[course].courseId == $("#coursesCombo").val()) |
{ |
found = true; |
} |
} |
if(!found) |
{ |
item = {} |
item ["courseId"] = $("#coursesCombo").val(); |
jsonObjCourses.push(item); |
persistCourses(); |
} |
} |
); |
$("#removeCourseBtn").click( |
function() |
{ |
var found = false; |
for(var course in jsonObjCourses) |
{ |
if(jsonObjCourses[course].courseId == $("#coursesCombo").val()) |
{ |
jsonObjCourses.splice(course, 1); |
break; |
} |
} |
persistCourses(); |
} |
); |
} |
); |
</script> |
</div> |
<div class="col-sm-3"> |
<select class="form-control" id="coursesCombo"> |
<% |
List<Course> courses = DaoFactory.getCourseDaoImpl().findAllOrderByName(); |
request.setAttribute("Courses",courses); |
%> |
<logic:iterate id="course" name="Courses" type="pt.estgp.estgweb.domain.Course"> |
<option value="${course.id}">${course.name} (${course.code})</option> |
</logic:iterate> |
</select> |
</div> |
<div class="col-sm-3"> |
<button class="btn btn-small btn-success" type="button" id="addCourseBtn"><span class="glyphicon glyphicon-plus"/></button> |
<button class="btn btn-small btn-danger" type="button" id="removeCourseBtn"><span class="glyphicon glyphicon-remove"/></button> |
</div> |
</div> |
</div> |
</div> |
<button type="button" class="btn btn-success" onclick="set(form,'saveConfigsGerais');form.submit()"><bean:message key="confirm"/></button> |
</html:form> |
</div> |
</div> |
<% |
AbstractDao.getCurrentSession().getTransaction().commit(); |
%> |
%> |
</baco:isAdmin> |
/branches/v3/impl/src/web/css/style.css |
---|
39,6 → 39,8 |
} |
.tablesorterfiltered |
{} |
/branches/v3/impl/src/web/layout/themes/scripts-default.jsp |
---|
92,6 → 92,7 |
{ |
display: none; |
} |
</style> |
<!--READY FIRST EVENT--> |
/branches/v3/impl/src/web/public/profile/profileGrades.jsp |
---|
21,20 → 21,7 |
<jomm:messages/> |
<%--<jsp:useBean id="ProfileForm" class="pt.estgp.estgweb.web.form.profile.ProfileForm"/>--%> |
<% |
String fromAction = ""; |
String from = ""; |
String user = ""; |
if (request.getParameter("from") != null) |
{ |
user = "/user"; |
fromAction = "From" + request.getParameter("from"); |
from = "?from=" + request.getParameter("from"); |
} |
request.setAttribute("from", from); |
request.setAttribute("user", user); |
request.setAttribute("fromAction", fromAction); |
%> |
<h1> |
<bean:write name="ProfileForm" property="userView.name"/> |
</h1> |
55,7 → 42,7 |
%> |
</h2> |
<% |
if(UserSession.getUser() != null && !UserSession.getUser().isAdmin() && !UserSession.getUser().hasRole("services") && UserSession.getUser().getId() != ProfileForm.getUserView().getId()) |
if(UserSession.getUser() != null && !UserSession.getUser().isTeacher() && !UserSession.getUser().isAdmin() && !UserSession.getUser().hasRole("services") && UserSession.getUser().getId() != ProfileForm.getUserView().getId()) |
{ |
%> |
<h2 class="warning">Apenas o aluno tem direito a consultar as suas notas</h2> |
/branches/v3/impl/src/web/public/profile/profileHome.jsp |
---|
17,20 → 17,7 |
<jomm:messages/> |
<%--<jsp:useBean id="ProfileForm" class="pt.estgp.estgweb.web.form.profile.ProfileForm"/>--%> |
<% |
String fromAction = ""; |
String from = ""; |
String user = ""; |
if (request.getParameter("from") != null) |
{ |
user = "/user"; |
fromAction = "From" + request.getParameter("from"); |
from = "?from=" + request.getParameter("from"); |
} |
request.setAttribute("from", from); |
request.setAttribute("user", user); |
request.setAttribute("fromAction", fromAction); |
%> |
<div class="panel panel-default"> |
<baco:isAdmin> |
<div class="panel-heading"> |
38,244 → 25,9 |
</div> |
</baco:isAdmin> |
<div class="panel-body"> |
<h1> |
<bean:write name="ProfileForm" property="userView.name"/> |
</h1> |
<% |
if(ProfileForm.getUserView().getUser() instanceof Teacher ) |
{ |
%> |
<p class="lead"><strong>Função:</strong> <bean:message key="user.role.teacher"/></p> |
<% |
} |
%> |
<% |
if(ProfileForm.getUserView().getUser() instanceof Student ) |
{ |
%> |
<p class="lead"><bean:message key="user.role.student"/></p> |
<% |
} |
%> |
<jsp:include page="profileHomeSimple.jsp"/> |
</div> |
</div> |
<p><strong><bean:message key="number"/>:</strong> <bean:write name="ProfileForm" property="userView.code"/></p> |
<% |
if(ProfileForm.getUserView().getUser() instanceof Teacher && ProfileForm.getUserView().getAcademicDegree() != null && ProfileForm.getUserView().getAcademicDegree().trim().length() > 0) |
{ |
%> |
<baco:isAdmin> |
<p><strong><bean:message key="profile.academic.degree"/>:</strong> <bean:message key="profile.academic.degree.${ProfileForm.userView.academicDegree}"/></p> |
</baco:isAdmin> |
<% |
} |
%> |
<p><strong><bean:message key="email.institucion"/>:</strong> ${ProfileForm.userView.safeEmail}</p> |
<%-- |
<bean:message key="profile.roles"/>: |
<% |
List<String> roles = ProfileForm.getUserView().getOwnerRoles(); |
String separator = ""; |
for (String role : roles) |
{ |
if (!role.equals(Globals.SUPER_USER_ROLE)) |
{ |
out.print(separator + MessageResources.getMessage(request, "user.role." + role)); |
separator = ", "; |
} |
} |
%> |
--%> |
<% |
if (ProfileForm.getUserView().getUser() instanceof Teacher || ProfileForm.getUserView().getUser() instanceof Student) |
{ |
%> |
<% |
if (ProfileForm.getUserView().getUser() instanceof Teacher) |
{ |
%> |
<p class="lead"><bean:message key="profile.teacher.courses"/></p> |
<% |
} |
else |
{ |
%> |
<p class="lead"><bean:message key="profile.student.courses"/></p> |
<% |
} |
%> |
<logic:present name="ProfileForm" property="userView.courses"> |
<ul> |
<logic:iterate id="course" name="ProfileForm" property="userView.courses"> |
<li> |
<bean:write name="course" property="name"/> |
<ul> |
<logic:iterate id="courseUnit" name="course" property="courseUnits"> |
<li> |
(<bean:write name="courseUnit" property="importYear"/>) <html:link action="${user}/startLoadCourseUnit${fromAction}?courseUnitView.id=${courseUnit.id}"><bean:write name="courseUnit" property="name"/> (<bean:write name="courseUnit" property="code"/>)</html:link> |
</li> |
</logic:iterate> |
</ul> |
</li> |
</logic:iterate> |
</ul> |
</logic:present> |
<% |
} |
%> |
<% |
if (ProfileForm.getUserView().getUser() instanceof Teacher) |
{ |
%> |
<logic:present name="ProfileForm" property="userView.responsableCourseUnits"> |
<p class="lead"><bean:message key="courseunit.responsable"/></p> |
<ul> |
<logic:iterate id="courseUnit" name="ProfileForm" property="userView.responsableCourseUnits"> |
<li> |
(<bean:write name="courseUnit" property="importYear"/>) <html:link action="${user}/startLoadCourseUnit${fromAction}?courseUnitView.id=${courseUnit.id}"><bean:write name="courseUnit" property="name"/> (<bean:write name="courseUnit" property="code"/>)</html:link> |
</li> |
</logic:iterate> |
</ul> |
</logic:present> |
<% |
} |
%> |
<% |
if(ProfileForm.getUserView().getCreatorRecords() != null && ProfileForm.getUserView().getCreatorRecords().size() > 0) |
{ |
%> |
<div class="seccao"> |
<h1><bean:message key="profile.creator.records"/></h1> |
<% |
List thesisViews = ProfileForm.getUserView().getCreatorRecords(RecordEnum.RECORD_THESIS); |
if(thesisViews != null && thesisViews.size() > 0) |
{ |
request.setAttribute("RecordViews",thesisViews); |
%> |
<div class="seccao"> |
<h2> |
<%=MessageResources.getMessage(request,"profile." + RecordEnum.RECORD_THESIS.getTypeStr())%> |
</h2> |
<jsp:include page="/public/profile/recordViews.jsp"/> |
</div> |
<% |
} |
List jobViews = ProfileForm.getUserView().getCreatorRecords(RecordEnum.RECORD_JOB); |
if(jobViews != null && jobViews.size() > 0) |
{ |
request.setAttribute("RecordViews",jobViews); |
%> |
<div class="seccao"> |
<h2> |
<%=MessageResources.getMessage(request,"profile." + RecordEnum.RECORD_JOB.getTypeStr())%> |
</h2> |
<jsp:include page="/public/profile/recordViews.jsp"/> |
</div> |
<% |
} |
List eventViews = ProfileForm.getUserView().getCreatorRecords(RecordEnum.RECORD_EVENT_ORGANIZATION); |
if(eventViews != null && eventViews.size() > 0) |
{ |
request.setAttribute("RecordViews",eventViews); |
%> |
<div class="seccao"> |
<h2> |
<%=MessageResources.getMessage(request,"profile." + RecordEnum.RECORD_EVENT_ORGANIZATION.getTypeStr())%> |
</h2> |
<jsp:include page="/public/profile/recordViews.jsp"/> |
</div> |
<% |
} |
List otherViews = ProfileForm.getUserView().getCreatorRecords(RecordEnum.RECORD_OTHER); |
if(otherViews != null && otherViews.size() > 0) |
{ |
request.setAttribute("RecordViews",otherViews); |
%> |
<div class="seccao"> |
<h2> |
<%=MessageResources.getMessage(request,"profile." + RecordEnum.RECORD_OTHER.getTypeStr())%> |
</h2> |
<jsp:include page="/public/profile/recordViews.jsp"/> |
</div> |
<% |
} |
List paperViews = ProfileForm.getUserView().getCreatorRecords(RecordEnum.RECORD_PAPER); |
if(paperViews != null && paperViews.size() > 0) |
{ |
request.setAttribute("RecordViews",paperViews); |
%> |
<div class="seccao"> |
<h2> |
<%=MessageResources.getMessage(request,"profile." + RecordEnum.RECORD_PAPER.getTypeStr())%> |
</h2> |
<jsp:include page="/public/profile/recordViews.jsp"/> |
</div> |
<% |
} |
List projectViews = ProfileForm.getUserView().getCreatorRecords(RecordEnum.RECORD_PROJECT); |
if(projectViews != null && projectViews.size() > 0) |
{ |
request.setAttribute("RecordViews",projectViews); |
%> |
<div class="seccao"> |
<h2> |
<%=MessageResources.getMessage(request,"profile." + RecordEnum.RECORD_PROJECT.getTypeStr())%> |
</h2> |
<jsp:include page="/public/profile/recordViews.jsp"/> |
</div> |
<% |
} |
%> |
</div> |
<% |
} |
%> |
<% |
if(ProfileForm.getUserView().getContributorRecords() != null && ProfileForm.getUserView().getContributorRecords().size() > 0) |
{ |
%> |
<div class="seccao"> |
<h1><bean:message key="profile.contributor.records"/></h1> |
<% |
List thesisViews = ProfileForm.getUserView().getContributorRecords(RecordEnum.RECORD_THESIS); |
if(thesisViews != null && thesisViews.size() > 0) |
{ |
request.setAttribute("RecordViews",thesisViews); |
} |
%> |
</div> |
<% |
} |
%> |
</div> |
</div> |
/branches/v3/impl/src/web/public/profile/profileGradesAjax.jsp |
---|
New file |
0,0 → 1,37 |
<%@ page import="jomm.utils.MessageResources" %> |
<%@ page import="pt.estgp.estgweb.Globals" %> |
<%@ page import="pt.estgp.estgweb.domain.views.CourseUnitGradeView" %> |
<%@ page import="java.util.HashMap" %> |
<%@ page import="java.util.List" %> |
<%@ page import="java.util.Map" %> |
<%@ page import="pt.estgp.estgweb.domain.UserSession" %> |
<%@ page import="pt.estgp.estgweb.domain.Student" %> |
<%@ page import="jomm.dao.impl.AbstractDao" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="pt.estgp.estgweb.domain.views.UserView" %> |
<%@ page import="pt.estgp.estgweb.web.form.profile.ProfileForm" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/> |
<% |
Long userId = Long.parseLong(request.getParameter("userId")); |
if(UserSession.getUser().isSuperuserOrAdmin() || UserSession.getUser().isTeacher()) |
{ |
AbstractDao.getCurrentSession().beginTransaction(); |
Student student = DaoFactory.getStudentDaoImpl().load(userId); |
UserView userView = new UserView(student); |
ProfileForm profileForm = new pt.estgp.estgweb.web.form.profile.ProfileForm(userView); |
request.setAttribute("ProfileForm",profileForm); |
AbstractDao.getCurrentSession().getTransaction().commit(); |
%> |
<jsp:include page="profileGrades.jsp"/> |
<% |
} |
%> |
/branches/v3/impl/src/web/public/profile/profileHomeAjax.jsp |
---|
New file |
0,0 → 1,36 |
<%@ page import="jomm.dao.impl.AbstractDao" %> |
<%@ page import="jomm.utils.MessageResources" %> |
<%@ page import="pt.estgp.estgweb.domain.Student" %> |
<%@ page import="pt.estgp.estgweb.domain.Teacher" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="pt.estgp.estgweb.domain.enums.RecordEnum" %> |
<%@ page import="pt.estgp.estgweb.domain.views.UserView" %> |
<%@ page import="pt.estgp.estgweb.web.form.profile.ProfileForm" %> |
<%@ page import="java.util.List" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/> |
<% |
Long userId = Long.parseLong(request.getParameter("userId")); |
if(UserSession.getUser().isSuperuserOrAdmin() || UserSession.getUser().isTeacher()) |
{ |
AbstractDao.getCurrentSession().beginTransaction(); |
Student student = DaoFactory.getStudentDaoImpl().load(userId); |
UserView userView = new UserView(student); |
ProfileForm profileForm = new pt.estgp.estgweb.web.form.profile.ProfileForm(userView); |
request.setAttribute("ProfileForm",profileForm); |
AbstractDao.getCurrentSession().getTransaction().commit(); |
%> |
<div> |
<jsp:include page="profileHomeSimple.jsp"/> |
</div> |
<% |
} |
%> |
/branches/v3/impl/src/web/public/profile/profileHomeSimple.jsp |
---|
New file |
0,0 → 1,271 |
<%@ page import="java.util.List" %> |
<%@ page import="pt.estgp.estgweb.domain.Teacher" %> |
<%@ page import="jomm.utils.MessageResources" %> |
<%@ page import="pt.estgp.estgweb.Globals" %> |
<%@ page import="pt.estgp.estgweb.domain.Student" %> |
<%@ page import="pt.estgp.estgweb.domain.enums.RecordEnum" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<jsp:useBean id="ProfileForm" type="pt.estgp.estgweb.web.form.profile.ProfileForm" scope="request"/> |
<jomm:messages/> |
<%--<jsp:useBean id="ProfileForm" class="pt.estgp.estgweb.web.form.profile.ProfileForm"/>--%> |
<% |
String fromAction = ""; |
String from = ""; |
String user = ""; |
if (request.getParameter("from") != null) |
{ |
user = "/user"; |
fromAction = "From" + request.getParameter("from"); |
from = "?from=" + request.getParameter("from"); |
} |
request.setAttribute("from", from); |
request.setAttribute("user", user); |
request.setAttribute("fromAction", fromAction); |
%> |
<h1> |
<bean:write name="ProfileForm" property="userView.name"/> |
</h1> |
<% |
if(ProfileForm.getUserView().getUser() instanceof Teacher ) |
{ |
%> |
<p class="lead"><strong>Função:</strong> <bean:message key="user.role.teacher"/></p> |
<% |
} |
%> |
<% |
if(ProfileForm.getUserView().getUser() instanceof Student ) |
{ |
%> |
<p class="lead"><bean:message key="user.role.student"/></p> |
<% |
} |
%> |
<%--PROBLEMA AQUI--%> |
<p><strong><bean:message key="number"/>:</strong> <bean:write name="ProfileForm" property="userView.code"/></p> |
<% |
if(ProfileForm.getUserView().getUser() instanceof Teacher && ProfileForm.getUserView().getAcademicDegree() != null && ProfileForm.getUserView().getAcademicDegree().trim().length() > 0) |
{ |
%> |
<baco:isAdmin> |
<p><strong><bean:message key="profile.academic.degree"/>:</strong> <bean:message key="profile.academic.degree.${ProfileForm.userView.academicDegree}"/></p> |
</baco:isAdmin> |
<% |
} |
%> |
<p><strong><bean:message key="email.institucion"/>:</strong> ${ProfileForm.userView.safeEmail}</p> |
<%-- |
<bean:message key="profile.roles"/>: |
<% |
List<String> roles = ProfileForm.getUserView().getOwnerRoles(); |
String separator = ""; |
for (String role : roles) |
{ |
if (!role.equals(Globals.SUPER_USER_ROLE)) |
{ |
out.print(separator + MessageResources.getMessage(request, "user.role." + role)); |
separator = ", "; |
} |
} |
%> |
--%> |
<% |
if (ProfileForm.getUserView().getUser() instanceof Teacher || ProfileForm.getUserView().getUser() instanceof Student) |
{ |
%> |
<% |
if (ProfileForm.getUserView().getUser() instanceof Teacher) |
{ |
%> |
<p class="lead"><bean:message key="profile.teacher.courses"/></p> |
<% |
} |
else |
{ |
%> |
<p class="lead"><bean:message key="profile.student.courses"/></p> |
<% |
} |
%> |
<logic:present name="ProfileForm" property="userView.courses"> |
<ul> |
<logic:iterate id="course" name="ProfileForm" property="userView.courses"> |
<li> |
<bean:write name="course" property="name"/> |
<ul> |
<logic:iterate id="courseUnit" name="course" property="courseUnits"> |
<li> |
(<bean:write name="courseUnit" property="importYear"/>) <html:link action="${user}/startLoadCourseUnit${fromAction}?courseUnitView.id=${courseUnit.id}"><bean:write name="courseUnit" property="name"/> (<bean:write name="courseUnit" property="code"/>)</html:link> |
</li> |
</logic:iterate> |
</ul> |
</li> |
</logic:iterate> |
</ul> |
</logic:present> |
<% |
} |
%> |
<% |
if (ProfileForm.getUserView().getUser() instanceof Teacher) |
{ |
%> |
<logic:present name="ProfileForm" property="userView.responsableCourseUnits"> |
<p class="lead"><bean:message key="courseunit.responsable"/></p> |
<ul> |
<logic:iterate id="courseUnit" name="ProfileForm" property="userView.responsableCourseUnits"> |
<li> |
(<bean:write name="courseUnit" property="importYear"/>) <html:link action="${user}/startLoadCourseUnit${fromAction}?courseUnitView.id=${courseUnit.id}"><bean:write name="courseUnit" property="name"/> (<bean:write name="courseUnit" property="code"/>)</html:link> |
</li> |
</logic:iterate> |
</ul> |
</logic:present> |
<% |
} |
%> |
<% |
if(ProfileForm.getUserView().getCreatorRecords() != null && ProfileForm.getUserView().getCreatorRecords().size() > 0) |
{ |
%> |
<div class="seccao"> |
<h1><bean:message key="profile.creator.records"/></h1> |
<% |
List thesisViews = ProfileForm.getUserView().getCreatorRecords(RecordEnum.RECORD_THESIS); |
if(thesisViews != null && thesisViews.size() > 0) |
{ |
request.setAttribute("RecordViews",thesisViews); |
%> |
<div class="seccao"> |
<h2> |
<%=MessageResources.getMessage(request,"profile." + RecordEnum.RECORD_THESIS.getTypeStr())%> |
</h2> |
<jsp:include page="/public/profile/recordViews.jsp"/> |
</div> |
<% |
} |
List jobViews = ProfileForm.getUserView().getCreatorRecords(RecordEnum.RECORD_JOB); |
if(jobViews != null && jobViews.size() > 0) |
{ |
request.setAttribute("RecordViews",jobViews); |
%> |
<div class="seccao"> |
<h2> |
<%=MessageResources.getMessage(request,"profile." + RecordEnum.RECORD_JOB.getTypeStr())%> |
</h2> |
<jsp:include page="/public/profile/recordViews.jsp"/> |
</div> |
<% |
} |
List eventViews = ProfileForm.getUserView().getCreatorRecords(RecordEnum.RECORD_EVENT_ORGANIZATION); |
if(eventViews != null && eventViews.size() > 0) |
{ |
request.setAttribute("RecordViews",eventViews); |
%> |
<div class="seccao"> |
<h2> |
<%=MessageResources.getMessage(request,"profile." + RecordEnum.RECORD_EVENT_ORGANIZATION.getTypeStr())%> |
</h2> |
<jsp:include page="/public/profile/recordViews.jsp"/> |
</div> |
<% |
} |
List otherViews = ProfileForm.getUserView().getCreatorRecords(RecordEnum.RECORD_OTHER); |
if(otherViews != null && otherViews.size() > 0) |
{ |
request.setAttribute("RecordViews",otherViews); |
%> |
<div class="seccao"> |
<h2> |
<%=MessageResources.getMessage(request,"profile." + RecordEnum.RECORD_OTHER.getTypeStr())%> |
</h2> |
<jsp:include page="/public/profile/recordViews.jsp"/> |
</div> |
<% |
} |
List paperViews = ProfileForm.getUserView().getCreatorRecords(RecordEnum.RECORD_PAPER); |
if(paperViews != null && paperViews.size() > 0) |
{ |
request.setAttribute("RecordViews",paperViews); |
%> |
<div class="seccao"> |
<h2> |
<%=MessageResources.getMessage(request,"profile." + RecordEnum.RECORD_PAPER.getTypeStr())%> |
</h2> |
<jsp:include page="/public/profile/recordViews.jsp"/> |
</div> |
<% |
} |
List projectViews = ProfileForm.getUserView().getCreatorRecords(RecordEnum.RECORD_PROJECT); |
if(projectViews != null && projectViews.size() > 0) |
{ |
request.setAttribute("RecordViews",projectViews); |
%> |
<div class="seccao"> |
<h2> |
<%=MessageResources.getMessage(request,"profile." + RecordEnum.RECORD_PROJECT.getTypeStr())%> |
</h2> |
<jsp:include page="/public/profile/recordViews.jsp"/> |
</div> |
<% |
} |
%> |
</div> |
<% |
} |
%> |
<% |
if(ProfileForm.getUserView().getContributorRecords() != null && ProfileForm.getUserView().getContributorRecords().size() > 0) |
{ |
%> |
<div class="seccao"> |
<h1><bean:message key="profile.contributor.records"/></h1> |
<% |
List thesisViews = ProfileForm.getUserView().getContributorRecords(RecordEnum.RECORD_THESIS); |
if(thesisViews != null && thesisViews.size() > 0) |
{ |
request.setAttribute("RecordViews",thesisViews); |
} |
%> |
</div> |
<% |
} |
%> |
/branches/v3/impl/src/web/public/announcements/announcementsPortalLeft.jsp |
---|
21,7 → 21,7 |
IServiceManager sm = ServiceManager.getInstance(); |
String subTarget = null; |
String[] names = new String[]{}; |
Object[] args = new Object[]{request.getParameter("role"), Globals.ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS + "," +Globals.ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS, subTarget}; |
Object[] args = new Object[]{request.getParameter("role"), Globals.ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS, subTarget}; |
List<AnnouncementView> announcementViews = (List<AnnouncementView>) sm.execute(RequestUtils.getRequester(request, response), "LoadRoleTypeMaxAnnouncements", args, names); |
request.setAttribute("Announcements", announcementViews); |
/branches/v3/impl/src/web/user/courses/directedCoordinatedCourses.jsp |
---|
56,72 → 56,94 |
<html:form styleClass="form-horizontal" action="${user}/courseController${fromAction}${from}" enctype="multipart/form-data"> |
<input type="hidden" name="dispatch" value="updateDirectedCoordininatedCourses"> |
<input type="hidden" name="fromDispatch" value="${fromDispatch}"/> |
<html:hidden property="forUser"/> |
<div class="panel panel-default"> |
<div class="panel-heading"><bean:message key="courseunit.programs"/></div> |
<div class="panel-body"> |
<div class="form-group"> |
<label class="control-label col-sm-4" for="institutionCode"><bean:message key="institution"/></label> |
<div class="col-sm-6"> |
<html:select styleId="institutionCode" styleClass="form-control" property="institutionCode" onchange="set(this.form,'${fromDispatch}');this.form.submit()"> |
<option value="">Todas</option> |
<html:option value="1">Escola Superior de Tecnologia e Gestão (3122)</html:option> |
<html:option value="2">Escola Superior Agrária de Elvas (3123)</html:option> |
<html:option value="3">Escola Superior de Educação (3121) </html:option> |
<html:option value="4">Escola Superior de Saúde (7055)</html:option> |
<html:option value="5">Escola Superior de Educação - Post. Graduação</html:option> |
<html:option value="6">Instituto Politécnico de Portalegre (3120)</html:option> |
</html:select> |
<logic:empty name="CourseForm" property="forUser"> |
<div class="form-group"> |
<label class="control-label col-sm-4" for="institutionCode"><bean:message key="institution"/></label> |
<div class="col-sm-6"> |
<html:select styleId="institutionCode" styleClass="form-control" property="institutionCode" onchange="set(this.form,'${fromDispatch}');this.form.submit()"> |
<option value="">Todas</option> |
<html:option value="1">Escola Superior de Tecnologia e Gestão (3122)</html:option> |
<html:option value="2">Escola Superior Agrária de Elvas (3123)</html:option> |
<html:option value="3">Escola Superior de Educação (3121) </html:option> |
<html:option value="4">Escola Superior de Saúde (7055)</html:option> |
<html:option value="5">Escola Superior de Educação - Post. Graduação</html:option> |
<html:option value="6">Instituto Politécnico de Portalegre (3120)</html:option> |
</html:select> |
</div> |
</div> |
</div> |
</logic:empty> |
<logic:notEmpty name="CourseForm" property="forUser"> |
<html:hidden property="institutionCode"/> |
</logic:notEmpty> |
<div class="form-horizontal-small"> |
<div class="form-group"> |
<label class="control-label col-sm-4" for="year"><bean:message key="course.program.courses.choose.year"/></label> |
<div class="col-sm-6"> |
<html:select styleId="year" styleClass="form-control" property="importYear" onchange="set(this.form,'${fromDispatch}');this.form.submit()"> |
<logic:iterate id="importYear" name="importYears"> |
<html:option value="${importYear}"/> |
</logic:iterate> |
</html:select> |
<logic:empty name="CourseForm" property="forUser"> |
<html:select styleId="year" styleClass="form-control" property="importYear" onchange="set(this.form,'${fromDispatch}');this.form.submit()"> |
<logic:iterate id="importYear" name="importYears"> |
<html:option value="${importYear}"/> |
</logic:iterate> |
</html:select> |
</logic:empty> |
<logic:notEmpty name="CourseForm" property="forUser"> |
<html:hidden property="importYear"/> |
<label class="control-label">${CourseForm.importYear}</label> |
</logic:notEmpty> |
</div> |
</div> |
<div class="form-group"> |
<label class="control-label col-sm-4" for="semestre"><bean:message key="courseunit.semestre"/></label> |
<div class="col-sm-6"> |
<html:select styleId="semestre" styleClass="form-control" property="semestre" onchange="set(this.form,'${fromDispatch}');this.form.submit()"> |
<option value=""><bean:message key="courseunit.ALL"/></option> |
<html:option value="A" key="courseunit.A"/> |
<html:option value="S1" key="courseunit.S1"/> |
<html:option value="S2" key="courseunit.S2"/> |
<html:option value="T1" key="courseunit.T1"/> |
<html:option value="T2" key="courseunit.T2"/> |
<html:option value="T3" key="courseunit.T3"/> |
<html:option value="T4" key="courseunit.T4"/> |
</html:select> |
<html:select styleId="semestre" styleClass="form-control" property="semestre" onchange="set(this.form,'${fromDispatch}');this.form.submit()"> |
<option value=""><bean:message key="courseunit.ALL"/></option> |
<html:option value="A" key="courseunit.A"/> |
<html:option value="S1" key="courseunit.S1"/> |
<html:option value="S2" key="courseunit.S2"/> |
<html:option value="T1" key="courseunit.T1"/> |
<html:option value="T2" key="courseunit.T2"/> |
<html:option value="T3" key="courseunit.T3"/> |
<html:option value="T4" key="courseunit.T4"/> |
</html:select> |
</div> |
</div> |
<div class="form-group"> |
<label class="control-label col-sm-4" for="departamento"><bean:message key="departamento"/></label> |
<div class="col-sm-6"> |
<html:select styleId="departamento" styleClass="form-control" property="area" onchange="set(this.form,'${fromDispatch}');this.form.submit()"> |
<option value=""><bean:message key="departamentos.all"/></option> |
<logic:iterate id="area" name="CourseForm" property="areas"> |
<html:option value="${area}" key="area.${area}"/> |
</logic:iterate> |
</html:select> |
<logic:empty name="CourseForm" property="forUser"> |
<div class="form-group"> |
<label class="control-label col-sm-4" for="departamento"><bean:message key="departamento"/></label> |
<div class="col-sm-6"> |
<html:select styleId="departamento" styleClass="form-control" property="area" onchange="set(this.form,'${fromDispatch}');this.form.submit()"> |
<option value=""><bean:message key="departamentos.all"/></option> |
<logic:iterate id="area" name="CourseForm" property="areas"> |
<html:option value="${area}" key="area.${area}"/> |
</logic:iterate> |
</html:select> |
</div> |
</div> |
</div> |
</logic:empty> |
<logic:notEmpty name="CourseForm" property="forUser"> |
<html:hidden property="area"/> |
</logic:notEmpty> |
<div class="form-group"> |
<label class="control-label col-sm-4" for="course"><bean:message key="courseunit.course"/></label> |
<div class="col-sm-6"> |
<html:select styleId="course" styleClass="form-control" property="courseId" onchange="set(this.form,'${fromDispatch}');this.form.submit()"> |
<html:option value="" key="courses.all"/> |
<logic:iterate id="courseView" name="courses" type="pt.estgp.estgweb.domain.views.CourseView"> |
<html:option value="${courseView.id}">(${courseView.code}) ${courseView.name}</html:option> |
<logic:empty name="CourseForm" property="forUser"> |
<html:option value="${courseView.id}">(${courseView.code}) ${courseView.name}</html:option> |
</logic:empty> |
<logic:notEmpty name="CourseForm" property="forUser"> |
<baco:hasRole role="${courseView.validationRole}"> |
<html:option value="${courseView.id}">(${courseView.code}) ${courseView.name}</html:option> |
</baco:hasRole> |
</logic:notEmpty> |
</logic:iterate> |
</html:select> |
</div> |
/branches/v3/impl/src/web/user/courseunits/ftpClient.jsp |
---|
6,5 → 6,47 |
To change this template use File | Settings | File Templates. |
--%> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<jsp:useBean id="CourseUnitView" type="pt.estgp.estgweb.domain.views.CourseUnitView" scope="request"/> |
<script> |
var jsonFiles = JSON.parse('${CourseUnitView.courseUnit.filesJson}'); |
function searchFilesUnit(){ |
$(".searchResults").html("<div class=\"files\"><table></table></div>"); |
var text = $("#searchFiles").val().toLowerCase(); |
jsonFiles.forEach(function(item){ |
if (item.filename.toLowerCase().search(text) != -1) { |
$(".searchResults .files table").append( |
"<tr class=\"file\">" + |
"<td>" + |
"<img src=\"<%=request.getContextPath()%>/imgs/mime/" + item.extension +".gif\"/>" + |
" <a href=\"<%=request.getContextPath()%>/ftpProxyStream/ionline" + item.fileCompletePathEncoded + "\">" + |
item.file + |
"</a>"+ |
"</td>" + |
"<td>" + item.lastmodifieddate + "</td>" + |
"<td>" + item.size + "</td>" + |
"</tr>" |
); |
} |
}); |
} |
$(document).ready( |
function(){ |
$(".ftpClientPanel .panel-heading").append( |
"<span class=\"pull-right\"><input type=\"text\" id=\"searchFiles\"><button class=\"btn btn-default\" id=\"searchFilesBtn\" type=\"button\"><span class=\"glyphicon glyphicon-search\"></button></span>" |
); |
$(".ftpClientPanel .panel-heading").after( |
"<div class=\"panel-body searchResults\"></div>" |
); |
$("#searchFilesBtn").click(searchFilesUnit); |
$('#searchFiles').bind("keypress", function(e) { |
if (e.keyCode == 13) { |
searchFilesUnit(); |
} |
}); |
} |
); |
</script> |
<jsp:include page="/user/ftpclient/ftpclient.jsp"/> |
/branches/v3/impl/src/web/user/courseunits/courseunitsStatistics.jsp |
---|
New file |
0,0 → 1,141 |
<%@ page import="jomm.dao.impl.AbstractDao" %> |
<%@ page import="pt.estgp.estgweb.domain.CourseUnit" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="pt.estgp.estgweb.web.utils.DatesUtils" %> |
<%@ 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" %> |
<jsp:useBean id="CourseUnitView" type="pt.estgp.estgweb.domain.views.CourseUnitView" scope="request"/> |
<baco:clearOperation name="CourseUnitView" property="courseUnit" op="STATISTICS_CAN_VIEW"> |
<% |
long courseUnitId = CourseUnitView.getId(); |
AbstractDao.getCurrentSession().beginTransaction(); |
CourseUnit cu = DaoFactory.getCourseUnitDaoImpl().load(courseUnitId); |
request.setAttribute("cu",cu); |
%> |
<div class="panel panel-default"> |
<div class="panel-heading"><bean:message key="course.unit.stats"/> Visiveis apenas aos Docentes da unidade e à Comissão de Curso</div> |
<div class="panel-body"> |
(dados atualizados a cada 24 horas) |
<h3>Gerais</h3> |
<table class="tablesorter-blue"> |
<tbody> |
<tr> |
<th>Anúncios</th> |
<td>${cu.statanuncios}</td> |
</tr> |
<tr> |
<th>Posts no Blog</th> |
<td>${cu.statblogPosts}</td> |
</tr> |
<tr> |
<th>Estudantes</th> |
<td>${cu.statstudentsCount}</td> |
</tr> |
<tr> |
<th>Docentes</th> |
<td>${cu.statteachersCount}</td> |
</tr> |
<tr> |
<th>Trabalhos</th> |
<td>${cu.statworks}</td> |
</tr> |
</tbody> |
</table> |
<h3>Ficheiros</h3> |
<table class="tablesorter-blue"> |
<tbody> |
<tr> |
<th>Ficheiros de Conteúdos</th> |
<td>${cu.statcontentsFiles}</td> |
</tr> |
<tr> |
<th>Pastas de Conteúdos</th> |
<td>${cu.statcontentsFolders}</td> |
</tr> |
<tr> |
<th>Tamanho Total</th> |
<td><%=cu.getStatcontentsSize()/1024/1024%> MB</td> |
</tr> |
<tr> |
<th>Última atualização</th> |
<td><%=DatesUtils.getStringFromDateWithMinutesAndSeconds(cu.getStatcontentsLastUpdate())%></td> |
</tr> |
</tbody> |
</table> |
<h3>Dossier Técnico Pedagógico</h3> |
<table class="tablesorter-blue"> |
<tbody> |
<tr> |
<th>Planeamento</th> |
<td>${cu.statdtpPlaneamentoFiles}</td> |
<td> (alterado a <%=DatesUtils.getStringFromDate(cu.getStatdtpPlaneamentoLastUpdate())%>)</td> |
</tr> |
<tr> |
<th>Ficha de Avaliação</th> |
<td><%=cu.isStatdtpFichaCurricularValid()?"Válido":"Inválido"%></td> |
<td> (alterado a <%=DatesUtils.getStringFromDate(cu.getStatdtpFichaCurricularLastUpdate())%>)</td> |
</tr> |
<tr> |
<th>Sumários Lançados</th> |
<td>${cu.statdtpSumaries}</td> |
<td></td> |
</tr> |
<tr> |
<th>Sumários Pre-Lançados</th> |
<td>${cu.statdtpSumariesPrelancados}</td> |
<td></td> |
</tr> |
<tr> |
<th>Sumários em falta</th> |
<td>${cu.statdtpSumariesMissing}</td> |
<td></td> |
</tr> |
<tr> |
<th>Pautas de Avaliação</th> |
<td>${cu.statdtpAvaliacaoPautasFiles} </td> |
<td>(alterado a <%=DatesUtils.getStringFromDate(cu.getStatdtpAvaliacaoPautasLastUpdate())%>)</td> |
</tr> |
<tr> |
<th>Enunciados de Avaliação</th> |
<td>${cu.statdtpAvaliacaoEnunciadosFiles} </td> |
<td>(alterado a <%=DatesUtils.getStringFromDate(cu.getStatdtpAvaliacaoEnunciadosLastUpdate())%></td> |
</tr> |
<tr> |
<th>Relatório de Avaliação</th> |
<td>${cu.statdtpEvaluationReportState}</td> |
<td> ( alterado a <%=DatesUtils.getStringFromDate(cu.getStatdtpEvaluationReportLastUpdate())%></td> |
</tr> |
<tr> |
<th>Inquerito Pedagógico Ficheiros</th> |
<td>${cu.statdtpInqueritoPedagogicoFiles}</td> |
<td> ( alterado a <%=DatesUtils.getStringFromDate(cu.getStatdtpInqueritoPedagogicoFilesLastUpdate())%></td> |
</tr> |
</tbody> |
</table> |
</div> |
</div> |
<% |
AbstractDao.getCurrentSession().getTransaction().commit(); |
%> |
</baco:clearOperation> |
/branches/v3/impl/src/web/user/courseunits/courseunit.jsp |
---|
88,6 → 88,8 |
%> |
</baco:isAuthenticated> |
<html:form styleClass="form" action="/user/courseUnitControllerFromHome" enctype="multipart/form-data"> |
<input type="hidden" name="dispatch" value="update"/> |
<html:hidden property="courseUnitView.id"/> |
421,18 → 423,67 |
} |
%>--%> |
<div class="list-group"> |
<div class="list-group-item"> |
<label > |
Filtrar: |
</label> |
<input id="summariesFilterInput" type="text" style="width: 80%"/> |
<script> |
$.extend($.expr[':'], { |
'containsi': function(elem, i, match, array) |
{ |
return (elem.textContent || elem.innerText || '').toLowerCase() |
.indexOf((match[3] || "").toLowerCase()) >= 0; |
} |
}); |
$(document).ready( |
function(){ |
$("#summariesFilterInput").unbind("click"); |
$('#summariesFilterInput').bind("keypress", function(e) { |
if (e.keyCode == 13) { |
e.preventDefault(); |
return false; |
} |
}); |
$("#summariesFilterInput").keyup( |
function(){ |
if($("#summariesFilterInput").val()=="") |
{ |
$(".summary").show(); |
} |
else |
{ |
$(".summary").show(); |
$(".summary").each( |
function() |
{ |
if($(this).find("*:containsi('"+$("#summariesFilterInput").val()+"')").length == 0) |
{ |
$(this).hide(); |
} |
} |
); |
} |
} |
); |
} |
); |
</script> |
</div> |
<logic:iterate id="summary" name="CourseUnitView" property="summariesFromJson" type="pt.estgp.estgweb.domain.views.CourseUnitSummaryView"> |
<div class="list-group-item list-group-item-heading">Aula ${summary.number} - ${summary.title}</div> |
<div class="list-group-item"> |
<span class="label label-info">${summary.tipoAula}</span> |
<span class="badge">${summary.codigoDocente}</span> |
${summary.description} |
<div class="summary" id="summary${summary.number}"> |
<div class="list-group-item list-group-item-heading">Aula ${summary.number} - ${summary.title}</div> |
<div class="list-group-item"> |
<span class="label label-info">${summary.tipoAula}</span> |
<span class="badge">${summary.codigoDocente}</span> |
${summary.description} |
</div> |
<div class="list-group-item list-group-item-footer"> |
${summary.date} - ${summary.horas} Horas - ${summary.students} <bean:message key="courseunit.summary.present.students"/> |
</div> |
</div> |
<div class="list-group-item list-group-item-footer"> |
${summary.date} - ${summary.horas} Horas - ${summary.students} <bean:message key="courseunit.summary.present.students"/> |
</div> |
</logic:iterate> |
</div> |
</logic:notEmpty> |
/branches/v3/impl/src/web/user/courseunits/menu.jsp |
---|
112,6 → 112,11 |
</li> |
</baco:canEditCourseUnitProgram> |
<baco:clearOperation name="CourseUnitView" property="courseUnit" op="STATISTICS_CAN_VIEW"> |
<li> |
<html:link action="/user/startLoadCourseUnitStatsFromHome?courseUnitView.id=${CourseUnitView.id}"><bean:message key="course.unit.stats"/></html:link> |
</li> |
</baco:clearOperation> |
<baco:isTeacherOfCourseUnit courseUnitId="${CourseUnitView.id}"> |
<li> |
<html:link action="/user/startSubmitAnnouncementFromCourseUnit?announcementView.courseUnitView.id=${CourseUnitView.id}"><bean:message key="courseunit.menu.put.announcement"/></html:link> |
/branches/v3/impl/src/web/user/courseunits/submitCourseComissionMessage.jsp |
---|
New file |
0,0 → 1,219 |
<%@ page import="pt.estgp.estgweb.Globals" %> |
<%@ 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 import="java.util.List" %> |
<%@ page import="pt.estgp.estgweb.domain.UserSession" %> |
<%@ 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-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" %> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/> |
<% |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{}; |
Object[] args = new Object[]{}; |
List<String> importYears = (List<String>) sm.execute(RequestUtils.getRequester(request, response), "LoadCoursesImportYears", args, names); |
request.setAttribute("importYears", importYears); |
%> |
<logic:present name="MessagesForm"> |
<logic:notEmpty name="MessagesForm" property="text"> |
<script> |
$(document).ready( |
function(){ |
setText(); |
} |
); |
function setText() |
{ |
$("#editor").html('<bean:write name="MessagesForm" property="text" filter="false"/>'); |
} |
</script> |
</logic:notEmpty> |
</logic:present> |
<div class="panel panel-default"> |
<div class="panel-body"> |
<jomm:messages/> |
<html:errors/> |
<html:form styleClass="form-horizontal" action="/user/submitMessageCourseComission" enctype="multipart/form-data" onsubmit="this.form.text.value=$('#editor').html()"> |
<input type="hidden" name="dispatch" value="sendMessage" > |
<html:hidden property="text"/> |
<html:hidden styleId="sendAnnouncementLike" property="fromRole" value="courseCoordinator"/> |
<div class="form-group row"> |
<div class="control-label col-sm-2" for="sendAnnouncementEmail"><bean:message key="announcement.sendAnnouncementEmail"/></div> |
<div class="col-sm-10"> |
<html:text styleId="sendAnnouncementEmail" styleClass="form-control" property="fromEmail"/> |
</div> |
</div> |
<div class="form-group row"> |
<div class="control-label col-sm-2" for="year"><bean:message key="submit.todo.message.year"/></div> |
<div class="col-sm-10"> |
<html:select styleId="year" styleClass="form-control" property="importYear" onchange="set(this.form,'loadCourses');this.form.submit()"> |
<option value=""><bean:message key="submit.todo.message.all"/></option> |
<logic:iterate id="importYear" name="importYears"> |
<html:option value="${importYear}"/> |
</logic:iterate> |
</html:select> |
</div> |
</div> |
<div class="form-group row"> |
<div class="control-label col-sm-2" for="course"><bean:message key="courseunit.course"/></div> |
<div class="col-sm-10"> |
<html:select styleId="course" styleClass="form-control" property="courseId" onchange="this.form.text.value=$('#editor').html();set(this.form,'loadCourse');this.form.submit()"> |
<logic:notEmpty name="MessagesForm" property="courseViews"> |
<logic:iterate id="courseView" name="MessagesForm" property="courseViews" type="pt.estgp.estgweb.domain.views.CourseView"> |
<% |
if(UserSession.getUser().hasRole(courseView.getValidationRole())) |
{ |
%> |
<html:option value="${courseView.id}">(${courseView.code}) ${courseView.name}</html:option> |
<% |
} |
%> |
</logic:iterate> |
</logic:notEmpty> |
</html:select> |
</div> |
</div> |
<logic:notEmpty name="MessagesForm" property="courseView"> |
<div class="form-group row"> |
<div class="control-label col-sm-2" for="semestre"><bean:message key="courseunit.semestre"/></div> |
<div class="col-sm-10"> |
<html:select styleId="semestre" styleClass="form-control" property="semestre" onchange="this.form.text.value=$('#editor').html();set(this.form,'loadCourse');this.form.submit()"> |
<html:option value="" key="submit.todo.message.all"/> |
<html:option value="S1"><bean:message key="courseunit.S1"/></html:option> |
<html:option value="S2"><bean:message key="courseunit.S2"/></html:option> |
<html:option value="T1"><bean:message key="courseunit.T1"/></html:option> |
<html:option value="T2"><bean:message key="courseunit.T2"/></html:option> |
<html:option value="T3"><bean:message key="courseunit.T3"/></html:option> |
<html:option value="T4"><bean:message key="courseunit.T4"/></html:option> |
</html:select> |
</div> |
</div> |
</logic:notEmpty> |
<logic:notEmpty name="MessagesForm" property="courseView"> |
<div class="form-group row"> |
<div class="control-label col-sm-2" for="unit"><bean:message key="courseunit.menu.unit"/></div> |
<div class="col-sm-10"> |
<html:select styleId="unit" styleClass="form-control" property="courseUnitId"> |
<html:option value="" key="submit.todo.message.all"/> |
<logic:iterate id="courseUnitView" name="MessagesForm" property="courseView.courseUnits" type="pt.estgp.estgweb.domain.views.CourseUnitView"> |
<html:option value="${courseUnitView.id}">(${courseUnitView.code}) ${courseUnitView.name}</html:option> |
</logic:iterate> |
</html:select> |
</div> |
</div> |
</logic:notEmpty> |
<div class="form-group row"> |
<div class="control-label col-sm-2" for="person"><bean:message key="submit.todo.message.target.person"/></div> |
<div class="col-sm-10"> |
<html:select styleId="person" styleClass="form-control" property="target"> |
<html:option value="students" key="submit.todo.message.students"/> |
<html:option value="teachers" key="submit.todo.message.teachers"/> |
<html:option value="teachers.students" key="submit.todo.message.teachers.students"/> |
</html:select> |
</div> |
</div> |
<div class="form-group row"> |
<div class="control-label col-sm-2" for="sendAnnouncementEmail"><bean:message key="submit.todo.message.subject"/></div> |
<div class="col-sm-10"> |
<html:text styleId="subject" styleClass="form-control" property="subject"/> |
</div> |
</div> |
<div class="form-group row"> |
<div class="col-sm-12"> |
<div class="btn-toolbar" data-role="editor-toolbar" data-target="#editor"> |
<!-- <div class="btn-group"> |
<a class="btn dropdown-toggle" data-toggle="dropdown" title="Font"><i class="aweicon-font"></i><b class="caret"></b></a> |
<ul class="dropdown-menu"> |
</ul> |
</div> |
<div class="btn-group"> |
<a class="btn dropdown-toggle" data-toggle="dropdown" title="Font Size"><i class="aweicon-text-height"></i> <b class="caret"></b></a> |
<ul class="dropdown-menu"> |
<li><a data-edit="fontSize 5"><font size="5">Huge</font></a></li> |
<li><a data-edit="fontSize 3"><font size="3">Normal</font></a></li> |
<li><a data-edit="fontSize 1"><font size="1">Small</font></a></li> |
</ul> |
</div>--> |
<div class="btn-group"> |
<a class="btn btn-default" data-edit="bold" title="Bold (Ctrl/Cmd+B)"><i class="aweicon-bold"></i></a> |
<a class="btn btn-default" data-edit="italic" title="Italic (Ctrl/Cmd+I)"><i class="aweicon-italic"></i></a> |
<a class="btn btn-default" data-edit="strikethrough" title="Strikethrough"><i class="aweicon-strikethrough"></i></a> |
<a class="btn btn-default" data-edit="underline" title="Underline (Ctrl/Cmd+U)"><i class="aweicon-underline"></i></a> |
</div> |
<div class="btn-group"> |
<a class="btn btn-default" data-edit="insertunorderedlist" title="Bullet list"><i class="aweicon-list-ul"></i></a> |
<a class="btn btn-default" data-edit="insertorderedlist" title="Number list"><i class="aweicon-list-ol"></i></a> |
<a class="btn btn-default" data-edit="outdent" title="Reduce indent (Shift+Tab)"><i class="aweicon-indent-left"></i></a> |
<a class="btn btn-default" data-edit="indent" title="Indent (Tab)"><i class="aweicon-indent-right"></i></a> |
</div> |
<div class="btn-group"> |
<a class="btn btn-default" data-edit="justifyleft" title="Align Left (Ctrl/Cmd+L)"><i class="aweicon-align-left"></i></a> |
<a class="btn btn-default" data-edit="justifycenter" title="Center (Ctrl/Cmd+E)"><i class="aweicon-align-center"></i></a> |
<a class="btn btn-default" data-edit="justifyright" title="Align Right (Ctrl/Cmd+R)"><i class="aweicon-align-right"></i></a> |
<a class="btn btn-default" data-edit="justifyfull" title="Justify (Ctrl/Cmd+J)"><i class="aweicon-align-justify"></i></a> |
</div> |
<div class="btn-group"> |
<a class="btn btn-default dropdown-toggle" data-toggle="dropdown" title="Hyperlink"><i class="aweicon-link"></i></a> |
<div class="dropdown-menu input-append"> |
<input class="span2" placeholder="URL" type="text" data-edit="createLink"/> |
<button class="btn" type="button">Add</button> |
</div> |
<a class="btn btn-default" data-edit="unlink" title="Remove Hyperlink"><i class="aweicon-cut"></i></a> |
</div> |
<div class="btn-group"> |
<a class="btn btn-default" title="Insert picture (or just drag & drop)" id="pictureBtn"><i class="aweicon-picture"></i></a> |
<input type="file" data-role="magic-overlay" data-target="#pictureBtn" data-edit="insertImage" /> |
</div> |
<div class="btn-group"> |
<a class="btn btn-default" data-edit="undo" title="Undo (Ctrl/Cmd+Z)"><i class="aweicon-undo"></i></a> |
<a class="btn btn-default" data-edit="redo" title="Redo (Ctrl/Cmd+Y)"><i class="aweicon-repeat"></i></a> |
</div> |
</div> |
<div id="editor"> |
<bean:message key="submit.todo.email.content"/>… |
</div> |
</div> |
</div> |
<button class="btn btn-success" onclick="this.form.text.value=$('#editor').html(); this.form.submit()"><bean:message key="submit.todo.message"/></button> |
</html:form> |
</div> |
</div> |
/branches/v3/impl/src/web/user/ftpclient/ftpclient.jsp |
---|
108,7 → 108,7 |
</div> |
</div> |
<div class="panel panel-default"> |
<div class="panel panel-default ftpClientPanel"> |
<div class="panel-heading"> |
<a class="btn btn-sm btn-warning" href="javascript:showOrHideOneWithStartId('FTP_NODE_')"><span class="glyphicon glyphicon-remove"> </span> Ver Comandos de Remoção de Ficheiros</a> |
/branches/v3/impl/src/web/user/home/teacher.jsp |
---|
14,7 → 14,7 |
<%@ page import="pt.estgp.estgweb.domain.dao.impl.CourseUnitDaoImpl" %> |
<%@ page import="pt.estgp.estgweb.utils.DatesUtils" %> |
<%@ page import="java.util.List" %> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSessionImpl" scope="request"/> |
<!-- PARA BOOTSTRAP NOVO PORTAL--> |
<%--<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/offcanvas.css"/>--%> |
30,7 → 30,26 |
<div class="row"> |
<div class="col-md-6 col-sm-12 col-xs-12" style="padding-right: 6px"> |
<baco:isModuleOn module="courseunits"> |
<div class="panel panel-primary"> |
<div class="panel-heading"><bean:message key="intranet.home.curricular"/></div> |
<div class="panel-body"> |
<!--<p><bean:message key="intranet.home.curricular"/></p>--> |
<!--<ul> |
<li>--> |
<div class="list-group"> |
<div class="list-group-item"> |
<html:link action="/user/startLoadCoursesProgramsFromHome"><bean:message key="courseunit.indexes"/></html:link> |
</div> |
<div class="list-group-item"> |
<html:link action="/user/courseComissions"><bean:message key="course.comissions"/></html:link> |
</div> |
</div> |
<!--</li> |
</ul>--> |
</div> |
</div> |
<% |
130,26 → 149,50 |
</div> |
<div class="col-md-6 col-sm-12 col-xs-12" style="padding-left: 6px"> |
<% |
if(UserSession.getUser().getRoles().indexOf("courseValidateProgram")>=0) |
{ |
%> |
<div class="panel panel-primary"> |
<div class="panel-heading">As minhas Comissões de Curso</div> |
<div class="panel-body"> |
<div class="panel panel-primary"> |
<div class="panel-heading"><bean:message key="intranet.home.curricular"/></div> |
<div class="panel-body"> |
<!--<p><bean:message key="intranet.home.curricular"/></p>--> |
<!--<ul> |
<li>--> |
<div class="list-group"> |
<div class="list-group-item"> |
<html:link action="/user/startLoadCoursesProgramsFromHome"><bean:message key="courseunit.indexes"/></html:link> |
<div class="list-group"> |
<div class="list-group-item"> |
<html:link action="/user/startSubmitMessageCourseComission"> |
Enviar email aos alunos |
</html:link> |
</div> |
<div class="list-group-item"> |
<html:link action="/user/courseComissions">Consultar estatisticas das Unidades Curriculares</html:link> |
</div> |
<div class="list-group-item"> |
<html:link action="/user/listStudentsCourseComission"> |
Consultar Alunos |
</html:link> |
</div> |
<div class="list-group-item"> |
<html:link action="/user/startSubmitMessageCourseComission"> |
Consultar Docentes |
</html:link> |
</div> |
<div class="list-group-item"> |
<html:link action="/user/startLoadCoursesProgramsFromHome?importYear=${UserSession.nowConfiguration.interfaceImportYear}&forUser=courseCommission">Atalho para as validações (${UserSession.nowConfiguration.interfaceImportYear})</html:link> |
</div> |
<div class="list-group-item"> |
<html:link action="/user/startLoadCoursesProgramsFromHome?importYear=${UserSession.nowConfiguration.previousInterfaceImportYear}&forUser=courseCommission">Atalho para as validações (${UserSession.nowConfiguration.previousInterfaceImportYear})</html:link> |
</div> |
</div> |
<!--</li> |
</ul>--> |
</div> |
<div class="list-group-item"> |
<html:link action="/user/courseComissions"><bean:message key="course.comissions"/></html:link> |
</div> |
</div> |
<!--</li> |
</ul>--> |
</div> |
</div> |
<jsp:include page="courseComission.jsp"/> |
<% |
} |
%> |
<% |
try{ |
HibernateUtils.getCurrentSession().beginTransaction(); |
240,8 → 283,8 |
} |
%> |
<jsp:include page="courseComission.jsp"/> |
</div> |
</div> |
/branches/v3/impl/src/web/user/home/user.jsp |
---|
11,43 → 11,33 |
<div class="row"> |
<div class="col-md-6 col-sm-12 col-xs-12"> |
<div class="panel panel-primary"> |
<div class="panel-heading"><bean:message key="intranet.home.curricular"/></div> |
<div class="panel-body"> |
<div class="list-group"> |
<div class="list-group-item"><html:link action="/user/startLoadCoursesProgramsFromHome"><bean:message key="courseunit.indexes"/> </html:link></div> |
<div class="list-group-item"> |
<a href="<%=request.getContextPath()%>/dir/utilsIntranet/horarios/intranet/escola/horarios.html">Horários</a> |
<baco:hasRole role="admin,all,services"> |
<div class="panel panel-primary"> |
<div class="panel-heading">Configurações do Sistema Baco V3</div> |
<div class="panel-body"> |
<div class="list-group"> |
<div class="list-group-item"><html:link action="/admin/configurations.do">Configurações Gerais do Sistema</html:link></div> |
<div class="list-group-item"><html:link action="/user/configurationGrades.do"><bean:message key="configuration.grades"/></html:link></div> |
<div class="list-group-item"><html:link action="/user/configurationDirectories.do"><bean:message key="configuration.directories"/></html:link></div> |
<div class="list-group-item"><html:link action="/user/configurationSchedulleTasks.do"><bean:message key="configuration.tasks"/></html:link></div> |
<div class="list-group-item"><a href="<%=request.getContextPath()%>/user/configurationUserRoles.do"><bean:message key="configuration.roles"/></a></div> |
</div> |
<div class="list-group-item"> |
<a href="<%=request.getContextPath()%>/dir/utilsIntranet/calEscolar/public/portal/CL20102011.pdf">Calendário Escolar</a> |
</div> |
<div class="list-group-item"> |
<a href="<%=request.getContextPath()%>/dir/utilsIntranet/secretaria/intranet/escola/secretaria.html">Secretaria</a> |
</div> |
<baco:hasRole role="admin,all,services,administrativeCouncil,courseCoordinator,courseDirector,scientificCouncil,pedagogicCouncil"> |
</baco:hasRole> |
</div> |
</div> |
</div> |
</baco:hasRole> |
<baco:hasRole role="admin,all,services"> |
<div class="panel panel-primary"> |
<div class="panel-heading">Ferramentas Académicas</div> |
<div class="panel-body"> |
<div class="list-group"> |
<baco:hasRole role="pedagogicCouncil"> |
<baco:hasRole role="pedagogicCouncil,all"> |
<div class="list-group-item"><html:link action="/user/coursePedagogicContents"><bean:message key="course.pedagogic.contents.admin"/> </html:link></div> |
</baco:hasRole> |
<baco:isAdmin> |
<div class="list-group-item"><html:link action="/admin/courseUnitsDeleteAdmin">Administração de Unidades Curriculares (Remoções)</html:link></div> |
</baco:isAdmin> |
<div class="list-group-item"><html:link action="/user/configurationGrades">Épocas de Avaliação</html:link></div> |
<baco:isAdmin> |
<div class="list-group-item"><a href="<%=request.getContextPath()%>/user/configurationUserRoles.do"><bean:message key="configuration.roles"/></a></div> |
</baco:isAdmin> |
<div class="list-group-item">Situação de Propinas de Alunos (Por implementar)</div> |
<div class="list-group-item"><html:link action="/user/findProfile"><bean:message key="profile.search.user"/></html:link></div> |
<div class="list-group-item"><html:link action="/user/startFindCourseUnitAdminFromServiceZone"><bean:message key="courseunit.search"/></html:link></div> |
86,6 → 76,28 |
</div> |
<div class="col-md-6 col-sm-12 col-xs-12"> |
<div class="panel panel-primary"> |
<div class="panel-heading"><bean:message key="intranet.home.curricular"/></div> |
<div class="panel-body"> |
<div class="list-group"> |
<div class="list-group-item"><html:link action="/user/startLoadCoursesProgramsFromHome"><bean:message key="courseunit.indexes"/> </html:link></div> |
<div class="list-group-item"> |
<a href="<%=request.getContextPath()%>/dir/utilsIntranet/horarios/intranet/escola/horarios.html">Horários</a> |
</div> |
<div class="list-group-item"> |
<a href="<%=request.getContextPath()%>/dir/utilsIntranet/calEscolar/public/portal/CL20102011.pdf">Calendário Escolar</a> |
</div> |
<div class="list-group-item"> |
<a href="<%=request.getContextPath()%>/dir/utilsIntranet/secretaria/intranet/escola/secretaria.html">Secretaria</a> |
</div> |
<baco:hasRole role="admin,all,services,administrativeCouncil,courseCoordinator,courseDirector,scientificCouncil,pedagogicCouncil"> |
</baco:hasRole> |
</div> |
</div> |
</div> |
<div class="panel panel-primary"> |
<div class="panel-heading">Comunicar</div> |
<div class="panel-body"> |
<div class="list-group"> |
/branches/v3/impl/src/web/user/home/courseComission.jsp |
---|
28,26 → 28,22 |
<p>No final de cada relatório existe um botão de validação para os membros das comissões dos cursos respectivos.</p> |
<% |
if(result1.size()>0) |
{ |
%> |
<div class="list-group"> |
<div class="list-group-item active">Fichas curriculares por validar</div> |
<% |
for(CourseUnitDaoImpl.CourseMissingValidationProgram mis:result1) |
{ |
%> |
<div class="list-group-item"><a href="<%=request.getContextPath()%>/user/startLoadCoursesProgramsFromHome.do?courseId=<%=mis.course.getId()%>#<%=mis.course.getId()%>"><%=mis.course.getName()%> (<%=mis.courseUnits.size()%>)</a></div> |
<% |
} |
%> |
</div> |
<div class="list-group"> |
<div class="list-group-item active">Fichas curriculares por validar</div> |
<% |
for(CourseUnitDaoImpl.CourseMissingValidationProgram mis:result1) |
{ |
%> |
<div class="list-group-item"><a href="<%=request.getContextPath()%>/user/startLoadCoursesProgramsFromHome.do?courseId=<%=mis.course.getId()%>#<%=mis.course.getId()%>"><%=mis.course.getName()%> (<%=mis.courseUnits.size()%>)</a></div> |
<% |
} |
%> |
</div> |
<% |
} |
58,17 → 54,17 |
{ |
%> |
<div class="list-group"> |
<div class="list-group-item active">Fichas curriculares por preencher</div> |
<% |
for(CourseUnitDaoImpl.CourseMissingValidationProgram mis:result0) |
{ |
%> |
<div class="list-group-item"><a href="<%=request.getContextPath()%>/user/startLoadCoursesProgramsFromHome.do?courseId=<%=mis.course.getId()%>#<%=mis.course.getId()%>"><%=mis.course.getName()%> (<%=mis.courseUnits.size()%>)</a></div> |
<% |
} |
%> |
</div> |
<div class="list-group"> |
<div class="list-group-item active">Fichas curriculares por preencher</div> |
<% |
for(CourseUnitDaoImpl.CourseMissingValidationProgram mis:result0) |
{ |
%> |
<div class="list-group-item"><a href="<%=request.getContextPath()%>/user/startLoadCoursesProgramsFromHome.do?courseId=<%=mis.course.getId()%>#<%=mis.course.getId()%>"><%=mis.course.getName()%> (<%=mis.courseUnits.size()%>)</a></div> |
<% |
} |
%> |
</div> |
<% |
} |
80,59 → 76,56 |
%> |
<div class="list-group"> |
<div class="list-group-item active">Relatórios de avaliação por validar |
<div class="list-group"> |
<div class="list-group-item active">Relatórios de avaliação por validar |
<% |
String sep = ""; |
if(activeDegrees != null) |
{ |
%> |
(graus em processo de validação: |
<% |
for(String activeDegree: activeDegrees) |
{ |
%> |
<%=sep + MessageResources.getInstance(request).getMessage("course."+activeDegree)%> |
<% |
sep = ", "; |
} |
%> |
) |
<% |
} |
%> |
</div> |
<% |
String sep = ""; |
if(activeDegrees != null) |
for(CourseUnitDaoImpl.CourseMissingValidationEvaluation mis:result2) |
{ |
%> |
(graus em processo de validação: |
<div class="list-group-item"><a href="javascript:showOrHide('evaluationValidate<%=mis.course.getId()%>')"><%=mis.course.getName()%> / <%=mis.course.getCode()%></a> (<%=mis.courseUnits.size()%>) |
<div id="evaluationValidate<%=mis.course.getId()%>" style="display: none"> |
<ul> |
<% |
for(CourseUnit cu: mis.courseUnits) |
{ |
%> |
<li><a href="<%=request.getContextPath()%>/user/startLoadCourseUnitEvaluation.do?courseUnitId=<%=cu.getId()%>"><%=cu.getName()%> / <%=cu.getCode()%></a></li> |
<% |
} |
%> |
</ul> |
</div> |
</div> |
<% |
for(String activeDegree: activeDegrees) |
{ |
%> |
<%=sep + MessageResources.getInstance(request).getMessage("course."+activeDegree)%> |
<% |
sep = ", "; |
} |
%> |
) |
<% |
} |
%> |
</div> |
<% |
for(CourseUnitDaoImpl.CourseMissingValidationEvaluation mis:result2) |
{ |
%> |
<div class="list-group-item"><a href="javascript:showOrHide('evaluationValidate<%=mis.course.getId()%>')"><%=mis.course.getName()%> / <%=mis.course.getCode()%></a> (<%=mis.courseUnits.size()%>) |
<div id="evaluationValidate<%=mis.course.getId()%>" style="display: none"> |
<ul> |
<% |
for(CourseUnit cu: mis.courseUnits) |
{ |
%> |
<li><a href="<%=request.getContextPath()%>/user/startLoadCourseUnitEvaluation.do?courseUnitId=<%=cu.getId()%>"><%=cu.getName()%> / <%=cu.getCode()%></a></li> |
<% |
} |
%> |
</ul> |
</div> |
</div> |
<% |
} |
%> |
<% |
} |
%> |
<% |
if(result3.size()>0) |
{ |
166,20 → 159,20 |
{ |
%> |
<div class="list-group-item"><a href="javascript:showOrHide('evaluationFill<%=mis.course.getId()%>')"><%=mis.course.getName()%> / <%=mis.course.getCode()%></a> (<%=mis.courseUnits.size()%>) |
<div id="evaluationFill<%=mis.course.getId()%>" style="display: none"> |
<ul> |
<% |
for(CourseUnit cu: mis.courseUnits) |
{ |
%> |
<li><a href="<%=request.getContextPath()%>/user/startLoadCourseUnitEvaluation.do?courseUnitId=<%=cu.getId()%>"><%=cu.getName()%> / <%=cu.getCode()%></a></li> |
<% |
} |
%> |
</ul> |
</div> |
</div> |
<div class="list-group-item"><a href="javascript:showOrHide('evaluationFill<%=mis.course.getId()%>')"><%=mis.course.getName()%> / <%=mis.course.getCode()%></a> (<%=mis.courseUnits.size()%>) |
<div id="evaluationFill<%=mis.course.getId()%>" style="display: none"> |
<ul> |
<% |
for(CourseUnit cu: mis.courseUnits) |
{ |
%> |
<li><a href="<%=request.getContextPath()%>/user/startLoadCourseUnitEvaluation.do?courseUnitId=<%=cu.getId()%>"><%=cu.getName()%> / <%=cu.getCode()%></a></li> |
<% |
} |
%> |
</ul> |
</div> |
</div> |
<% |
} |
%> |
189,7 → 182,7 |
} |
%> |
</div> |
</div> |
</div> |
<% |
/branches/v3/impl/src/web/user/home/topnavListStudentsCourseComission.jsp |
---|
New file |
0,0 → 1,10 |
<%@page contentType="text/html"%> |
<%@page pageEncoding="UTF-8"%> |
<%@page import="jomm.web.utils.NavPlaceServer"%> |
<%@ page import="jomm.web.utils.TopNav" %> |
<% |
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request); |
topNav.addNavPlace("/user/home.do", "intranet.separator.home"); |
topNav.addNavPlace(null, "list.students.course.commission"); |
%> |
<jsp:include page="/layout/topnav.jsp"/> |
Property changes: |
Added: svn:executable |
+ * |
/branches/v3/impl/src/web/user/home/userPae.jsp |
---|
11,12 → 11,25 |
<div class="row"> |
<div class="col-md-6 col-sm-12 col-xs-12"> |
<baco:hasRole role="admin,all,services"> |
<div class="panel panel-primary"> |
<div class="panel-heading">Configurações do Sistema Baco V3</div> |
<div class="panel-body"> |
<div class="list-group"> |
<div class="list-group-item"><html:link action="/admin/configurations.do">Configurações Gerais do Sistema</html:link></div> |
<div class="list-group-item"><html:link action="/user/configurationGrades.do"><bean:message key="configuration.grades"/></html:link></div> |
<div class="list-group-item"><html:link action="/user/configurationDirectories.do"><bean:message key="configuration.directories"/></html:link></div> |
<div class="list-group-item"><html:link action="/user/configurationSchedulleTasks.do"><bean:message key="configuration.tasks"/></html:link></div> |
<div class="list-group-item"><a href="<%=request.getContextPath()%>/user/configurationUserRoles.do"><bean:message key="configuration.roles"/></a></div> |
</div> |
</div> |
</div> |
</baco:hasRole> |
<baco:hasRole role="admin,all,services,questionarios.admin"> |
<div class="panel panel-primary"> |
<div class="panel-heading">Ferramentas Académicas (MODO BACO)</div> |
<div class="panel-body"> |
<div class="list-group"> |
<div class="list-group-item"><html:link action="/user/configurationSchedulleTasks.do"><bean:message key="configuration.tasks"/></html:link></div> |
<div class="list-group-item"><html:link action="/admin/courseUnitsDeleteAdmin">Administração de Unidades Curriculares (Remoções)</html:link></div> |
<div class="list-group-item"><html:link action="/user/courseComissions">Informação Adicional de Cursos</html:link></div> |
<div class="list-group-item"><html:link action="/user/startFindCourseUnitAdminFromServiceZone"><bean:message key="courseunit.search"/></html:link></div> |
/branches/v3/impl/src/web/user/home/topnavSubmitMessageCourseComission.jsp |
---|
New file |
0,0 → 1,10 |
<%@page contentType="text/html"%> |
<%@page pageEncoding="UTF-8"%> |
<%@page import="jomm.web.utils.NavPlaceServer"%> |
<%@ page import="jomm.web.utils.TopNav" %> |
<% |
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request); |
topNav.addNavPlace("/user/home.do", "intranet.separator.home"); |
topNav.addNavPlace(null, "submit.todo.message"); |
%> |
<jsp:include page="/layout/topnav.jsp"/> |
Property changes: |
Added: svn:executable |
+ * |
/branches/v3/impl/src/web/user/home/topnavCourseUnitStats.jsp |
---|
New file |
0,0 → 1,13 |
<%@page contentType="text/html"%> |
<%@page pageEncoding="UTF-8"%> |
<%@page import="jomm.web.utils.NavPlaceServer"%> |
<%@ page import="jomm.web.utils.TopNav" %> |
<jsp:useBean id="CourseUnitView" type="pt.estgp.estgweb.domain.views.CourseUnitView" scope="request"/> |
<% |
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request); |
topNav.addNavPlace("/user/startHome.do", "intranet.separator.home.back"); |
topNav.addNavPlace(null, "course",CourseUnitView.getCourseName()); |
topNav.addNavPlace("/user/startLoadCourseUnitFromHome.do?courseUnitView.id=" + CourseUnitView.getId(),CourseUnitView.getName() + " " + CourseUnitView.getImportYear()); |
topNav.addNavPlace(null, "course.unit.stats"); |
%> |
<jsp:include page="/layout/topnav.jsp"/> |
/branches/v3/impl/src/web/user/contacts/listCourseComissionStudents.jsp |
---|
New file |
0,0 → 1,143 |
<%@ page import="jomm.dao.impl.AbstractDao" %> |
<%@ page import="pt.estgp.estgweb.Globals" %> |
<%@ page import="pt.estgp.estgweb.domain.Student" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="java.util.ArrayList" %> |
<%@ page import="java.util.List" %> |
<%@ page import="org.hibernate.Criteria" %> |
<%@ page import="static org.hibernate.criterion.Restrictions.eq" %> |
<%@ page import="org.hibernate.criterion.Criterion" %> |
<%@ page import="static org.hibernate.criterion.Restrictions.eq" %> |
<%@ page import="static org.hibernate.criterion.Restrictions.or" %> |
<%@ page import="static org.hibernate.criterion.Restrictions.*" %> |
<%@ page import="org.hibernate.criterion.Order" %> |
<%@ page import="org.hibernate.criterion.Projections" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/baco.tld" prefix="baco" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSessionImpl" scope="request"/> |
<div class="panel panel-default"> |
<div class="panel-heading"> |
Listagem de alunos das comissões de curso |
</div> |
<div class="panel-body"> |
<% |
UserSession.getUser().getRolesList(); |
List<String> comissionsRoles = new ArrayList<String>(); |
for(String role: UserSession.getUser().getRolesList()) |
{ |
if(role.startsWith(Globals.COURSE_COMMISSION_PROGRAMS_ROLES_PRPFIX)) |
comissionsRoles.add(role); |
} |
if(comissionsRoles.size() == 0) |
{ |
%> |
<div class="alert alert-warning"> |
Lamentamos mas não têm qualquer comissão de curso associada |
</div> |
<% |
} |
else |
{ |
AbstractDao.getCurrentSession().beginTransaction(); |
for(String roleCourse: comissionsRoles) |
{ |
request.setAttribute("roleCourse",roleCourse); |
Criteria c = AbstractDao.getCurrentSession().createCriteria(Student.class) |
.setProjection(Projections.projectionList() |
.add(Projections.groupProperty("id")) |
.add(Projections.countDistinct("su.id")) |
.add(Projections.property("course.name")) |
.add(Projections.property("course.id")) |
.add(Projections.property("course.code"))) |
.createAlias("subscribedUnits", "su") |
.createAlias("su.course", "course") |
.add(eq("su.importYear", "201516")) |
.add(eq("course.validationRole", roleCourse)) |
; |
c.addOrder(Order.asc("name")); |
List<Object[]> students = c.list(); |
if(students.size() == 0) |
{ |
%> |
<h2><bean:message key="user.role.${roleCourse}"/> </h2> |
<div class="alert alert-info alert-small"> |
Não foram encontrados <%=students.size()%> alunos, inscritos no ano ${UserSession.nowConfiguration.interfaceImportYear} |
</div> |
<% |
} |
else |
{ |
// |
// List<Student> students = DaoFactory.getStudentDaoImpl().loadFromCoursesWithValidationRoles(comissionsRoles,UserSession.getNowConfiguration().getInterfaceImportYear()); |
%> |
<h2><bean:message key="user.role.${roleCourse}"/></h2> |
<div class="alert alert-info alert-small"> |
Foram encontrados <%=students.size()%> alunos, inscritos no ano ${UserSession.nowConfiguration.interfaceImportYear} |
</div> |
<table class="tablesorterfiltered"> |
<thead> |
<tr> |
<th>Número</th> |
<th>Nome</th> |
<th>Email</th> |
<th>Telefone</th> |
<th class="filter-name filter-select">Situação de Propinas</th> |
<th>Cadeiras Inscrito em ${UserSession.nowConfiguration.interfaceImportYear}</th> |
<th>Notas</th> |
</tr> |
</thead> |
<tbody> |
<% |
for(Object[] student: students) |
{ |
Long studentId = (Long) student[0]; |
Integer cadeirasInscrito = (Integer) student[1]; |
String courseName = (String) student[2]; |
Long courseId = (Long) student[3]; |
String courseCode = (String) student[4]; |
Student s = DaoFactory.getStudentDaoImpl().load(studentId); |
request.setAttribute("student",s); |
%> |
<tr> |
<td>${student.sigesCode}</td> |
<td>${student.name}</td> |
<td>${student.email}</td> |
<td>${student.phonenumber}</td> |
<td><bean:message key="yeas.no.${student.propinasEmDia}"/></td> |
<td> |
<a class="btn btn-default" href="#" data-href="<%=request.getContextPath()%>/public/profile/profileHomeAjax.jsp?userId=${student.id}" data-title="Notas do aluno ${student.name} (${student.sigesCode})" data-toggle="modal" data-target="#modalAjaxRequest"> |
<%=cadeirasInscrito%> |
</a> |
<td> |
<a class="btn btn-default" href="#" data-href="<%=request.getContextPath()%>/public/profile/profileGradesAjax.jsp?userId=${student.id}" data-title="Notas do aluno ${student.name} (${student.sigesCode})" data-toggle="modal" data-target="#modalAjaxRequest"> |
Notas |
</a> |
</td> |
</tr> |
<% |
} |
%> |
</tbody> |
</table> |
<% |
} |
} |
AbstractDao.getCurrentSession().getTransaction().commit(); |
} |
%> |
</div> |
</div> |