Skip to content

Commit 356410e

Browse files
committed
Página de visualizar TCC a partir da lista de trabalhos passada para um modal ufjf-dcc#150
1 parent 2a90095 commit 356410e

File tree

5 files changed

+88
-45
lines changed

5 files changed

+88
-45
lines changed

WebContent/pages/tccs-curso.zul

+4-7
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
11
<?page title="Gerenciamento de Trabalhos"?>
22
<?init class="br.ufjf.tcc.controller.AuthController"?>
33
<zk>
4-
<script type="text/javascript">
5-
function visualzarTCC(id) {
6-
window.open('visualiza.zul?id='+id,'_blank'); }
7-
</script>
84
<style src="/style.css" />
9-
<div apply="org.zkoss.bind.BindComposer"
5+
<window apply="org.zkoss.bind.BindComposer"
106
viewModel="@id('vm') @init('br.ufjf.tcc.controller.TCCsCursoController')"
117
height="100%" class="publicList">
128
<include src="@load(vm.menu)" />
@@ -106,7 +102,7 @@
106102
</columns>
107103
<template name="lista">
108104
<row xmlns:w="client"
109-
w:onClick="visualzarTCC(${each.idTCC});"
105+
onClick="@command('visualizarTCC', idTCC=each.idTCC, btnAtualizarTCC=btnAtualizarTCC)"
110106
tooltip="${forEachStatus.index}, position=at_pointer"
111107
style="@load(!each.tarefasDentroDoPrazo ? 'text-decoration: line-through;' : '')">
112108
<div>
@@ -150,7 +146,8 @@
150146
</row>
151147
</template>
152148
</grid>
153-
</div>
149+
<button id="btnAtualizarTCC" label="Atualizar TCC" onClick="@command('atualizarTCC')" visible="false" />
150+
</window>
154151
<popup id="filterHelp">
155152
<html>
156153
<![CDATA[ Permite filtrar a lista de Trabalhos com os seguintes filtros:

WebContent/pages/visualiza.zul

+10-26
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,12 @@
1-
<?page title="Visualizar Trabalho" contentType="text/html;charset=UTF-8"?>
1+
<?init class="br.ufjf.tcc.controller.AuthController"?>
22
<?script content="zk.useStack='auto'" ?>
3-
<zk>
4-
<style>
5-
.trab{
6-
background: -webkit-linear-gradient(#08c, #2E2EFE);
7-
background: -o-linear-gradient(#08c, #2E2EFE);
8-
background: -moz-linear-gradient(#08c, #2E2EFE);
9-
background: linear-gradient(#08c, #2E2EFE);
10-
color:white;
11-
}
12-
13-
.trab:hover{
14-
color:black;
15-
}
16-
</style>
17-
18-
19-
20-
<style src="/style.css" />
21-
22-
<div apply="org.zkoss.bind.BindComposer"
3+
<zk>
4+
<window id="windowTCC" title="Visualizar Trabalho" width="85%" height="85%"
5+
border="normal" position="center,center" closable="true"
6+
apply="org.zkoss.bind.BindComposer"
237
viewModel="@id('vm') @init('br.ufjf.tcc.controller.VisualizaTCCController')"
24-
style="background-color:#efefef;" height="94.3%">
25-
<include src="@load(vm.menu)" />
8+
onCancel="self.onClose()" >
9+
2610
<div height="100%">
2711
<div height="100%" width="30%"
2812
style="padding: 10px;float: left;background-color:#efefef;">
@@ -217,13 +201,13 @@
217201

218202

219203
<div id="verifica" visible="@load(vm.coordenador and not vm.finalizado)">
220-
<button image="/img/confirm.gif" label="Aprovar projeto" visible="@load(vm.projeto and vm.projetoAguardandoAprovacao)" onClick="@command('finalizaProjeto')" width="100%"
204+
<button image="/img/confirm.gif" label="Aprovar projeto" visible="@load(vm.projeto and vm.projetoAguardandoAprovacao)" onClick="@command('finalizaProjeto', window=windowTCC)" width="100%"
221205
height="30px" style="margin-top:10px"/>
222206

223207
<div align="center" style="position:relative;top:20px;text-align:center" >
224208
<label style="padding:1px;color:red" value="Documentos ainda não foram entregues" visible="@load(!vm.tcc.entregouDoc and !vm.tcc.projeto and vm.tcc.statusTCC eq 'TAA')" />
225209
<label style="padding:1px;color:red" value="Trabalho final ainda não enviado" visible="@load(!vm.tcc.trabFinal and !vm.tcc.projeto and vm.tcc.statusTCC eq 'TAA')" />
226-
<button disabled="@load(!(vm.tcc.entregouDoc and vm.tcc.trabFinal))" image="/img/confirm.gif" label="Aprovar trabalho" visible="@load(not vm.projeto and vm.trabalhoAguardandoAprovacao)" onClick="@command('finalizaTrabalho')" width="100%"
210+
<button disabled="@load(!(vm.tcc.entregouDoc and vm.tcc.trabFinal))" image="/img/confirm.gif" label="Aprovar trabalho" visible="@load(not vm.projeto and vm.trabalhoAguardandoAprovacao)" onClick="@command('finalizaTrabalho', window=windowTCC)" width="100%"
227211
height="30px" />
228212
</div>
229213

@@ -280,5 +264,5 @@
280264
onCreate="@command('showTCC', iframe=self)" />
281265
</div>
282266
</div>
283-
</div>
267+
</window>
284268
</zk>

WebContent/style.css

+12
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,18 @@ tr.z-row td.z-row-inner {
2626
cursor: pointer;
2727
}
2828

29+
.trab{
30+
background: -webkit-linear-gradient(#08c, #2E2EFE);
31+
background: -o-linear-gradient(#08c, #2E2EFE);
32+
background: -moz-linear-gradient(#08c, #2E2EFE);
33+
background: linear-gradient(#08c, #2E2EFE);
34+
color:white;
35+
}
36+
37+
.trab:hover{
38+
color:black;
39+
}
40+
2941
.publicList .z-image {
3042
padding-left: 15px;
3143
cursor:pointer;

src/br/ufjf/tcc/controller/TCCsCursoController.java

+32-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@
55
import java.util.ArrayList;
66
import java.util.Calendar;
77
import java.util.Collections;
8+
import java.util.HashMap;
9+
import java.util.Iterator;
810
import java.util.List;
11+
import java.util.Map;
912

1013
import org.zkoss.bind.BindUtils;
1114
import org.zkoss.bind.annotation.BindingParam;
@@ -15,8 +18,10 @@
1518
import org.zkoss.zhtml.Filedownload;
1619
import org.zkoss.zk.ui.Executions;
1720
import org.zkoss.zk.ui.event.Event;
21+
import org.zkoss.zul.Button;
1822
import org.zkoss.zul.Label;
1923
import org.zkoss.zul.Messagebox;
24+
import org.zkoss.zul.Window;
2025

2126
import br.ufjf.tcc.business.TCCBusiness;
2227
import br.ufjf.tcc.library.FileManager;
@@ -35,6 +40,7 @@ public class TCCsCursoController extends CommonsController {
3540
private int tipoTrabalho = 0; // 0=todos, 1 = projeto, 2 = trabalho
3641
private SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss.S");
3742
private boolean podeMarcarTrabFinal = false;
43+
private int idTccModal = 0;
3844

3945
@Init
4046
public void init() {
@@ -132,7 +138,6 @@ public List<TCC> getXmlTccs() {
132138
@NotifyChange({ "filterTccs", "filterYear" })
133139
@Command
134140
public void filtra() {
135-
136141
String filter = filterString.toLowerCase().trim();
137142
if (tccs != null) {
138143
List<TCC> temp = new ArrayList<TCC>();
@@ -462,4 +467,30 @@ public void setPodeMarcarTrabFinal(boolean podeMarcarTrabFinal) {
462467
this.podeMarcarTrabFinal = podeMarcarTrabFinal;
463468
}
464469

470+
@Command
471+
public void visualizarTCC(@BindingParam("idTCC") int idTCC, @BindingParam("btnAtualizarTCC") Button btnAtualizarTCC) {
472+
idTccModal = idTCC;
473+
Map<String, Object> map = new HashMap<String, Object>();
474+
map.put("id", idTCC);
475+
map.put("btnAtualizarTCC", btnAtualizarTCC);
476+
477+
final Window window = (Window) Executions.createComponents(
478+
"/pages/visualiza.zul", null, map);
479+
window.doModal();
480+
}
481+
482+
@NotifyChange("filterTccs")
483+
@Command
484+
public void atualizarTCC() {
485+
if (idTccModal > 0) {
486+
for (int index = 0; index < filterTccs.size(); index++) {
487+
TCC tcc = filterTccs.get(index);
488+
489+
if (tcc.getIdTCC() == idTccModal) {
490+
TCC tccAtualizado = new TCCBusiness().getTCCById(idTccModal);
491+
filterTccs.set(index, tccAtualizado);
492+
}
493+
}
494+
}
495+
}
465496
}

src/br/ufjf/tcc/controller/VisualizaTCCController.java

+30-11
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,20 @@
88

99
import org.zkoss.bind.annotation.BindingParam;
1010
import org.zkoss.bind.annotation.Command;
11+
import org.zkoss.bind.annotation.ExecutionArgParam;
1112
import org.zkoss.bind.annotation.Init;
1213
import org.zkoss.util.media.AMedia;
1314
import org.zkoss.zhtml.Filedownload;
1415
import org.zkoss.zk.ui.Executions;
1516
import org.zkoss.zk.ui.event.Event;
17+
import org.zkoss.zk.ui.event.Events;
1618
import org.zkoss.zul.Button;
1719
import org.zkoss.zul.Div;
20+
import org.zkoss.zul.Grid;
1821
import org.zkoss.zul.Iframe;
1922
import org.zkoss.zul.Label;
2023
import org.zkoss.zul.Messagebox;
24+
import org.zkoss.zul.Window;
2125

2226
import br.ufjf.tcc.business.ParticipacaoBusiness;
2327
import br.ufjf.tcc.business.PerguntaBusiness;
@@ -29,6 +33,7 @@
2933
import br.ufjf.tcc.library.SessionManager;
3034
import br.ufjf.tcc.mail.Email;
3135
import br.ufjf.tcc.mail.EmailBuilder;
36+
import br.ufjf.tcc.model.CalendarioSemestre;
3237
import br.ufjf.tcc.model.Participacao;
3338
import br.ufjf.tcc.model.Pergunta;
3439
import br.ufjf.tcc.model.Resposta;
@@ -49,6 +54,7 @@ public class VisualizaTCCController extends CommonsController {
4954
private boolean exibeBaixarTrabExtra;
5055
private boolean possuiBanca ;
5156
private boolean exibirChave ;
57+
private Button btnAtualizarTCC;
5258

5359
public String getPageTitle() {
5460
return pageTitle;
@@ -59,34 +65,35 @@ public void setPageTitle(String pageTitle) {
5965
}
6066

6167
@Init
62-
public void init() {
63-
64-
65-
66-
String tccId = Executions.getCurrent().getParameter("id");
68+
public void init(@ExecutionArgParam("id") int id, @ExecutionArgParam("btnAtualizarTCC") Button btnAtualizarTCC) {
69+
Integer tccId = id;
70+
this.btnAtualizarTCC = btnAtualizarTCC;
6771

6872
if (tccId != null) {
6973
TCCBusiness tccBusiness = new TCCBusiness();
70-
tcc = tccBusiness.getTCCById(Integer.parseInt(tccId));
74+
tcc = tccBusiness.getTCCById(tccId);
7175
}
76+
7277
if(tcc.getParticipacoes().isEmpty())
7378
possuiBanca = false;
7479
else
7580
possuiBanca=true;
81+
7682
this.exibirBaixarProjeto = exibirBaixarProjeto();
7783
this.exibirTrabalhoBanca = exibirTrabalho();
7884
this.exibirBaixarTrabalhoBanca = exibirBaixarTrabalhoBanca();
7985
this.exibeBaixarProjExtra = exibirBaixarProjetoExtra();
8086
this.exibeBaixarTrabExtra = exibirBaixarTrabalhoExtra();
8187
this.exibirChave = exibirChave();
88+
8289
if (tcc != null && canViewTCC()) {
8390
if (getUsuario() != null && checkLogin()) {
8491
if (canAnswer) {
8592
List<Pergunta> questions = new PerguntaBusiness()
8693
.getQuestionsByQuestionary(new QuestionarioBusiness()
8794
.getCurrentQuestionaryByCurso(tcc
8895
.getAluno().getCurso()));
89-
96+
9097
Participacao p = null;
9198
List<Participacao> participacoes = new ParticipacaoBusiness().getParticipacoesByUser(getUsuario());
9299
for (Participacao aux : participacoes) {
@@ -409,7 +416,7 @@ public boolean isFinalizado()
409416

410417
@SuppressWarnings({"unchecked","rawtypes"})
411418
@Command
412-
public void finalizaProjeto()
419+
public void finalizaProjeto(@BindingParam("window") final Window window)
413420
{
414421
Messagebox.show("Você tem certeza que deseja validar esse projeto?", "Confirmação", Messagebox.YES | Messagebox.NO, Messagebox.QUESTION, new org.zkoss.zk.ui.event.EventListener() {
415422
public void onEvent(Event evt) throws InterruptedException {
@@ -434,7 +441,13 @@ public void onEvent(Event evt) throws InterruptedException {
434441
inserirDestinatarios(alunos, emailBuilder);
435442
enviarEmail(emailBuilder);
436443
SessionManager.setAttribute("trabalhos_semestre",true);
437-
Executions.sendRedirect("/pages/tccs-curso.zul");
444+
//Executions.sendRedirect("/pages/tccs-curso.zul");
445+
446+
if (btnAtualizarTCC != null)
447+
Events.sendEvent(new Event("onClick", btnAtualizarTCC));
448+
449+
if (window != null)
450+
window.detach();
438451
}
439452
else
440453
Messagebox.show("O projeto não esta completo");
@@ -446,7 +459,7 @@ public void onEvent(Event evt) throws InterruptedException {
446459

447460
@SuppressWarnings({"unchecked", "rawtypes"})
448461
@Command
449-
public void finalizaTrabalho()
462+
public void finalizaTrabalho(@BindingParam("window") final Window window)
450463
{
451464
Messagebox.show("Você tem certeza que deseja finalizar esse Trabalho?\nApós a aprovação, o trabalho será publicado para acesso público", "Confirmação", Messagebox.YES | Messagebox.NO, Messagebox.QUESTION, new org.zkoss.zk.ui.event.EventListener() {
452465
public void onEvent(Event evt) throws InterruptedException {
@@ -474,7 +487,13 @@ public void onEvent(Event evt) throws InterruptedException {
474487
inserirDestinatarios(alunos, emailBuilder);
475488
enviarEmail(emailBuilder);
476489
SessionManager.setAttribute("trabalhos_semestre",true);
477-
Executions.sendRedirect("/pages/tccs-curso.zul");
490+
//Executions.sendRedirect("/pages/tccs-curso.zul");
491+
492+
if (btnAtualizarTCC != null)
493+
Events.sendEvent(new Event("onClick", btnAtualizarTCC));
494+
495+
if (window != null)
496+
window.detach();
478497
}
479498
else
480499
Messagebox.show("O projeto não esta completo");

0 commit comments

Comments
 (0)