]> 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
56                                         headerText="#{msg.ADMIN_USER_ID}"
57                                         sortBy="#{user.userId}"
58                                         filterBy="#{user.userId}"
59                                         filterMatchMode="contains"
60                                         >
61                                         <p:link
62                                                 outcome="admin_show_user"
63                                                 value="#{user.userId}"
64                                                 title="#{msg.ADMIN_LINK_SHOW_USER_TITLE}"
65                                                 >
66                                                 <f:param name="userId" value="#{user.userId}" />
67                                         </p:link>
68                                 </p:column>
69
70                                 <p:column
71                                         headerText="#{msg.ADMIN_LIST_USER_NAME}"
72                                         sortBy="#{user.userName}"
73                                         filterBy="#{user.userName}"
74                                         filterMatchMode="contains"
75                                         rendered="#{featureController.isFeatureEnabled('user_login_require_user_name')}"
76                                         >
77                                         <h:outputText value="#{user.userName}" />
78                                 </p:column>
79
80                                 <p:column
81                                         headerText="#{msg.ADMIN_CONTACT_PERSONAL_TITLE}"
82                                         sortBy="#{user.userContact.contactPersonalTitle}"
83                                         filterBy="#{user.userContact.contactPersonalTitle}"
84                                         filterMatchMode="exact"
85                                         >
86                                         <f:facet name="filter">
87                                                 <p:selectOneMenu
88                                                         filter="true"
89                                                         filterMatchMode="contains"
90                                                         label="#{msg.LABEL_PERSONAL_TITLES}"
91                                                         onchange="PF('userList').filter()"
92                                                         title="#{msg.FILTER_BY_SINGLE_PERSONAL_TITLE}"
93                                                         >
94                                                         <f:converter converterId="PersonalTitleConverter" />
95                                                         <f:selectItems
96                                                                 value="#{dataController.personalTitles}"
97                                                                 var="personalTitle"
98                                                                 itemValue="#{personalTitle}"
99                                                                 itemLabel="#{msg[personalTitle.messageKey]}"
100                                                                 />
101                                                 </p:selectOneMenu>
102                                         </f:facet>
103
104                                         <h:outputText value="#{msg[user.userContact.contactPersonalTitle.messageKey]}" />
105                                 </p:column>
106
107                                 <p:column
108                                         headerText="#{msg.ADMIN_CONTACT_FIRST_NAME}"
109                                         sortBy="#{user.userContact.contactFirstName}"
110                                         filterBy="#{user.userContact.contactFirstName}"
111                                         filterMatchMode="contains"
112                                         >
113                                         <h:outputText value="#{user.userContact.contactFirstName}" />
114                                 </p:column>
115
116                                 <p:column
117                                         headerText="#{msg.ADMIN_CONTACT_FAMILY_NAME}"
118                                         sortBy="#{user.userContact.contactFamilyName}"
119                                         filterBy="#{user.userContact.contactFamilyName}"
120                                         filterMatchMode="contains"
121                                         >
122                                         <h:outputText value="#{user.userContact.contactFamilyName}" />
123                                 </p:column>
124
125                                 <p:column
126                                         headerText="#{msg.ADMIN_USER_ACCOUNT_STATUS}"
127                                         sortBy="#{user.userAccountStatus}"
128                                         filterBy="#{user.userAccountStatus}"
129                                         filterMatchMode="exact"
130                                         >
131                                         <f:facet name="filter">
132                                                 <p:selectOneMenu
133                                                         filter="true"
134                                                         filterMatchMode="contains"
135                                                         label="#{msg.LABEL_ACCOUNT_STATUS}"
136                                                         onchange="PF('userList').filter()"
137                                                         title="#{msg.FILTER_BY_SINGLE_ACCOUNT_STATUS_TITLE}"
138                                                         >
139                                                         <f:converter converterId="UserAccountStatusConverter" />
140                                                         <f:selectItems
141                                                                 value="#{dataController.userAccountStatuses}"
142                                                                 var="accountStatus"
143                                                                 itemValue="#{accountStatus}"
144                                                                 itemLabel="#{msg[accountStatus.messageKey]}"
145                                                                 />
146                                                 </p:selectOneMenu>
147                                         </f:facet>
148
149                                         <h:outputText styleClass="#{user.userAccountStatus.styleClass}" value="#{msg[user.userAccountStatus.messageKey]}" />
150                                 </p:column>
151
152                                 <p:column
153                                         headerText="#{msg.ADMIN_USER_PROFILE_MODE}"
154                                         sortBy="#{user.userProfileMode}"
155                                         filterBy="#{user.userProfileMode}"
156                                         filterMatchMode="exact"
157                                         >
158                                         <f:facet name="filter">
159                                                 <p:selectOneMenu
160                                                         filter="true"
161                                                         filterMatchMode="contains"
162                                                         label="#{msg.LABEL_PROFILE_MODE}"
163                                                         onchange="PF('userList').filter()"
164                                                         title="#{msg.FILTER_BY_SINGLE_PROFILE_MODE_TITLE}"
165                                                         >
166                                                         <f:converter converterId="ProfileModeConverter" />
167                                                         <f:selectItems
168                                                                 value="#{dataController.profileModes}"
169                                                                 var="profileMode"
170                                                                 itemValue="#{profileMode}"
171                                                                 itemLabel="#{msg[profileMode.messageKey]}"
172                                                                 />
173                                                 </p:selectOneMenu>
174                                         </f:facet>
175
176                                         <h:outputText value="#{msg[user.userProfileMode.messageKey]}" />
177                                 </p:column>
178
179                                 <p:column
180                                         headerText="#{msg.ENTRY_CREATED_HEADER}"
181                                         sortBy="#{user.userCreated}"
182                                         filterable="false"
183                                         >
184                                         <h:outputText id="userCreated" value="#{user.userCreated}">
185                                                 <f:convertDateTime type="both" timeStyle="short" dateStyle="short" />
186                                         </h:outputText>
187                                 </p:column>
188
189                                 <p:column
190                                         headerText="#{msg.ADMIN_ACTION_LINKS_HEADER}"
191                                         sortable="false"
192                                         filterable="false"
193                                         >
194                                         <links:outputUserAdminDropdownMenu user="#{user}" />
195                                 </p:column>
196                         </p:dataTable>
197                 </h:form>
198
199                 <h:form>
200                         <p:panelGrid
201                                 columns="1"
202                                 layout="grid"
203                                 >
204                                 <f:facet name="header">
205                                         <h:outputText value="#{msg.ADMIN_ADD_USER_TITLE}" />
206                                 </f:facet>
207
208                                 <!-- Whether select contact data .. //-->
209                                 <!--
210                                 @TODO title="#{msg.ADMIN_SELECT_USER_CONTACT_LEGEND_TITLE}"
211                                 -->
212                                 <p:fieldset legend="#{msg.ADMIN_SELECT_USER_CONTACT_LEGEND}">
213                                         <p:panelGrid
214                                                 columns="2"
215                                                 columnClasses="ui-grid-col-3,ui-grid-col-9"
216                                                 styleClass="ui-noborder"
217                                                 layout="grid"
218                                                 >
219                                                 <p:outputLabel for="userContact" value="#{msg.ADMIN_SELECT_USER_CONTACT}" />
220                                                 <p:selectOneMenu
221                                                         id="userContact"
222                                                         value="#{adminUserController.contact}"
223                                                         filter="true"
224                                                         filterMatchMode="contains"
225                                                         >
226                                                         <f:converter converterId="ContactConverter" />
227
228                                                         <f:selectItems
229                                                                 value="#{contactListController.allContacts}"
230                                                                 var="contact"
231                                                                 itemValue="#{contact}"
232                                                                 itemLabel="#{beanHelper.renderContact(contact)}"
233                                                                 />
234                                                 </p:selectOneMenu>
235                                         </p:panelGrid>
236                                 </p:fieldset>
237
238                                 <h:panelGroup layout="block">
239                                         <h:outputText value="#{msg.ADMIN_ADD_OR_ENTER_CONTACT_DATA}" />
240                                 </h:panelGroup>
241
242                                 <!-- ... or enter it directly together it creating user account //-->
243                                 <h:panelGroup layout="block">
244                                         <core:outputAdminUserDataFormFields mode="add" />
245
246                                         <h:panelGroup styleClass="para notice">
247                                                 <h:outputText value="#{msg.ADMIN_USER_PERSONAL_DATA_MINIMUM_NOTICE}" />
248                                         </h:panelGroup>
249
250                                         <core:outputAdminContactDataFormFields allowEmptyRequiredData="true" />
251                                 </h:panelGroup>
252
253                                 <f:facet name="footer">
254                                         <p:panelGrid columns="2" layout="grid">
255                                                 <p:commandButton
256                                                         type="reset"
257                                                         value="#{msg.BUTTON_RESET_FORM}"
258                                                         />
259
260                                                 <p:commandButton
261                                                         type="submit"
262                                                         id="submit_add_user"
263                                                         value="#{msg.BUTTON_ADMIN_ADD_USER}"
264                                                         action="#{adminUserController.addUser()}"
265                                                         update=":master:form-list-users:userList"
266                                                         />
267                                         </p:panelGrid>
268                                 </f:facet>
269                         </p:panelGrid>
270                 </h:form>
271         </ui:define>
272 </ui:composition>