Subversion Repositories bacoAlunos

Rev

Rev 1505 | Rev 1507 | 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.CourseDepartment" %>
<%@ page import="pt.estgp.estgweb.domain.Teacher" %>
<%@ page import="pt.estgp.estgweb.domain.User" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="pt.estgp.estgweb.domain.views.UserView" %>
<%@ page import="pt.estgp.estgweb.utils.ConfigProperties" %>
<%@ page import="pt.estgp.estgweb.web.filters.UserRoleProxy" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Collection" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
<%@ 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" %>
<jsp:useBean id="CourseView" type="pt.estgp.estgweb.domain.views.CourseView" scope="request"/>
<script>
    function alertPermissions()
    {
        alert("Aviso a transmitir ao Centro Informático. Este procedimento afecta as permissões atuais no sistema de ficheiros da intranet. Após salvar estas alterações, por favor gere o BAT de geração de pastas e corra-o novamente na raiz do servidor IONLINE")
    }
    function alertFolders(place)
    {
        alert("Aviso a transmitir ao Centro Informático. Caro administrador, lembramos-lhe que alterar o " + place + " de uma unidade curricular implica trocar a pasta de ficheiros da intranet do " + place + " onde esta se encontrava para o " + place + " onde actualmente se encontra. O BACO irá actualizar a nova LOCALIZAÇÃO da pasta de ficheiros na sua base de dados. Mas a pasta terá de ser fisicamente alterada pela administração de sistemas.");
    }

</script>
<html:errors/>
<jomm:messages/>
<html:form styleClass="form-horizontal" action="/user/courseControllerFromServiceZone" enctype="multipart/form-data">
<input type="hidden" name="dispatch" value="submit"/>
<html:hidden property="courseView.id"/>
<jsp:useBean id="CourseForm" type="pt.estgp.estgweb.web.form.courses.CourseForm" scope="request"/>
<logic:present name="CourseView" property="htmlResult">
    <pre class="log">
        <bean:write name="CourseView" property="htmlResult"/>
    </pre>
</logic:present>

<div class="panel panel-default">
<div class="panel-body">

    <div class="form-group">
        <label class="control-label col-sm-2"><bean:message key="course.code"/></label>
        <div class="col-sm-10">
            <html:text styleClass="form-control" property="courseView.code" size="20"/>
        </div>
    </div>
    <div class="form-group">
        <label class="control-label col-sm-2"><bean:message key="course.area"/></label>
        <div class="col-sm-10">
            <%
                AbstractDao.getCurrentSession().beginTransaction();
                List<CourseDepartment> departments = DaoFactory.getCourseDepartmentDaoImpl().findActives();
                request.setAttribute("departaments",departments);
            %>
            <html:select styleClass="form-control" property="courseView.area">
                <html:option value="">Nenhum</html:option>
                <logic:iterate id="area" name="departaments" type="pt.estgp.estgweb.domain.CourseDepartmentImpl">
                    <html:option value="${area.sigla}">${area.schoolFromInstitutionalCode} - ${area.name}</html:option>
                </logic:iterate>
            </html:select>
            <%
                AbstractDao.getCurrentSession().getTransaction().commit();
            %>
        </div>
    </div>
    <div class="form-group">
        <label class="control-label col-sm-2"><bean:message key="name"/> PT</label>
        <div class="col-sm-10">
            <html:text styleClass="form-control" property="courseView.name" size="20"/>
        </div>
    </div>
    <div class="form-group">
        <label class="control-label col-sm-2"><bean:message key="name"/> EN</label>
        <div class="col-sm-10">
            <html:text styleClass="form-control" property="courseView.nameEn" size="20"/>
        </div>
    </div>
    <div class="form-group">
        <label class="control-label col-sm-2"><bean:message key="name"/> ES</label>
        <div class="col-sm-10">
            <html:text styleClass="form-control" property="courseView.nameEs" size="20"/>
        </div>
    </div>
    <div class="form-group">
        <label class="control-label col-sm-2"><bean:message key="name"/> FR</label>
        <div class="col-sm-10">
            <html:text styleClass="form-control" property="courseView.nameFr" size="20"/>
        </div>
    </div>
    <div class="form-group">
        <label class="control-label col-sm-2"><bean:message key="course.description"/></label>
        <div class="col-sm-10">
            <html:textarea styleClass="form-control" property="courseView.description"/>
        </div>
    </div>
    <div class="form-group">
        <label class="control-label col-sm-2"><bean:message key="status"/></label>
        <div class="col-sm-10">
            <html:select styleClass="form-control" property="courseView.status">
                <html:option value="true"><bean:message key="yes"/></html:option>
                <html:option value="false"><bean:message key="no"/></html:option>
            </html:select>
        </div>
    </div>
    <div class="form-group">
        <label class="control-label col-sm-2"><bean:message key="course.degree"/> FR</label>
        <div class="col-sm-10">
            <html:select styleClass="form-control"  property="courseView.degree">
                <html:option value="B"><bean:message key="course.B"/></html:option>
                <html:option value="L"><bean:message key="course.L"/></html:option>
                <html:option value="M"><bean:message key="course.M"/></html:option>
                <html:option value="P"><bean:message key="course.P"/></html:option>
                <html:option value="E"><bean:message key="course.E"/></html:option>
                <html:option value="A"><bean:message key="course.A"/></html:option>
                <html:option value="C"><bean:message key="course.C"/></html:option>
                <html:option value="O"><bean:message key="course.O"/></html:option>
                <html:option value="T"><bean:message key="course.T"/></html:option>
            </html:select>
            ** SIGES: <bean:write name="CourseForm" property="courseView.degree"/> - Qualquer erro de atrbuição informar imediatamente a equipa de desenvolvimento
        </div>
    </div>
    <logic:notEmpty name="CourseForm" property="courseView.courseYearViews">
        <div class="form-group">
            <label class="control-label col-sm-2">Politica de Separação de Turmas</label>
            <div class="col-sm-10">
                <table class="tablesorterfiltered">
                    <thead>
                        <tr>
                            <th>Ano Lectivo</th>
                            <th>Usar Turmas Separadas</th>
                            <th>Ultima alteração</th>
                        </tr>
                    </thead>
                    <tbody>
                        <nested:iterate id="cyv" property="courseView.courseYearViews" type="pt.estgp.estgweb.domain.views.CourseView.CourseYearView">
                            <tr>
                                <td>${cyv.importYear}</td>
                                <td><nested:hidden property="id"/>
                                    <nested:checkbox property="separatedTurmas"/></td>
                                <td>${cyv.updateDate}</td>
                            </tr>
                        </nested:iterate>
                    </tbody>
                </table>
            </div>
        </div>
    </logic:notEmpty>
    <div class="form-group">
        <label class="control-label col-sm-2"><bean:message key="course.importYear"/></label>
        <div class="col-sm-10">
            <html:select styleClass="form-control"  property="courseView.importYear">
                <logic:iterate id="item" name="CourseForm" property="importYears">
                    <html:option value="${item}">${item}</html:option>
                </logic:iterate>
            </html:select>
        </div>
    </div>

    <div class="form-group">
        <label class="control-label col-sm-2"><bean:message key="course.institutionalCode"/></label>
        <div class="col-sm-10">
            <!--Dependente do app.properties-->
            <html:select styleClass="form-control"  property="courseView.institutionalCode">
                <html:option value="1"><%=ConfigProperties.getProperty("institution.code.prefix.1")%></html:option>
                <html:option value="2"><%=ConfigProperties.getProperty("institution.code.prefix.2")%></html:option>
                <html:option value="3"><%=ConfigProperties.getProperty("institution.code.prefix.3")%></html:option>
                <html:option value="4"><%=ConfigProperties.getProperty("institution.code.prefix.4")%></html:option>
            </html:select>
        </div>
    </div>

    <div class="form-group">
        <label class="control-label col-sm-2"><bean:message key="course.userGroupStudents"/></label>
        <div class="col-sm-10">
            <html:text styleClass="form-control" onchange="alertPermissions()" property="courseView.userGroupStudents"/>
        </div>
    </div>


    <div class="form-group">
        <label class="control-label col-sm-2"><bean:message key="course.coordinator"/></label>
        <div class="col-sm-10">
            <html:select styleClass="form-control" onchange="alertPermissions()"  property="courseView.coordinator.id">
                <html:option value="0">
                    <bean:message key="none"/>
                </html:option>
                <logic:present name="CourseForm" property="teachers">
                    <logic:iterate id="teacher" name="CourseForm" property="teachers" type="pt.estgp.estgweb.domain.views.UserView">
                        <html:option value="${teacher.id}">
                            (${teacher.code}) ${teacher.name}
                        </html:option>
                    </logic:iterate>
                </logic:present>
            </html:select>
        </div>
    </div>

    <div class="form-group">
        <label class="control-label col-sm-2"><bean:message key="course.validation.role"/></label>
        <div class="col-sm-10">
            <%
            List<String> targetRoles = new ArrayList<String>();
            for(String role: UserRoleProxy.getUserRoles())
            {
            if(role.startsWith("courseValidateProgram"))
            targetRoles.add(role);
            }
            request.setAttribute("targetRoles",targetRoles);
            %>
            <html:select styleClass="form-control" onchange="alertPermissions()" property="courseView.validationRole">
                <logic:iterate id="role" name="targetRoles">
                    <html:option value="${role}" key="user.role.${role}"/>
                </logic:iterate>
            </html:select>
        </div>
    </div>

    <div class="form-group">
        <label class="control-label col-sm-2">Membros da Comissão</label>
        <div class="col-sm-10">



                <%
                    request.setAttribute("teachersForComissions", CourseForm.getTeachers());
                    request.setAttribute("courseIdForComissions", CourseView.getId());
                %>

                <%-- PAINEL INDEPENDENTE PARA GERIR COMISSAO DE CURSO --%>
                <%
                        Long courseIdForComissions = (Long) request.getAttribute("courseIdForComissions");
                        Collection<UserView> teachersForComissions = (Collection<UserView>) request.getAttribute("teachersForComissions");

                %>
                <script>
                    function removeCourseComissionTeacher(teacherId)
                    {
                        $.getJSON('<%=request.getContextPath()%>/user/courses/courseApiJson.jsp',
                                {
                                    service:"removeCourseComissionTeacher",
                                    teacherId:teacherId,
                                    courseId: <%=courseIdForComissions%>
                                },
                                function(data)
                                {
                                    if(data.response == "done")
                                    {
                                        $("#courseComissionTeacher" + teacherId).remove();
                                    }
                                    else
                                    {
                                        $("#courseComissionTeacher" + teacherId).css(
                                                {
                                                    "background-color":"red"
                                                }
                                        );
                                        alert("ERRO NO SERVIÇO: " + data.msg);
                                    }
                                });
                    }
                    function addCourseComissionTeacher(teacherId)
                    {

                        $.getJSON('<%=request.getContextPath()%>/user/courses/courseApiJson.jsp',
                                {
                                    service:"addCourseComissionTeacher",
                                    teacherId:teacherId,
                                    courseId: <%=CourseView.getId()%>
                                },
                                function(data)
                                {
                                    if(data.response == "done")
                                    {

                                        newLine = $(
                                          "<tr id=\"courseComissionTeacher" + teacherId + "\" >" +
                                                "<td>" + data.teacherCode + "</td>" +
                                                "<td>" + data.teacherName + "</td>" +
                                                "<td>" + data.teacherEmail + "</td>" +
                                                "<td>" +
                                                    "<a class=\"btn btn-warning\" target=\"_blank\" href=\"<%=request.getContextPath()%>/user/startProfileFromSearchUsers.do?id=" + teacherId + "\"><span class=\"glyphicon glyphicon-pencil\"></span></a>" +
                                                    "<button type=\"button\" class=\"btn btn-danger\" onclick=\"removeCourseComissionTeacher(" + teacherId + ")\"><span class=\"glyphicon glyphicon-remove\"></span></button>"+
                                                  "</td>" +
                                          "</tr>");
                                        $("#teacherContainer").append(newLine);
                                        evaluateTableSortersInside("#teachersTable");

                                    }
                                    else
                                    {
                                        $("#courseComissionTeacher" + teacherId).css(
                                                {
                                                    "background-color":"red"
                                                }
                                        );
                                        alert("ERRO NO SERVIÇO: " + data.msg);
                                    }
                                });
                    }
                </script>
                <div class="form-group">
                    <label class="control-label col-sm-2">Escolher um Membro para a Comissão</label>
                    <div class="col-sm-10">
                        <select id="teacherSelectedForComission" class="form-control">
                            <option>
                                <bean:message key="none"/>
                            </option>
                            <logic:present name="teachersForComissions">
                                <logic:iterate id="teacher" name="teachersForComissions" type="pt.estgp.estgweb.domain.views.UserView">
                                    <option value="${teacher.id}">
                                        (${teacher.code}) ${teacher.name}
                                    </option>
                                </logic:iterate>
                            </logic:present>
                        </select>
                        <button type="button" class="btn btn-success" onclick="addCourseComissionTeacher($('#teacherSelectedForComission').val())"><span class="glyphicon glyphicon-plus"></span></button>
                    </div>
                </div>


                <table id="teachersTable" class="tablesorterfiltered">
                    <thead>
                        <tr>
                            <th>Código</th>
                            <th>Nome</th>
                            <th>Contacto</th>
                            <th>Editar</th>
                        </tr>
                    </thead>
                    <tbody id="teacherContainer">
                    <%
                        AbstractDao.getCurrentSession().beginTransaction();
                        for(User u:DaoFactory.getUserDaoImpl().loadRoleUsers(CourseView.getValidationRole()))
                        {
                    %>
                        <tr id="courseComissionTeacher<%=u.getId()%>">
                            <td><%=((Teacher)u).getSigesCode()%></td>
                            <td><%=u.getName()%></td>
                            <td><%=u.getEmail()%></td>
                            <td>
                                <a class="btn btn-warning" target="_blank" href="<%=request.getContextPath()%>/user/startProfileFromSearchUsers.do?id=<%=u.getId()%>"><span class="glyphicon glyphicon-pencil"></span></a>
                                <button type="button" class="btn btn-danger" onclick="removeCourseComissionTeacher(<%=u.getId()%>)"><span class="glyphicon glyphicon-remove"></span></button>
                            </td>
                        </tr>
                    <%
                        }
                        AbstractDao.getCurrentSession().getTransaction().commit();
                    %>
                    </tbody>
                </table>
                <%-- // PAINEL INDEPENDENTE PARA GERIR COMISSAO DE CURSO --%>
        </div>
    </div>


    <div class="form-group">
        <label class="control-label col-sm-2"><bean:message key="course.externalSite"/></label>
        <div class="col-sm-10">
            <html:select styleClass="form-control" property="courseView.externalSiteServer">
                <html:option value="estgp">ESTG</html:option>
            </html:select>
            <html:text styleClass="form-control" property="courseView.externalSitePath"/>
        </div>
    </div>

    <div class="form-group">
        <label class="control-label col-sm-2"><bean:message key="course.studies.plan"/>(VERSAO ANTIGA)</label>
        <div class="col-sm-10">
            <baco:isAdmin>
                <html:file styleClass="form-control" property="studiesPlan"/>
            </baco:isAdmin>
            <baco:isNotAdmin>
                <html:file disabled="true" styleClass="form-control" property="studiesPlan"/>
            </baco:isNotAdmin>

            <logic:present name="CourseView" property="studiesPlan">
                <a href="<%=request.getContextPath()%>/repositoryStream/${CourseView.studiesPlanStreamId}"><bean:message key="course.studies.plan"/> XML antigo</a> (${CourseView.studiesPlanSizeKb} Kb - ${CourseView.studiesPlanDate})
            </logic:present>
            <logic:notPresent name="CourseView" property="studiesPlan">
                <bean:message key="course.studies.plan.not.available"/>
            </logic:notPresent>

        </div>
    </div>

    <%--

    <div class="form-group">
        <label class="control-label col-sm-2">
            <bean:message key="course.studies.plan"/>(Versão nova PAE)
            <a class="btn btn-default" href="<%=request.getContextPath()%>/user/adminStudyPlans.do?courseId=<%=CourseView.getId()%>">Gerir Planos</a>
        </label>
        <div class="col-sm-10">
            <logic:present name="CourseView" property="courseStudiesPlans">
                <table class="tablesorterfiltered">
                    <thead>
                    <tr>
                        <th>Versão</th>
                        <th>Data Produção</th>
                        <th>Ultima alteração</th>
                        <th>Descrição</th>
                    </tr>
                    </thead>
                    <tbody>
                    <logic:iterate id="studyPlan" name="CourseView" property="courseStudiesPlans" type="pt.estgp.estgweb.domain.CourseStudiesPlan">
                        <tr>
                            <td>${studyPlan.version}</td>
                            <td>${studyPlan.saveDate}</td>
                            <td>${studyPlan.updateDate}</td>
                            <td>${studyPlan.versionDescription}</td>
                        </tr>
                    </logic:iterate>
                    </tbody>
                </table>
            </logic:present>
        </div>
    </div>
     --%>



<%--

    <tr>
        <th>
            <bean:message key="course.director"/>
        </th>
        <td>
            <html:select onchange="alertPermissions()"  property="courseView.director.id">
                <html:option value="0">
                    <bean:message key="none"/>
                </html:option>
                <logic:present name="CourseForm" property="teachers">
                    <logic:iterate id="teacher" name="CourseForm" property="teachers" type="pt.estgp.estgweb.domain.views.UserView">
                        <html:option value="${teacher.id}">
                            (${teacher.code}) ${teacher.name}
                        </html:option>
                    </logic:iterate>
                </logic:present>
            </html:select>
        </td>
    </tr>
--%>






    <button class="btn btn-success" type="button" onclick="set(this.form,'submit');this.form.submit()">
            <bean:message key="confirm"/>
    </button>


</div><!-- //panel-body-->
</div><!-- //panel panel-default-->

</html:form>