Rev 1524 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="pt.estgp.estgweb.domain.DomainObjectFactory" %>
<%@ page import="pt.estgp.estgweb.domain.EventClass" %>
<%@ page import="pt.estgp.estgweb.domain.EventFormacoes" %>
<%@ 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" %>
<%
try{
%>
<baco:hasRole role="admin,all,event_class_manager">
<%
String classIdObj = request.getParameter("classId");
long classIdLong = 0;
if(classIdObj != null)
{
classIdLong = Long.parseLong(classIdObj);
}
EventFormacoes event = null;
AbstractDao.getCurrentSession().beginTransaction();
EventClass eventClass;
if(request.getAttribute("MyEventFormacoesForm") == null)
{
if(request.getParameter("eventId") != null )
{
event = DaoFactory.getEventFormacoesDaoImpl().load(Long.parseLong(request.getParameter("eventId")));
eventClass = event.getEventClass();
}
else
{
event = DomainObjectFactory.createEventFormacoesImpl();
eventClass = DaoFactory.getEventClassDaoImpl().load(classIdLong);
}
request.setAttribute("eventClass",eventClass);
}
else
{
pt.estgp.estgweb.web.form.events.MyEventFormacoesForm myEventFormacoesForm = (pt.estgp.estgweb.web.form.events.MyEventFormacoesForm) request.getAttribute("MyEventFormacoesForm");
eventClass = DaoFactory.getEventClassDaoImpl().load(myEventFormacoesForm.getEventClassId());
}
%>
<script>
$(document).ready(function(){
$('input[type=checkbox]').bootstrapToggle({
on: 'Sim',
off: 'Não'
});
});
</script>
<div class="panel panel-default">
<div class="panel-heading">Criar uma Formação na classe <%=eventClass.getName()%></div>
<div class="panel-body">
<div class="text-info" id="saveProgress"></div>
<html:errors/>
<html:form styleId="FormEvent" action="/user/submitEventFormacoes" styleClass="form-horizontal" enctype="multipart/form-data">
<input type="hidden" name="dispatch" value="saveEvent">
<html:hidden property="eventClassId" value="${eventClass.id}"/>
<jsp:useBean id="MyEventFormacoesForm" type="pt.estgp.estgweb.web.form.events.MyEventFormacoesForm" scope="request"/>
<%
if(event != null)
{
MyEventFormacoesForm.setEvent(event);
if(event.getDataAberturaFormulario() != null)
MyEventFormacoesForm.setDataAberturaFormulario(DatesUtils.getStringFromDate(event.getDataAberturaFormulario()));
if(event.getDataFechoFormulario() != null)
MyEventFormacoesForm.setDataFechoFormulario(DatesUtils.getStringFromDate(event.getDataFechoFormulario()));
if(event.getDataPublicacao() != null)
MyEventFormacoesForm.setDataPublicacao(DatesUtils.getStringFromDate(event.getDataPublicacao()));
if(event.getDataInicio() != null)
MyEventFormacoesForm.setDataInicio(DatesUtils.getStringFromDate(event.getDataInicio()));
}
%>
<html:hidden property="event.id"/>
<%--INFORMACAO DE CONTROLO--%>
<div class="panel panel-warning">
<div class="panel panel-heading">Controlo</div>
<div class="panel-body">
<div class="form-group">
<label class="control-label col-sm-2">Evento Activo</label>
<div class="col-sm-10">
<html:select styleClass="form-control" property="event.ativo">
<html:option value="true">Sim</html:option>
<html:option value="false">Não</html:option>
</html:select>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="dataAberturaFormulario">Data Abertura Formulário</label>
<div class="col-sm-8">
<div class="input-group date datetimepicker" >
<html:text styleClass="form-control" property="dataAberturaFormulario" styleId="dataAberturaFormulario" />
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
<div class="col-sm-2">
<button type="button" class="btn btn-danger" onClick="$('#dataAberturaFormulario').val('')"><span class="glyphicon glyphicon-remove"></span></button>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="dataFechoFormulario">Data de Fecho do Formulário</label>
<div class="col-sm-8">
<div class="input-group date datetimepicker" >
<html:text styleClass="form-control" property="dataFechoFormulario" styleId="dataFechoFormulario" />
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
<div class="col-sm-2">
<button type="button" class="btn btn-danger" onClick="$('#dataFechoFormulario').val('')"><span class="glyphicon glyphicon-remove"></span></button>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="dataPublicacao">Data de Publicação (API's)*</label>
<div class="col-sm-8">
<div class="input-group date datetimepicker" >
<html:text styleClass="form-control" property="dataPublicacao" styleId="dataPublicacao" />
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
<div class="col-sm-2">
<button type="button" class="btn btn-danger" onClick="$('#dataPublicacao').val('')"><span class="glyphicon glyphicon-remove"></span></button>
</div>
</div>
<div class="text-info">
* Data de Publicação (API's) - Data a partir da qual o sistema publica através de API's automáticas JSON para sistemas externos como por exemplo o site do IPP.
</div>
<div class="form-group">
<label class="control-label col-sm-2">Utilizadores Permitidos **</label>
<div class="col-sm-10">
<html:select styleClass="form-control" property="event.ativo">
<html:option value="false">Anónimos que efetuam registo no ato de inscrição</html:option>
<html:option value="true">Apenas utilizadores ALUNO previamente registados na plataforma</html:option>
</html:select>
</div>
</div>
<div class="text-info">
** Utilizadores Permitidos - Utilizadores Tipo Aluno registados no sistema PAE ou utilizadores anónimos que são criados no ato do registo e aos quais é atribuido um código SIGES superior a 1.000.000 (1 Milhão).
Professores que desejem frequentar formações terão de ter obrigatóriamente um segundo utilizador tipo Aluno registado na plataforma PAE.
</div>
<div class="form-group">
<label class="control-label col-sm-2">Categoria (Para efeitos de apresentação)</label>
<div class="col-sm-10">
<html:text styleClass="form-control" property="event.category"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Sub Categoria (Para efeitos de apresentação)</label>
<div class="col-sm-10">
<html:text styleClass="form-control" property="event.subCategory"/>
</div>
</div>
</div>
</div>
<%--INFORMACAO DESECRITIVA--%>
<div class="panel panel-default">
<div class="panel-heading">Informação Descritiva</div>
<div class="panel-body">
<div class="form-group">
<label class="control-label col-sm-2">Titulo</label>
<div class="col-sm-10">
<html:text styleClass="form-control" property="event.title"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Descrição</label>
<div class="col-sm-10">
<html:textarea rows="5" styleClass="form-control" property="event.description"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Observações</label>
<div class="col-sm-10">
<html:textarea rows="5" styleClass="form-control" property="event.observacoes"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Locais</label>
<div class="col-sm-10">
<html:textarea rows="5" styleClass="form-control" property="event.locais"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="dataInicio">Data de Inicio da Formação</label>
<div class="col-sm-8">
<div class="input-group date datetimepicker" >
<html:text styleClass="form-control" property="dataInicio" styleId="dataInicio" />
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
<div class="col-sm-2">
<button type="button" class="btn btn-danger" onClick="$('#dataInicio').val('')"><span class="glyphicon glyphicon-remove"></span></button>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Informação prévia a apresentar no ato do registo</label>
<div class="col-sm-10">
<html:textarea rows="5" styleClass="form-control" property="event.preInformation"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Informação a apresentar após o registo ter sido efetuado</label>
<div class="col-sm-10">
<html:textarea rows="5" styleClass="form-control" property="event.afterRegisterInformation"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Ficheiro com Folheto promocional</label>
<div class="col-sm-10">
<label class="btn btn-default btn-file">
Adicionar Ficheiro <html:file styleClass="form-control" property="flyerFile" style="display: none;"/>
</label>
</div>
</div>
</div>
</div>
<%--CAMPOS DESEJADOS PARA O REGISTO--%>
<div class="panel panel-default">
<div class="panel-heading">Campos opcionais abertos no Formulário</div>
<div class="panel-body">
<div class="form-group">
<label class="control-label col-sm-2">Sexo</label>
<div class="col-sm-10">
<html:checkbox property="event.sexo"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Morada</label>
<div class="col-sm-10">
<html:checkbox property="event.morada"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">País</label>
<div class="col-sm-10">
<html:checkbox property="event.pais"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Data de Nascimento</label>
<div class="col-sm-10">
<html:checkbox property="event.dataNascimento"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Número de Contribuinte Fiscal</label>
<div class="col-sm-10">
<html:checkbox property="event.nif"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Número Cartão Cidadão</label>
<div class="col-sm-10">
<html:checkbox property="event.bi"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Telefone 1</label>
<div class="col-sm-10">
<html:checkbox property="event.telefone1"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Telefone 2</label>
<div class="col-sm-10">
<html:checkbox property="event.telefone2"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Empresa</label>
<div class="col-sm-10">
<html:checkbox property="event.empresa"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Escolaridade</label>
<div class="col-sm-10">
<html:checkbox property="event.escolaridade"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Profissão</label>
<div class="col-sm-10">
<html:checkbox property="event.profissao"/>
</div>
</div>
</div>
</div>
<%--CAMPOS ESPECIFICOS DE FORMAÇÔES--%>
<div class="panel panel-primary">
<div class="panel-heading">Informação Especifica dos Eventos tipo Formações</div>
<div class="panel-body">
<div class="form-group">
<label class="control-label col-sm-2">Referência de Controlo</label>
<div class="col-sm-10">
<html:text styleClass="form-control" property="event.referencia"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Unidade Orgânica</label>
<div class="col-sm-10">
<html:select styleClass="form-control" property="event.unidadeOrganica">
<html:option value="ESTG">Escola Superior de Tecnologia e Gestão</html:option>
<html:option value="ESECS">Escola Superior de Educação e Ciências Sociais</html:option>
<html:option value="ESAE">Escola Superior Agrária de Elvas</html:option>
<html:option value="ESS">Escola Superior de Saúde</html:option>
<html:option value="IPP">Instituto Politécnico de Portalegre</html:option>
</html:select>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Local de Realização (Sala, Laboratório, ...)</label>
<div class="col-sm-10">
<html:text styleClass="form-control" property="event.localDeRealizacao"/>
</div>
</div>
<script>
$(document).ready(
function(){
$("#eventoDominioSelect").change(
function(){
if($(this).val() == 'Outro'){$('#outroDominioDiv').show();}else{$('#outroDominioDiv').val('');$('#outroDominioDiv').hide();}
}
);
}
);
</script>
<div class="form-group">
<label class="control-label col-sm-2">Dominio</label>
<div class="col-sm-10">
<html:select styleId="eventoDominioSelect" styleClass="form-control" property="event.dominio">
<html:option value="">Escolha</html:option>
<html:option value="Gestao">Gestão</html:option>
<html:option value="Informatica">Informática</html:option>
<html:option value="Marketing">Marketing</html:option>
<html:option value="Outro">Outro</html:option>
</html:select>
</div>
</div>
<%
if(event.getDominio() != null && event.getDominio().equals("Outro"))
{
%>
<script>
$(document).ready(
function(){
$('#outroDominioDiv').hide();
}
);
</script>
<%
}
%>
<div id="outroDominioDiv" class="form-group">
<label class="control-label col-sm-2">Outro dominio, qual?</label>
<div class="col-sm-10">
<html:text styleClass="form-control" property="event.outroDominio"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Destinatários</label>
<div class="col-sm-10">
<html:textarea rows="3" styleClass="form-control" property="event.destinatarios"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Conteúdos Leccionados</label>
<div class="col-sm-10">
<html:textarea rows="10" styleClass="form-control" property="event.conteudos"/>
</div>
</div>
</div>
</div>
<div class="panel panel-primary">
<div class="panel-heading">Gestão Finânceira de Abertura</div>
<div class="panel-body">
<div class="form-group">
<label class="control-label col-sm-2">Status da Formação</label>
<div class="col-sm-10">
<html:select styleClass="form-control" property="event.status">
<html:option value="Construcao">Em Construção</html:option>
<html:option value="Activa">Activa</html:option>
<html:option value="Concluida">Concluida</html:option>
</html:select>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Número de Vagas</label>
<div class="col-sm-10">
<div class="input-group">
<span class="input-group-addon"><i class="icon icon-users"></i></span>
<html:text styleClass="form-control" property="event.numeroVagas"/>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Duração em Horas</label>
<div class="col-sm-10">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-hourglass"></i></span>
<html:text styleClass="form-control" property="event.duracaoHoras"/>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">ECTS</label>
<div class="col-sm-10">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-education"></i></span>
<html:text styleClass="form-control" property="event.ects"/>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Dias de Duração</label>
<div class="col-sm-10">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-hourglass"></i></span>
<html:text styleClass="form-control" property="event.diasDuracao"/>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Custo Previsto da Formação</label>
<div class="col-sm-10">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-euro"></i></span>
<html:text styleClass="form-control" property="event.custoFormacao"/>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Preço da Inscrição por Formando</label>
<div class="col-sm-10">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-euro"></i></span>
<html:text styleClass="form-control" property="event.precoFormando"/>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Percentagem de Lucro de Abertura</label>
<div class="col-sm-10">
<div class="input-group">
<span class="input-group-addon">%</span>
<html:text styleClass="form-control" property="event.percentagemMinimaLucro"/>
</div>
</div>
</div>
</div>
</div>
<!-- Success message -->
<style>
#success_message{ display: none;}
</style>
<div class="alert alert-success" role="alert" id="success_message">Success <i class="glyphicon glyphicon-thumbs-up"></i> Thanks for contacting us, we will get back to you shortly.</div>
<button type="submit" class="btn btn-success"><bean:message key="confirm"/></button>
</html:form>
</div>
</div>
<%
AbstractDao.getCurrentSession().getTransaction().commit();
%>
</baco:hasRole>
<script>
$(document).ready(function() {
$('#FormEvent').bootstrapValidator({
// To use feedback icons, ensure that you use Bootstrap v3.1.0 or later
feedbackIcons: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
'event.title': {
validators: {
stringLength: {
min: 2,
message: "Este título não é válido"
},
notEmpty: {
message: 'Por favor coloque um titulo para a formação'
}
}
}
,'event.numeroVagas': {
validators: {
numeric: {
message: "O Número de vagas têm de ser um número"
},
notEmpty: {
message: 'Por favor coloque um número de vagas para a formação'
}
}
}
,'event.duracaoHoras': {
validators: {
numeric: {
message: "A duração em horas têm de ser um número"
},
notEmpty: {
message: 'Por favor coloque a duração em horas da formação'
}
}
}
,'event.ects': {
validators: {
numeric: {
message: "O Número de ECTS têm de ser um número"
},
notEmpty: {
message: 'Por favor coloque um número de ECTS para a formação'
}
}
}
,'event.diasDuracao': {
validators: {
numeric: {
message: "Os dias de duração têm de ser um número"
},
notEmpty: {
message: 'Por favor coloque um número de dias de duração da formação'
}
}
}
,'event.custoFormacao': {
validators: {
numeric: {
message: "O custo da formação é especificado em Euros, insira um número por favor"
},
notEmpty: {
message: 'Por favor indique o custo da formação em euros'
}
}
}
,'event.precoFormando': {
validators: {
numeric: {
message: "O preço da inscrição de um formando é especificado em Euros, insira um número por favor"
},
notEmpty: {
message: 'Por favor indique o preço de inscrição por formando em euros'
}
}
}
,'event.percentagemMinimaLucro': {
validators: {
numeric: {
message: "O percentagem mínima de é obrigatório, insira um número por favor, pode ser Zero"
},
notEmpty: {
message: 'Por favor indique uma percentagem mínima de lucro'
}
}
}
}
})
.on('success.form.bv', function(e) {
$('#success_message').slideDown({ opacity: "show" }, "slow") // Do something ...
$('#FormEvent').data('bootstrapValidator').resetForm();
// Prevent form submission
e.preventDefault();
// Get the form instance
var $form = $(e.target);
// Get the BootstrapValidator instance
var bv = $form.data('bootstrapValidator');
// Use Ajax to submit form data
$.post($form.attr('action'), $form.serialize(), function(result) {
console.log(result);
}, 'json');
});
});
</script>
<%
}catch(Throwable e)
{
System.out.println(e);
e.printStackTrace();
}
%>
Generated by GNU Enscript 1.6.5.2.