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.PageState;
import com.arsdigita.bebop.ParameterSingleSelectionModel;
import com.arsdigita.bebop.PropertySheet;
import com.arsdigita.bebop.Text;
import com.arsdigita.bebop.event.PrintEvent;
import com.arsdigita.bebop.form.Submit;
import com.arsdigita.bebop.form.TextField;
import com.arsdigita.bebop.parameters.LongParameter;
import com.arsdigita.globalization.GlobalizedMessage;
import org.dom4j.tree.BackedList;
import static com.arsdigita.ui.admin.AdminUiConstants.*;
/**
@ -42,14 +44,21 @@ public class UserAdmin extends BoxPanel {
private final LongParameter userIdParameter;
private final ParameterSingleSelectionModel<String> selectedUserId;
private final TextField usersTableFilter;
final BoxPanel usersTablePanel;
private final BoxPanel usersTablePanel;
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() {
super();
setIdAttr("userAdmin");
usersTablePanel = new BoxPanel();
usersTablePanel.setIdAttr("usersTablePanel");
final Form filterForm = new Form("usersTableFilterForm");
usersTableFilter = new TextField("usersTableFilter");
@ -86,8 +95,54 @@ public class UserAdmin extends BoxPanel {
// });
// add(text);
userDetails = new UserDetails(this, selectedUserId);
add(new UserDetails(this, selectedUserId));
// userDetails = 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
@ -99,7 +154,7 @@ public class UserAdmin extends BoxPanel {
page.setVisibleDefault(usersTablePanel, true);
page.setVisibleDefault(userDetails, false);
}
protected void showUserDetails(final PageState state) {
usersTablePanel.setVisible(state, false);
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) {
return false;
}
if (propertyIterator.hasNext()) {
currentProperty = propertyIterator.next();
return true;
@ -74,11 +74,10 @@ public class UserPropertySheetModel implements PropertySheetModel {
}
private GlobalizedMessage generateGlobalizedLabel(
final UserProperty property) {
return new GlobalizedMessage(
String.join("ui.admin.user.property_sheet.",
property.toString().toLowerCase()),
ADMIN_BUNDLE);
final UserProperty property) {
final String key = String.join("", "ui.admin.user.property_sheet.",
property.toString().toLowerCase());
return new GlobalizedMessage(key, ADMIN_BUNDLE);
}
@Override

View File

@ -25,7 +25,6 @@ import com.arsdigita.bebop.List;
import com.arsdigita.bebop.Page;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.Resettable;
import com.arsdigita.bebop.SimpleContainer;
import com.arsdigita.bebop.list.ListModel;
import com.arsdigita.bebop.list.ListModelBuilder;
import com.arsdigita.globalization.GlobalizedMessage;
@ -109,7 +108,9 @@ public class UsersGroupsRolesTab extends LayoutPanel {
Assert.isUnlocked(this);
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) {
@ -134,7 +135,11 @@ public class UsersGroupsRolesTab extends LayoutPanel {
@Override
public ListModel makeModel(final List list,
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);
}

View File

@ -67,6 +67,8 @@ public class UsersTable extends Table {
final ParameterSingleSelectionModel<String> selectedUserId) {
super();
setIdAttr("usersTable");
this.usersTableFilter = usersTableFilter;
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.no_users=No users matching users found.
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.additional_emails=Additional email addresses
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.given_name=Given name
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.no_users=Keine auf den aktuellen Filter passenden Benutzer gefunden.
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.additional_emails=Weitere E-Mail-Adressen
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.given_name=Vorname
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.no_users=No users matching users found.
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.additional_emails=Additional emails addresses
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.given_name=Given name
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.no_users=No users matching users found.
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.additional_emails=Additional email addresses
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.given_name=Given name
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