diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/UserAdmin.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/UserAdmin.java index e49aaf6a7..d09a01aa9 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/UserAdmin.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/UserAdmin.java @@ -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 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); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/UserDetails.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/UserDetails.java deleted file mode 100644 index 611c2cda5..000000000 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/UserDetails.java +++ /dev/null @@ -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 Jens Pelzetter - */ -public class UserDetails extends BoxPanel { - -// private final UserAdmin parent; -// private final ParameterSingleSelectionModel selectedUserId; - private final ActionLink backLink; -// private final PropertySheet userProperties; - - public UserDetails( - final UserAdmin parent, - final ParameterSingleSelectionModel 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); - } - -} diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/UserPropertySheetModel.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/UserPropertySheetModel.java index f45eebcbc..0e0760669 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/UserPropertySheetModel.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/UserPropertySheetModel.java @@ -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 diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/UsersGroupsRolesTab.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/UsersGroupsRolesTab.java index 9fbba3493..47d30031d 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/UsersGroupsRolesTab.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/UsersGroupsRolesTab.java @@ -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); } diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/UsersTable.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/UsersTable.java index c8374d445..f0c0531df 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/UsersTable.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/UsersTable.java @@ -67,6 +67,8 @@ public class UsersTable extends Table { final ParameterSingleSelectionModel selectedUserId) { super(); + setIdAttr("usersTable"); + this.usersTableFilter = usersTableFilter; this.selectedUserId = selectedUserId; diff --git a/ccm-core/src/main/resources/com/arsdigita/ui/admin/AdminResources.properties b/ccm-core/src/main/resources/com/arsdigita/ui/admin/AdminResources.properties index d5c0d1ec0..6aa09268c 100644 --- a/ccm-core/src/main/resources/com/arsdigita/ui/admin/AdminResources.properties +++ b/ccm-core/src/main/resources/com/arsdigita/ui/admin/AdminResources.properties @@ -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 diff --git a/ccm-core/src/main/resources/com/arsdigita/ui/admin/AdminResources_de.properties b/ccm-core/src/main/resources/com/arsdigita/ui/admin/AdminResources_de.properties index 974699461..e89a932ec 100644 --- a/ccm-core/src/main/resources/com/arsdigita/ui/admin/AdminResources_de.properties +++ b/ccm-core/src/main/resources/com/arsdigita/ui/admin/AdminResources_de.properties @@ -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 diff --git a/ccm-core/src/main/resources/com/arsdigita/ui/admin/AdminResources_en.properties b/ccm-core/src/main/resources/com/arsdigita/ui/admin/AdminResources_en.properties index 5db0124d8..9c1e9b438 100755 --- a/ccm-core/src/main/resources/com/arsdigita/ui/admin/AdminResources_en.properties +++ b/ccm-core/src/main/resources/com/arsdigita/ui/admin/AdminResources_en.properties @@ -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 diff --git a/ccm-core/src/main/resources/com/arsdigita/ui/admin/AdminResources_fr.properties b/ccm-core/src/main/resources/com/arsdigita/ui/admin/AdminResources_fr.properties index 18506a0fd..e4ce4b4b7 100755 --- a/ccm-core/src/main/resources/com/arsdigita/ui/admin/AdminResources_fr.properties +++ b/ccm-core/src/main/resources/com/arsdigita/ui/admin/AdminResources_fr.properties @@ -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