Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 1573 → Rev 1579

/branches/v3/impl/src/web/user/questionarios/topnavQuestionarioReportList.jsp
File deleted
\ No newline at end of file
/branches/v3/impl/src/web/user/questionarios/reports/adminReport.jsp
New file
0,0 → 1,154
<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="jomm.utils.MessageResources" %>
<%@ page import="pt.estgp.estgweb.domain.JobServiceTaskImpl" %>
<%@ page import="pt.estgp.estgweb.domain.QuestionarioReportFileGroupImpl" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="pt.estgp.estgweb.web.form.configuration.SchedulleTasksForm" %>
<%@ 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" %>
<%--
Created by IntelliJ IDEA.
User: jorgemachado
Date: 29/12/16
Time: 11:47
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
String id = request.getParameter("questionarioReportFileGroup.id");
AbstractDao.getCurrentSession().beginTransaction();
QuestionarioReportFileGroupImpl group = (QuestionarioReportFileGroupImpl) DaoFactory.getQuestionarioReportFileGroupDaoImpl().load(Long.parseLong(id));
request.setAttribute("group",group);
 
 
JobServiceTaskImpl job = group.getReportGenerationTaskId() > 0 ?
(JobServiceTaskImpl) DaoFactory.getJobServiceTaskDaoImpl().load(group.getReportGenerationTaskId()) :
null;
request.setAttribute("Job", job);
 
%>
 
 
<div class="panel panel-default" id="reportParameterInputsApp" ng-app="reportParameterInputsApp" ng-controller="reportParameterInputsAppController">
<div class="panel-heading">
Administração do Report ${group.id}
</div>
<div class="panel-body">
<html:form styleClass="form-horizontal" action="/user/questionariosReportsPae">
<div class="web-messages"></div><!--For Widgets Use-->
<html:errors/>
<jomm:messages/>
<jsp:useBean id="QuestionarioReportGroupForm" type="pt.estgp.estgweb.web.form.questionarios.QuestionarioReportGroupForm" scope="request"/>
 
<%
QuestionarioReportGroupForm.setQuestionarioReportFileGroup(group);
%>
<html:hidden property="questionarioReportFileGroup.id"/>
<html:hidden property="parametersArrayObtainedFromWidget" value="{{ inputsJson }}"/>
<html:hidden property="questionarioReportFileGroup.reportProcessorClass"/>
<input type="hidden" name="dispatch" value="save"/>
<div class="form-group">
<label class="col-md-2 control-label">Titulo do Grupo de Relatórios</label>
<div class="col-md-10">
<html:text styleClass="form-control" property="questionarioReportFileGroup.title"/>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Tipo</label>
<div class="col-md-10">
<label class="bg-info" style="padding:2px"><bean:message key="${group.reportProcessorClass}"/></label>
</div>
</div>
 
<div class="form-group">
<label class="col-md-2 control-label">Parametros de Serviço</label>
<div class="col-md-6">
<div class="list-group">
<div class="list-group-item" ng-repeat="i in inputsJson">
<div class="list-group-item"><label class="bg-info"/>{{ i.name }}</label>: {{ i.value }}</div>
</div>
</div>
</div>
<script>
 
//DECLARACAO DA APLICACAO LOCAL EM ANGULAR
var reportParameterInputsApp = angular.module('reportParameterInputsApp', []);
GLOBAL_BacoAngularAppDependencies.push('reportParameterInputsApp');
 
reportParameterInputsApp.controller('reportParameterInputsAppController', function($scope) {
$scope.inputsJson = <%=group.getInputsJson()%>;//apenas para a vista
});
 
function reloadInputs()
{
 
widgetCallWithParameters("reloadInputs",
 
{ "questionarioReportFileGroup.id" : ${group.id} },
 
$("#reportParameterInputsApp form")[0], //tem d ser com [0] para obter o JavaScript Object original e nao o prototype do JQUERY
// apenas para uso do div web-messages
 
function(response)
{
angular.element($("#reportParameterInputsApp")).scope().inputsJson = response.jsonInputs;
angular.element($("#reportParameterInputsApp")).scope().$apply();
}
);
}
</script>
<div class="col-md-4">
<a class="btn btn-default" href="#"
data-callback-target-function="reloadInputs"
data-href="<%=request.getContextPath()%>${group.reportGeneratorInstance.widgetAdminInterface}?questionarioReportFileGroup.id=${group.id}" data-title="Administração de Parametros de Serviço" data-toggle="modal" data-target="#modalAjaxRequest">
<span class="glyphicon glyphicon-wrench"> </span> Parametros
</a>
</div>
 
 
 
<div class="col-sm-12">
<%
if(job != null)
{
SchedulleTasksForm schedulleTasksForm = new SchedulleTasksForm();
schedulleTasksForm.setJobServiceTask(job);
schedulleTasksForm.setId(job.getId());
request.setAttribute("SchedulleTasksForm",schedulleTasksForm);
if(job.getStatusEnum() == JobServiceTaskImpl.JobStatus.FAILED ||
job.getStatusEnum() == JobServiceTaskImpl.JobStatus.UNKNOWN_ERROR ||
job.getStatusEnum() == JobServiceTaskImpl.JobStatus.FINISHED_ERRORS )
{
%>
<div class="alert alert-danger"><%=MessageResources.getInstance(request).getMessage("job.status."+job.getStatus())%>, Consulte o Log</div>
<%
}
%>
<div class="task-log task-log-xs" data-href="<%=request.getContextPath()%>/user/startAdminQuestionariosReportsGroup.do?questionarioReportFileGroup.id=${group.id}">
<jsp:include page="/admin/configuration/taskLog.jsp"/>
</div>
<%
}
else
{
%>
<div class="alert alert-danger">O sistema não conseguiu encontrar a tarefa de atribuição nas tarefas agendadas, por favor verifique em todos os logs de tarefas <html:link action="/user/configurationJobTasks">Aqui</html:link> </div>
<%
}
%>
</div>
 
</div>
<button type="button" class="btn btn-warning" onclick="set(form,'runJobGenerate'),form.submit();">Gerar Relatórios</button>
</html:form>
</div>
</div>
 
<%
AbstractDao.getCurrentSession().getTransaction().commit();
%>
/branches/v3/impl/src/web/user/questionarios/reports/newReport.jsp
25,7 → 25,7
</script>
<html:form styleClass="form-horizontal" action="/user/questionariosReportsPae" enctype="multipart/form-data" onsubmit="updateIntroHtml()">
<input type="hidden" name="dispatch" value="saveReportGroup">
<jsp:useBean id="QuestionarioReportForm" type="pt.estgp.estgweb.web.form.questionarios.QuestionarioReportForm" scope="request"/>
<jsp:useBean id="QuestionarioReportGroupForm" type="pt.estgp.estgweb.web.form.questionarios.QuestionarioReportGroupForm" scope="request"/>
 
 
<div class="panel panel-default">
47,7 → 47,7
<html:select styleId="reportFileGroupClass" styleClass="form-control" property="reportFileGroupClass">
<option value="">Escolha um Tipo de Relatório</option>
<option value="pt.estgp.estgweb.domain.QuestionarioReportFileGroupCursosAnoImpl">Relatórios de Curso Publicos</option>
<option value="pt.estgp.estgweb.domain.QuestionarioReportFileGroupDocentesAno">Relatórios de Docentes</option>
<option value="pt.estgp.estgweb.domain.QuestionarioReportFileGroupDocentesAnoImpl">Relatórios de Docentes</option>
</html:select>
</div>
</div>
/branches/v3/impl/src/web/user/questionarios/reports/reportsList.jsp
52,28 → 52,28
List<QuestionarioReportFileGroup> questionariosFileGroups = DaoFactory.getQuestionarioReportFileGroupDaoImpl().findAll();
 
//As transacoes tem de estar fechadas para se chamar a tag initClearances
for(QuestionarioReportFileGroup q: questionariosFileGroups)
for(QuestionarioReportFileGroup reportFileGroup: questionariosFileGroups)
{
 
request.setAttribute("q",q);
request.setAttribute("reportFileGroup",reportFileGroup);
%>
 
<tr>
<td>${q.id}</td>
<td>${q.title}</td>
<td>${reportFileGroup.id}</td>
<td>${reportFileGroup.title}</td>
<td>
<div class="list-group">
<logic:iterate id="input" name="q" property="inputs" type="pt.estgp.estgweb.domain.utils.InputDrivenInput">
<logic:iterate id="input" name="reportFileGroup" property="inputs" type="pt.estgp.estgweb.domain.utils.InputDrivenInput">
<div class="list-group-item">${input.inputName}: ${input.inputValue}</div>
</logic:iterate>
</div>
</td>
<td>
<html:link styleClass="btn btn-default" action="/user/adminQuestionario?questionario.id=${q.id}">Admin</html:link>
<html:link styleClass="btn btn-default" action="/user/startAdminQuestionariosReportsGroup?questionarioReportFileGroup.id=${reportFileGroup.id}">Admin</html:link>
</td>
<td><%=pt.estgp.estgweb.web.utils.DatesUtils.getStringFromDate(q.getUpdateDate())%></td>
<td><%=pt.estgp.estgweb.web.utils.DatesUtils.getStringFromDate(reportFileGroup.getUpdateDate())%></td>
<td>
<button class="btn btn-danger" data-href="<%=request.getContextPath()%>/user/deleteQuestionario.do?questionario.id=${q.id}" data-message="Tem a certeza que deseja eliminar o questionário ${q.id}?" data-toggle="modal" data-target="#confirm-ModalGeneric">
<button class="btn btn-danger" data-href="<%=request.getContextPath()%>/user/deleteQuestionario.do?questionario.id=${reportFileGroup.id}" data-message="Tem a certeza que deseja eliminar o questionário ${reportFileGroup.id}?" data-toggle="modal" data-target="#confirm-ModalGeneric">
<span class="glyphicon glyphicon-remove small"> </span>
</button>
</td>
/branches/v3/impl/src/web/user/questionarios/reports/widgets/adminAlunosType.jsp
New file
0,0 → 1,147
<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="pt.estgp.estgweb.domain.QuestionarioReportFileGroupAnoImpl" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ 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-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" %>
 
<%
String id = request.getParameter("questionarioReportFileGroup.id");
 
AbstractDao.getCurrentSession().beginTransaction();
QuestionarioReportFileGroupAnoImpl group = (QuestionarioReportFileGroupAnoImpl) DaoFactory.getQuestionarioReportFileGroupDaoImpl().load(Long.parseLong(id));
request.setAttribute("group",group);
%>
<div class="panel panel-default">
<div class="panel-heading">
Parametros especificos de relatórios de alunos ${group.id}
</div>
<div class="panel-body">
<html:form styleClass="form-horizontal" action="/user/questionariosReportsAdminAlunosWidget">
<jsp:useBean id="ReportAdminAlunosWidgetForm" type="pt.estgp.estgweb.web.form.questionarios.widgets.ReportAdminAlunosWidgetForm" scope="request"/>
 
<%
ReportAdminAlunosWidgetForm.setAno(group.getImportYear());
 
ReportAdminAlunosWidgetForm.setAnuais(group.hasAnuais());
ReportAdminAlunosWidgetForm.setSemestre1(group.hasSemestre1());
ReportAdminAlunosWidgetForm.setSemestre2(group.hasSemestre2());
ReportAdminAlunosWidgetForm.setTrimestre1(group.hasTrimestre1());
ReportAdminAlunosWidgetForm.setTrimestre2(group.hasTrimestre2());
ReportAdminAlunosWidgetForm.setTrimestre3(group.hasTrimestre3());
ReportAdminAlunosWidgetForm.setTrimestre4(group.hasTrimestre4());
 
ReportAdminAlunosWidgetForm.setLicenciaturas(group.hasLicenciaturas());
ReportAdminAlunosWidgetForm.setMestrados(group.hasMestrados());
ReportAdminAlunosWidgetForm.setTesps(group.hasTesps());
ReportAdminAlunosWidgetForm.setCets(group.hasCets());
%>
 
<html:hidden property="questionarioReportGroupId" value="${group.id}"/>
<div class="web-messages"></div>
<div class="form-group">
<label class="col-md-2 control-label">Ano lectivo ao qual se aplica</label>
<div class="col-md-10">
<%
List<String> years = DatesUtils.getImportYears(10);
request.setAttribute("years",years);
%>
<html:select property="ano" styleClass="form-control">
<logic:iterate id="year" name="years">
<html:option value="${year}">${year}</html:option>
</logic:iterate>
</html:select>
</div>
</div>
 
<div class="form-group">
<label class="col-md-2 control-label">Tipos de Cursos</label>
<div class="col-md-10">
<div class="list-group">
<div class="list-group-item"><html:checkbox property="licenciaturas"/> Licenciaturas</div>
<div class="list-group-item"><html:checkbox property="mestrados"/> Mestrados</div>
<div class="list-group-item"><html:checkbox property="tesps"/> CTesP</div>
<div class="list-group-item"><html:checkbox property="cets"/> CET</div>
</div>
</div>
</div>
 
<div class="form-group">
<script>
$(".semestre1Check").attr("data-toogle","toggle");
$('.semestre1Check').bootstrapToggle({
on: 'Sim',
off: 'Não'
});
 
$(".semestre2Check").attr("data-toogle","toggle");
$('.semestre2Check').bootstrapToggle({
on: 'Sim',
off: 'Não'
});
$('.semestre1All').bootstrapToggle({
on: 'Sim',
off: 'Não'
});
$('.semestre2All').bootstrapToggle({
on: 'Sim',
off: 'Não'
});
 
function selectAll(classType,source)
{
 
$("." + classType).each(
function()
{
if($(source).prop("checked"))
$(this).bootstrapToggle('on');
else
$(this).bootstrapToggle('off');
});
}
</script>
<label class="col-md-2 control-label">Periodos</label>
<div class="col-md-5">
<div class="list-group">
<div class="list-group-item list-group-item-heading"><input class="semestre1All" type="checkbox" onchange="selectAll('semestre1Check',this)"> Final 1º Semestre</div>
<div class="list-group-item"><html:checkbox styleClass="semestre1Check" property="semestre1"/> 1º Semestre</div>
<div class="list-group-item"><html:checkbox styleClass="semestre1Check" property="trimestre1"/> 1º Trimestre</div>
<div class="list-group-item"><html:checkbox styleClass="semestre1Check" property="trimestre2"/> 2º Trimestre</div>
</div>
</div>
<div class="col-md-5">
<div class="list-group">
<div class="list-group-item list-group-item-heading"><input class="semestre2All" type="checkbox" onchange="selectAll('semestre2Check',this)"> Final 2º Semestre</div>
<div class="list-group-item"><html:checkbox styleClass="semestre2Check" property="anuais"/> Anuais</div>
<div class="list-group-item"><html:checkbox styleClass="semestre2Check" property="semestre2"/> 2º Semestre</div>
<div class="list-group-item"><html:checkbox styleClass="semestre2Check" property="trimestre3"/> 3º Trimestre</div>
<div class="list-group-item"><html:checkbox styleClass="semestre2Check" property="trimestre4"/> 4º Trimestre</div>
</div>
</div>
</div>
<div class="web-messages"></div>
<button class="btn btn-success pull-right" type="button" onclick="saveAlunosParameters(form)">Salvar</button>
<script>
function saveAlunosParameters(form)
{
widgetSimpleCall("save",form,function()
{
<%
String callbackTargetFunction = request.getParameter("callback-target-function");
%>
window['<%=callbackTargetFunction%>']();
$('#modalAjaxRequest').modal('hide');
});
}
</script>
</html:form>
</div>
</div>
/branches/v3/impl/src/web/user/questionarios/reports/topnavQuestionarioReportAdmin.jsp
New file
0,0 → 1,12
<%@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/homePae.do", "intranet.separator.home.back");
topNav.addNavPlace("/user/listQuestionariosReports.do", "surveys.reports");
topNav.addNavPlace(null, "surveys.reports.admin");
%>
<jsp:include page="/layout/topnav.jsp"/>
/branches/v3/impl/src/web/user/questionarios/reports/topnavQuestionarioReportList.jsp
New file
0,0 → 1,11
<%@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/homePae.do", "intranet.separator.home.back");
topNav.addNavPlace(null, "surveys.reports");
%>
<jsp:include page="/layout/topnav.jsp"/>