]> git.mxchange.org Git - jjobs-war.git/blob - web/admin/user/admin_user_list.xhtml
Please cherry-pick:
[jjobs-war.git] / web / admin / user / admin_user_list.xhtml
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <ui:composition
3         template="/WEB-INF/templates/admin/admin_base.tpl"
4         xmlns="http://www.w3.org/1999/xhtml"
5         xmlns:core="http://mxchange.org/jsf/core/widgets"
6         xmlns:links="http://mxchange.org/jsf/core/links"
7         xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
8         xmlns:h="http://xmlns.jcp.org/jsf/html"
9         xmlns:f="http://xmlns.jcp.org/jsf/core"
10         xmlns:p="http://primefaces.org/ui"
11         >
12
13         <ui:define name="document_admin_title">
14                 <h:outputText value="#{msg.PAGE_TITLE_ADMIN_LIST_USER}" />
15         </ui:define>
16
17         <ui:define name="content_header">
18                 <h:outputText value="#{msg.CONTENT_TITLE_ADMIN_LIST_USER}" />
19         </ui:define>
20
21         <ui:define name="content">
22                 <h:form id="form-list-users">
23                         <p:dataTable
24                                 id="userList"
25                                 var="user"
26                                 value="#{userController.allUsers()}"
27                                 paginator="true"
28                                 paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
29                                 filteredValue="#{userController.filteredUsers}"
30                                 rows="10"
31                                 reflow="true"
32                                 resizableColumns="true"
33                                 rowsPerPageTemplate="5,10,20,50,100"
34                                 sortMode="multiple"
35                                 summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_USERS}"
36                                 emptyMessage="#{msg.ADMIN_EMPTY_LIST_USER}"
37                                 widgetVar="userList"
38                                 >
39
40                                 <f:facet name="header">
41                                         <p:panelGrid columns="2" columnClasses="ui-grid-col-10,ui-grid-col-2" layout="grid" styleClass="ui-noborder ui-transparent-widget">
42                                                 <h:outputText value="#{msg.ADMIN_LIST_USERS_HEADER}" />
43
44                                                 <p:commandButton
45                                                         id="toggler"
46                                                         type="button"
47                                                         value="#{msg.SELECT_SHOWN_COLUMNS}"
48                                                         styleClass="column-selector"
49                                                         />
50
51                                                 <p:columnToggler datasource="userList" trigger="toggler" />
52                                         </p:panelGrid>
53                                 </f:facet>
54
55                                 <p:column headerText="#{msg.ADMIN_USER_ID}" sortBy="#{user.userId}" filterBy="#{user.userId}" filterMatchMode="contains">
56                                         <p:link outcome="admin_show_user" title="#{msg.ADMIN_LINK_SHOW_USER_TITLE}" value="#{user.userId}">
57                                                 <f:param name="userId" value="#{user.userId}" />
58                                         </p:link>
59                                 </p:column>
60
61                                 <p:column headerText="#{msg.ADMIN_LIST_USER_NAME}" sortBy="#{user.userName}" filterBy="#{user.userName}" filterMatchMode="contains" rendered="#{featureController.isFeatureEnabled('user_login_require_user_name')}">
62                                         <h:outputText value="#{user.userName}" />
63                                 </p:column>
64
65                                 <p:column headerText="#{msg.ADMIN_CONTACT_PERSONAL_TITLE}" sortBy="#{user.userContact.contactPersonalTitle}" filterBy="#{user.userContact.contactPersonalTitle}" filterMatchMode="exact">
66                                         <f:facet name="filter">
67                                                 <p:selectOneMenu
68                                                         filter="true"
69                                                         filterMatchMode="contains"
70                                                         label="#{msg.LABEL_PERSONAL_TITLES}"
71                                                         onchange="PF('userList').filter()"
72                                                         title="#{msg.FILTER_BY_SINGLE_PERSONAL_TITLE}"
73                                                         >
74                                                         <f:converter converterId="PersonalTitleConverter" />
75                                                         <f:selectItems
76                                                                 value="#{dataController.personalTitles}"
77                                                                 var="personalTitle"
78                                                                 itemValue="#{personalTitle}"
79                                                                 itemLabel="#{msg[personalTitle.messageKey]}"
80                                                                 />
81                                                 </p:selectOneMenu>
82                                         </f:facet>
83
84                                         <h:outputText value="#{msg[user.userContact.contactPersonalTitle.messageKey]}" />
85                                 </p:column>
86
87                                 <p:column headerText="#{msg.ADMIN_CONTACT_FIRST_NAME}" sortBy="#{user.userContact.contactFirstName}" filterBy="#{user.userContact.contactFirstName}" filterMatchMode="contains">
88                                         <h:outputText value="#{user.userContact.contactFirstName}" />
89                                 </p:column>
90
91                                 <p:column headerText="#{msg.ADMIN_CONTACT_FAMILY_NAME}" sortBy="#{user.userContact.contactFamilyName}" filterBy="#{user.userContact.contactFamilyName}" filterMatchMode="contains">
92                                         <h:outputText value="#{user.userContact.contactFamilyName}" />
93                                 </p:column>
94
95                                 <p:column headerText="#{msg.ADMIN_USER_ACCOUNT_STATUS}" sortBy="#{user.userAccountStatus}" filterBy="#{user.userAccountStatus}" filterMatchMode="exact">
96                                         <f:facet name="filter">
97                                                 <p:selectOneMenu
98                                                         filter="true"
99                                                         filterMatchMode="contains"
100                                                         label="#{msg.LABEL_ACCOUNT_STATUS}"
101                                                         onchange="PF('userList').filter()"
102                                                         title="#{msg.FILTER_BY_SINGLE_ACCOUNT_STATUS_TITLE}"
103                                                         >
104                                                         <f:converter converterId="UserAccountStatusConverter" />
105                                                         <f:selectItems
106                                                                 value="#{dataController.userAccountStatuses}"
107                                                                 var="accountStatus"
108                                                                 itemValue="#{accountStatus}"
109                                                                 itemLabel="#{msg[accountStatus.messageKey]}"
110                                                                 />
111                                                 </p:selectOneMenu>
112                                         </f:facet>
113
114                                         <h:outputText styleClass="#{user.userAccountStatus.styleClass}" value="#{msg[user.userAccountStatus.messageKey]}" />
115                                 </p:column>
116
117                                 <p:column headerText="#{msg.ADMIN_USER_PROFILE_MODE}" sortBy="#{user.userProfileMode}" filterBy="#{user.userProfileMode}" filterMatchMode="exact">
118                                         <f:facet name="filter">
119                                                 <p:selectOneMenu
120                                                         filter="true"
121                                                         filterMatchMode="contains"
122                                                         label="#{msg.LABEL_PROFILE_MODE}"
123                                                         onchange="PF('userList').filter()"
124                                                         title="#{msg.FILTER_BY_SINGLE_PROFILE_MODE_TITLE}"
125                                                         >
126                                                         <f:converter converterId="ProfileModeConverter" />
127                                                         <f:selectItems
128                                                                 value="#{dataController.profileModes}"
129                                                                 var="profileMode"
130                                                                 itemValue="#{profileMode}"
131                                                                 itemLabel="#{msg[profileMode.messageKey]}"
132                                                                 />
133                                                 </p:selectOneMenu>
134                                         </f:facet>
135
136                                         <h:outputText value="#{msg[user.userProfileMode.messageKey]}" />
137                                 </p:column>
138
139                                 <p:column headerText="#{msg.ENTRY_CREATED_HEADER}" sortBy="#{user.userCreated}" filterable="false">
140                                         <h:outputText id="userCreated" value="#{user.userCreated}">
141                                                 <f:convertDateTime type="both" timeStyle="short" dateStyle="short" />
142                                         </h:outputText>
143                                 </p:column>
144
145                                 <p:column headerText="#{msg.ADMIN_ACTION_LINKS_HEADER}" sortable="false" filterable="false">
146                                         <links:outputUserAdminDropdownMenu user="#{user}" />
147                                 </p:column>
148                         </p:dataTable>
149                 </h:form>
150
151                 <h:form>
152                         <p:panelGrid
153                                 columns="1"
154                                 layout="grid"
155                                 >
156                                 <f:facet name="header">
157                                         <h:outputText value="#{msg.ADMIN_ADD_USER_TITLE}" />
158                                 </f:facet>
159
160                                 <!-- Whether select contact data .. //-->
161                                 <!--
162                                 @TODO title="#{msg.ADMIN_SELECT_USER_CONTACT_LEGEND_TITLE}"
163                                 -->
164                                 <p:fieldset legend="#{msg.ADMIN_SELECT_USER_CONTACT_LEGEND}">
165                                         <p:panelGrid
166                                                 columns="2"
167                                                 columnClasses="ui-grid-col-3,ui-grid-col-9"
168                                                 styleClass="ui-noborder"
169                                                 layout="grid"
170                                                 >
171                                                 <p:outputLabel for="userContact" value="#{msg.ADMIN_SELECT_USER_CONTACT}" />
172                                                 <p:selectOneMenu
173                                                         id="userContact"
174                                                         value="#{adminUserController.contact}"
175                                                         filter="true"
176                                                         filterMatchMode="contains"
177                                                         >
178                                                         <f:converter converterId="ContactConverter" />
179                                                         <f:selectItems value="#{contactController.selectableContacts()}" var="contact" itemValue="#{contact}" itemLabel="#{contact.contactId}: #{msg[contact.contactPersonalTitle.messageKey]} #{contact.contactFirstName} #{contact.contactFamilyName}" />
180                                                 </p:selectOneMenu>
181                                         </p:panelGrid>
182                                 </p:fieldset>
183
184                                 <h:panelGroup layout="block">
185                                         <h:outputText value="#{msg.ADMIN_ADD_OR_ENTER_CONTACT_DATA}" />
186                                 </h:panelGroup>
187
188                                 <!-- ... or enter it directly together it creating user account //-->
189                                 <h:panelGroup layout="block">
190                                         <core:outputAdminUserDataFormFields mode="add" />
191
192                                         <h:panelGroup styleClass="para notice">
193                                                 <h:outputText value="#{msg.ADMIN_USER_PERSONAL_DATA_MINIMUM_NOTICE}" />
194                                         </h:panelGroup>
195
196                                         <core:outputAdminContactDataFormFields allowEmptyRequiredData="true" />
197                                 </h:panelGroup>
198
199                                 <f:facet name="footer">
200                                         <p:panelGrid columns="2" layout="grid">
201                                                 <p:commandButton
202                                                         type="reset"
203                                                         value="#{msg.BUTTON_RESET_FORM}"
204                                                         />
205
206                                                 <p:commandButton
207                                                         process="@form"
208                                                         type="submit"
209                                                         id="submit_add_user"
210                                                         value="#{msg.BUTTON_ADMIN_ADD_USER}"
211                                                         action="#{adminUserController.addUser()}"
212                                                         update=":master:form-list-users:userList"
213                                                         />
214                                         </p:panelGrid>
215                                 </f:facet>
216                         </p:panelGrid>
217                 </h:form>
218         </ui:define>
219 </ui:composition>