Dialogo con <p:schedule>
Dialogo con <p:schedule>
Deseamos que desde un formulario mostrar un dialogo que contenga un <p:schedule>
Definimos un commandButton que invocara un método que cargara los datos del <p:schedule> y mediante el oncomplete() se despliega el dialogo.
Formulario
new.xhtml
Definir el commandButton
<p:outputLabel value="#{msg['field.fechahorainicioreserva']}"/>
<p:fieldset >
<extensionviaje:calendar pattern="dd/MM/yyyy HH:mm a"
value="#{viajeController.viaje.fechahorainicioreserva}"
label="#{msg['field.fechahorainicioreserva']}" />
<p:spacer width="25"/>
<b:commandButton look="success"
title="#{msg['label.solicitudpendiente']}"
immediate="true"
iconAwesome="fa-calendar"
update="solicitudDetails"
action="#{viajeController.prepareScheduleSolicitud()}"
oncomplete="PF('solicitudDialog').show();" />
</p:fieldset>
Definir el dialogo
<p:dialog widgetVar="solicitudDialog" header="#{msg['dialogo.viajesolicitud']}"
width="850" height="450"
styleClass="customDialog"
responsive="true"
showEffect="clip" hideEffect="clip">
<b:panelGrid id="solicitudDetails" colSpans="12" size="xs" >
<p:schedule id="solicitudSchedule"
rightHeaderTemplate="month,agendaWeek,agendaDay,basicDay"
value="#{viajeController.solicitudScheduleModel}" widgetVar="solicitudSchedule" timeZone="GMT-5" locale="es">
</p:schedule>
<b:commandButton value="#{app['button.close']}"
iconAwesome="fa-close"
oncomplete="PF('solicitudDialog').hide();"/>
</b:panelGrid>
</p:dialog>
Controller
Definir un objeto de tipo ScheduleModel
private ScheduleModel solicitudScheduleModel;
Metodo prepareScheduleSolicitud(), carga el schedule con los datos
public String prepareScheduleSolicitud() {
try {
Document doc;
Document docViajes = new Document("activo", "si").append("estatus.idestatus", "SOLICITADO");
doc = new Document("activo", "si");
List<Solicitud> list = solicitudRepository.findBy(docViajes, new Document("fecha", 1));
// String tema = "schedule-orange";
solicitudScheduleModel = new DefaultScheduleModel();
if (!list.isEmpty()) {
list.forEach((a) -> {
String tipovehiculo = "";
tipovehiculo = a.getTipovehiculo().stream().map((tv) -> tv.getIdtipovehiculo()).reduce(tipovehiculo, String::concat);
String tema="";
if (a.getTiposolicitud().getIdtiposolicitud().equals("DOCENTE")) {
tema = "schedule-green";
} else {
tema = "schedule-orange";
}
solicitudScheduleModel.addEvent(
new DefaultScheduleEvent(a.getUsuario().get(0).getNombre() + " " + a.getUsuario().get(0).getCedula()
+ "Tipo vehiculo " + tipovehiculo
+ "Solicitud " + a.getTiposolicitud().getIdtiposolicitud()
+ " Destino " + a.getLugarllegada(),
a.getFechahorapartida(), a.getFechahoraregreso(), tema)
);
});
}
} catch (Exception e) {
errorServices.errorDialog(nameOfClass(), nameOfMethod(), nameOfMethod(), e.getLocalizedMessage());
}
return "";
}
Last updated