Maestro <Agente> list

Es un list maestro de èl depende un detalle (Maestro-Detalle)

  • Agente se usa como maestro para Permiso

  • Aquí creamos un nuevo componente <e:columnAgente>

  • Puede contener autocomplete o los search.

Esquema

   <b:form id="form">
            <b:growl id="msgs"/>
     <b:panel title="#{app['label.search']}" id="content"> 
         <b:panelGrid colSpans="1,4,1,6"  columns="4" size="xs"> 
            <p:outputLabel/>
            <e:autocompleteEntity/>
             <b:commandButton/>
         </b:panelGrid>
                   <b:row>
                    <b:column medium-screen="4">
                        <a:search />                                  />
                    </b:column>
                    <b:column medium-screen="8">
                        <a:searchDate   />
                    </b:column>
                </b:row>
                <b:row>
                    <b:column medium-screen="25" >
                        <a:searchBetweenDate   />
                    </b:column>
                </b:row>

             </b:panel>

     <b:panel id="dataTable">
        <a:paginator/>
        <b:dataTable>
            <b:dataTableColum/>
            <b:dataTableColum>
                <a:column/>
                                           <e:columnEntity>{ se crean otros botones personalizados}
            </b:dataTableColumn>
        </b:dataTable>
    </b:panel>   
</b:form>
<a:denegado>

Código

<?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:a="http://xmlns.jcp.org/jsf/composite/avbravo"
                xmlns:e="http://xmlns.jcp.org/jsf/composite/extensions">
    <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>
        <h1>#{msg['titlelist.agente']}</h1>
        <hr/>
         <b:form id="form"  prependId="false"  rendered="#{loginController.loggedIn and applicationMenu.agente.list}" onkeypress="if (event.keyCode == 13) {
                    return false;
                }">

            <b:growl id="msgs"/>
            <b:panel title="#{app['label.search']}"  id="content"> 
                <!--<b:panelGrid colSpans="2,10" size="xs">--> 
                <b:panelGrid colSpans="1,4,1,6"  columns="4" size="xs"> 


                    <p:outputLabel value="#{msg['field.idagente']}"/>
                    <e:autocompleteagente listener="#{agenteController.handleSelect}"
                                                  value="#{agenteController.agenteSelected}"
                                                  itemLabel="#{p.idagente}"
                                                  field="idagente"
                                                  update=":form:dataTable"/>

                    <p:outputLabel value="#{msg['field.agente']}"/>
                      <e:autocompleteagente listener="#{agenteController.handleSelect}"
                                                value="#{agenteController.agenteSelected}"
                                                itemLabel=" #{p.nombre}"
                                                field="nombre"
                                                update=":form:dataTable"/>

                </b:panelGrid>
            </b:panel>
            <b:panel id="dataTable">
                <a:paginator 
                     clear="#{agenteController.clear()}"
                    first="#{agenteController.first()}"
                    back="#{agenteController.back()}"
                    next="#{agenteController.next()}"
                    last="#{agenteController.last()}"
                    page="#{agenteController.page}"
                    pages="#{agenteController.pages}"
                   skip="ajax:agenteController.skip(agenteController.page)"

                    new="#{agenteController.prepare('gonew',agenteController.agente)}"
                    printAll="#{agenteController.printAll()}"
                    />
                <b:dataTable value="#{agenteController.agenteDataModel}"
                             var="item"
                             id="dataTable2"
                             paginated="false"
                             onpage="console.log('page');">
                    <b:dataTableColumn value="#{item.idagente}" label="#{msg['field.idagente']}"/>
                    <b:dataTableColumn value="#{item.nombre}" label="#{msg['field.agente']}" />
                    <b:dataTableColumn value="#{item.siglas}" label="#{msg['field.siglas']}" />
                    <b:dataTableColumn  label="#{msg['field.fechanacimiento']}" >
                        <a:labelDate value="#{item.fechanacimiento}"/>
                    </b:dataTableColumn>
                    <b:dataTableColumn value="#{item.activo}" label="#{msg['field.activo']}" />

                    <b:dataTableColumn label="">
                        <a:column                           
                            edit="#{agenteController.prepare('view',item)}"
                            delete="#{agenteController.delete(item,false)}"
                            rendered="#{applicationMenu.agente.delete}"
                            />
                    </b:dataTableColumn>
                    <b:dataTableColumn label="">
                        <e:columnAgente   
                            rendered="#{applicationMenu.agente.edit}"
                            vacacion="#{agenteController.prepare('govacacion',item)}"
                           permiso="#{agenteController.prepare('gopermiso',item)}"                                                   
                            />
                    </b:dataTableColumn>
                </b:dataTable>
            </b:panel>           
        </b:form>

        <a:denegado renderedcondition="#{!loginController.loggedIn or !applicationMenu.agente.list}" />
    </ui:define>
</ui:composition>

Last updated

Was this helpful?