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}) <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 |