CCM NG: UserDetails view
git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@3904 8810af33-2d31-482b-a856-94f89814c4dfpull/2/head
parent
beb702efd9
commit
326707f1a7
|
|
@ -100,9 +100,9 @@ public class AdminServlet
|
||||||
// addPage("/index.jsp", buildIndexPage()); // index page at address ~/ds
|
// addPage("/index.jsp", buildIndexPage()); // index page at address ~/ds
|
||||||
|
|
||||||
adminPage = PageFactory.buildPage("admin", "LibreCCM NG Admin");
|
adminPage = PageFactory.buildPage("admin", "LibreCCM NG Admin");
|
||||||
adminPage.addGlobalStateParam(USER_ID_PARAM);
|
// adminPage.addGlobalStateParam(USER_ID_PARAM);
|
||||||
adminPage.addGlobalStateParam(GROUP_ID_PARAM);
|
// adminPage.addGlobalStateParam(GROUP_ID_PARAM);
|
||||||
adminPage.addGlobalStateParam(APPLICATIONS_ID_PARAM);
|
// adminPage.addGlobalStateParam(APPLICATIONS_ID_PARAM);
|
||||||
|
|
||||||
adminPage.add(new UserBanner());
|
adminPage.add(new UserBanner());
|
||||||
adminPage.add(new SiteBanner());
|
adminPage.add(new SiteBanner());
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ package com.arsdigita.ui.admin.usersgroupsroles;
|
||||||
import com.arsdigita.bebop.ActionLink;
|
import com.arsdigita.bebop.ActionLink;
|
||||||
import com.arsdigita.bebop.BoxPanel;
|
import com.arsdigita.bebop.BoxPanel;
|
||||||
import com.arsdigita.bebop.Form;
|
import com.arsdigita.bebop.Form;
|
||||||
|
import com.arsdigita.bebop.Page;
|
||||||
import com.arsdigita.bebop.PageState;
|
import com.arsdigita.bebop.PageState;
|
||||||
import com.arsdigita.bebop.ParameterSingleSelectionModel;
|
import com.arsdigita.bebop.ParameterSingleSelectionModel;
|
||||||
import com.arsdigita.bebop.Text;
|
import com.arsdigita.bebop.Text;
|
||||||
|
|
@ -38,44 +39,76 @@ import static com.arsdigita.ui.admin.AdminUiConstants.*;
|
||||||
*/
|
*/
|
||||||
public class UserAdmin extends BoxPanel {
|
public class UserAdmin extends BoxPanel {
|
||||||
|
|
||||||
|
private final LongParameter userIdParameter;
|
||||||
private final ParameterSingleSelectionModel<String> selectedUserId;
|
private final ParameterSingleSelectionModel<String> selectedUserId;
|
||||||
private final TextField usersTableFilter;
|
private final TextField usersTableFilter;
|
||||||
|
final BoxPanel usersTablePanel;
|
||||||
|
private final UsersTable usersTable;
|
||||||
|
private final UserDetails userDetails;
|
||||||
|
|
||||||
public UserAdmin() {
|
public UserAdmin() {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
//add(new Label("User Admin class"));
|
usersTablePanel = new BoxPanel();
|
||||||
|
|
||||||
final Form filterForm = new Form("usersTableFilterForm");
|
final Form filterForm = new Form("usersTableFilterForm");
|
||||||
usersTableFilter = new TextField("usersTableFilter");
|
usersTableFilter = new TextField("usersTableFilter");
|
||||||
usersTableFilter.setLabel(new GlobalizedMessage(
|
usersTableFilter.setLabel(new GlobalizedMessage(
|
||||||
"ui.admin.users.table.filter.term", ADMIN_BUNDLE));
|
"ui.admin.users.table.filter.term", ADMIN_BUNDLE));
|
||||||
filterForm.add(usersTableFilter);
|
filterForm.add(usersTableFilter);
|
||||||
filterForm.add(new Submit(new GlobalizedMessage(
|
filterForm.add(new Submit(new GlobalizedMessage(
|
||||||
"ui.admin.users.table.filter.submit", ADMIN_BUNDLE)));
|
"ui.admin.users.table.filter.submit", ADMIN_BUNDLE)));
|
||||||
final ActionLink clearLink = new ActionLink(new GlobalizedMessage(
|
final ActionLink clearLink = new ActionLink(new GlobalizedMessage(
|
||||||
"ui.admin.users.table.filter.clear", ADMIN_BUNDLE));
|
"ui.admin.users.table.filter.clear", ADMIN_BUNDLE));
|
||||||
clearLink.addActionListener((e) -> {
|
clearLink.addActionListener((e) -> {
|
||||||
final PageState state = e.getPageState();
|
final PageState state = e.getPageState();
|
||||||
usersTableFilter.setValue(state, null);
|
usersTableFilter.setValue(state, null);
|
||||||
});
|
});
|
||||||
filterForm.add(clearLink);
|
filterForm.add(clearLink);
|
||||||
add(filterForm);
|
usersTablePanel.add(filterForm);
|
||||||
|
|
||||||
selectedUserId = new ParameterSingleSelectionModel<>(USER_ID_PARAM);
|
userIdParameter = new LongParameter("selected_user_id");
|
||||||
|
selectedUserId = new ParameterSingleSelectionModel<>(userIdParameter);
|
||||||
|
//selectedUserId = new ParameterSingleSelectionModel<>(USER_ID_PARAM);
|
||||||
|
|
||||||
final UsersTable usersTable = new UsersTable(usersTableFilter,
|
usersTable = new UsersTable(this, usersTableFilter, selectedUserId);
|
||||||
selectedUserId);
|
usersTablePanel.add(usersTable);
|
||||||
add(usersTable);
|
|
||||||
|
|
||||||
final Text text = new Text();
|
add(usersTablePanel);
|
||||||
text.setPrintListener((final PrintEvent e) -> {
|
|
||||||
final Text target = (Text) e.getTarget();
|
// final Text text = new Text();
|
||||||
final PageState state = e.getPageState();
|
// text.setPrintListener((final PrintEvent e) -> {
|
||||||
if (selectedUserId.isSelected(state)) {
|
// final Text target = (Text) e.getTarget();
|
||||||
target.setText(selectedUserId.getSelectedKey(state));
|
// final PageState state = e.getPageState();
|
||||||
}
|
// if (selectedUserId.isSelected(state)) {
|
||||||
});
|
// target.setText(selectedUserId.getSelectedKey(state));
|
||||||
add(text);
|
// }
|
||||||
|
// });
|
||||||
|
// add(text);
|
||||||
|
|
||||||
|
userDetails = new UserDetails(this, selectedUserId);
|
||||||
|
add(new UserDetails(this, selectedUserId));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void register(final Page page) {
|
||||||
|
super.register(page);
|
||||||
|
|
||||||
|
page.addGlobalStateParam(userIdParameter);
|
||||||
|
|
||||||
|
page.setVisibleDefault(usersTablePanel, true);
|
||||||
|
page.setVisibleDefault(userDetails, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void showUserDetails(final PageState state) {
|
||||||
|
usersTablePanel.setVisible(state, false);
|
||||||
|
userDetails.setVisible(state, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void closeUserDetails(final PageState state) {
|
||||||
|
selectedUserId.clearSelection(state);
|
||||||
|
usersTablePanel.setVisible(state, true);
|
||||||
|
userDetails.setVisible(state, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,60 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2016 LibreCCM Foundation.
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
|
* MA 02110-1301 USA
|
||||||
|
*/
|
||||||
|
package com.arsdigita.ui.admin.usersgroupsroles;
|
||||||
|
|
||||||
|
import com.arsdigita.bebop.ActionLink;
|
||||||
|
import com.arsdigita.bebop.BoxPanel;
|
||||||
|
import com.arsdigita.bebop.ParameterSingleSelectionModel;
|
||||||
|
import com.arsdigita.bebop.PropertySheet;
|
||||||
|
import com.arsdigita.globalization.GlobalizedMessage;
|
||||||
|
|
||||||
|
import static com.arsdigita.ui.admin.AdminUiConstants.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
public class UserDetails extends BoxPanel {
|
||||||
|
|
||||||
|
// private final UserAdmin parent;
|
||||||
|
// private final ParameterSingleSelectionModel<String> selectedUserId;
|
||||||
|
private final ActionLink backLink;
|
||||||
|
// private final PropertySheet userProperties;
|
||||||
|
|
||||||
|
public UserDetails(
|
||||||
|
final UserAdmin parent,
|
||||||
|
final ParameterSingleSelectionModel<String> selectedUserId) {
|
||||||
|
super();
|
||||||
|
|
||||||
|
// this.parent = parent;
|
||||||
|
// this.selectedUserId = selectedUserId;
|
||||||
|
|
||||||
|
backLink = new ActionLink(new GlobalizedMessage(
|
||||||
|
"ui.admin.user_details.back", ADMIN_BUNDLE));
|
||||||
|
backLink.addActionListener(e -> {
|
||||||
|
parent.closeUserDetails(e.getPageState());
|
||||||
|
});
|
||||||
|
add(backLink);
|
||||||
|
|
||||||
|
final PropertySheet userProperties = new PropertySheet(new UserPropertySheetModelBuilder(
|
||||||
|
parent, selectedUserId));
|
||||||
|
add(userProperties);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,102 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2016 LibreCCM Foundation.
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
|
* MA 02110-1301 USA
|
||||||
|
*/
|
||||||
|
package com.arsdigita.ui.admin.usersgroupsroles;
|
||||||
|
|
||||||
|
import com.arsdigita.bebop.PropertySheetModel;
|
||||||
|
import com.arsdigita.globalization.GlobalizedMessage;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import org.libreccm.security.User;
|
||||||
|
|
||||||
|
import static com.arsdigita.ui.admin.AdminUiConstants.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
public class UserPropertySheetModel implements PropertySheetModel {
|
||||||
|
|
||||||
|
private static enum UserProperty {
|
||||||
|
USER_NAME,
|
||||||
|
FAMILY_NAME,
|
||||||
|
GIVEN_NAME,
|
||||||
|
BANNED,
|
||||||
|
PASSWORD_RESET_REQUIRED,
|
||||||
|
}
|
||||||
|
|
||||||
|
private final User selectedUser;
|
||||||
|
private final Iterator<UserProperty> propertyIterator;
|
||||||
|
private UserProperty currentProperty;
|
||||||
|
|
||||||
|
public UserPropertySheetModel(final User selectedUser) {
|
||||||
|
this.selectedUser = selectedUser;
|
||||||
|
propertyIterator = Arrays.asList(UserProperty.values()).iterator();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean nextRow() {
|
||||||
|
if (selectedUser == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (propertyIterator.hasNext()) {
|
||||||
|
currentProperty = propertyIterator.next();
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getLabel() {
|
||||||
|
return currentProperty.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public GlobalizedMessage getGlobalizedLabel() {
|
||||||
|
return generateGlobalizedLabel(currentProperty);
|
||||||
|
}
|
||||||
|
|
||||||
|
private GlobalizedMessage generateGlobalizedLabel(
|
||||||
|
final UserProperty property) {
|
||||||
|
return new GlobalizedMessage(
|
||||||
|
String.join("ui.admin.user.property_sheet.",
|
||||||
|
property.toString().toLowerCase()),
|
||||||
|
ADMIN_BUNDLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getValue() {
|
||||||
|
switch (currentProperty) {
|
||||||
|
case USER_NAME:
|
||||||
|
return selectedUser.getName();
|
||||||
|
case FAMILY_NAME:
|
||||||
|
return selectedUser.getFamilyName();
|
||||||
|
case GIVEN_NAME:
|
||||||
|
return selectedUser.getGivenName();
|
||||||
|
case BANNED:
|
||||||
|
return Boolean.toString(selectedUser.isBanned());
|
||||||
|
case PASSWORD_RESET_REQUIRED:
|
||||||
|
return Boolean.toString(selectedUser.isPasswordResetRequired());
|
||||||
|
default:
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,63 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2016 LibreCCM Foundation.
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
|
* MA 02110-1301 USA
|
||||||
|
*/
|
||||||
|
package com.arsdigita.ui.admin.usersgroupsroles;
|
||||||
|
|
||||||
|
import com.arsdigita.bebop.PageState;
|
||||||
|
import com.arsdigita.bebop.ParameterSingleSelectionModel;
|
||||||
|
import com.arsdigita.bebop.PropertySheet;
|
||||||
|
import com.arsdigita.bebop.PropertySheetModel;
|
||||||
|
import com.arsdigita.bebop.PropertySheetModelBuilder;
|
||||||
|
import com.arsdigita.util.LockableImpl;
|
||||||
|
import org.libreccm.cdi.utils.CdiUtil;
|
||||||
|
import org.libreccm.security.User;
|
||||||
|
import org.libreccm.security.UserRepository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
public class UserPropertySheetModelBuilder
|
||||||
|
extends LockableImpl implements PropertySheetModelBuilder {
|
||||||
|
|
||||||
|
private final ParameterSingleSelectionModel<String> selectedUserId;
|
||||||
|
|
||||||
|
public UserPropertySheetModelBuilder(
|
||||||
|
final UserAdmin parent,
|
||||||
|
final ParameterSingleSelectionModel<String> selectedUserId) {
|
||||||
|
this.selectedUserId = selectedUserId;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PropertySheetModel makeModel(final PropertySheet sheet,
|
||||||
|
final PageState state) {
|
||||||
|
final String userIdStr = selectedUserId.getSelectedKey(state);
|
||||||
|
final User selectedUser;
|
||||||
|
if (userIdStr == null || userIdStr.isEmpty()) {
|
||||||
|
selectedUser = null;
|
||||||
|
} else {
|
||||||
|
final UserRepository userRepository = CdiUtil.createCdiUtil().
|
||||||
|
findBean(
|
||||||
|
UserRepository.class);
|
||||||
|
final long userId = Long.parseLong(userIdStr);
|
||||||
|
selectedUser = userRepository.findById(userId);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new UserPropertySheetModel(selectedUser);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -24,7 +24,6 @@ import com.arsdigita.bebop.Label;
|
||||||
import com.arsdigita.bebop.PageState;
|
import com.arsdigita.bebop.PageState;
|
||||||
import com.arsdigita.bebop.ParameterSingleSelectionModel;
|
import com.arsdigita.bebop.ParameterSingleSelectionModel;
|
||||||
import com.arsdigita.bebop.Table;
|
import com.arsdigita.bebop.Table;
|
||||||
import com.arsdigita.bebop.event.TableActionAdapter;
|
|
||||||
import com.arsdigita.bebop.event.TableActionEvent;
|
import com.arsdigita.bebop.event.TableActionEvent;
|
||||||
import com.arsdigita.bebop.event.TableActionListener;
|
import com.arsdigita.bebop.event.TableActionListener;
|
||||||
import com.arsdigita.bebop.form.TextField;
|
import com.arsdigita.bebop.form.TextField;
|
||||||
|
|
@ -63,7 +62,8 @@ public class UsersTable extends Table {
|
||||||
private final TextField usersTableFilter;
|
private final TextField usersTableFilter;
|
||||||
private final ParameterSingleSelectionModel<String> selectedUserId;
|
private final ParameterSingleSelectionModel<String> selectedUserId;
|
||||||
|
|
||||||
public UsersTable(final TextField usersTableFilter,
|
public UsersTable(final UserAdmin parent,
|
||||||
|
final TextField usersTableFilter,
|
||||||
final ParameterSingleSelectionModel<String> selectedUserId) {
|
final ParameterSingleSelectionModel<String> selectedUserId) {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
|
|
@ -71,51 +71,56 @@ public class UsersTable extends Table {
|
||||||
this.selectedUserId = selectedUserId;
|
this.selectedUserId = selectedUserId;
|
||||||
|
|
||||||
setEmptyView(new Label(new GlobalizedMessage(
|
setEmptyView(new Label(new GlobalizedMessage(
|
||||||
"ui.admin.users.table.no_users", ADMIN_BUNDLE)));
|
"ui.admin.users.table.no_users", ADMIN_BUNDLE)));
|
||||||
|
|
||||||
final TableColumnModel columnModel = getColumnModel();
|
final TableColumnModel columnModel = getColumnModel();
|
||||||
columnModel.add(new TableColumn(
|
columnModel.add(new TableColumn(
|
||||||
COL_SCREEN_NAME,
|
COL_SCREEN_NAME,
|
||||||
new Label(new GlobalizedMessage("ui.admin.users.table.screenname",
|
new Label(new GlobalizedMessage(
|
||||||
ADMIN_BUNDLE))));
|
"ui.admin.users.table.screenname",
|
||||||
|
ADMIN_BUNDLE))));
|
||||||
columnModel.add(new TableColumn(
|
columnModel.add(new TableColumn(
|
||||||
COL_GIVEN_NAME,
|
COL_GIVEN_NAME,
|
||||||
new Label(new GlobalizedMessage("ui.admin.users.table.givenname",
|
new Label(
|
||||||
ADMIN_BUNDLE))));
|
new GlobalizedMessage("ui.admin.users.table.givenname",
|
||||||
|
ADMIN_BUNDLE))));
|
||||||
columnModel.add(new TableColumn(
|
columnModel.add(new TableColumn(
|
||||||
COL_FAMILY_NAME,
|
COL_FAMILY_NAME,
|
||||||
new Label(new GlobalizedMessage("ui.admin.users.table.familyname",
|
new Label(new GlobalizedMessage(
|
||||||
ADMIN_BUNDLE))));
|
"ui.admin.users.table.familyname",
|
||||||
|
ADMIN_BUNDLE))));
|
||||||
columnModel.add(new TableColumn(
|
columnModel.add(new TableColumn(
|
||||||
COL_PRIMARY_EMAIL,
|
COL_PRIMARY_EMAIL,
|
||||||
new Label(new GlobalizedMessage(
|
new Label(new GlobalizedMessage(
|
||||||
"ui.admin.users.table.primary_email", ADMIN_BUNDLE))));
|
"ui.admin.users.table.primary_email", ADMIN_BUNDLE))));
|
||||||
columnModel.add(new TableColumn(
|
columnModel.add(new TableColumn(
|
||||||
COL_BANNED,
|
COL_BANNED,
|
||||||
new Label(new GlobalizedMessage(
|
new Label(new GlobalizedMessage(
|
||||||
"ui.admin.users.table.banned", ADMIN_BUNDLE))));
|
"ui.admin.users.table.banned", ADMIN_BUNDLE))));
|
||||||
|
|
||||||
columnModel.get(COL_SCREEN_NAME).setCellRenderer(new TableCellRenderer() {
|
columnModel.get(COL_SCREEN_NAME).setCellRenderer(
|
||||||
|
new TableCellRenderer() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Component getComponent(final Table table,
|
public Component getComponent(final Table table,
|
||||||
final PageState state,
|
final PageState state,
|
||||||
final Object value,
|
final Object value,
|
||||||
final boolean isSelected,
|
final boolean isSelected,
|
||||||
final Object key,
|
final Object key,
|
||||||
final int row,
|
final int row,
|
||||||
final int column) {
|
final int column) {
|
||||||
return new ControlLink((String) value);
|
return new ControlLink((String) value);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
addTableActionListener(new TableActionListener() {
|
addTableActionListener(new TableActionListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void cellSelected(final TableActionEvent event) {
|
public void cellSelected(final TableActionEvent event) {
|
||||||
|
final PageState state = event.getPageState();
|
||||||
final String key = (String) event.getRowKey();
|
final String key = (String) event.getRowKey();
|
||||||
|
selectedUserId.setSelectedKey(state, key);
|
||||||
selectedUserId.setSelectedKey(event.getPageState(), key);
|
parent.showUserDetails(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -123,12 +128,12 @@ public class UsersTable extends Table {
|
||||||
//Nothing
|
//Nothing
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
setModelBuilder(new UsersTableModelBuilder());
|
setModelBuilder(new UsersTableModelBuilder());
|
||||||
}
|
}
|
||||||
|
|
||||||
private class UsersTableModelBuilder extends LockableImpl
|
private class UsersTableModelBuilder extends LockableImpl
|
||||||
implements TableModelBuilder {
|
implements TableModelBuilder {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TableModel makeModel(final Table table, final PageState state) {
|
public TableModel makeModel(final Table table, final PageState state) {
|
||||||
|
|
@ -147,17 +152,17 @@ public class UsersTable extends Table {
|
||||||
public UsersTableModel(final PageState state) {
|
public UsersTableModel(final PageState state) {
|
||||||
LOGGER.debug("Creating UsersTableModel...");
|
LOGGER.debug("Creating UsersTableModel...");
|
||||||
final String filterTerm = (String) usersTableFilter
|
final String filterTerm = (String) usersTableFilter
|
||||||
.getValue(state);
|
.getValue(state);
|
||||||
LOGGER.debug("Value of filter is: \"{}\"", filterTerm);
|
LOGGER.debug("Value of filter is: \"{}\"", filterTerm);
|
||||||
final UserRepository userRepository = CdiUtil.createCdiUtil()
|
final UserRepository userRepository = CdiUtil.createCdiUtil()
|
||||||
.findBean(UserRepository.class);
|
.findBean(UserRepository.class);
|
||||||
if (filterTerm == null || filterTerm.isEmpty()) {
|
if (filterTerm == null || filterTerm.isEmpty()) {
|
||||||
users = userRepository.findAll();
|
users = userRepository.findAll();
|
||||||
LOGGER.debug("Found {} users in database.", users.size());
|
LOGGER.debug("Found {} users in database.", users.size());
|
||||||
} else {
|
} else {
|
||||||
users = userRepository.filtered(filterTerm);
|
users = userRepository.filtered(filterTerm);
|
||||||
LOGGER.debug("Found {} users in database which match the "
|
LOGGER.debug("Found {} users in database which match the "
|
||||||
+ "filter \"{}\".",
|
+ "filter \"{}\".",
|
||||||
users.size(),
|
users.size(),
|
||||||
filterTerm);
|
filterTerm);
|
||||||
}
|
}
|
||||||
|
|
@ -198,7 +203,7 @@ public class UsersTable extends Table {
|
||||||
return user.getName();
|
return user.getName();
|
||||||
default:
|
default:
|
||||||
throw new IllegalArgumentException(
|
throw new IllegalArgumentException(
|
||||||
"No a valid column index.");
|
"No a valid column index.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -169,3 +169,14 @@ ui.admin.users.table.filter.term=Filter users
|
||||||
ui.admin.users.table.filter.submit=Apply
|
ui.admin.users.table.filter.submit=Apply
|
||||||
ui.admin.users.table.no_users=No users matching users found.
|
ui.admin.users.table.no_users=No users matching users found.
|
||||||
ui.admin.users.table.filter.clear=Clear filter
|
ui.admin.users.table.filter.clear=Clear filter
|
||||||
|
ui.admin.user.property_sheet.username=User name
|
||||||
|
ui.admin.user.property_sheet.primary_email=Primary email address
|
||||||
|
ui.admin.user.property_sheet.additional_emails=Additional email addresses
|
||||||
|
ui.admin.user.property_sheet.banned=Banned?
|
||||||
|
ui.admin.user.property_sheet.password_reset_required=Password reset required?
|
||||||
|
ui.admin.user.property_sheet.groups=Groups
|
||||||
|
ui.admin.user.property_sheet.direct_roles=Assigned roles
|
||||||
|
ui.admin.user.property_sheet.all_roles=Roles
|
||||||
|
ui.admin.user.property_sheet.family_name=Family name
|
||||||
|
ui.admin.user.property_sheet.given_name=Given name
|
||||||
|
ui.admin.user_details.back=Back to users table
|
||||||
|
|
|
||||||
|
|
@ -169,3 +169,14 @@ ui.admin.users.table.filter.term=Benutzer filtern
|
||||||
ui.admin.users.table.filter.submit=Anwenden
|
ui.admin.users.table.filter.submit=Anwenden
|
||||||
ui.admin.users.table.no_users=Keine auf den aktuellen Filter passenden Benutzer gefunden.
|
ui.admin.users.table.no_users=Keine auf den aktuellen Filter passenden Benutzer gefunden.
|
||||||
ui.admin.users.table.filter.clear=Filter zur\u00fccksetzen
|
ui.admin.users.table.filter.clear=Filter zur\u00fccksetzen
|
||||||
|
ui.admin.user.property_sheet.username=Benutzername
|
||||||
|
ui.admin.user.property_sheet.primary_email=Prim\u00e4re E-Mail-Adresse
|
||||||
|
ui.admin.user.property_sheet.additional_emails=Weitere E-Mail-Adressen
|
||||||
|
ui.admin.user.property_sheet.banned=Gesperrt?
|
||||||
|
ui.admin.user.property_sheet.password_reset_required=Neues Passwort erforderlich?
|
||||||
|
ui.admin.user.property_sheet.groups=Gruppen
|
||||||
|
ui.admin.user.property_sheet.direct_roles=Zugewiesene Rollen
|
||||||
|
ui.admin.user.property_sheet.all_roles=Rollen
|
||||||
|
ui.admin.user.property_sheet.family_name=Familienname
|
||||||
|
ui.admin.user.property_sheet.given_name=Vorname
|
||||||
|
ui.admin.user_details.back=Zur\u00fcck zur Benutzer\u00fcbersicht
|
||||||
|
|
|
||||||
|
|
@ -142,3 +142,14 @@ ui.admin.users.table.filter.term=Filter users
|
||||||
ui.admin.users.table.filter.submit=Apply
|
ui.admin.users.table.filter.submit=Apply
|
||||||
ui.admin.users.table.no_users=No users matching users found.
|
ui.admin.users.table.no_users=No users matching users found.
|
||||||
ui.admin.users.table.filter.clear=Clear filter
|
ui.admin.users.table.filter.clear=Clear filter
|
||||||
|
ui.admin.user.property_sheet.username=User name
|
||||||
|
ui.admin.user.property_sheet.primary_email=Primary email address
|
||||||
|
ui.admin.user.property_sheet.additional_emails=Additional emails addresses
|
||||||
|
ui.admin.user.property_sheet.banned=Banned?
|
||||||
|
ui.admin.user.property_sheet.password_reset_required=Password reset required
|
||||||
|
ui.admin.user.property_sheet.groups=Groups
|
||||||
|
ui.admin.user.property_sheet.direct_roles=Assigned roles
|
||||||
|
ui.admin.user.property_sheet.all_roles=Roles
|
||||||
|
ui.admin.user.property_sheet.family_name=Family name
|
||||||
|
ui.admin.user.property_sheet.given_name=Given name
|
||||||
|
ui.admin.user_details.back=Back to users table
|
||||||
|
|
|
||||||
|
|
@ -133,3 +133,14 @@ ui.admin.users.table.filter.term=Filter users
|
||||||
ui.admin.users.table.filter.submit=Apply
|
ui.admin.users.table.filter.submit=Apply
|
||||||
ui.admin.users.table.no_users=No users matching users found.
|
ui.admin.users.table.no_users=No users matching users found.
|
||||||
ui.admin.users.table.filter.clear=Clear filter
|
ui.admin.users.table.filter.clear=Clear filter
|
||||||
|
ui.admin.user.property_sheet.username=User name
|
||||||
|
ui.admin.user.property_sheet.primary_email=Primary email address
|
||||||
|
ui.admin.user.property_sheet.additional_emails=Additional email addresses
|
||||||
|
ui.admin.user.property_sheet.banned=Banned?
|
||||||
|
ui.admin.user.property_sheet.password_reset_required=Password reset required?
|
||||||
|
ui.admin.user.property_sheet.groups=Groups
|
||||||
|
ui.admin.user.property_sheet.direct_roles=Assigned roles
|
||||||
|
ui.admin.user.property_sheet.all_roles=Roles
|
||||||
|
ui.admin.user.property_sheet.family_name=Family name
|
||||||
|
ui.admin.user.property_sheet.given_name=Given name
|
||||||
|
ui.admin.user_details.back=Back to users table
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue