Pagina admin.xthml Session

Pagina para administrar las sesiones

Vista

Codigo

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://xmlns.jcp.org/jsf/core"
      xmlns:jsf="http://xmlns.jcp.org/jsf">
    <h:head>
        <title>Facelet Title</title>

        <meta http-equiv="refresh" content="#{facesContext.externalContext.sessionMaxInactiveInterval};url=#{request.contextPath}/faces/viewExpiredException.xhtml"/>
    </h:head>
    <f:view>
        <h:body>

            <h:form id="form" rendered="#{loginController.loggedIn}">
                <p:messages autoUpdate="true" id="growl"/>
                <p:panel header="Login">
                    <p:panelGrid columns="2">
                        <h:outputLabel value="username #{loginController.username}"/>

                        contextPath: #{request.contextPath}

                        <p:outputLabel value="MaxInactive Interval #{facesContext.externalContext.sessionMaxInactiveInterval}"/>

                    </p:panelGrid>
                </p:panel>
                <p:panel header="Online">
                    <p:panelGrid columns="5">


                        <p:commandButton value="Salir" action="#{loginController.doLogout()}"/>
                        <p:commandButton value="Mensaje Prueba " action="#{sessionController.saludar()}"/>
                        <p:outputLabel value="Segundos Refresco"/>
                        <p:outputLabel value="#{sessionController.segundosRefresh}"/>
                         <p:clock pattern="HH:mm:ss dd.MM.yyyy" mode="server" />
                    </p:panelGrid>
                </p:panel>
                <p:panel header="Browser Sessions" >

                    <p:poll interval="#{sessionController.segundosRefresh}" listener="#{sessionController.showAllSessions()}" update="sessionDataTable" />


                    <p:dataTable value="#{sessionController.browserSessionsList}"
                                 id="sessionDataTable"
                                 var="item"

                                 selectionMode="single" 
                                 widgetVar="browserSessionsTable"
                                 selection="#{sessionController.browserSessionSelecction}"
                                 filteredValue="#{sessionController.browserSessionsFilterList}"
                                 rowKey="#{item.id}"
                                 rows="25" paginator="true" paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                                 rowsPerPageTemplate="5,10,15"
                                 emptyMessage="No hay registros" reflow="true">

                        <p:ajax event="rowSelect" update=":form:sesionDetaill" oncomplete="PF('sesionDialog').show()" />





                        <p:column headerText="id" filterBy="#{item.id}" sortBy="#{item.id}"  >
                            <h:outputText value="#{item.id}" />
                        </p:column>

                        <p:column headerText="username" filterBy="#{item.username}" sortBy="#{item.username}"  filterMatchMode="contains">
                            <h:outputText value="#{item.username}" />
                        </p:column>
                        <p:column headerText="browser" filterBy="#{item.browser}" sortBy="#{item.browser}"  filterMatchMode="contains">
                            <h:outputText value="#{item.browser}" />
                        </p:column>
                        <p:column headerText="ipcliente" filterBy="#{item.ipcliente}" sortBy="#{item.ipcliente}"  >
                            <h:outputText value="#{item.ipcliente}" />
                        </p:column>
                        <p:column headerText="token"   >
                            <h:outputText value="#{item.token}" />

                        </p:column>
   <p:column headerText="Expiracion"   >
                            <h:outputText value="#{sessionController.expiracion(item.session)}" >

                            </h:outputText>
                        </p:column>

                        <p:column headerText="Tiempo de conexion"   >

                            <h:outputText value="#{sessionController.timeOfConnection(item.session)}" />
                        </p:column>          

                        <p:column headerText="maxInactiveInterval" filterBy="#{item.session.maxInactiveInterval}" sortBy="#{item.session.maxInactiveInterval}"  >
                            <h:outputText value="#{item.session.maxInactiveInterval}" />

                        </p:column>
                        <p:column headerText="lastConnection"   >
                            <h:outputText value="#{sessionController.lastConnection(item.session)}"/>

                        </p:column>
                        <p:column headerText="Time creation" filterBy="#{item.time}" sortBy="#{item.time}"  >
                            <h:outputText value="#{sessionController.timeOfCreation(item.session)}" />

                        </p:column>









                    </p:dataTable>


                </p:panel>

                <p:panel header="Otros">
                    <p:panelGrid columns="3">

                        <p:commandButton value="Mostrar Sessiones" action="#{sessionController.showAllSessions()}"
                                         update=":form:growl form:sessionDataTable"/>
                        <p:commandButton value="Terminar Todas Sesiones" action="#{sessionController.killAllSessions()}"
                                         update=":form:growl form:sessionDataTable"/>
                    </p:panelGrid>
                </p:panel>  

                <p:dialog header="Session" widgetVar="sesionDialog"  width="450" height="450"
                          modal="true" showEffect="fade" hideEffect="fade" resizable="false" responsive="true">
                    <p:outputPanel id="sesionDetaill" style="text-align:center;">
                        <p:panelGrid  columns="2" rendered="#{not empty sessionController.browserSessionSelecction}" 
                                      layout="grid" styleClass="ui-panelgrid-blank">
                            <f:facet name="header">

                            </f:facet>

                            <h:outputText value="id" style="font-weight: bold"/>
                            <h:outputText value="#{sessionController.browserSessionSelecction.id}" />

                            <h:outputText value="username" style="font-weight: bold"/>
                            <h:outputText value="#{sessionController.browserSessionSelecction.username}" />

                            <h:outputText value="browser" style="font-weight: bold"/>
                            <h:outputText value="#{sessionController.browserSessionSelecction.browser}" />

                            <h:outputText value="ipcliente" style="font-weight: bold"/>
                            <h:outputText value="#{sessionController.browserSessionSelecction.ipcliente}" />

                            <h:outputText value="time" style="font-weight: bold"/>
                            <h:outputText value="#{sessionController.browserSessionSelecction.time}" />



                            <p:commandButton id="btn" value="Cancelar Sesion" icon="fa fa-edit Fs14 White"  style="max-width:150px;"
                                             title="Cancelar"
                                             update=":form:growl form:sessionDataTable"
                                             oncomplete="PF('sesionDialog').hide()"
                                             action="#{sessionController.cancelSelectedSession(sessionController.browserSessionSelecction)}"
                                             />


                        </p:panelGrid>
                    </p:outputPanel>
                </p:dialog>

            </h:form>
            <h:form id="form2" rendered="#{!loginController.loggedIn}">
                <p:panel header="Usuario no logeado">
                    <p:link value="Home" outcome="index"/>

                </p:panel>
            </h:form>
        </h:body>  
    </f:view>

</html>

Last updated