CCM NG: Switching to UserDetail view and back to user table works now as indented

git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@3912 8810af33-2d31-482b-a856-94f89814c4df
pull/2/head
jensp 2016-03-04 18:46:08 +00:00
parent 326707f1a7
commit 8b941d3e70
9 changed files with 92 additions and 79 deletions

View File

@ -24,13 +24,15 @@ import com.arsdigita.bebop.Form;
import com.arsdigita.bebop.Page; 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.PropertySheet;
import com.arsdigita.bebop.Text; import com.arsdigita.bebop.Text;
import com.arsdigita.bebop.event.PrintEvent;
import com.arsdigita.bebop.form.Submit; import com.arsdigita.bebop.form.Submit;
import com.arsdigita.bebop.form.TextField; import com.arsdigita.bebop.form.TextField;
import com.arsdigita.bebop.parameters.LongParameter; import com.arsdigita.bebop.parameters.LongParameter;
import com.arsdigita.globalization.GlobalizedMessage; import com.arsdigita.globalization.GlobalizedMessage;
import org.dom4j.tree.BackedList;
import static com.arsdigita.ui.admin.AdminUiConstants.*; import static com.arsdigita.ui.admin.AdminUiConstants.*;
/** /**
@ -42,14 +44,21 @@ public class UserAdmin extends BoxPanel {
private final LongParameter userIdParameter; 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 BoxPanel usersTablePanel;
private final UsersTable usersTable; private final UsersTable usersTable;
private final UserDetails userDetails; private final ActionLink backToUsersTable;
private final PropertySheet userProperties;
private final BoxPanel actionLinks;
// private final UserDetails userDetails;
private final BoxPanel userDetails;
public UserAdmin() { public UserAdmin() {
super(); super();
setIdAttr("userAdmin");
usersTablePanel = new BoxPanel(); usersTablePanel = new BoxPanel();
usersTablePanel.setIdAttr("usersTablePanel");
final Form filterForm = new Form("usersTableFilterForm"); final Form filterForm = new Form("usersTableFilterForm");
usersTableFilter = new TextField("usersTableFilter"); usersTableFilter = new TextField("usersTableFilter");
@ -86,8 +95,54 @@ public class UserAdmin extends BoxPanel {
// }); // });
// add(text); // add(text);
userDetails = new UserDetails(this, selectedUserId); // userDetails = new UserDetails(this, selectedUserId);
add(new UserDetails(this, selectedUserId)); // add(new UserDetails(this, selectedUserId));
userDetails = new BoxPanel();
userDetails.setIdAttr("userDetails");
backToUsersTable = new ActionLink(new GlobalizedMessage(
"ui.admin.user_details.back", ADMIN_BUNDLE));
backToUsersTable.setIdAttr("userDetailsBackLink");
backToUsersTable.addActionListener(
e -> closeUserDetails(e.getPageState()));
userDetails.add(backToUsersTable);
userProperties = new PropertySheet(new UserPropertySheetModelBuilder(
this, selectedUserId));
userProperties.setIdAttr("userProperties");
userDetails.add(userProperties);
actionLinks = new BoxPanel(BoxPanel.HORIZONTAL);
actionLinks.setIdAttr("userDetailsActionLinks");
final ActionLink editUserDetailsLink = new ActionLink(
new GlobalizedMessage("ui.admin.user_details.edit", ADMIN_BUNDLE));
editUserDetailsLink.addActionListener(e -> {
//ToDo
});
actionLinks.add(editUserDetailsLink);
actionLinks.add(new Text(" | "));
final ActionLink setPasswordLink = new ActionLink(
new GlobalizedMessage("ui.admin.user_details.set_password",
ADMIN_BUNDLE));
setPasswordLink.addActionListener(e -> {
//ToDo
});
actionLinks.add(setPasswordLink);
actionLinks.add(new Text(" | "));
final ActionLink generatePasswordLink = new ActionLink(
new GlobalizedMessage("ui.admin.user_details.generate_password",
ADMIN_BUNDLE));
generatePasswordLink.addActionListener(e -> {
//ToDo
});
actionLinks.add(generatePasswordLink);
userDetails.add(actionLinks);
add(userDetails);
} }
@Override @Override
@ -99,7 +154,7 @@ public class UserAdmin extends BoxPanel {
page.setVisibleDefault(usersTablePanel, true); page.setVisibleDefault(usersTablePanel, true);
page.setVisibleDefault(userDetails, false); page.setVisibleDefault(userDetails, false);
} }
protected void showUserDetails(final PageState state) { protected void showUserDetails(final PageState state) {
usersTablePanel.setVisible(state, false); usersTablePanel.setVisible(state, false);
userDetails.setVisible(state, true); userDetails.setVisible(state, true);

View File

@ -1,60 +0,0 @@
/*
* 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);
}
}

View File

@ -54,7 +54,7 @@ public class UserPropertySheetModel implements PropertySheetModel {
if (selectedUser == null) { if (selectedUser == null) {
return false; return false;
} }
if (propertyIterator.hasNext()) { if (propertyIterator.hasNext()) {
currentProperty = propertyIterator.next(); currentProperty = propertyIterator.next();
return true; return true;
@ -74,11 +74,10 @@ public class UserPropertySheetModel implements PropertySheetModel {
} }
private GlobalizedMessage generateGlobalizedLabel( private GlobalizedMessage generateGlobalizedLabel(
final UserProperty property) { final UserProperty property) {
return new GlobalizedMessage( final String key = String.join("", "ui.admin.user.property_sheet.",
String.join("ui.admin.user.property_sheet.", property.toString().toLowerCase());
property.toString().toLowerCase()), return new GlobalizedMessage(key, ADMIN_BUNDLE);
ADMIN_BUNDLE);
} }
@Override @Override

View File

@ -25,7 +25,6 @@ import com.arsdigita.bebop.List;
import com.arsdigita.bebop.Page; import com.arsdigita.bebop.Page;
import com.arsdigita.bebop.PageState; import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.Resettable; import com.arsdigita.bebop.Resettable;
import com.arsdigita.bebop.SimpleContainer;
import com.arsdigita.bebop.list.ListModel; import com.arsdigita.bebop.list.ListModel;
import com.arsdigita.bebop.list.ListModelBuilder; import com.arsdigita.bebop.list.ListModelBuilder;
import com.arsdigita.globalization.GlobalizedMessage; import com.arsdigita.globalization.GlobalizedMessage;
@ -109,7 +108,9 @@ public class UsersGroupsRolesTab extends LayoutPanel {
Assert.isUnlocked(this); Assert.isUnlocked(this);
components.forEach(c -> page.setVisibleDefault(c, false)); components.forEach(c -> page.setVisibleDefault(c, false));
page.setVisibleDefault(components.get(0), true); //page.setVisibleDefault(components.get(0), true);
} }
public void setSection(final int index, final PageState state) { public void setSection(final int index, final PageState state) {
@ -134,7 +135,11 @@ public class UsersGroupsRolesTab extends LayoutPanel {
@Override @Override
public ListModel makeModel(final List list, public ListModel makeModel(final List list,
final PageState state) { final PageState state) {
sections.setSelectedKey(state, String.valueOf(0)); if (sections.getSelectedKey(state) == null) {
sections.setSelectedKey(state, String.valueOf(0));
}
//sections.setSelectedKey(state, String.valueOf(0));
return new SectionsListModel(state); return new SectionsListModel(state);
} }

View File

@ -67,6 +67,8 @@ public class UsersTable extends Table {
final ParameterSingleSelectionModel<String> selectedUserId) { final ParameterSingleSelectionModel<String> selectedUserId) {
super(); super();
setIdAttr("usersTable");
this.usersTableFilter = usersTableFilter; this.usersTableFilter = usersTableFilter;
this.selectedUserId = selectedUserId; this.selectedUserId = selectedUserId;

View File

@ -169,7 +169,7 @@ 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.user_name=User name
ui.admin.user.property_sheet.primary_email=Primary email address 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.additional_emails=Additional email addresses
ui.admin.user.property_sheet.banned=Banned? ui.admin.user.property_sheet.banned=Banned?
@ -180,3 +180,6 @@ ui.admin.user.property_sheet.all_roles=Roles
ui.admin.user.property_sheet.family_name=Family name ui.admin.user.property_sheet.family_name=Family name
ui.admin.user.property_sheet.given_name=Given name ui.admin.user.property_sheet.given_name=Given name
ui.admin.user_details.back=Back to users table ui.admin.user_details.back=Back to users table
ui.admin.user_details.edit=Edit user details
ui.admin.user_details.generate_password=Generate password and it send to user
ui.admin.user_details.set_password=Set new password

View File

@ -169,7 +169,7 @@ 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.user_name=Benutzername
ui.admin.user.property_sheet.primary_email=Prim\u00e4re E-Mail-Adresse 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.additional_emails=Weitere E-Mail-Adressen
ui.admin.user.property_sheet.banned=Gesperrt? ui.admin.user.property_sheet.banned=Gesperrt?
@ -180,3 +180,6 @@ ui.admin.user.property_sheet.all_roles=Rollen
ui.admin.user.property_sheet.family_name=Familienname ui.admin.user.property_sheet.family_name=Familienname
ui.admin.user.property_sheet.given_name=Vorname ui.admin.user.property_sheet.given_name=Vorname
ui.admin.user_details.back=Zur\u00fcck zur Benutzer\u00fcbersicht ui.admin.user_details.back=Zur\u00fcck zur Benutzer\u00fcbersicht
ui.admin.user_details.edit=Benutzerdaten bearbeiten
ui.admin.user_details.generate_password=Passwort generieren und an Benutzer senden
ui.admin.user_details.set_password=Neues Passwort setzen

View File

@ -142,7 +142,7 @@ 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.user_name=User name
ui.admin.user.property_sheet.primary_email=Primary email address 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.additional_emails=Additional emails addresses
ui.admin.user.property_sheet.banned=Banned? ui.admin.user.property_sheet.banned=Banned?
@ -153,3 +153,6 @@ ui.admin.user.property_sheet.all_roles=Roles
ui.admin.user.property_sheet.family_name=Family name ui.admin.user.property_sheet.family_name=Family name
ui.admin.user.property_sheet.given_name=Given name ui.admin.user.property_sheet.given_name=Given name
ui.admin.user_details.back=Back to users table ui.admin.user_details.back=Back to users table
ui.admin.user_details.edit=Edit user details
ui.admin.user_details.generate_password=Generate password and it send to user
ui.admin.user_details.set_password=Set new password

View File

@ -133,7 +133,7 @@ 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.user_name=User name
ui.admin.user.property_sheet.primary_email=Primary email address 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.additional_emails=Additional email addresses
ui.admin.user.property_sheet.banned=Banned? ui.admin.user.property_sheet.banned=Banned?
@ -144,3 +144,6 @@ ui.admin.user.property_sheet.all_roles=Roles
ui.admin.user.property_sheet.family_name=Family name ui.admin.user.property_sheet.family_name=Family name
ui.admin.user.property_sheet.given_name=Given name ui.admin.user.property_sheet.given_name=Given name
ui.admin.user_details.back=Back to users table ui.admin.user_details.back=Back to users table
ui.admin.user_details.edit=Edit user details
ui.admin.user_details.generate_password=Generate password and it send to user
ui.admin.user_details.set_password=Set new password