Subversion Repositories bacoAlunos

Rev

Rev 1306 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="org.apache.commons.net.ftp.FTPClient" %>
<%@ page import="org.hibernate.Criteria" %>
<%@ page import="org.hibernate.criterion.Order" %>
<%@ page import="org.hibernate.criterion.Projections" %>
<%@ page import="org.hibernate.criterion.Restrictions" %>
<%@ page import="pt.estgp.estgweb.Globals" %>
<%@ page import="pt.estgp.estgweb.domain.CourseUnit" %>
<%@ page import="pt.estgp.estgweb.domain.CourseUnitImpl" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="pt.estgp.estgweb.utils.DatesUtils" %>
<%@ page import="pt.estgp.estgweb.web.FtpServer" %>
<%@ page import="java.util.List" %>
<%@ page import="org.apache.commons.net.ftp.FTPFile" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
<%@ 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" %>
<baco:hasRole role="pedagogicCouncil,admin,services">

<%

    String importYear = request.getParameter("importYear");

    AbstractDao.getCurrentSession().beginTransaction();

    if(importYear == null)
        importYear = DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear();

    Criteria c = AbstractDao.getCurrentSession().createCriteria(CourseUnit.class);
    c.setProjection(Projections.property("id"));
    c.createAlias("course","co")
            .add(Restrictions.eq("importYear",importYear))
            //.add(Restrictions.eq("status",true))
            .addOrder(Order.asc("co.name"))
            .addOrder(Order.asc("name"));
    List<Long> courseUnitIds = c.list();



%>
<div class="container">
    <div class="row">
        <div class="col-sm-12 col-md-6">
            <div class="alert alert-warning" role="alert">
                Atenção, apenas utilizadores com o papel <bean:message key="user.role.pedagogicCouncil"/>, ou utilizadores especialmente designados pela administração das pasts têm permissão para inserir ficheiros nas pastas de inquéritos pedagógicos
            </div>
        </div>
        <div class="col-sm-12 col-md-6">

            <div class="panel panel-primary">
                <div class="panel-heading"><bean:message key="course.pedagogic.contents.admin"/> - <%=importYear%></div>
                <div class="panel-body">
                    <form role="form" action="<%=request.getContextPath()%>/user/coursePedagogicContents.do" method="post">

                        <div class="form-group">
                            <label for="importYear"><bean:message key="courseunit.importYear"/></label>
                            <select name="importYear" id="importYear" class="form-control" onchange="this.form.submit()">
                                <%
                                    List<String> years = DatesUtils.getImportYears(10);
                                    for(String year: years)
                                    {
                                        String activo = year.equals(importYear)?"selected":"";
                                %>
                                <option value="<%=year%>" <%=activo%>><%=year%></option>
                                <%
                                    }
                                %>
                            </select>

                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>


    <div class="row">
        <div class="col-sm-12 col-md-12">
            <table class="tablesorter tablesorterfiltered">
                <thead>
                <tr>
                    <th class="filter-name filter-select"><bean:message key="status"/></th>
                    <th><bean:message key="course.code"/> <bean:message key="course.label"/> (SIGES)</th>
                    <th class="filter-name filter-select"><bean:message key="course.label"/></th>
                    <th><bean:message key="courseunit.code"/> <bean:message key="courseunit"/> (SIGES)</th>
                    <th><bean:message key="courseunit"/></th>
                    <th class="filter-name filter-select"><bean:message key="course.importYear"/></th>
                    <th class="filter-name filter-select"><bean:message key="courseunit.semestre"/></th>
                    <th data-placeholder="--- p/ vazios">Ficheiros</th>
                    <th>Editar</th>
                </tr>
                </thead>
                <tbody>
            <%

                //FtpServer ftpServer = FtpServer.getFtpServerForCurrentUser(Globals.FTP_IONLINE_URL,request);
                //FTPClient ftpClient = ftpServer.getClient();
                //ftpClient.changeWorkingDirectory("/");
                //ftpClient.changeWorkingDirectory(Globals.FTP_IONLINE_START_PATH);

                for(Long courseUnitId: courseUnitIds)
                {

                    CourseUnitImpl cu = (CourseUnitImpl) DaoFactory.getCourseUnitDaoImpl().load(courseUnitId);
                    //ftpClient.changeWorkingDirectory("/");
                    //boolean existDirectory = ftpClient.changeWorkingDirectory(cu.getInqueritosPedagogicosPathIntranet());
                    //FTPFile[] files = existDirectory? ftpClient.listFiles(): null;
                    request.setAttribute("CourseUnit",cu);
            %>
                    <jsp:useBean id="CourseUnit" type="pt.estgp.estgweb.domain.CourseUnit" scope="request"/>
                    <tr>
                        <td>
                            <logic:equal value="true" name="CourseUnit" property="course.status">
                                <bean:message key="yes"/>
                            </logic:equal>
                            <logic:equal value="false" name="CourseUnit" property="course.status">
                                <bean:message key="no"/>
                            </logic:equal>
                        </td>
                        <td>${CourseUnit.courseCode}</td>
                        <td>${CourseUnit.courseName}</td>
                        <td>${CourseUnit.code}</td>
                        <td>${CourseUnit.name}</td>
                        <td>${CourseUnit.importYear}</td>
                        <td><bean:message key="courseunit.${CourseUnit.semestre}"/></td>
                        <!--<td>
                            <a class="btn btn-warning" href="<%=request.getContextPath()%>/user/courseControllerFromServiceZone.do?dispatch=edit&courseView.id=${course.id}">
                                <span class="glyphicon glyphicon-pencil"></span>
                            </a>
                        </td>-->
                        <td>
                            <div class="list-group" id="filesUnit${CourseUnit.id}">

                            </div>
                        </td>
                        <td>
                            <a class="btn btn-default" target="_blank" href="<%=request.getContextPath()%>/courseunitproxy/courseLayoutIOnlineDtp/ionline/<%=Globals.INTRANET_DTP + "/" + Globals.INTRANET_DTP_InqueritoPedagogico%>/?courseUnitView.id=${CourseUnit.id}&startPath=${CourseUnit.pathIntranet}&from=Home">
                                <span class="glyphicon glyphicon-pencil"></span>
                            </a>
                        </td>
                    </tr>
            <%
                }
            %>
                </tbody>
            </table>
        </div>
    </div>
    <script>
        function updateUnit(unitId)
        {
            $("#filesUnit" + unitId).html("Aguarde por favor");
            $.ajax({
                dataType: "json",
                url: "<%=request.getContextPath()%>/user/courses/listFilesInqueritoPedagogicoJson.jsp?courseUnitId=" + unitId,
                async: true,
                success: function(data) {
                    if(data.files == null || data.files.length == 0)
                    {
                        $("#filesUnit" + unitId).html("---");
                    }
                    else
                    {
                        $("#filesUnit" + unitId).html("");
                        var i;
                        for(i=0;i<data.files.length;i++)
                        {
                            var name = data.files[i].name;
                            var path = data.files[i].completePath;
                            $("#filesUnit" + unitId).append('<div class="list-group-item"><a target="_blank" href="<%=request.getContextPath()%>/ftpProxyStream/ionline/' + path + '">' + name + '</a></div>')
                        }
                    }

                }
            });
        }
        function updateAll()
        {
            <%
            for(Long courseUnitId: courseUnitIds)
            {
            %>

            updateUnit('<%=courseUnitId%>');
            <%
            }
            %>
        }

        function updateTable(){
            $(".tablesorterfiltered").trigger('update');
            setTimeout("updateTable()",5000);
        }
        $(document).ready(function(){
            setTimeout("updateAll()",1000);
            setTimeout("updateTable()",5000);
        });
    </script>
<%
    //ftpClient.logout();
    AbstractDao.getCurrentSession().getTransaction().commit();
%>
</div>
</baco:hasRole>