diff --git a/src/main/java/org/olat/modules/vitero/ui/ViteroUserToGroupController.java b/src/main/java/org/olat/modules/vitero/ui/ViteroUserToGroupController.java index 73e97ccd39c3f3c0ebba9cca255356b03a625ead..c6de33da2a7989635a16e103792c3c1a72444664 100644 --- a/src/main/java/org/olat/modules/vitero/ui/ViteroUserToGroupController.java +++ b/src/main/java/org/olat/modules/vitero/ui/ViteroUserToGroupController.java @@ -103,12 +103,35 @@ public class ViteroUserToGroupController extends BasicController { tableCtr = new TableController(tableConfig, ureq, getWindowControl(), trans, true); listenTo(tableCtr); - tableCtr.addColumnDescriptor(getColumnDescriptor(Col.firstName.ordinal(), UserConstants.FIRSTNAME, ureq.getLocale())); - tableCtr.addColumnDescriptor(getColumnDescriptor(Col.lastName.ordinal(), UserConstants.LASTNAME, ureq.getLocale())); - tableCtr.addColumnDescriptor(getColumnDescriptor(Col.email.ordinal(), UserConstants.EMAIL, ureq.getLocale())); - tableCtr.addColumnDescriptor(new CustomRenderColumnDescriptor("user.role", Col.role.ordinal(),null, ureq.getLocale(), - ColumnDescriptor.ALIGNMENT_LEFT, new RoleCellRenderer(getTranslator()))); - tableCtr.addColumnDescriptor(new SignColumnDescriptor("signin", Col.sign.ordinal(), ureq.getLocale(), getTranslator())); + tableCtr.addColumnDescriptor(getColumnDescriptor(Col.firstName.ordinal(), UserConstants.FIRSTNAME, getLocale())); + tableCtr.addColumnDescriptor(getColumnDescriptor(Col.lastName.ordinal(), UserConstants.LASTNAME, getLocale())); + tableCtr.addColumnDescriptor(getColumnDescriptor(Col.email.ordinal(), UserConstants.EMAIL, getLocale())); + tableCtr.addColumnDescriptor(new CustomRenderColumnDescriptor("user.role", Col.role.ordinal(),null, getLocale(), + ColumnDescriptor.ALIGNMENT_LEFT, new RoleCellRenderer(getTranslator())){ + + @Override + public int compareTo(int rowa, int rowb) { + Object a = table.getTableDataModel().getValueAt(rowa,dataColumn); + Object b = table.getTableDataModel().getValueAt(rowb,dataColumn); + + String r1 = null; + if(a instanceof GroupRole) { + r1 = ((GroupRole)a).name(); + } else if(a instanceof String) { + r1 = ("owner".equals(a) || "coach".equals(a)) ? GroupRole.teamleader.name() : (String)a; + } + + String r2 = null; + if(b instanceof GroupRole) { + r2 = ((GroupRole)b).name(); + } else if(b instanceof String) { + r2 = ("owner".equals(b) || "coach".equals(b)) ? GroupRole.teamleader.name() : (String)b; + } + + return super.compareString(r1, r2); + } + }); + tableCtr.addColumnDescriptor(new SignColumnDescriptor("signin", Col.sign.ordinal(), getLocale(), getTranslator())); tableCtr.addMultiSelectAction("signin", "signin"); tableCtr.addMultiSelectAction("signout", "signout");