Subversion Repositories bacoAlunos

Rev

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

Rev Author Line No. Line
207 jmachado 1
<%@ page import="pt.estgp.estgweb.domain.Teacher" %>
2
<%@ page import="pt.estgp.estgweb.domain.TeacherImpl" %>
3
<%@ page import="jomm.utils.MessageResources" %>
486 jmachado 4
<%@ page import="java.util.Collections" %>
5
<%@ page import="pt.estgp.estgweb.domain.views.utils.CourseUnitDeliverableComparator" %>
1633 jmachado 6
<%@ page import="org.json.JSONObject" %>
207 jmachado 7
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
8
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
9
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %>
10
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
11
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
12
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %>
13
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
14
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
15
<jsp:useBean id="CourseUnitsForm" type="pt.estgp.estgweb.web.form.courseunits.CourseUnitsForm" scope="request"/>
16
<jsp:useBean id="CourseUnitView" type="pt.estgp.estgweb.domain.views.CourseUnitView" scope="request"/>
17
<jsp:useBean id="CourseUnitAssignementView" type="pt.estgp.estgweb.domain.views.CourseUnitAssignementView" scope="request"/>
18
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/>
215 jmachado 19
<div id="contentIntranet">
20
<div id="contentPane">
208 jmachado 21
<html:errors/>
22
<jomm:messages/>
207 jmachado 23
 
1482 jmachado 24
<div class="panel panel-default">
25
    <div class="panel-heading">
26
        <bean:message key="courseunit.assignement" arg0="${CourseUnitAssignementView.title}"/>
27
    </div>
28
    <div class="panel-body">
29
        <table class="tablesorter-blue">
208 jmachado 30
            <tr>
31
                <th>
1482 jmachado 32
                    <bean:message key="courseunit.title"/>
208 jmachado 33
                </th>
34
                <td>
1482 jmachado 35
                    <bean:write name="CourseUnitAssignementView" property="title"/>
208 jmachado 36
                </td>
37
            </tr>
1482 jmachado 38
            <tr>
39
                <th>
40
                    <bean:message key="courseunit.assignement.deliver.date"/>
41
                </th>
42
                <td>
43
                    <bean:write name="CourseUnitAssignementView" property="deliverDate"/>
44
                </td>
45
            </tr>
46
            <tr>
47
                <th>
48
                    <bean:message key="courseunit.assignement.deliver.type"/>
49
                </th>
50
                <td>
51
                    <bean:message key="courseunit.assignement.deliver.type.${CourseUnitAssignementView.deliverType}"/>
52
                </td>
53
            </tr>
54
            <tr>
55
                <th>
56
                    <bean:message key="courseunit.assignement.deliver.late.permission"/>
57
                </th>
58
                <td>
59
                    <logic:equal value="true" name="CourseUnitAssignementView" property="lateDelivers">
60
                        <bean:message key="yes"/>
61
                    </logic:equal>
62
                    <logic:notEqual value="true" name="CourseUnitAssignementView" property="lateDelivers">
63
                        <bean:message key="no"/>
64
                    </logic:notEqual>
65
                </td>
66
            </tr>
67
            <tr>
68
                <th>
69
                    <bean:message key="courseunit.description"/>
70
                </th>
71
                <td>
72
                    ${CourseUnitAssignementView.formatedDescription}
73
                </td>
74
            </tr>
75
            <tr>
76
                <th>
77
                    <bean:message key="courseunit.status"/>
78
                </th>
79
                <td>
80
                    <logic:equal value="true" name="CourseUnitAssignementView" property="status">
81
                        <bean:message key="status.active"/>
82
                    </logic:equal>
83
                    <logic:notEqual value="true" name="CourseUnitAssignementView" property="status">
84
                        <bean:message key="status.inactive"/>
85
                    </logic:notEqual>
86
                </td>
87
            </tr>
88
            <logic:notEmpty name="CourseUnitAssignementView" property="workFile">
89
                <tr>
90
                    <th>
91
                        <bean:message key="courseunit.assignement.file"/>
92
                    </th>
93
                    <td>
94
                        <a target="_blank" href="<%=request.getContextPath()%>/repositoryStream/${CourseUnitAssignementView.workFile}"><bean:message key="courseunit.assignement.file"/></a>
95
                    </td>
96
                </tr>
97
            </logic:notEmpty>
98
        </table>
486 jmachado 99
 
1482 jmachado 100
 
101
 
486 jmachado 102
<bean:define id="orderFirst" type="java.lang.String" scope="request" value=""/>
103
<bean:define id="orderLast" type="java.lang.String" scope="request" value=""/>
104
 
105
<%
106
//    String orderFirst = "";
107
//    String orderLast = "";
108
 
109
    if (request.getParameter("sort") != null) {
110
        String sortBy = request.getParameter("sort");
111
        if (sortBy.equals("firstAsc"))
112
        {
113
            Collections.sort(CourseUnitAssignementView.getDeliverables(), CourseUnitDeliverableComparator.FIRST_VERSION_ASC);
114
%>
115
<bean:define id="orderFirst" type="java.lang.String" scope="request" value="firstDesc"/>
116
<bean:define id="orderLast" type="java.lang.String" scope="request" value="lastAsc"/>
117
<%
118
        }
119
        else if (sortBy.equals("firstDesc"))
120
        {
121
            Collections.sort(CourseUnitAssignementView.getDeliverables(), CourseUnitDeliverableComparator.FIRST_VERSION_DESC);
122
%>
123
<bean:define id="orderFirst" type="java.lang.String" scope="request" value="firstAsc"/>
124
<bean:define id="orderLast" type="java.lang.String" scope="request" value="lastAsc"/>
125
<%
126
        }
127
        else if (sortBy.equals("lastAsc"))
128
        {
129
            Collections.sort(CourseUnitAssignementView.getDeliverables(), CourseUnitDeliverableComparator.LAST_VERSION_ASC);
130
%>
131
<bean:define id="orderLast" type="java.lang.String" scope="request" value="lastDesc"/>
132
<bean:define id="orderFirst" type="java.lang.String" scope="request" value="firstAsc"/>
133
<%
134
         }
135
        else if (sortBy.equals("lastDesc"))
136
        {
137
            Collections.sort(CourseUnitAssignementView.getDeliverables(), CourseUnitDeliverableComparator.LAST_VERSION_DESC);
138
%>
139
<bean:define id="orderLast" type="java.lang.String" scope="request" value="lastAsc"/>
140
<bean:define id="orderFirst" type="java.lang.String" scope="request" value="firstAsc"/>
141
<%
142
         }
143
        else
144
        {
145
%>
146
<bean:define id="orderFirst" type="java.lang.String" scope="request" value="firstAsc"/>
147
<bean:define id="orderLast" type="java.lang.String" scope="request" value="lastAsc"/>
148
 
149
<%
150
        }
151
    }
152
 
153
%>
154
 
1633 jmachado 155
<%
156
    StringBuilder deliverInfoCsv = new StringBuilder();
157
%>
158
 
208 jmachado 159
<nested:form action="/user/courseUnitControllerFromHome">
160
    <input type="hidden" name="dispatch" value="updateDeliverables">
161
    <html:hidden property="courseUnitAssignementView.id" value="${CourseUnitAssignementView.id}"/>
162
 
163
    <html:hidden property="courseUnitView.id" value="${CourseUnitView.id}"/>
164
 
1482 jmachado 165
    <a name="works"> </a>
166
    <table class="tablesorter-blue">
167
        <thead>
168
            <tr>
169
                <th><bean:message key="courseunit.assignement.delivered.versions"/></th>
170
                <th><bean:message key="courseunit.assignement.delivered.date.first.version"/></th>
171
                <th><bean:message key="courseunit.assignement.delivered.date"/></th>
172
                <th><bean:message key="courseunit.assignement.deliver.time"/></th>
173
                <th><bean:message key="number"/></th>
174
                <th><bean:message key="name"/></th>
175
                <th><bean:message key="courseunit.assignement.deliver.version"/></th>
176
                <th><bean:message key="courseunit.assignement.deliver.grade"/></th>
177
                <th><bean:message key="courseunit.assignement.deliver.obs"/></th>
178
            </tr>
179
        </thead>
1633 jmachado 180
        <%
181
            deliverInfoCsv.append("Total de Versões Entregues").append(";");
182
            deliverInfoCsv.append("Data de Entrega da Primeira Versão").append(";");
183
            deliverInfoCsv.append("Data de Entrega").append(";");
184
            deliverInfoCsv.append("Entregue").append(";");
185
            deliverInfoCsv.append("Número").append(";");
186
            deliverInfoCsv.append("Nome").append(";");
187
            deliverInfoCsv.append("Nota").append(";");
188
            deliverInfoCsv.append("Observações").append(";");
189
            deliverInfoCsv.append("\n");
190
 
191
        %>
1482 jmachado 192
        <tbody>
208 jmachado 193
        <nested:iterate id="deliverable" property="courseUnitAssignementView.deliverables" type="pt.estgp.estgweb.domain.views.CourseUnitDeliverableView">
1633 jmachado 194
            <%
195
                deliverInfoCsv.append(deliverable.getVersionsSize()).append(";");
196
                deliverInfoCsv.append(deliverable.getDeliverDateMinutesSecondsStrFirstVersion()).append(";");
197
                deliverInfoCsv.append(deliverable.getDeliverDateStrMinutesSeconds()).append(";");
198
                if(deliverable.isLateDeliver())
199
                    deliverInfoCsv.append("Entregue a Horas").append(";");
200
                else
201
                    deliverInfoCsv.append("Entregua Atrasada").append(";");
202
                deliverInfoCsv.append(deliverable.getStudent().getCode()).append(";");
203
                deliverInfoCsv.append(deliverable.getStudent().getName()).append(";");
1635 jmachado 204
                if(deliverable.getGrade() != null)
205
                    deliverInfoCsv.append(deliverable.getGrade()).append(";");
206
                else
207
                    deliverInfoCsv.append(";");
208
                if(deliverable.getObs() != null)
209
                    deliverInfoCsv.append(deliverable.getObs().replaceAll("\\n"," ")).append(";");
210
                else
211
                    deliverInfoCsv.append(";");
1633 jmachado 212
                deliverInfoCsv.append("\n");
213
 
214
            %>
208 jmachado 215
            <tr>
486 jmachado 216
                <td align="right">
217
 
218
                <a href="javascript:showOrHideOne('work${deliverable.id}')">${deliverable.versionsSize}</a>
219
                    <div id="work${deliverable.id}" style="display:none;">
220
                        <nested:iterate id="version" name="deliverable" property="versions" type="pt.estgp.estgweb.domain.RepositoryFileVersion">
221
                           - <bean:message key="courseunit.assignement.deliver.version"/> (${version.saveDate})&nbsp;<br/>
222
                        </nested:iterate>
223
                    </div>
224
 
225
                </td>
226
                <td nowrap="nowrap" align="center">${deliverable.deliverDateMinutesSecondsStrFirstVersion} </td>
227
                <td nowrap="nowrap" align="center">${deliverable.deliverDateStrMinutesSeconds} </td>
208 jmachado 228
                <logic:equal name="deliverable" property="lateDeliver" value="true">
1482 jmachado 229
                    <td>
230
                        <label class="statusERROR">
231
                            <bean:message key="courseunit.assignement.deliver.time.late"/>
232
                        </label>
207 jmachado 233
                    </td>
208 jmachado 234
                </logic:equal>
235
                <logic:notEqual name="deliverable" property="lateDeliver" value="true">
1482 jmachado 236
                    <td >
237
                        <label class="statusOK">
238
                            <bean:message key="courseunit.assignement.deliver.time.ok"/>
239
                        </label>
207 jmachado 240
                    </td>
208 jmachado 241
                </logic:notEqual>
316 jmachado 242
                <td align="right">${deliverable.student.code}</td>
208 jmachado 243
                <td>${deliverable.student.name}</td>
486 jmachado 244
                <td><a target="_blank" href="<%=request.getContextPath()%>/repositoryStream/${deliverable.fileStreamId}"><bean:message key="courseunit.assignement.deliver.version"/> (${deliverable.deliverDateMinutesSecondsStr})</a></td>
208 jmachado 245
                <td>
246
                    <nested:hidden property="id"/>
247
                    <nested:text property="grade"/>
248
                </td>
249
                <td>
223 jmachado 250
                        <%--<a href="javascript:showOrHideOne('obs${deliverable.id}')"><bean:message key="courseunit.assignement.deliver.show.obs"/></a>--%>
208 jmachado 251
 
252
                    <nested:textarea styleId="obs${deliverable.id}"  styleClass="textarea" property="obs"/>
253
 
254
                </td>
207 jmachado 255
            </tr>
208 jmachado 256
        </nested:iterate>
1482 jmachado 257
 
258
        </tbody>
208 jmachado 259
    </table>
1633 jmachado 260
    <input type="button" class="btn btn-success" onclick="this.form.submit()" value="<bean:message key="confirm"/>"/>
208 jmachado 261
</nested:form>
1633 jmachado 262
 
1634 jmachado 263
        <button type="button" class="btn btn-default pull-right" data-toggle="modal" data-target="#modalCsvInfo">Informação da tabela em CSV</button>
264
 
1482 jmachado 265
    </div>
1634 jmachado 266
</div>
267
 
268
<div class="modal fade" id="modalCsvInfo" role="dialog" >
269
    <div class="modal-dialog" data-width="960" style="display: block; width: 960px; margin-top: 50px;" aria-hidden="false">
270
 
271
        <!-- Modal content-->
272
        <div class="modal-content">
273
            <div class="modal-header clearfix">
274
                <h3 class="modal-title">
275
                    <label class="title-wrap">Informação de entregas em formato CSV para importar no EXCEL</label>
276
                    <button type="button" class="btn btn-danger btn-xs pull-right" data-dismiss="modal"><span class="glyphicon glyphicon-remove small"></span></button>
277
                </h3>
278
            </div>
279
            <div class="modal-body">
280
                <p>Selecione o texto e faça copiar. No Excel coloque o cursor numa célula, clique no menu "Editar" e de seguida escolha "Colar Especial", na opção seguinte escolha "Texto".
281
                    Finalmente clique na Caixa que lhe aparece no canto inferior direito do texto colado. Das opções possiveis escolha "Import Wizard".
282
                    No wizard escolha "Delimitado" e "Seguinte".  No ecrão seguinte escolha o carcater separador ";" e desmarque os restantes, faça "Terminar".</p>
283
                <pre><%=deliverInfoCsv.toString()%></pre>
284
                <button type="button" class="btn btn-danger" data-dismiss="modal">Sair</button>
285
            </div>
286
        </div>
1633 jmachado 287
    </div>
208 jmachado 288
</div>
1482 jmachado 289