From a36ba081e6a64173d1547a2fd0975965b5c36f5c Mon Sep 17 00:00:00 2001 From: srosse <stephane.rosse@frentix.com> Date: Fri, 6 Mar 2020 14:20:06 +0100 Subject: [PATCH] OO-4556: show only published videos in LearnTube --- .../olat/modules/video/ui/VideoEntryDataSource.java | 4 ++-- .../olat/modules/video/ui/VideoListingController.java | 7 ++++--- .../manager/RepositoryEntryMyCourseQueries.java | 8 ++------ .../model/SearchMyRepositoryEntryViewParams.java | 11 ++++++----- .../repository/ui/catalog/CatalogNodeController.java | 5 +++-- .../ui/list/OverviewRepositoryListController.java | 5 +++-- .../ui/list/RepositoryEntryListController.java | 11 ++++++++++- 7 files changed, 30 insertions(+), 21 deletions(-) diff --git a/src/main/java/org/olat/modules/video/ui/VideoEntryDataSource.java b/src/main/java/org/olat/modules/video/ui/VideoEntryDataSource.java index 214fb5d1df5..cc065a135e3 100644 --- a/src/main/java/org/olat/modules/video/ui/VideoEntryDataSource.java +++ b/src/main/java/org/olat/modules/video/ui/VideoEntryDataSource.java @@ -86,7 +86,7 @@ public class VideoEntryDataSource implements FlexiTableDataSourceDelegate<Reposi public ResultInfos<RepositoryEntryRow> getRows(String query, List<FlexiTableFilter> filters, List<String> condQueries, int firstResult, int maxResults, SortKey... orderBy) { - if(condQueries != null && condQueries.size() > 0) { + if(condQueries != null && !condQueries.isEmpty()) { String filter = condQueries.get(0); if(StringHelper.containsNonWhitespace(filter)) { searchParams.setFilters(Collections.singletonList(Filter.valueOf(filter))); @@ -111,7 +111,7 @@ public class VideoEntryDataSource implements FlexiTableDataSourceDelegate<Reposi List<RepositoryEntryRow> rows = processViewModel(views); ResultInfos<RepositoryEntryRow> results = new DefaultResultInfos<>(firstResult + rows.size(), -1, rows); if(firstResult == 0 && views.size() < maxResults) { - count = new Integer(views.size()); + count = Integer.valueOf(views.size()); } return results; } diff --git a/src/main/java/org/olat/modules/video/ui/VideoListingController.java b/src/main/java/org/olat/modules/video/ui/VideoListingController.java index 2f8c1cfe8d3..fe9d4f58b02 100644 --- a/src/main/java/org/olat/modules/video/ui/VideoListingController.java +++ b/src/main/java/org/olat/modules/video/ui/VideoListingController.java @@ -58,6 +58,7 @@ import org.olat.core.util.vfs.VFSMediaResource; import org.olat.fileresource.types.VideoFileResource; import org.olat.modules.video.ui.VideoEntryDataModel.Cols; import org.olat.repository.RepositoryEntry; +import org.olat.repository.RepositoryEntryStatusEnum; import org.olat.repository.RepositoryManager; import org.olat.repository.RepositoryModule; import org.olat.repository.RepositoryService; @@ -81,7 +82,6 @@ public class VideoListingController extends FormBasicController implements Activ private final String imgUrl; private FlexiTableElement tableEl; - private VideoEntryDataModel model; private VideoEntryDataSource dataSource; private SearchMyRepositoryEntryViewParams searchParams; @@ -94,11 +94,12 @@ public class VideoListingController extends FormBasicController implements Activ public VideoListingController(UserRequest ureq, WindowControl wControl, TooledStackedPanel toolbarPanel) { super(ureq, wControl, "video_listing"); - this.setTranslator(Util.createPackageTranslator(RepositoryService.class, getLocale(), getTranslator())); + setTranslator(Util.createPackageTranslator(RepositoryService.class, getLocale(), getTranslator())); this.toolbarPanel = toolbarPanel; searchParams = new SearchMyRepositoryEntryViewParams(getIdentity(), ureq.getUserSession().getRoles(), VideoFileResource.TYPE_NAME); + searchParams.setEntryStatus(new RepositoryEntryStatusEnum[] { RepositoryEntryStatusEnum.published }); dataSource = new VideoEntryDataSource(searchParams); imgUrl = registerMapper(ureq, new VideoMapper()); @@ -111,7 +112,7 @@ public class VideoListingController extends FormBasicController implements Activ FlexiTableColumnModel columnsModel = FlexiTableDataModelFactory.createFlexiTableColumnModel(); columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, Cols.key.i18nKey(), Cols.key.ordinal(), true, OrderBy.key.name())); - model = new VideoEntryDataModel(dataSource, columnsModel); + VideoEntryDataModel model = new VideoEntryDataModel(dataSource, columnsModel); tableEl = uifactory.addTableElement(getWindowControl(), "table", model, 20, false, getTranslator(), formLayout); tableEl.setAvailableRendererTypes(FlexiTableRendererType.custom); tableEl.setRendererType(FlexiTableRendererType.custom); diff --git a/src/main/java/org/olat/repository/manager/RepositoryEntryMyCourseQueries.java b/src/main/java/org/olat/repository/manager/RepositoryEntryMyCourseQueries.java index 4b7ea6028b7..5c8ec0714cb 100644 --- a/src/main/java/org/olat/repository/manager/RepositoryEntryMyCourseQueries.java +++ b/src/main/java/org/olat/repository/manager/RepositoryEntryMyCourseQueries.java @@ -219,12 +219,8 @@ public class RepositoryEntryMyCourseQueries { sb.append(" where "); needIdentityKey |= appendMyViewAccessSubSelect(sb, roles, params.getFilters(), params.isMembershipMandatory()); - if(params.getClosed() != null) { - if(params.getClosed().booleanValue()) { - sb.append(" and v.status ").in(RepositoryEntryStatusEnum.closed); - } else { - sb.append(" and v.status ").in(RepositoryEntryStatusEnum.preparationToPublished()); - } + if(params.getEntryStatus() != null) { + sb.append(" and v.status ").in(params.getEntryStatus()); } if(params.getFilters() != null) { diff --git a/src/main/java/org/olat/repository/model/SearchMyRepositoryEntryViewParams.java b/src/main/java/org/olat/repository/model/SearchMyRepositoryEntryViewParams.java index c74fa6316d0..e297679d8ea 100644 --- a/src/main/java/org/olat/repository/model/SearchMyRepositoryEntryViewParams.java +++ b/src/main/java/org/olat/repository/model/SearchMyRepositoryEntryViewParams.java @@ -26,6 +26,7 @@ import org.olat.core.id.Identity; import org.olat.core.id.Roles; import org.olat.modules.curriculum.CurriculumRef; import org.olat.repository.CatalogEntry; +import org.olat.repository.RepositoryEntryStatusEnum; /** * @@ -38,8 +39,8 @@ public class SearchMyRepositoryEntryViewParams { private Roles roles; private Boolean marked; - private Boolean closed; private boolean membershipMandatory = false; + private RepositoryEntryStatusEnum[] entryStatus; private OrderBy orderBy; private boolean asc; @@ -182,12 +183,12 @@ public class SearchMyRepositoryEntryViewParams { return roles; } - public Boolean getClosed() { - return closed; + public RepositoryEntryStatusEnum[] getEntryStatus() { + return entryStatus; } - public void setClosed(Boolean closed) { - this.closed = closed; + public void setEntryStatus(RepositoryEntryStatusEnum[] entryStatus) { + this.entryStatus = entryStatus; } public Boolean getMarked() { diff --git a/src/main/java/org/olat/repository/ui/catalog/CatalogNodeController.java b/src/main/java/org/olat/repository/ui/catalog/CatalogNodeController.java index 3c930ed8bc2..de08a8f437b 100644 --- a/src/main/java/org/olat/repository/ui/catalog/CatalogNodeController.java +++ b/src/main/java/org/olat/repository/ui/catalog/CatalogNodeController.java @@ -47,6 +47,7 @@ import org.olat.core.util.resource.OresHelper; import org.olat.core.util.vfs.VFSLeaf; import org.olat.repository.CatalogEntry; import org.olat.repository.CatalogEntry.Style; +import org.olat.repository.RepositoryEntryStatusEnum; import org.olat.repository.RepositoryManager; import org.olat.repository.manager.CatalogManager; import org.olat.repository.model.SearchMyRepositoryEntryViewParams; @@ -145,7 +146,7 @@ public class CatalogNodeController extends BasicController implements Activateab SearchMyRepositoryEntryViewParams searchParams = new SearchMyRepositoryEntryViewParams(getIdentity(), ureq.getUserSession().getRoles()); searchParams.setParentEntry(catalogEntry); - searchParams.setClosed(Boolean.FALSE); + searchParams.setEntryStatus(RepositoryEntryStatusEnum.preparationToPublished()); entryListController = new RepositoryEntryListController(ureq, wControl, searchParams, true, false, "catalog", stackPanel); if(!entryListController.isEmpty() || searchParams.getFilters() != null) { @@ -157,7 +158,7 @@ public class CatalogNodeController extends BasicController implements Activateab SearchMyRepositoryEntryViewParams searchClosedParams = new SearchMyRepositoryEntryViewParams(getIdentity(), ureq.getUserSession().getRoles()); searchClosedParams.setParentEntry(catalogEntry); - searchClosedParams.setClosed(Boolean.TRUE); + searchClosedParams.setEntryStatus(new RepositoryEntryStatusEnum[] {RepositoryEntryStatusEnum.closed }); closedEntryListController = new RepositoryEntryListController(ureq, wControl, searchClosedParams, true, false, "catalog-closed", stackPanel); if(!closedEntryListController.isEmpty() || searchClosedParams.getFilters() != null) { mainVC.put("closedEntries", closedEntryListController.getInitialComponent()); diff --git a/src/main/java/org/olat/repository/ui/list/OverviewRepositoryListController.java b/src/main/java/org/olat/repository/ui/list/OverviewRepositoryListController.java index d607b447dcf..87f65b95c76 100644 --- a/src/main/java/org/olat/repository/ui/list/OverviewRepositoryListController.java +++ b/src/main/java/org/olat/repository/ui/list/OverviewRepositoryListController.java @@ -49,6 +49,7 @@ import org.olat.modules.curriculum.CurriculumModule; import org.olat.modules.curriculum.CurriculumService; import org.olat.modules.curriculum.ui.CurriculumListController; import org.olat.repository.CatalogEntry; +import org.olat.repository.RepositoryEntryStatusEnum; import org.olat.repository.RepositoryManager; import org.olat.repository.RepositoryModule; import org.olat.repository.RepositoryService; @@ -314,7 +315,7 @@ public class OverviewRepositoryListController extends BasicController implements SearchMyRepositoryEntryViewParams searchParams = new SearchMyRepositoryEntryViewParams(getIdentity(), ureq.getUserSession().getRoles()); searchParams.setMembershipMandatory(true); - searchParams.setClosed(Boolean.FALSE); + searchParams.setEntryStatus(RepositoryEntryStatusEnum.preparationToPublished()); OLATResourceable ores = OresHelper.createOLATResourceableInstance("My", 0l); ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores)); @@ -407,7 +408,7 @@ public class OverviewRepositoryListController extends BasicController implements SearchMyRepositoryEntryViewParams searchParams = new SearchMyRepositoryEntryViewParams(getIdentity(), ureq.getUserSession().getRoles()); searchParams.setMembershipMandatory(true); - searchParams.setClosed(Boolean.TRUE); + searchParams.setEntryStatus(new RepositoryEntryStatusEnum[] {RepositoryEntryStatusEnum.closed }); OLATResourceable ores = OresHelper.createOLATResourceableInstance("Closed", 0l); ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores)); diff --git a/src/main/java/org/olat/repository/ui/list/RepositoryEntryListController.java b/src/main/java/org/olat/repository/ui/list/RepositoryEntryListController.java index 318bb1ddf2c..2970e4b3f82 100644 --- a/src/main/java/org/olat/repository/ui/list/RepositoryEntryListController.java +++ b/src/main/java/org/olat/repository/ui/list/RepositoryEntryListController.java @@ -75,6 +75,7 @@ import org.olat.core.util.Util; import org.olat.core.util.resource.OresHelper; import org.olat.course.CorruptedCourseException; import org.olat.repository.RepositoryEntry; +import org.olat.repository.RepositoryEntryStatusEnum; import org.olat.repository.RepositoryManager; import org.olat.repository.RepositoryModule; import org.olat.repository.RepositoryService; @@ -496,7 +497,15 @@ public class RepositoryEntryListController extends FormBasicController searchParams.setAuthor(se.getAuthor()); searchParams.setText(se.getDisplayname()); searchParams.setMembershipMandatory(se.isMembershipMandatory()); - searchParams.setClosed(se.getClosed()); + if(se.getClosed() != null) { + if(se.getClosed().booleanValue()) { + searchParams.setEntryStatus(new RepositoryEntryStatusEnum[] { RepositoryEntryStatusEnum.closed }); + } else { + searchParams.setEntryStatus(RepositoryEntryStatusEnum.preparationToPublished()); + } + } else { + searchParams.setEntryStatus(null); + } tableEl.reset(true, true, true); RepositoryEntryListState state = new RepositoryEntryListState(); -- GitLab