jmoordbjsf
  • Introduction
  • instalacion
  • Configurar jmoordb
    • Proyecto EJB
      • Entity
      • Repository
    • Proyecto Web
      • Controller
  • autocomplete
    • autocompleteWithCalendarDateTime
  • calendar
  • column
  • columnview
  • commandbuttonedit
    • commandbuttonedit
    • commandbuttonreturn
    • commandbuttonsave
  • template
    • csstemplate
    • jstemplate
    • metatemplate
  • date
  • toolbar
    • toolbarnew
    • toolbarnewsavereturn
    • toolbarview
    • toolbarnewdate
    • toolbarnewlowercase
    • toolbarsave
  • denegado
  • email
  • inputText
    • inputTextMeses
    • inputTextPago
    • inputTextPagoAutomatico
    • inputTextPagoAutomaticoSinSpan
    • inputTextPagoDialog
    • inputTextPagoPagare
  • label
    • labelDate
    • labelNumber
    • labelPago
    • labelPagoSinSpan
  • login
  • mesSelectOneMenu
  • messages
  • noyes
  • paginator
  • password
  • print
  • search
    • searchBetweenDate
    • searchDate
    • searchYesNo
  • selectOneMenu
  • sexo
  • view
  • yesno
  • schedule
    • cssschedule
    • jsschedule
  • Formularios
    • new.xhtml
      • Por llave primaria
      • Por otro atributo
      • Sin campo de validacion
    • view.xhtml
      • Rol view.xhtml
    • list.xthml
      • Rol list.xhtml
  • Controller
    • RolController.java con todos metodos implementados
    • save()
    • FacultadController.java
    • Metodos
    • isNew()
    • @Aspect
    • delete
    • init()
    • move()
  • Development
    • Clases como parametros y metodos en el composite
    • Crear composite distribuible con Maven
    • Agregar css
Powered by GitBook
On this page
  • Componente
  • Controller
  • isNew()
  • Método save()
  • Formulario

Was this helpful?

  1. toolbar

toolbarnewsavereturn

PrevioustoolbarnewNexttoolbarview

Last updated 6 years ago

Was this helpful?

  • Genera los botones new, save, return.

  • Generalmente lo usamos con formularios donde no validamos por un campo en especial si no solamente al guardar

  • El <jmoordbjsf:toolbarnewsavereturn/>, se coloca en la parte inferior.

  • El método isNew() no valida si existe o no el elemento ya que no hay una búsqueda sino al guardar

  • el método save() debe implementarse la validaciòn para verificar si existe o no.

  • En el init() en el switch para new se debe invocar el isNew()

Componente

<jmoordbjsf:toolbarnewsavereturn
         renderedNew ="#{applicationMenu.solicitudDocentePorAdministrador.create}"
         rendererList="#{applicationMenu.solicitudDocentePorAdministrador.list}"
         renderedSave="#{applicationMenu.solicitudDocentePorAdministrador.create}"
         controller="#{solicitudController}"
         entity="#{solicitudController.solicitud}"
         repository="#{solicitudController.solicitudRepository}"

/>
case "gonew":
solicitud = new Solicitud();

writable = false;
isNew();

Controller

  • Método init() simplificado se elimino parte del código y solo se incluyo la sección que cambia case "gonew"

  @PostConstruct
    public void init() {
        try {

            if (action != null) {
                switch (action) {
                    case "gonew":
                        solicitud = new Solicitud();

                        writable = false;
                        isNew();

                        //


                        break;
                    case "view":

                        break;
                    case "golist":

                }
            } else {
                move();
            }

        } catch (Exception e) {
            errorServices.errorMessage(nameOfClass(), nameOfMethod(), e.getLocalizedMessage());
        }
    }

isNew()

  • No validar si existe o no un registro

 public String isNew() {
        try {
            writable = true;

            Date idsecond = solicitud.getFecha();
            Integer id = solicitud.getIdsolicitud();

//            List<Solicitud> list = solicitudRepository.findBy(new Document("usuario.username", loginController.getUsuario().getUsername()).append("fecha", solicitud.getFecha()));
//            if (!list.isEmpty()) {
//                JsfUtil.warningDialog(rf.getAppMessage("warning.view"), rf.getMessage("warning.yasolicitoviajeenestafecha"));
//            }
//            if (DateUtil.fechaMenor(solicitud.getFecha(), DateUtil.getFechaActual())) {
//                JsfUtil.warningDialog(rf.getAppMessage("warning.view"), rf.getMessage("warning.fechasolicitudmenorqueactual"));
//                writable = false;
//
//            }
            solicitud = new Solicitud();
            solicitudSelected = new Solicitud();
            solicitud.setIdsolicitud(id);
            solicitud.setFecha(idsecond);
            solicitud.setMision("---");
            solicitud.setNumerodevehiculos(1);
            solicitud.setPasajeros(25);
            solicitud.setLugarpartida("UTP-AZUERO");

            solicitud.setFechaestatus(DateUtil.getFechaHoraActual());
            solicita = loginController.getUsuario();
            responsable = solicita;
            responsableOld = responsable;

            usuarioList = new ArrayList<>();
            usuarioList.add(solicita);
            usuarioList.add(responsable);
            solicitud.setUsuario(usuarioList);

            solicitud.setPeriodoacademico(DateUtil.getAnioActual().toString());
            solicitud.setFechahorapartida(solicitud.getFecha());
            solicitud.setFechahoraregreso(solicitud.getFecha());
            unidadList = new ArrayList<>();
            unidadList.add(loginController.getUsuario().getUnidad());

            Integer mes = DateUtil.mesDeUnaFecha(solicitud.getFecha());

            String idsemestre = "V";
            if (mes <= 3) {
                //verano
                idsemestre = "V";

            } else {
                if (mes <= 7) {
                    //primer
                    idsemestre = "I";
                } else {
                    //segundo
                    idsemestre = "II";
                }
            }
            solicitud.setSemestre(semestreServices.findById(idsemestre));
            List<Tipovehiculo> tipovehiculoList = new ArrayList<>();

            tipovehiculoList.add(tipovehiculoServices.findById("BUS"));
            solicitud.setTipovehiculo(tipovehiculoList);

            solicitud.setEstatus(estatusServices.findById("SOLICITADO"));

            String textsearch = "DOCENTE";

            solicitud.setTiposolicitud(tiposolicitudServices.findById(textsearch));
            solicitudSelected = solicitud;

        } catch (Exception e) {
            errorServices.errorMessage(nameOfClass(), nameOfMethod(), e.getLocalizedMessage());
        }
        return "";
    }

Método save()

  • Incluir la validación de si existe o no.

  • Recuerde que no es necesario implementarlo en el Controller el método save ya que esta en el composite

  • O la validación que se considere necesaria

 @Override
    public String save() {
        try {
            List<Solicitud> list = solicitudRepository.findBy(new Document("usuario.username", loginController.getUsuario().getUsername()).append("fecha", solicitud.getFechahorapartida()));
            if (!list.isEmpty()) {
                JsfUtil.warningDialog(rf.getAppMessage("warning.view"), rf.getMessage("warning.yasolicitoviajeenestafecha"));
            }
            if (DateUtil.fechaMenor(solicitud.getFechahorapartida(), DateUtil.getFechaActual())) {
                JsfUtil.warningDialog(rf.getAppMessage("warning.view"), rf.getMessage("warning.fechasolicitudmenorqueactual"));
                return "";

            }


                //Lo datos del usuario
                solicitud.setUserInfo(userInfoServices.generateListUserinfo(loginController.getUsername(), "create"));
                if (solicitudRepository.save(solicitud)) {
                    //guarda el contenido anterior
                    revisionHistoryTransporteejbRepository.save(revisionHistoryServices.getRevisionHistory(solicitud.getIdsolicitud().toString(), loginController.getUsername(),
                            "create", "solicitud", solicitudRepository.toDocument(solicitud).toString()));
//enviarEmails();

                    //si cambia el email o celular del responsable actualizar ese usuario
                    if (!responsableOld.getEmail().equals(responsable.getEmail()) || !responsableOld.getCelular().equals(responsable.getCelular())) {
                        usuarioRepository.update(responsable);
                        //actuliza el que esta en el login
                        if (responsable.getUsername().equals(loginController.getUsuario().getUsername())) {
                            loginController.setUsuario(responsable);
                        }
                    }
//                JsfUtil.successMessage(rf.getAppMessage("info.save"));
//                reset();
                } else {
                    JsfUtil.successMessage("save() " + solicitudRepository.getException().toString());
                }
                //Asigna la solicitud padre para las demas solicitudes
                if (index.equals(0)) {
                    solicitud.setSolicitudpadre(solicitud.getIdsolicitud());
                }
            }
            JsfUtil.successMessage(rf.getMessage("info.savesolicitudes") + " : " + solicitudesGuardadas.toString() + " " + rf.getMessage("info.solicitudesde") + solicitud.getNumerodevehiculos());
            reset();
        } catch (Exception e) {
            errorServices.errorMessage(nameOfClass(), nameOfMethod(), e.getLocalizedMessage());
        }
        return "";
    }

Formulario

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html>
<ui:composition template="/layout/template.xhtml" 
                xmlns="http://www.w3.org/1999/xhtml"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:b="http://bootsfaces.net/ui"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:p="http://primefaces.org/ui"
                xmlns:e="http://xmlns.jcp.org/jsf/composite/extensions" 
                xmlns:jmoordbjsf="http://jmoordbjsf.com/taglib"> 
    <ui:define name="content">
        <!--<h:outputStylesheet library="bsf" name="css/thumbnails.css"/>-->

        <style>
            .thumbnail { max-width: 100%; }
            img.thumbnail:hover, img.thumbnail:focus {
                border: 1px solid;
                border-color: #428BCA;
            }
        </style>

        <b:form id="form"  prependId="false"  rendered="#{loginController.loggedIn and applicationMenu.solicitudDocentePorAdministrador.create}" onkeypress="if (event.keyCode == 13) {
                    return false;
                }">
            <h:panelGroup id="content" layout="block"> 

                <jmoordbjsf:messages id="msg"/>


                <b:panel title="#{msg['titleview.solicitudmanualdocente']}" look="primary" >


                    <b:panelGrid id="panel" colSpans="2,10" size="xs" > 

                        <p:outputLabel  value="#{msg['field.lugarllegada']}" />
                        <jmoordbjsf:inputText span="8" value="#{solicitudManualDocenteController.solicitud.lugarllegada}" id="lugarllegada"  label="#{msg['field.lugarllegada']}" />



                        <p:outputLabel  value="#{msg['field.recursossolicitados']}" />
                        <p:chips value="#{solicitudManualDocenteController.solicitud.recursossolicitados}" id="recursossolicitados"  title="#{msg['field.chips']}" />

                        <p:outputLabel  value="#{msg['field.observaciones']}" />
                        <b:inputTextarea rows="2" span="8" value="#{solicitudManualDocenteController.solicitud.observaciones}" id="observaciones"  label="#{msg['field.observaciones']}" />




                        <p:outputLabel  value="#{msg['field.sugerencia']}" style="font-size: 25;" />
                        <b:dataTable value="#{sugerenciaController.sugerenciaDataModel}"
                                     var="item"
                                     id="dataTable2"
                                     paginated="false"
                                     onpage="console.log('page');">

                            <b:dataTableColumn value="#{item.descripcion}" label="#{msg['field.descripcion']}"/>


                        </b:dataTable>


<jmoordbjsf:toolbarnewsavereturn
         renderedNew ="#{applicationMenu.solicitudDocentePorAdministrador.create}"
         rendererList="#{applicationMenu.solicitudDocentePorAdministrador.list}"
         renderedSave="#{applicationMenu.solicitudDocentePorAdministrador.create}"
         controller="#{solicitudManualDocenteController}"
         entity="#{solicitudManualDocenteController.solicitud}"
         repository="#{solicitudManualDocenteController.solicitudRepository}"

/>



                    </b:panelGrid>


                </b:panel>
            </h:panelGroup>
        </b:form>
        <jmoordbjsf:denegado renderedcondition="#{!loginController.loggedIn or !applicationMenu.solicitudDocentePorAdministrador.create}" />

        <br/><br/><br/>
    </ui:define>
</ui:composition>