From 0d89cf5263f4cd50c97dcf8b9e8611bb0b84c21d Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Thu, 7 Jan 2016 09:33:42 +0100 Subject: [PATCH] OO-1827: apply a sort per default for the members list --- .../ui/main/AbstractMemberListController.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/olat/group/ui/main/AbstractMemberListController.java b/src/main/java/org/olat/group/ui/main/AbstractMemberListController.java index 3fb699516b2..e8457efcc52 100644 --- a/src/main/java/org/olat/group/ui/main/AbstractMemberListController.java +++ b/src/main/java/org/olat/group/ui/main/AbstractMemberListController.java @@ -37,11 +37,13 @@ import org.olat.basesecurity.GroupRoles; import org.olat.basesecurity.SearchIdentityParams; import org.olat.core.commons.persistence.DBFactory; import org.olat.core.commons.persistence.PersistenceHelper; +import org.olat.core.commons.persistence.SortKey; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.form.flexible.FormItem; import org.olat.core.gui.components.form.flexible.FormItemContainer; import org.olat.core.gui.components.form.flexible.elements.FlexiTableElement; +import org.olat.core.gui.components.form.flexible.elements.FlexiTableSortOptions; import org.olat.core.gui.components.form.flexible.elements.FormLink; import org.olat.core.gui.components.form.flexible.impl.FormBasicController; import org.olat.core.gui.components.form.flexible.impl.FormEvent; @@ -209,7 +211,7 @@ public abstract class AbstractMemberListController extends FormBasicController i @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { FlexiTableColumnModel columnsModel = FlexiTableDataModelFactory.createFlexiTableColumnModel(); - initColumns(columnsModel); + SortKey defaultSortKey = initColumns(columnsModel); memberListModel = new MemberListTableModel(columnsModel, imModule.isOnlineStatusEnabled()); membersTable = uifactory.addTableElement(getWindowControl(), "memberList", memberListModel, 20, false, getTranslator(), formLayout); @@ -220,6 +222,12 @@ public abstract class AbstractMemberListController extends FormBasicController i membersTable.setExportEnabled(true); membersTable.setSelectAllEnable(true); membersTable.setElementCssClass("o_sel_member_list"); + + if(defaultSortKey != null) { + FlexiTableSortOptions options = new FlexiTableSortOptions(); + options.setDefaultOrderBy(defaultSortKey); + membersTable.setSortSettings(options); + } if(!globallyManaged) { editButton = uifactory.addFormLink("edit.members", formLayout, Link.BUTTON); @@ -252,7 +260,9 @@ public abstract class AbstractMemberListController extends FormBasicController i // } - protected void initColumns(FlexiTableColumnModel columnsModel) { + private SortKey initColumns(FlexiTableColumnModel columnsModel) { + SortKey defaultSortKey = null; + if(chatEnabled) { DefaultFlexiColumnModel chatCol = new DefaultFlexiColumnModel(Cols.online.i18n(), Cols.online.ordinal()); chatCol.setExportable(false); @@ -262,6 +272,7 @@ public abstract class AbstractMemberListController extends FormBasicController i FlexiCellRenderer renderer = new StaticFlexiCellRenderer(TABLE_ACTION_EDIT, new TextFlexiCellRenderer()); columnsModel.addFlexiColumnModel(new StaticFlexiColumnModel(Cols.username.i18n(), Cols.username.ordinal(), TABLE_ACTION_EDIT, true, Cols.username.name(), renderer)); + defaultSortKey = new SortKey(Cols.username.name(), true); } int colPos = USER_PROPS_OFFSET; @@ -280,6 +291,10 @@ public abstract class AbstractMemberListController extends FormBasicController i } columnsModel.addFlexiColumnModel(col); colPos++; + + if(defaultSortKey == null) { + defaultSortKey = new SortKey(propName, true); + } } columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.firstTime.i18n(), Cols.firstTime.ordinal(), true, Cols.firstTime.name())); @@ -297,6 +312,7 @@ public abstract class AbstractMemberListController extends FormBasicController i DefaultFlexiColumnModel toolsCol = new DefaultFlexiColumnModel(Cols.tools.i18n(), Cols.tools.ordinal()); toolsCol.setExportable(false); columnsModel.addFlexiColumnModel(toolsCol); + return defaultSortKey; } @Override -- GitLab