Subversion Repositories bacoAlunos

Rev

Rev 1326 | Rev 1563 | 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.IAnswersProcessor" %>
<%@ page import="pt.estgp.estgweb.domain.QuestionarioHistoryDrive" %>
<%@ page import="pt.estgp.estgweb.domain.QuestionarioImpl" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ 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" %>

<html:form styleClass="form-horizontal" action="/user/questionariosPae"  enctype="multipart/form-data" onsubmit="updateIntroHtml()">
    <input type="hidden" name="dispatch" value="save">
    <html:hidden property="questionario.id"/>
    <jsp:useBean id="QuestionarioForm" type="pt.estgp.estgweb.web.form.questionarios.QuestionarioForm" scope="request"/>
    <script>
        function submitQuestionarioForm(form)
        {
            updateIntroHtml();
            form.submit();
        }
        function updateIntroHtml()
        {
            $('#introHtml').val($('#editor').html());
        }
        $(document).ready(
                function(){

                    setText();
                    $(".perguntaGroup").each(
                            function(){
                                if($(this).val() == "")
                                {
                                    $(this).css({
                                        "background-color":"orange"
                                    });
                                }
                            }
                    );
                }
        );

        function setText()
        {
            $("#editor").html('<bean:write name="QuestionarioForm" property="questionario.introHtml" filter="false"/>');
        }

    </script>

    <style>
        .dropable
        {
            border: 1px dashed blue;
        }
        .dropable .toDrop
        {
            border: 2px solid blue !important;
        }
    </style>




        <div class="panel panel-default">
            <div class="panel-heading">
                    <logic:lessEqual name="QuestionarioForm" property="questionario.id" value="0">
                        Novo Questionário
                    </logic:lessEqual>
                    <logic:notEqual name="QuestionarioForm" property="questionario.id" value="0">
                        Questionário (Número Controlo - ${QuestionarioForm.questionario.id})
                    </logic:notEqual>
                    <a class="pull-right" href="javascript:$('#diagrama').animate({height:'toggle'},200);">Ver Diagrama de Estados dos Questionários</a>
            </div>
            <div class="panel-body">

                <%--##################################################--%>
                <%--################      INPUT START    #############--%>
                <%--##################################################--%>
                <div id="allInputs">

                <html:errors/>
                <jomm:messages/>



                <div id="diagrama" style="display: none" class="panel panel-default">
                    <div class="panel-body">
                        <div class="row-centered">
                            <img src="<%=request.getContextPath()%>/user/questionarios/QuestionarioState.bmp"/>
                        </div>
                    </div>
                </div>


                <div class="panel panel-primary">
                    <div class="panel-heading">
                        Dados Administrativos
                    </div>
                    <div class="panel-body">


                        <baco:notClearOperation name="QuestionarioForm" property="questionario" op="QUESTIONARIO_SAVE_FORM">
                            <div class="alert alert-warning">
                                Formulário Trancado - Estado do Questionário ${QuestionarioForm.questionario.state}
                            </div>
                        </baco:notClearOperation>

                        <%
                            List<IAnswersProcessor> answersProcessors = QuestionarioImpl.getIAnswerProcessors();
                            request.setAttribute("answersProcessors",answersProcessors);

                            AbstractDao.getCurrentSession().beginTransaction();
                            List<QuestionarioHistoryDrive> historyDrives = DaoFactory.getQuestionarioHistoryDriveDaoImpl().getHistoryDrivesList();
                            request.setAttribute("historyDrives",historyDrives);
                            AbstractDao.getCurrentSession().getTransaction().commit();
                        %>
                        <script>
                            $(document).ready( function()
                                {
                                <logic:lessEqual value="0" name="QuestionarioForm" property="questionario.id">
                                    $("#answProc").val("pt.estgp.estgweb.services.questionarios.PedagogicoAlunosProcessor");
                                </logic:lessEqual>

                                <baco:notClearOperation name="QuestionarioForm" property="questionario" op="QUESTIONARIO_SAVE_ANSWER_PROCESSOR">
                                    $("#histDrives").prop( "disabled", true );
                                    $("#histDrivesHidden").prop( "disabled", false );
                                    $("#answProc").prop( "disabled", true );
                                    $("#answProcHidden").prop( "disabled", false );
                                </baco:notClearOperation>

                                //set history allays after answerproc defined
                                setHistoryDrive($("#answProc").val());

                                <baco:notClearOperation name="QuestionarioForm" property="questionario" op="QUESTIONARIO_SAVE_FORM">
                                    $('#allInputs').find('input, textarea, button, select, #editor').attr('disabled','disabled');
                                </baco:notClearOperation>
                                }
                            );

                            //Metodo para alterar a History dado o AnswerProcessor
                            //Usa o Answer Processor Contraint
                            function setHistoryDrive(answerProcessor)
                            {
                                <baco:clearOperation name="QuestionarioForm" property="questionario" op="QUESTIONARIO_SAVE_ANSWER_PROCESSOR">

                                    $("#histDrivesHidden").prop( "disabled", true );
                                    $("#histDrives").removeAttr( "disabled");
                                    $("#histDrives").val("");
                                    <%
                                        for(IAnswersProcessor iAnswersProcessor: answersProcessors)
                                        {
                                            if(iAnswersProcessor.getHistoryDriveConstraint() != null)
                                            {
                                                for(QuestionarioHistoryDrive hD: historyDrives)
                                                {
                                                    if(hD.getCodeName().equals(iAnswersProcessor.getHistoryDriveConstraint()))
                                                    {
                                    %>
                                    if(answerProcessor == '<%=iAnswersProcessor.getClass().getName()%>')
                                    {
                                        $("#histDrives").val('<%=hD.getId()%>');
                                        $("#histDrivesHidden").val('<%=hD.getId()%>');
                                        $("#histDrives").prop("disabled",true);
                                        $("#histDrivesHidden").prop( "disabled", false );
                                    }
                                    <%
                                                        break;
                                                    }
                                                }
                                            }
                                        }
                                    %>
                                </baco:clearOperation>
                            }
                        </script>

                        <baco:notClearOperation name="QuestionarioForm" property="questionario" op="QUESTIONARIO_SAVE_ANSWER_PROCESSOR">
                            <p>
                                Estado: <label class="alert alert-warning alert-small">
                                            <bean:message key="questionario.state.${QuestionarioForm.questionario.state}"/>
                                        </label>
                            </p>
                            <div class="alert alert-danger alert-small">A alteração do processador de respostas está trancado devido ao estado em que o questionário se encontra</div>
                        </baco:notClearOperation>

                        <div class="form-group">
                            <label class="control-label col-sm-2">Processador de Respostas</label>
                            <div class="col-sm-10">
                                <html:hidden styleId="answProcHidden" styleClass="form-control" property="questionario.iAnswersProcessor" disabled="true"/>
                                <html:select styleId="answProc" styleClass="form-control" property="questionario.iAnswersProcessor" onchange="setHistoryDrive($(this).val());">
                                    <option value=""></option>
                                    <html:optionsCollection name="answersProcessors" label="title" value="class.name"/>
                                </html:select>
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="control-label col-sm-2">Categoria Histórica de Análise de Dados</label>
                            <div class="col-sm-10">
                                <html:hidden styleId="histDrivesHidden" styleClass="form-control" property="questionario.questionarioHistoryDrive.id" disabled="true"/>
                                <html:select styleId="histDrives" styleClass="form-control" property="questionario.questionarioHistoryDrive.id">
                                    <option value=""></option>
                                    <html:optionsCollection name="historyDrives" label="codeName" value="id"/>
                                </html:select>
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="control-label col-sm-2">Descrição Administrativa</label>
                            <div class="col-sm-10">
                                <html:textarea styleClass="form-control" property="questionario.description"/>
                            </div>
                        </div>

                        <h3><a href="javascript:$('#groupAdmin').animate({height:'toggle'},200);">Administração de Grupos</a></h3>
                        <div id="groupAdmin" style="display: none" class="panel panel-default">
                            <div class="panel-body">
                                <div class="alert alert-warning">
                                    ATENÇÃO: A alteração dos códigos dos grupos vai afetar os resultados históricos e o processamento de resultados. Não altere os códigos dos grupos
                                    já existentes sem coordenação com a equipa de desenvolvimento.
                                </div>
                                <button type="button" class="btn btn-warning" onclick="$('.textGroupDisab').removeAttr('disabled');$(this).hide()">Ativar edição de códigos</button>
                                <%
                                    for(int g = 1; g <= 10; g ++)
                                    {
                                        request.setAttribute("g",g);
                                %>
                                <div class="form-group">
                                    <label class="control-label col-sm-2" for="g${g}">Grupo ${g}:</label>
                                    <div class="col-sm-10">
                                        <html:text styleClass="form-control" property="questionario.group${g}Title" styleId="g${p}" onchange="set(this.form,'refresh');submitQuestionarioForm(form);"/>
                                    </div>
                                    <label class="control-label col-sm-2" for="g${g}">Código do Grupo ${g}:</label>
                                    <div class="col-sm-4">
                                        <html:text styleClass="form-control textGroupDisab" disabled="true" property="questionario.group${g}Code" onchange="set(this.form,'refresh');submitQuestionarioForm(form);"/>
                                    </div>
                                </div>
                                <%
                                    }
                                %>
                            </div>
                        </div>
                    </div>
                </div>


                <div class="form-group row">

                    <div class="col-sm-12">

                            <h3>Texto Introdutório do Questionário</h3>
                            <baco:notClearOperation name="QuestionarioForm" property="questionario" op="QUESTIONARIO_SAVE_FORM">
                                <div style="border:1px solid gray">
                                        ${QuestionarioForm.questionario.introHtml}
                                </div>
                            </baco:notClearOperation>
                            <baco:clearOperation name="QuestionarioForm" property="questionario" op="QUESTIONARIO_SAVE_FORM">
                                <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 btn-default" 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">Grande</font></a></li>
                                            <li><a data-edit="fontSize 4"><font size="4">Maior</font></a></li>
                                            <li><a data-edit="fontSize 3"><font size="3">Normal</font></a></li>
                                            <li><a data-edit="fontSize 2"><font size="2">Menor</font></a></li>
                                            <li><a data-edit="fontSize 1"><font size="1">Pequeno</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 class="btn-group">
                                            <img style="width:20px" draggable="true" src="<%=request.getContextPath()%>/imgs/grafico.gif" class="bacoTemplate"  template-target="template1"/>
                                            <img style="width:20px" draggable="true" src="<%=request.getContextPath()%>/imgs/grafico.gif"  class="bacoTemplate"  template-target="template2"/>
                                            <img style="width:20px" draggable="true" src="<%=request.getContextPath()%>/imgs/grafico.gif" class="bacoTemplate"   template-target="template3"/>
                                            <img style="width:20px" draggable="true" src="<%=request.getContextPath()%>/imgs/grafico.gif" class="bacoTemplate"   template-target="template4"/>
                                        </div>-->
                                    <!-- <script>
                                         var emEdicao;
                                         function setupPalete()
                                         {
                                             $(".meupanel").click(
                                                     function(){
                                                        emEdicao = this;
                                                         $(emEdicao).css({border:"3px solid yellow"});
                                                     }
                                             );
                                         }
                                         $(document).ready(function(){

                                             $(".bacoTemplate").on("dragstart",
                                                     function(e){
                                                         e.originalEvent.dataTransfer.setData("template", $(e.target).attr("template-target"));
                                                     }
                                             );



                                         });
                                     </script>-->

                                </div>
                                <div id="editor" class="dropable">
                                </div>
                            </baco:clearOperation>
                    </div>
                </div>

                <html:hidden styleId="introHtml" property="questionario.introHtml"/>


                <hr/>
                <%

                    for(int i = 1; i <= 40; i ++)
                    {
                        request.setAttribute("p",i);
                        request.setAttribute("pBefore",i-1);

                %>


                <logic:present name="QuestionarioForm" property="questionario.p${p}Group">
                <logic:equal value="1" name="p">
                    <h3>
                        <logic:equal value="1" name="QuestionarioForm" property="questionario.p${p}Group">
                            1 - ${QuestionarioForm.questionario.group1Title}
                        </logic:equal>
                        <logic:equal value="2" name="QuestionarioForm" property="questionario.p${p}Group">
                            2 - ${QuestionarioForm.questionario.group2Title}
                        </logic:equal>
                        <logic:equal value="3" name="QuestionarioForm" property="questionario.p${p}Group">
                            3 - ${QuestionarioForm.questionario.group3Title}
                        </logic:equal>
                        <logic:equal value="4" name="QuestionarioForm" property="questionario.p${p}Group">
                            4 - ${QuestionarioForm.questionario.group4Title}
                        </logic:equal>
                        <logic:equal value="5" name="QuestionarioForm" property="questionario.p${p}Group">
                            5 - ${QuestionarioForm.questionario.group5Title}
                        </logic:equal>
                        <logic:equal value="6" name="QuestionarioForm" property="questionario.p${p}Group">
                            6 - ${QuestionarioForm.questionario.group6Title}
                        </logic:equal>
                        <logic:equal value="7" name="QuestionarioForm" property="questionario.p${p}Group">
                            7 - ${QuestionarioForm.questionario.group7Title}
                        </logic:equal>
                        <logic:equal value="8" name="QuestionarioForm" property="questionario.p${p}Group">
                            8 - ${QuestionarioForm.questionario.group8Title}
                        </logic:equal>
                        <logic:equal value="9" name="QuestionarioForm" property="questionario.p${p}Group">
                            9 - ${QuestionarioForm.questionario.group9Title}
                        </logic:equal>
                        <logic:equal value="10" name="QuestionarioForm" property="questionario.p${p}Group">
                            10 - ${QuestionarioForm.questionario.group10Title}
                        </logic:equal>
                    </h3>
                </logic:equal>
                <logic:greaterThan value="1" name="p">
                    <jomm:notEqualBeans name1="QuestionarioForm" property1="questionario.p${p}Group" name2="QuestionarioForm" property2="questionario.p${pBefore}Group">
                        <hr/>
                        <h3>
                            <logic:equal value="1" name="QuestionarioForm" property="questionario.p${p}Group">
                                1 - ${QuestionarioForm.questionario.group1Title}
                            </logic:equal>
                            <logic:equal value="2" name="QuestionarioForm" property="questionario.p${p}Group">
                                2 - ${QuestionarioForm.questionario.group2Title}
                            </logic:equal>
                            <logic:equal value="3" name="QuestionarioForm" property="questionario.p${p}Group">
                                3 - ${QuestionarioForm.questionario.group3Title}
                            </logic:equal>
                            <logic:equal value="4" name="QuestionarioForm" property="questionario.p${p}Group">
                                4 - ${QuestionarioForm.questionario.group4Title}
                            </logic:equal>
                            <logic:equal value="5" name="QuestionarioForm" property="questionario.p${p}Group">
                                5 - ${QuestionarioForm.questionario.group5Title}
                            </logic:equal>
                            <logic:equal value="6" name="QuestionarioForm" property="questionario.p${p}Group">
                                6 - ${QuestionarioForm.questionario.group6Title}
                            </logic:equal>
                            <logic:equal value="7" name="QuestionarioForm" property="questionario.p${p}Group">
                                7 - ${QuestionarioForm.questionario.group7Title}
                            </logic:equal>
                            <logic:equal value="8" name="QuestionarioForm" property="questionario.p${p}Group">
                                8 - ${QuestionarioForm.questionario.group8Title}
                            </logic:equal>
                            <logic:equal value="9" name="QuestionarioForm" property="questionario.p${p}Group">
                                9 - ${QuestionarioForm.questionario.group9Title}
                            </logic:equal>
                            <logic:equal value="10" name="QuestionarioForm" property="questionario.p${p}Group">
                                10 - ${QuestionarioForm.questionario.group10Title}
                            </logic:equal>
                        </h3>
                    </jomm:notEqualBeans>
                </logic:greaterThan>
                </logic:present>

                <div class="form-group">
                    <label class="control-label col-sm-2" for="p${p}">Pergunta ${p}:</label>
                    <div class="col-sm-8">
                        <html:textarea styleClass="form-control" property="questionario.p${p}" styleId="p${p}"/>
                    </div>
                    <div class="col-sm-2">
                        <html:select styleClass="form-control perguntaGroup" property="questionario.p${p}Group" onchange="set(this.form,'refresh');submitQuestionarioForm(form);">
                            <html:option value="">Nenhum</html:option>
                            <%
                                for(int a = 1;a<10;a++)
                                {
                                    request.setAttribute("a",a);

                            %>
                            <logic:notEmpty name="QuestionarioForm" property="questionario.group${a}Title">
                                <html:option value="${a}"><bean:write name="QuestionarioForm" property="questionario.group${a}Title"/></html:option>
                            </logic:notEmpty>
                            <%
                                }
                            %>
                        </html:select>
                    </div>
                </div>
                <%
                    }
                %>
                </div>


                <baco:clearOperation name="QuestionarioForm" property="questionario" op="QUESTIONARIO_SAVE_FORM">
                    <button type="button" class="btn btn-success" onclick="submitQuestionarioForm(form);"><bean:message key="confirm"/></button>
                </baco:clearOperation>
                <html:link action="/user/listQuestionarios" styleClass="btn btn-danger"><bean:message key="cancel"/></html:link>
            </div>

        </div>
    </html:form>