Navegación implementada entre las páginas de listado, visualizacización

y edición de visitas.
This commit is contained in:
Marcos Garcia Nuñez
2019-12-27 00:13:13 +01:00
parent c3da3bdc95
commit 7f36ca323c
9 changed files with 43 additions and 22 deletions

View File

@@ -7,7 +7,7 @@
<ui:composition template="../header.xhtml"> <ui:composition template="../header.xhtml">
<ui:define name="content"> <ui:define name="content">
<h:form id="visitForm"> <h:form id="visitForm">
<p:messages id="mesgs" showDetail="true" closable="true" autoupdate="true" /> <p:growl id="mesgs" showDetail="true" closable="true" autoupdate="true" />
<p:panel id="panelVisit" header="Detalles de la visita"> <p:panel id="panelVisit" header="Detalles de la visita">
<div class="ui-g ui-fluid"> <div class="ui-g ui-fluid">

View File

@@ -7,7 +7,7 @@
<ui:composition template="../header.xhtml"> <ui:composition template="../header.xhtml">
<ui:define name="content"> <ui:define name="content">
<h:form id="frmPatientVisitList"> <h:form id="frmPatientVisitList">
<p:messages id="mesgs" showDetail="true" closable="true" autoupdate="true" /> <p:growl id="mesgs" showDetail="true" closable="true" autoupdate="true" />
<p:panel id="PanelUnderConstruction" header="Próximas visitas agendadas"> <p:panel id="PanelUnderConstruction" header="Próximas visitas agendadas">
<div class="ui-g ui-fluid"> <div class="ui-g ui-fluid">

View File

@@ -8,7 +8,7 @@
<ui:composition template="../header.xhtml"> <ui:composition template="../header.xhtml">
<ui:define name="content"> <ui:define name="content">
<h:form id="visitForm"> <h:form id="visitForm">
<p:messages id="mesgs" showDetail="true" closable="true" autoupdate="true" /> <p:growl id="mesgs" showDetail="true" closable="true" autoupdate="true" />
<p:panel id="panelVisit" header="Actualizar detalles de la visita"> <p:panel id="panelVisit" header="Actualizar detalles de la visita">
<div class="ui-g ui-fluid"> <div class="ui-g ui-fluid">
@@ -53,7 +53,7 @@
requiredMessage="Especifique la hora de la visita." readonly="#{UpdateVisit.onlyResult}" /> requiredMessage="Especifique la hora de la visita." readonly="#{UpdateVisit.onlyResult}" />
<p:calendar id="time" value="#{UpdateVisit.time}" pattern="HH:mm" timeOnly="true" autocomplete="true" /> <p:calendar id="time" value="#{UpdateVisit.time}" pattern="HH:mm" timeOnly="true" autocomplete="true" />
<p:datePicker id="hora2" value="#{UpdateVisit.time}" timeOnly="true" pattern="HH:mm" /> <p:datePicker id="hora2" value="#{UpdateVisit.time}" timeOnly="true" pattern="HH:mm" />
<p:datePicker id="hora3" timeOnly="true" pattern="HH:mm" /> <p:datePicker id="hora3" timeOnly="true" pattern="HH:mm" timeZone="Europe/Madrid" />
</div> </div>
<div class="ui-g-8"> <div class="ui-g-8">
<p:message for="hora" display="text" /> <p:message for="hora" display="text" />

View File

@@ -7,7 +7,7 @@
<ui:composition template="../header.xhtml"> <ui:composition template="../header.xhtml">
<ui:define name="content"> <ui:define name="content">
<h:form id="frmVisitList"> <h:form id="frmVisitList">
<p:messages id="mesgs" showDetail="true" closable="true" autoupdate="true" /> <p:growl id="mesgs" showDetail="true" closable="true" autoupdate="true" />
<p:panel id="PanelUnderConstruction" header="Consultar agenda del día"> <p:panel id="PanelUnderConstruction" header="Consultar agenda del día">
<div class="ui-g ui-fluid"> <div class="ui-g ui-fluid">
@@ -69,6 +69,7 @@
<div class="ui-g-4 ui-md-4" /> <div class="ui-g-4 ui-md-4" />
<div class="ui-g-2 ui-md-2 "> <div class="ui-g-2 ui-md-2 ">
<p:commandButton validateClient="true" value="Consultar" update="frmVisitList" action="#{VisitList.showData}" icon="pi pi-check" /> <p:commandButton validateClient="true" value="Consultar" update="frmVisitList" action="#{VisitList.showData}" icon="pi pi-check" />
</div> </div>
<div class="ui-g-2 ui-md-2"> <div class="ui-g-2 ui-md-2">
<p:button value="Volver" outcome="/home" icon="pi pi-home" /> <p:button value="Volver" outcome="/home" icon="pi pi-home" />

View File

@@ -3,12 +3,12 @@
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"> xmlns:p="http://primefaces.org/ui">
<f:viewParam name="id" value="#{VisitView.id}" required="true" /> <f:viewParam name="id" value="#{VisitView.id}" required="true" />
<ui:composition template="../header.xhtml"> <ui:composition template="../header.xhtml">
<ui:define name="content"> <ui:define name="content">
<h:form id="visitForm"> <h:form id="visitForm">
<p:messages id="mesgs" showDetail="true" closable="true" autoupdate="true" /> <p:growl id="mesgs" showDetail="true" closable="true" autoupdate="true" />
<p:panel id="panelVisit" header="Detalles de la visita"> <p:panel id="panelVisit" header="Detalles de la visita">
<div class="ui-g ui-fluid"> <div class="ui-g ui-fluid">
@@ -37,7 +37,7 @@
</div> </div>
<div class="ui-g-2"> <div class="ui-g-2">
<div class="ui-inputgroup"> <div class="ui-inputgroup">
<p:calendar id="fecha" value="#{VisitView.date}" pattern="dd/MM/yyyy" showButtonPanel="true" autocomplete="true" required="true" <p:datePicker id="fecha" value="#{VisitView.date}" pattern="dd/MM/yyyy" showIcon="true" readonly="true" showButtonBar="true" autocomplete="true" required="true"
requiredMessage="Especifique la fecha de la visita." /> requiredMessage="Especifique la fecha de la visita." />
</div> </div>
</div> </div>
@@ -49,7 +49,8 @@
<p:outputLabel for="hora" value="Hora:" /> <p:outputLabel for="hora" value="Hora:" />
</div> </div>
<div class="ui-g-2"> <div class="ui-g-2">
<p:calendar id="hora" value="#{VisitView.time}" pattern="HH:mm" showButtonPanel="true" autocomplete="true" required="true" requiredMessage="Especifique la hora de la visita." /> <p:datePicker id="hora" value="#{VisitView.time}" timeOnly="true" timeZone="Europe/Madrid" pattern="HH:mm" readonly="true" autocomplete="true" required="true"
requiredMessage="Especifique la hora de la visita." />
</div> </div>
<div class="ui-g-8"> <div class="ui-g-8">
<p:message for="hora" display="text" /> <p:message for="hora" display="text" />
@@ -59,7 +60,7 @@
<p:outputLabel for="observaciones" value="Observaciones:" /> <p:outputLabel for="observaciones" value="Observaciones:" />
</div> </div>
<div class="ui-g-8"> <div class="ui-g-8">
<p:inputTextarea id="observaciones" value="#{VisitView.observations}" /> <p:inputTextarea id="observaciones" value="#{VisitView.observations}" readonly="true" />
</div> </div>
<div class="ui-g-2"> <div class="ui-g-2">
<p:message for="observaciones" display="text" /> <p:message for="observaciones" display="text" />
@@ -69,7 +70,7 @@
<p:outputLabel for="resultado" value="Resultado:" /> <p:outputLabel for="resultado" value="Resultado:" />
</div> </div>
<div class="ui-g-8"> <div class="ui-g-8">
<p:inputTextarea id="resultado" value="#{VisitView.result}" /> <p:inputTextarea id="resultado" value="#{VisitView.result}" readonly="true" />
</div> </div>
<div class="ui-g-2"> <div class="ui-g-2">
<p:message for="resultado" display="text" /> <p:message for="resultado" display="text" />
@@ -78,10 +79,10 @@
<div class="ui-g-12 ui-g-nopad"> <div class="ui-g-12 ui-g-nopad">
<div class="ui-g-4 ui-md-4" /> <div class="ui-g-4 ui-md-4" />
<div class="ui-g-2 ui-md-2 "> <div class="ui-g-2 ui-md-2 ">
<p:commandButton validateClient="true" value="Guardar" update="visitForm" action="#{VisitView.saveData}" icon="pi pi-check" /> <p:commandButton value="Editar" action="#{VisitView.editVisit(VisitView.id)}" icon="pi pi-time" />
</div> </div>
<div class="ui-g-2 ui-md-2"> <div class="ui-g-2 ui-md-2">
<p:button value="Volver" outcome="/home" icon="pi pi-home" /> <p:button value="Volver" outcome="#{VisitView.fromPage}" icon="pi pi-home" />
</div> </div>
<div class="ui-g-4 ui-md-4" /> <div class="ui-g-4 ui-md-4" />
</div> </div>

View File

@@ -184,8 +184,10 @@ public class AuthorizationFilter implements Filter {
SessionUtils.addMessage(ses, FacesMessage.SEVERITY_ERROR, "Error al intentar acceder a la base de datos", Utils.getExceptionRootCause(e).getLocalizedMessage()); SessionUtils.addMessage(ses, FacesMessage.SEVERITY_ERROR, "Error al intentar acceder a la base de datos", Utils.getExceptionRootCause(e).getLocalizedMessage());
resp.sendRedirect(req.getContextPath() + "/error.xhtml?type=sql"); resp.sendRedirect(req.getContextPath() + "/error.xhtml?type=sql");
} else } else {
SessionUtils.addMessage(ses, FacesMessage.SEVERITY_ERROR, "Error interno del servidor", Utils.getExceptionRootCause(e).getLocalizedMessage());
resp.sendRedirect(req.getContextPath() + "/error.xhtml"); resp.sendRedirect(req.getContextPath() + "/error.xhtml");
}
} }
} }

View File

@@ -77,7 +77,8 @@ public class PatientVisitListMBean extends ManagedBeanBase implements Serializab
} }
public void editVisit(Integer visitId) throws IOException { public void editVisit(Integer visitId) throws IOException {
FacesContext.getCurrentInstance().getExternalContext().redirect("VisitView.xhtml?id=" + visitId.toString()); FacesContext ctx = FacesContext.getCurrentInstance();
ctx.getExternalContext().redirect(String.format("UpdateVisit.xhtml?id=%d&fromPage=%s", visitId, ctx.getViewRoot().getViewId()));
} }
public LazyDataModel<VisitTO> getLazyDataModelVisitList() { public LazyDataModel<VisitTO> getLazyDataModelVisitList() {

View File

@@ -61,7 +61,8 @@ public class VisitListMBean extends ManagedBeanBase implements Serializable {
} }
public void showVisit(Integer visitId) throws IOException { public void showVisit(Integer visitId) throws IOException {
FacesContext.getCurrentInstance().getExternalContext().redirect("VisitView.xhtml?id=" + visitId.toString()); FacesContext ctx = FacesContext.getCurrentInstance();
ctx.getExternalContext().redirect(String.format("VisitView.xhtml?id=%d&fromPage=%s", visitId, ctx.getViewRoot().getViewId()));
} }
public Date getSelectedDate() { public Date getSelectedDate() {

View File

@@ -1,5 +1,6 @@
package managedbean.visit; package managedbean.visit;
import java.io.IOException;
import java.io.Serializable; import java.io.Serializable;
import java.sql.Time; import java.sql.Time;
import java.util.Date; import java.util.Date;
@@ -9,6 +10,7 @@ import javax.annotation.PostConstruct;
import javax.enterprise.context.RequestScoped; import javax.enterprise.context.RequestScoped;
import javax.faces.application.FacesMessage; import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext; import javax.faces.context.FacesContext;
import javax.faces.view.ViewScoped;
import javax.inject.Named; import javax.inject.Named;
import TO.FamilyDoctorTO; import TO.FamilyDoctorTO;
@@ -17,7 +19,7 @@ import TO.VisitTO;
import managedbean.common.ManagedBeanBase; import managedbean.common.ManagedBeanBase;
@Named("VisitView") @Named("VisitView")
@RequestScoped @ViewScoped
public class VisitMBean extends ManagedBeanBase implements Serializable { public class VisitMBean extends ManagedBeanBase implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -29,6 +31,7 @@ public class VisitMBean extends ManagedBeanBase implements Serializable {
private String result; private String result;
private PatientTO patient; private PatientTO patient;
private FamilyDoctorTO familyDoctor; private FamilyDoctorTO familyDoctor;
private String fromPage;
public VisitMBean() { public VisitMBean() {
} }
@@ -43,15 +46,18 @@ public class VisitMBean extends ManagedBeanBase implements Serializable {
VisitTO vi = null; VisitTO vi = null;
try { try {
// Parámetro con el "name" de la especialidad a editar. this.fromPage = requestParams.get("fromPage");
int id = Integer.valueOf(requestParams.get("id").toString());
vi = this.getRemoteManagerVisit().getVisit(id); // Parámetro con el "id" de la visita.
int parId = Integer.valueOf(requestParams.get("id"));
vi = this.getRemoteManagerVisit().getVisit(parId);
} catch (Exception e) { } catch (Exception e) {
this.manageException(e); this.manageException(e);
} }
if (vi != null) { if (vi != null) {
this.id = vi.getId();
this.date = vi.getDate(); this.date = vi.getDate();
this.time = vi.getTime(); this.time = vi.getTime();
this.observations = vi.getObservations(); this.observations = vi.getObservations();
@@ -63,8 +69,9 @@ public class VisitMBean extends ManagedBeanBase implements Serializable {
} }
} }
public void saveData() { public void editVisit(Integer visitId) throws IOException {
FacesContext ctx = FacesContext.getCurrentInstance();
ctx.getExternalContext().redirect(String.format("UpdateVisit.xhtml?id=%d&fromPage=%s", visitId, this.fromPage));
} }
public Date getDate() { public Date getDate() {
@@ -123,4 +130,12 @@ public class VisitMBean extends ManagedBeanBase implements Serializable {
this.id = id; this.id = id;
} }
public String getFromPage() {
return fromPage;
}
public void setFromPage(String fromPage) {
this.fromPage = fromPage;
}
} }