Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 1350 → Rev 1353

/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>&nbsp;<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"/>&hellip;
</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>