diff --git a/src/main/java/org/olat/core/commons/modules/bc/meta/MetaInfoFactory.java b/src/main/java/org/olat/core/commons/modules/bc/meta/MetaInfoFactory.java index 1f9de4902b777e242b8e140f977f8d8a52f32aa7..b75d745d2975fd34fc283d2c123728c78907e0c4 100644 --- a/src/main/java/org/olat/core/commons/modules/bc/meta/MetaInfoFactory.java +++ b/src/main/java/org/olat/core/commons/modules/bc/meta/MetaInfoFactory.java @@ -36,7 +36,7 @@ public class MetaInfoFactory { * @param metaInfo */ private MetaInfoFactory(MetaInfo metaInfo) { - this.metaInfo = metaInfo; + MetaInfoFactory.metaInfo = metaInfo; } public static MetaInfo createMetaInfoFor(OlatRelPathImpl path) { diff --git a/src/main/java/org/olat/core/commons/modules/bc/meta/MetaInfoFormController.java b/src/main/java/org/olat/core/commons/modules/bc/meta/MetaInfoFormController.java index c83e5d28c0eaf29fd60fb8082ab32d8e92e719de..6fb8adc2f9a3ca270c500dbd3055b1635bfa6481 100644 --- a/src/main/java/org/olat/core/commons/modules/bc/meta/MetaInfoFormController.java +++ b/src/main/java/org/olat/core/commons/modules/bc/meta/MetaInfoFormController.java @@ -246,7 +246,7 @@ public class MetaInfoFormController extends FormBasicController { if (!isSubform) { - if(!meta.isDirectory()) { + if(meta != null && !meta.isDirectory()) { Long lockedById = meta.getLockedBy(); //locked String lockedTitle = getTranslator().translate("mf.locked"); @@ -277,21 +277,24 @@ public class MetaInfoFormController extends FormBasicController { } // username - uifactory.addStaticTextElement("mf.author", meta.getHTMLFormattedAuthor(), formLayout); + String author = meta == null ? "" : meta.getHTMLFormattedAuthor(); + uifactory.addStaticTextElement("mf.author", author, formLayout); // filesize uifactory.addStaticTextElement("mf.size", sizeText, formLayout); // last modified date - uifactory.addStaticTextElement("mf.lastModified", StringHelper.formatLocaleDate(meta.getLastModified(), getLocale()), formLayout); + String lastModified = meta == null ? "" : StringHelper.formatLocaleDate(meta.getLastModified(), getLocale()); + uifactory.addStaticTextElement("mf.lastModified", lastModified, formLayout); // file type uifactory.addStaticTextElement("mf.type", typeText, formLayout); - uifactory.addStaticTextElement("mf.downloads", String.valueOf(meta.getDownloadCount()), formLayout); + String downloads = meta == null ? "" : String.valueOf(meta.getDownloadCount()); + uifactory.addStaticTextElement("mf.downloads", downloads, formLayout); } - if (!isSubform && meta.isDirectory()) { + if (!isSubform && meta != null && meta.isDirectory()) { // Don't show any meta data except title and comment if the item is // a directory. // Hide the metadata. @@ -303,7 +306,9 @@ public class MetaInfoFormController extends FormBasicController { if (!isSubform) { final FormLayoutContainer buttonLayout = FormLayoutContainer.createButtonLayout("buttonLayout", getTranslator()); formLayout.add(buttonLayout); - uifactory.addFormSubmitButton("submit", buttonLayout); + if(meta != null) { + uifactory.addFormSubmitButton("submit", buttonLayout); + } uifactory.addFormCancelButton("cancel", buttonLayout, ureq, getWindowControl()); } } 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");