From d1f677441d3d6ecba699dff26a70bbf331f1dd4a Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Mon, 21 Jul 2014 13:58:02 +0200 Subject: [PATCH] OO-1139: fix some sorting issues in group and authoring tool --- .../ui/main/BusinessGroupFlexiTableModelSort.java | 15 +++++++++++---- .../main/BusinessGroupMembershipComparator.java | 10 ++++++++++ .../repository/_i18n/LocalStrings_de.properties | 1 + .../repository/_i18n/LocalStrings_en.properties | 1 + .../repository/_i18n/LocalStrings_fr.properties | 1 + .../manager/RepositoryEntryAuthorQueries.java | 9 ++++++++- .../SearchAuthorRepositoryEntryViewParams.java | 1 + .../ui/author/AuthorListController.java | 2 +- .../ui/author/AuthoringEntryDataModel.java | 2 +- .../author/AuthoringEntryDetailsController.java | 3 --- 10 files changed, 35 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/olat/group/ui/main/BusinessGroupFlexiTableModelSort.java b/src/main/java/org/olat/group/ui/main/BusinessGroupFlexiTableModelSort.java index c2c7d24c45d..64073a770d2 100644 --- a/src/main/java/org/olat/group/ui/main/BusinessGroupFlexiTableModelSort.java +++ b/src/main/java/org/olat/group/ui/main/BusinessGroupFlexiTableModelSort.java @@ -50,6 +50,7 @@ public class BusinessGroupFlexiTableModelSort extends SortableFlexiTableModelDel int columnIndex = getColumnIndex(); Cols column = Cols.values()[columnIndex]; switch(column) { + case name: Collections.sort(rows, new BusinessGroupNameComparator()); break; case mark: Collections.sort(rows, new MarkComparator()); break; case resources: Collections.sort(rows, new ResourcesComparator()); break; case role: Collections.sort(rows, new RoleComparator()); break; @@ -59,6 +60,14 @@ public class BusinessGroupFlexiTableModelSort extends SortableFlexiTableModelDel } } + private class BusinessGroupNameComparator implements Comparator<BGTableItem> { + + @Override + public int compare(BGTableItem t1, BGTableItem t2) { + return compareString(t1.getBusinessGroupName(), t2.getBusinessGroupName()); + } + } + private class MarkComparator implements Comparator<BGTableItem> { @Override @@ -80,16 +89,14 @@ public class BusinessGroupFlexiTableModelSort extends SortableFlexiTableModelDel @Override public int compare(BGTableItem t1, BGTableItem t2) { List<RepositoryEntryShort> r1 = t1.getRelations(); - List<RepositoryEntryShort> r2 = t1.getRelations(); + List<RepositoryEntryShort> r2 = t2.getRelations(); if(r1 != null && r1.size() > 0) { if(r2 != null && r2.size() > 0) { return compareTo(r1, r2); } return 1; - } - - if(r2 != null && r2.size() > 0) { + } else if(r2 != null && r2.size() > 0) { return -1; } return compareString(t1.getBusinessGroupName(), t2.getBusinessGroupName()); diff --git a/src/main/java/org/olat/group/ui/main/BusinessGroupMembershipComparator.java b/src/main/java/org/olat/group/ui/main/BusinessGroupMembershipComparator.java index 9d401a5fa06..438f366f705 100644 --- a/src/main/java/org/olat/group/ui/main/BusinessGroupMembershipComparator.java +++ b/src/main/java/org/olat/group/ui/main/BusinessGroupMembershipComparator.java @@ -32,6 +32,16 @@ public class BusinessGroupMembershipComparator implements Comparator<BusinessGro @Override public int compare(BusinessGroupMembership m1, BusinessGroupMembership m2) { + if(m1 == null) { + if(m2 == null) { + return 0; + } else { + return -1; + } + } else if(m2 == null) { + return 1; + } + if(m1.isOwner()) { if(m2.isOwner()) { return 0; diff --git a/src/main/java/org/olat/repository/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/repository/_i18n/LocalStrings_de.properties index 37899a960cd..ed475e7fb18 100644 --- a/src/main/java/org/olat/repository/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/repository/_i18n/LocalStrings_de.properties @@ -529,6 +529,7 @@ table.header.access.membersonly=<span class\="o_blue">Nur Mitglieder</span> table.header.access.owner=<span class\="o_ochre">B---</span> table.header.access.user=<span class\="o_blue">BAR-</span> table.header.author=Urheber +table.header.authors=Autoren table.header.date=Erstellt table.header.description=Beschreibung table.header.details=Detailansicht diff --git a/src/main/java/org/olat/repository/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/repository/_i18n/LocalStrings_en.properties index 2afd393bf42..ac4608e150b 100644 --- a/src/main/java/org/olat/repository/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/repository/_i18n/LocalStrings_en.properties @@ -489,6 +489,7 @@ table.header.access.membersonly=<span class\="o_blue">Members only</span> table.header.access.owner=<span class\="o_ochre">O---</span> table.header.access.user=<span class\="o_blue">OAU-</span> table.header.author=Author +table.header.authors=Authors table.header.date=Created table.header.description=Description table.header.details=Detailed view diff --git a/src/main/java/org/olat/repository/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/repository/_i18n/LocalStrings_fr.properties index a8bd1fd4671..991c273010f 100644 --- a/src/main/java/org/olat/repository/_i18n/LocalStrings_fr.properties +++ b/src/main/java/org/olat/repository/_i18n/LocalStrings_fr.properties @@ -455,6 +455,7 @@ table.header.access.membersonly=<span class\="o_blue">Membres uniquement</span> table.header.access.owner=<span class\="o_ochre">P---</span> table.header.access.user=<span class\="o_blue">PAU-</span> table.header.author=Cr\u00E9ateur +table.header.authors=Auteurs table.header.date=Cr\u00E9\u00E9e table.header.description=Description table.header.details=Vue d\u00E9taill\u00E9e diff --git a/src/main/java/org/olat/repository/manager/RepositoryEntryAuthorQueries.java b/src/main/java/org/olat/repository/manager/RepositoryEntryAuthorQueries.java index 5633a7af6cf..ca09f5b399d 100644 --- a/src/main/java/org/olat/repository/manager/RepositoryEntryAuthorQueries.java +++ b/src/main/java/org/olat/repository/manager/RepositoryEntryAuthorQueries.java @@ -269,6 +269,13 @@ public class RepositoryEntryAuthorQueries { sb.append(" order by lower(v.initialAuthor)"); appendAsc(sb, asc).append(", lower(v.displayname) asc"); break; + case access: + if(asc) { + sb.append(" order by v.access asc, lower(v.displayname) asc"); + } else { + sb.append(" order by v.access desc, lower(v.displayname) desc"); + } + break; case ac: if(asc) { sb.append(" order by offers asc, lower(v.displayname) asc"); @@ -281,7 +288,7 @@ public class RepositoryEntryAuthorQueries { appendAsc(sb, asc).append(", lower(v.displayname) asc"); break; case lastUsage: - sb.append(" order by v.stats.lastUsage "); + sb.append(" order by v.statistics.lastUsage "); appendAsc(sb, asc).append(", lower(v.displayname) asc"); break; case lifecycleLabel: diff --git a/src/main/java/org/olat/repository/model/SearchAuthorRepositoryEntryViewParams.java b/src/main/java/org/olat/repository/model/SearchAuthorRepositoryEntryViewParams.java index 2c863a28487..eed878e7378 100644 --- a/src/main/java/org/olat/repository/model/SearchAuthorRepositoryEntryViewParams.java +++ b/src/main/java/org/olat/repository/model/SearchAuthorRepositoryEntryViewParams.java @@ -163,6 +163,7 @@ public class SearchAuthorRepositoryEntryViewParams { displayname, authors, author, + access, ac, creationDate, lastUsage, diff --git a/src/main/java/org/olat/repository/ui/author/AuthorListController.java b/src/main/java/org/olat/repository/ui/author/AuthorListController.java index 7c11383245b..5bb70d617d9 100644 --- a/src/main/java/org/olat/repository/ui/author/AuthorListController.java +++ b/src/main/java/org/olat/repository/ui/author/AuthorListController.java @@ -212,7 +212,7 @@ public class AuthorListController extends FormBasicController implements Activat columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(true, Cols.author.i18nKey(), Cols.author.ordinal(), true, OrderBy.author.name())); columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(true, Cols.access.i18nKey(), Cols.access.ordinal(), - true, OrderBy.ac.name(), FlexiColumnModel.ALIGNMENT_LEFT, new AccessRenderer())); + true, OrderBy.access.name(), FlexiColumnModel.ALIGNMENT_LEFT, new AccessRenderer())); columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(true, Cols.ac.i18nKey(), Cols.ac.ordinal(), true, OrderBy.ac.name(), FlexiColumnModel.ALIGNMENT_LEFT, new ACRenderer())); columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, Cols.creationDate.i18nKey(), Cols.creationDate.ordinal(), diff --git a/src/main/java/org/olat/repository/ui/author/AuthoringEntryDataModel.java b/src/main/java/org/olat/repository/ui/author/AuthoringEntryDataModel.java index 1193684ecd5..0f8fc7490ca 100644 --- a/src/main/java/org/olat/repository/ui/author/AuthoringEntryDataModel.java +++ b/src/main/java/org/olat/repository/ui/author/AuthoringEntryDataModel.java @@ -90,7 +90,7 @@ class AuthoringEntryDataModel extends DefaultFlexiTableDataSourceModel<Authoring externalRef("table.header.externalref"), displayName("cif.displayname"), author("table.header.author"), - authors("table.header.author"), + authors("table.header.authors"), access("table.header.access"), creationDate("table.header.date"), lastUsage("table.header.lastusage"), diff --git a/src/main/java/org/olat/repository/ui/author/AuthoringEntryDetailsController.java b/src/main/java/org/olat/repository/ui/author/AuthoringEntryDetailsController.java index d442e0d848f..c10bd3ae501 100644 --- a/src/main/java/org/olat/repository/ui/author/AuthoringEntryDetailsController.java +++ b/src/main/java/org/olat/repository/ui/author/AuthoringEntryDetailsController.java @@ -88,7 +88,6 @@ import org.olat.resource.accesscontrol.model.OfferAccess; import org.olat.resource.accesscontrol.model.Price; import org.olat.resource.accesscontrol.ui.OrdersAdminController; import org.olat.resource.accesscontrol.ui.PriceFormat; -import org.olat.user.UserManager; import org.springframework.beans.factory.annotation.Autowired; @@ -121,8 +120,6 @@ public class AuthoringEntryDetailsController extends RepositoryEntryDetailsContr private boolean corrupted; - @Autowired - private UserManager userManager; @Autowired private RepositoryManager repositoryManager; @Autowired -- GitLab