From ea8af5f5def62b48f5bf99bdd461d3308b25c48d Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Tue, 3 Jan 2017 08:54:42 +0100
Subject: [PATCH] OO-2397: add show all in some filters list

---
 .../flexible/elements/FlexiTableFilter.java     | 17 +++++++++++++++++
 .../table/AbstractFlexiTableRenderer.java       |  2 +-
 .../IdentityAssessmentOverviewController.java   |  4 ++--
 .../tool/IdentityListCourseNodeController.java  |  2 ++
 .../tool/IdentityListCourseNodeTableModel.java  |  2 ++
 .../ui/tool/_i18n/LocalStrings_de.properties    |  1 +
 .../ui/tool/_i18n/LocalStrings_en.properties    |  1 +
 .../ui/list/RepositoryEntryListController.java  |  2 +-
 8 files changed, 27 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableFilter.java b/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableFilter.java
index 2e8a30a4275..33321c09c66 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableFilter.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableFilter.java
@@ -35,6 +35,7 @@ public class FlexiTableFilter {
 	private final FlexiTableFilterIconRenderer renderer;
 	
 	private boolean selected;
+	private boolean showAll = false;
 	
 	public FlexiTableFilter(String label, String filter) {
 		this.label = label;
@@ -43,6 +44,14 @@ public class FlexiTableFilter {
 		this.iconLeftCSS = null;
 	}
 	
+	public FlexiTableFilter(String label, String filter, boolean showAll) {
+		this.label = label;
+		this.filter = filter;
+		this.showAll = showAll;
+		this.renderer = null;
+		this.iconLeftCSS = null;
+	}
+	
 	public FlexiTableFilter(String label, String filter, String iconLeftCSS) {
 		this.label = label;
 		this.filter = filter;
@@ -65,6 +74,14 @@ public class FlexiTableFilter {
 		return filter;
 	}
 
+	public boolean isShowAll() {
+		return showAll;
+	}
+
+	public void setShowAll(boolean showAll) {
+		this.showAll = showAll;
+	}
+
 	public String getIconLeftCSS() {
 		return iconLeftCSS;
 	}
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java
index 9eadba7b8d4..138f7f3e12f 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java
@@ -271,7 +271,7 @@ public abstract class AbstractFlexiTableRenderer extends DefaultComponentRendere
 					filter.getIconRenderer().render(sb, filter, ftE.getComponent(), ftE.getTranslator());
 				}
 				sb.append(filter.getLabel()).append("</a></li>");
-				if(filter.isSelected()) {
+				if(filter.isSelected() && !filter.isShowAll()) {
 					selected = filter.getLabel();
 				}
 			}
diff --git a/src/main/java/org/olat/course/assessment/ui/tool/IdentityAssessmentOverviewController.java b/src/main/java/org/olat/course/assessment/ui/tool/IdentityAssessmentOverviewController.java
index 78af81dae1f..98791c5071e 100644
--- a/src/main/java/org/olat/course/assessment/ui/tool/IdentityAssessmentOverviewController.java
+++ b/src/main/java/org/olat/course/assessment/ui/tool/IdentityAssessmentOverviewController.java
@@ -246,8 +246,8 @@ public class IdentityAssessmentOverviewController extends FormBasicController im
 		
 		if (allowTableFiltering) {
 			List<FlexiTableFilter> filters = new ArrayList<>();
-			//filters.add(new FlexiTableFilter(translate("nodesoverview.filter.discardEmptyNodes"), "discardEmptyNodes"));
-			//filters.add(new FlexiTableFilter(translate("nodesoverview.filter.showEmptyNodes"), "showEmptyNodes"));
+			filters.add(new FlexiTableFilter(translate("filter.showAll"), "showAll", true));
+			filters.add(FlexiTableFilter.SPACER);
 			filters.add(new FlexiTableFilter(translate("filter.passed"), "passed"));
 			filters.add(new FlexiTableFilter(translate("filter.failed"), "failed"));
 			filters.add(new FlexiTableFilter(translate("filter.inProgress"), "inProgress"));
diff --git a/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java b/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java
index e46af6ad686..05b943d9d08 100644
--- a/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java
+++ b/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java
@@ -247,6 +247,8 @@ public class IdentityListCourseNodeController extends FormBasicController implem
 		tableEl.setMultiSelect(!coachCourseEnv.isCourseReadOnly());
 		
 		List<FlexiTableFilter> filters = new ArrayList<>();
+		filters.add(new FlexiTableFilter(translate("filter.showAll"), "showAll", true));
+		filters.add(FlexiTableFilter.SPACER);
 		filters.add(new FlexiTableFilter(translate("filter.passed"), "passed"));
 		filters.add(new FlexiTableFilter(translate("filter.failed"), "failed"));
 		filters.add(new FlexiTableFilter(translate("filter.inProgress"), "inProgress"));
diff --git a/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeTableModel.java b/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeTableModel.java
index 30abb47649d..fd99968c973 100644
--- a/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeTableModel.java
+++ b/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeTableModel.java
@@ -83,6 +83,8 @@ public class IdentityListCourseNodeTableModel extends DefaultFlexiTableDataModel
 						filteredRows.add(row);
 					}
 				}
+			} else {
+				filteredRows.addAll(backups);
 			}
 			super.setObjects(filteredRows);
 		} else {
diff --git a/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_de.properties
index 14f58330ada..5c45c27e78f 100644
--- a/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_de.properties
@@ -29,6 +29,7 @@ filter.groups=$org.olat.modules.assessment.ui\:filter.groups
 filter.inProgress=$org.olat.modules.assessment.ui\:filter.inProgress
 filter.inReview=$org.olat.modules.assessment.ui\:filter.inReview
 filter.passed=$org.olat.modules.assessment.ui\:filter.passed
+filter.showAll=Alle anzeigen
 generate.certificate=$org.olat.course.certificate.ui\:generate.certificate
 groups=Gruppen
 msg.certificate.pending=$org.olat.course.certificate.ui\:msg.certificate.pending
diff --git a/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_en.properties
index 02c21c6a263..e847512e2aa 100644
--- a/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_en.properties
@@ -29,6 +29,7 @@ filter.groups=$org.olat.modules.assessment.ui\:filter.groups
 filter.inProgress=$org.olat.modules.assessment.ui\:filter.inProgress
 filter.inReview=$org.olat.modules.assessment.ui\:filter.inReview
 filter.passed=$org.olat.modules.assessment.ui\:filter.passed
+filter.showAll=Show all
 generate.certificate=$org.olat.course.certificate.ui\:generate.certificate
 groups=Groups
 msg.certificate.pending=$org.olat.course.certificate.ui\:msg.certificate.pending
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 5ed247e5ba8..183b0f4d726 100644
--- a/src/main/java/org/olat/repository/ui/list/RepositoryEntryListController.java
+++ b/src/main/java/org/olat/repository/ui/list/RepositoryEntryListController.java
@@ -225,7 +225,7 @@ public class RepositoryEntryListController extends FormBasicController
 	
 	private void initFilters(FlexiTableElement tableElement) {
 		List<FlexiTableFilter> filters = new ArrayList<>(16);
-		filters.add(new FlexiTableFilter(translate("filter.show.all"), Filter.showAll.name()));
+		filters.add(new FlexiTableFilter(translate("filter.show.all"), Filter.showAll.name(), true));
 		filters.add(FlexiTableFilter.SPACER);
 		filters.add(new FlexiTableFilter(translate("filter.current.courses"), Filter.currentCourses.name()));
 		filters.add(new FlexiTableFilter(translate("filter.upcoming.courses"), Filter.upcomingCourses.name()));
-- 
GitLab