Subversion Repositories bacoAlunos

Rev

Rev 1688 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<%@ page import="pt.estgp.estgweb.domain.Teacher" %>
<%@ page import="pt.estgp.estgweb.domain.views.UserView" %>
<%@ page import="pt.estgp.estgweb.web.utils.RequestUtils" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %>
<%@ page import="java.util.ArrayList" %>
<%@ 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" %>
<jsp:useBean id="CourseUnitProgramForm" type="pt.estgp.estgweb.web.form.courseunits.CourseUnitProgramForm" scope="request"/>
<jsp:useBean id="CourseUnitView" type="pt.estgp.estgweb.domain.views.CourseUnitView" scope="request"/>
<%--<jsp:useBean id="CourseUnitProgramView" type="pt.estgp.estgweb.domain.views.CourseUnitProgramView" scope="request"/>--%>
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/>

<div class="panel panel-default">
    <div class="panel-heading">
        <span class="icon icon-library"></span> <bean:message key="courseunit.program"/>
    </div>
    <div class="panel-body">



<html:errors/>
<jomm:messages/>
<div class="web-messages">

</div>

<baco:clearOperation name="CourseUnitView" property="courseUnit" op="PROGRAM_INFO_VALID_NOT_ACTIVE">
    <div class="alert alert-warning">
        O programa não está aberto para edição. A comissão de curso terá de invalidar o programa para que este possa ser alterado.
    </div>
</baco:clearOperation>
<baco:clearOperation name="CourseUnitView" property="courseUnit" op="PROGRAM_CAN_VALIDATE">
    <logic:equal name="CourseUnitView" property="validProgram" value="true">
        <html:link styleClass="btn btn-warning" action="/user/invalidateAndLoadCourseUnitProgram?courseUnitId=${CourseUnitView.id}">Invalidar</html:link>
    </logic:equal>
</baco:clearOperation>

<script>
    //Manter a sessão activa para os docentes não perderem os dados
    ping();
</script>

<%
    IServiceManager sm = ServiceManager.getInstance();

    List<pt.estgp.estgweb.domain.views.CourseUnitView> otherYearUnits;
    otherYearUnits = new ArrayList<pt.estgp.estgweb.domain.views.CourseUnitView>();
    try{
        String[] names = new String[]{};
        Object[] args = new Object[]{new Long(CourseUnitView.getId())};
        otherYearUnits =
                (List<pt.estgp.estgweb.domain.views.CourseUnitView>)
                        sm.execute(RequestUtils.getRequester(request, response), "LoadUnitOtherYearsWithProgram", args, names);
        request.setAttribute("OtherYearUnits", otherYearUnits);


        names = new String[]{};
        args = new Object[]{};
        List<Teacher> teachers = (List<Teacher>)
                        sm.execute(RequestUtils.getRequester(request, response), "LoadTeachers", args, names);
        request.setAttribute("teachers", teachers);
    }catch(Exception e)
    {
        System.err.print(e.toString());
        e.printStackTrace();
    }

%>



<baco:notClearOperation name="CourseUnitView" property="courseUnit" op="PROGRAM_COORDINATOR_PART">
    <script>
        $(document).ready(
                function(){
                    $(".editCoordinatorPart *").prop('disabled',true);

                }
        );
    </script>
</baco:notClearOperation>
<baco:notClearOperation name="CourseUnitView" property="courseUnit" op="PROGRAM_TEACHER_PART">
    <script>
        $(document).ready(
                function(){
                    $(".editTeacherPart *").prop('disabled',true);

                }
        );
    </script>
</baco:notClearOperation>
<html:form styleId="ProgramForm" styleClass="form-horizontal" action="/user/courseUnitProgramController">
    <input type="hidden" name="dispatch" value="saveProgram">
    <html:hidden property="id"/>
    <html:hidden property="courseUnitView.id"/>

    <h3>Dados alterados pelo Coordenador de curso</h3>
    <div class="editCoordinatorPart">
        <div class="form-group">
            <label class="control-label col-sm-3">
                Importar programa a partir de outro ano
            </label>
            <div class="col-sm-3">
                <select class="form-control col-sm-3" name="cloneFromUnitId">
                    <logic:iterate id="other" name="OtherYearUnits" type="pt.estgp.estgweb.domain.views.CourseUnitView">
                        <option value="<%=other.getId()%>"><%=other.getImportYear()%> - <%=other.getSemestre()%></option>
                    </logic:iterate>
                </select>
            </div>
            <div class="col-sm-3">
                <input class="form-control" type="button" value="Clonar a partir deste programa" onclick="if(confirm('<bean:message key="courseunit.confirmaclonagem"/>')){set(form,'cloneProgram');form.submit()}"/>
            </div>
        </div>
    </div>
    <div class="alert alert-info">

        <bean:message key="courseunit.consultaroutros"/>:
        <logic:iterate id="other" name="OtherYearUnits" type="pt.estgp.estgweb.domain.views.CourseUnitView">
            <a href="<%=request.getContextPath()%>/repositoryStream/<%=other.getProgramStreamId()%>" target="_blank"> <%=other.getImportYear()%> - <%=other.getSemestre()%></a>
            &nbsp;&nbsp;
        </logic:iterate>
    </div>



    <div class="editCoordinatorPart">
        <div class="form-group">
            <label class="control-label col-sm-2">
                <bean:message key="courseunit.responsable"/>
            </label>
            <div class="col-sm-10">
                <html:select styleClass="form-control" property="courseUnitView.responsableId">
                    <html:option value="0"></html:option>
                    <logic:iterate id="teacher" name="teachers"  type="pt.estgp.estgweb.domain.views.UserView">
                        <html:option value="${teacher.id}">${teacher.name} (${teacher.code})</html:option>
                    </logic:iterate>
                </html:select>
            </div>
        </div>
        <baco:isAdmin>
            <div class="form-group">
                <label class="control-label col-sm-2">
                    <bean:message key="courseunit.teachers"/>
                </label>
                <div class="col-sm-8">
                    <logic:lessEqual value="0" name="CourseUnitView" property="id">
                        <i><bean:message key="courseunit.to.add.teachers.save.first"/></i>
                    </logic:lessEqual>
                    <html:select styleClass="form-control" property="teacherId">

                        <logic:present name="teachers">
                            <logic:iterate id="teacher" name="teachers" type="pt.estgp.estgweb.domain.views.UserView">
                                <html:option value="${teacher.id}">${teacher.name}  (${teacher.code})</html:option>
                            </logic:iterate>
                        </logic:present>
                    </html:select>
                </div>
                <div class="col-sm-2">
                    <button class="form-control" type="button" onclick="set(this.form,'addTeacher');this.form.submit();">
                        <bean:message key="add"/>
                    </button>
                </div>
                <logic:greaterThan name="CourseUnitView" property="teachersSize" value="0">
                    <label class="col-sm-2">

                    </label>
                    <div class="col-sm-10">
                        <div class="list-group">
                            <logic:iterate id="userView" name="CourseUnitView" property="teachers" type="pt.estgp.estgweb.domain.views.UserView">
                               <div class="list-group-item">
                                    ${userView.name} (${userView.code})
                                    <button class="btn btn-danger btn-xs" type="button" data-toggle="modal" data-target="#confirm-ModalFunction" data-message="Esta operação vai remover o docente da unidade localmente, a sincronização com o sistema do IPP não voltará a colocar o docente neste unidade!! Tem a certeza que deseja prosseguir?" data-script="CourseUnitProgramForm.id.value='${userView.id}';set($('#ProgramForm').get(0),'removeTeacher');$('#ProgramForm').get(0).submit();">
                                        <span class="glyphicon glyphicon-remove small"></span>
                                    </button>
                               </div>
                            </logic:iterate>
                        </div>
                    </div>
                </logic:greaterThan>
            </div>
        </baco:isAdmin>
        <baco:isNotAdmin>
            <div class="form-group">
                <label class="control-label col-sm-2">
                    <bean:message key="courseunit.teachers"/>
                </label>
                <div class="col-sm-10">
                    <div class="list-group">
                        <logic:iterate id="prof" name="CourseUnitView" property="teachers" type="pt.estgp.estgweb.domain.views.UserView">
                            <div class="list-group-item"> ${prof.name} (${prof.code})</div>
                        </logic:iterate>
                    </div>
                </div>
            </div>
        </baco:isNotAdmin>

        <div class="form-group">
            <label class="control-label col-sm-2">
                <bean:message key="courseunit.program.ects.title"/>
            </label>
            <div class="col-sm-10">
                <div>
                    <div class="form-group">
                        <label class="control-label col-sm-1">
                            <bean:message key="courseunit.program.ects"/>
                        </label>
                        <div class="col-sm-11">
                            <html:text styleClass="form-control" property="courseUnitProgramView.courseUnitProgram.ects"/>
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="control-label col-sm-1">
                            <bean:message key="courseunit.program.ects.cargaHorariaTotal"/>
                        </label>
                        <div class="col-sm-11">
                            <html:text styleClass="form-control" property="courseUnitProgramView.courseUnitProgram.cargaHorariaTotal"/>
                        </div>
                    </div>
                </div>
                <div>
                    <div class="form-group">
                        <div class="col-sm-12">
                            <table>
                                <tr>
                                    <th><bean:message key="courseunit.program.cargaHorariaT"/></th>
                                    <th><bean:message key="courseunit.program.cargaHorariaTP"/></th>
                                    <th><bean:message key="courseunit.program.cargaHorariaPL"/></th>
                                    <th><bean:message key="courseunit.program.cargaHorariaS"/></th>
                                    <th><bean:message key="courseunit.program.cargaHorariaTC"/></th>
                                    <th><bean:message key="courseunit.program.cargaHorariaO"/></th>
                                    <th><bean:message key="courseunit.program.cargaHorariaOT"/></th>
                                </tr>
                                <tr>
                                    <td><html:text styleClass="form-control" property="courseUnitProgramView.courseUnitProgram.cargaHorariaT"/></td>
                                    <td><html:text styleClass="form-control" property="courseUnitProgramView.courseUnitProgram.cargaHorariaTP"/></td>
                                    <td><html:text styleClass="form-control" property="courseUnitProgramView.courseUnitProgram.cargaHorariaPL"/></td>
                                    <td><html:text styleClass="form-control" property="courseUnitProgramView.courseUnitProgram.cargaHorariaS"/></td>
                                    <td><html:text styleClass="form-control" property="courseUnitProgramView.courseUnitProgram.cargaHorariaTC"/></td>
                                    <td><html:text styleClass="form-control" property="courseUnitProgramView.courseUnitProgram.cargaHorariaO"/></td>
                                    <td><html:text styleClass="form-control" property="courseUnitProgramView.courseUnitProgram.cargaHorariaOT"/></td>
                                </tr>
                            </table>
                        </div>
                    </div>
                </div>

            </div>

        </div>
    </div>

    <h3>Dados alterados pelo Docente da Unidade</h3>
    <div class="editTeacherPart">
        <%//TODO adicionar workflow e inicializações para a função addTeacher%>

        <div class="form-group">
            <label class="control-label col-sm-2">
                <bean:message key="courseunit.program.objectivos"/>
            </label>
            <div class="col-sm-10">
                <html:textarea rows="10" styleClass="form-control" property="courseUnitProgramView.courseUnitProgram.courseUnitProgramPart2.objectivos" />
            </div>
        </div>

        <div class="form-group">
            <label class="control-label col-sm-2">
                <bean:message key="courseunit.program.prerequisitos"/>
            </label>
            <div class="col-sm-10">
                <html:textarea rows="10" styleClass="form-control" property="courseUnitProgramView.courseUnitProgram.prerequisitos"  />
            </div>
        </div>

        <div class="form-group">
            <label class="control-label col-sm-2">
                <bean:message key="courseunit.program.lingua1"/>
            </label>
            <div class="col-sm-10">
                <html:text styleClass="form-control" property="courseUnitProgramView.courseUnitProgram.lingua1" />
            </div>
        </div>

        <div class="form-group">
            <label class="control-label col-sm-2">
                <bean:message key="courseunit.program.lingua2"/>
            </label>
            <div class="col-sm-10">
                <html:text styleClass="form-control" property="courseUnitProgramView.courseUnitProgram.lingua2" />
            </div>
        </div>






        <!--Conteudos-->
        <div class="form-group">
            <label class="control-label col-sm-2">
                <bean:message key="courseunit.program.conteudosProgramaticos"/>
            </label>
            <div class="col-sm-10">
                <html:textarea styleClass="form-control" rows="10" property="courseUnitProgramView.courseUnitProgram.courseUnitProgramPart2.conteudos" />
            </div>
        </div>

        <!--demonstracaoCoerenciaConteudos-->
        <div class="form-group">
            <label class="control-label col-sm-2">
                <bean:message key="courseunit.program.demonstracaoCoerenciaConteudosObjectivos"/>
            </label>
            <div class="col-sm-10">
                <html:textarea styleClass="form-control" rows="10" property="courseUnitProgramView.courseUnitProgram.courseUnitProgramPart2.demonstracaoCoerenciaConteudos" />
            </div>
        </div>

        <!--metodologiasEnsino-->
        <div class="form-group">
            <label class="control-label col-sm-2">
                <bean:message key="courseunit.program.metodologiasEnsino"/>
            </label>
            <div class="col-sm-10">
                <html:textarea styleClass="form-control" rows="10" property="courseUnitProgramView.courseUnitProgram.courseUnitProgramPart2.metodologiasEnsino" />
            </div>
        </div>

        <!--demonstracaoObjectivosMetodologia-->
        <div class="form-group">
            <label class="control-label col-sm-2">
                <bean:message key="courseunit.program.demonstracaoDaCoerenciaMetodologiasObjectivos"/>
            </label>
            <div class="col-sm-10">
                <html:textarea styleClass="form-control" rows="10" property="courseUnitProgramView.courseUnitProgram.courseUnitProgramPart2.demonstracaoObjectivosMetodologia" />
            </div>
        </div>

        <h4><bean:message key="courseunit.program.avaliacao"/></h4>

        <!--avaliacaoOrdinariosFrequencia-->
        <div class="form-group">
            <label class="control-label col-sm-2">
                <bean:message key="courseunit.program.alunosOrdinariosPorFrequencia"/>
            </label>
            <div class="col-sm-10">
                <html:textarea styleClass="form-control" rows="10" property="courseUnitProgramView.courseUnitProgram.courseUnitProgramPart2.avaliacaoOrdinariosFrequencia" />
            </div>
        </div>
        <!--avaliacaoOrdinariosExame-->
        <div class="form-group">
            <label class="control-label col-sm-2">
                <bean:message key="courseunit.program.alunosOrdinariosPorExame"/>
            </label>
            <div class="col-sm-10">
                <html:textarea styleClass="form-control" rows="10" property="courseUnitProgramView.courseUnitProgram.courseUnitProgramPart2.avaliacaoOrdinariosExame" />
            </div>
        </div>
        <!--avaliacaoEspeciaisFrequencia-->
        <div class="form-group">
            <label class="control-label col-sm-2">
                <bean:message key="courseunit.program.alunosMobilidadeAlunosComEstatutoEspecialPorFrequencia"/>
            </label>
            <div class="col-sm-10">
                <html:textarea styleClass="form-control" rows="10" property="courseUnitProgramView.courseUnitProgram.courseUnitProgramPart2.avaliacaoEspeciaisFrequencia" />
            </div>
        </div>
        <!--avaliacaoEspeciaissExame-->
        <div class="form-group">
            <label class="control-label col-sm-2">
                <bean:message key="courseunit.program.alunosMobilidadeAlunosComEstatutoEspecialPorExame"/>
            </label>
            <div class="col-sm-10">
                <html:textarea styleClass="form-control" rows="10" property="courseUnitProgramView.courseUnitProgram.courseUnitProgramPart2.avaliacaoEspeciaissExame" />
            </div>
        </div>

        <h4><bean:message key="courseunit.program.bibliografia"/></h4>

        <!--bibliografia-->
        <div class="form-group">
            <label class="control-label col-sm-2">
                <bean:message key="courseunit.program.bibliografiaPrincipal"/>
            </label>
            <div class="col-sm-10">
                <html:textarea styleClass="form-control" rows="10" property="courseUnitProgramView.courseUnitProgram.bibliografia" />
            </div>
        </div>

        <!--bibliografiaComplementar-->
        <div class="form-group">
            <label class="control-label col-sm-2">
                <bean:message key="courseunit.program.bibliografiaComplementar"/>
            </label>
            <div class="col-sm-10">
                <html:textarea styleClass="form-control" rows="10" property="courseUnitProgramView.courseUnitProgram.bibliografiaComplementar" />
            </div>
        </div>


    </div>












    <baco:clearOperation name="CourseUnitView" property="courseUnit" op="PROGRAM_TEACHER_PART,PROGRAM_COORDINATOR_PART">
        <button id="saveButton" class="btn btn-success" type="button" onclick="saveData('saveProgram');"><bean:message key="save"/></button>
    </baco:clearOperation>
    <baco:clearOperation name="CourseUnitView" property="courseUnit" op="PROGRAM_CAN_VALIDATE">
        <logic:equal name="CourseUnitView" property="validProgram" value="false">
            <button id="validateButton" class="btn btn-success" type="button" onclick="saveData('validateProgram');">Salvar e Validar</button>
        </logic:equal>
    </baco:clearOperation>



    <a id="exitButton" class="hidden btn btn-danger" href="<%=request.getContextPath()%>/user/startLoadCourseUnitFromHome.do?courseUnitView.id=${CourseUnitView.id}&pos=2" class="btn btn-danger" type="button" >Sair</a>

</html:form>




    


    </div><!--Panel body-->
</div><!--Panel-->


<script>
    function saveData(action)
    {

        $('#programSendingModal').modal({
            show: 'true'
        });
        $("#ProgramForm input[name='dispatch']").val(action);
        var data = $("#ProgramForm").serialize().replace(/%0D%0A/g, '%0A').replace(/\r?\n/g, "\r\n");
        //alert(data);

        //alert($("#dispatch").val())
        $(".web-messages").html('<div class="alert alert-info">Enviando ...</div>');
        $.ajax({
            url: "<%=request.getContextPath()%>/user/courseUnitProgramController.do",
            type: "POST",
            data: data + "&json=true",
            dataType: "json",
            statusCode: {
                401:function() {
                    $('.modal').modal("hide");
                    $("#modalAuthentication").modal({ show : 'true'});
                }
            },
            success: function(resposta) {
                if(resposta.service && resposta.service == "ok")
                {
                    $(".web-messages").html('<div class="alert alert-success">Programa Salvo com Sucesso, pode rever o seu trabalho ou Sair</div>');
                    modalWebMessages("");
                    $("#exitButton").removeClass("hidden");
                    $("#saveButton").hide();
                    if(action == "validateProgram")
                    {
                        $("#validateButton").hide();
                    }
                }
                else
                {
                    if($(resposta.responseText).find(".web-messages").length)
                    {
                        $(".web-messages").html($(resposta.responseText).find(".web-messages").html());
                        modalWebMessages("Aviso");
                    }
                    else
                    {
                        if($(resposta.responseText).find(".errorContent").length)
                        {
                            $(".web-messages").html('<div class="alert alert-danger">Erro de comunicação, por favor aguarde uns minutos tente novamente, se não conseguir copie manualmente os seus dados para um documento para não perder o seu trabalho e contacte a administração de sistemas</div>');
                            modalWebMessages("Existem Erros",$(resposta.responseText).find(".errorContent").html());
                        }
                        else
                        {
                            $(".web-messages").html('<div class="alert alert-danger">Erro de comunicação, por favor aguarde uns minutos e tente novamente, se não conseguir copie manualmente os seus dados para um documento para não perder o seu trabalho e contacte a administração de sistemas</div>');
                            modalWebMessages("Aviso");
                        }


                    }
                }

            },
            error: function(resposta, b, errorThrown)
            {
                if(resposta.status != 401)
                {
                    if($(resposta.responseText).find(".errorContent").length)
                    {
                        $(".web-messages").html('<div class="alert alert-danger">Erro de comunicação, por favor aguarde uns minutos e tente novamente, se não conseguir copie manualmente os seus dados para um documento para não perder o seu trabalho e contacte a administração de sistemas</div>');
                        modalWebMessages("Existem Erros",$(resposta.responseText).find(".errorContent").html());
                    }
                    else
                    {
                        $(".web-messages").html('<div class="alert alert-danger">Erro de comunicação, por favor aguarde uns minutos e tente novamente, se não conseguir copie manualmente os seus dados para um documento para não perder o seu trabalho e contacte a administração de sistemas</div>');
                        modalWebMessages("Aviso");
                    }
                }
            }
        });
    }

</script>

<div class="modal fade" id="programSendingModal" role="dialog" >
    <div class="modal-dialog" data-width="760" style="display: block; width: 760px; margin-top: 50px;" aria-hidden="false">

        <!-- Modal content-->
        <div class="modal-content">
            <div class="modal-header">

                <h1 class="modal-title"><bean:message key="courseunit.program.sending"/></h1>
            </div>
            <div class="modal-body">
                <p>
                    <bean:message key="courseunit.program.sending.text"/> <img src="<%=request.getContextPath()%>/imgs/wait.gif"/>
                </p>
            </div>
            <div class="modal-footer">

            </div>
        </div>

    </div>
</div>

Generated by GNU Enscript 1.6.5.2.