Subversion Repositories bacoAlunos

Rev

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.