diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java
index 1657dfdc2c2d9a8ebaaa765531cacc33712e30ac..666252c8c2d3d3e42bac7872c03d346077ab02ea 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java
@@ -1082,10 +1082,28 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 				filter.setSelected(false);
 			}
 		} else if(multiFilterSelection) {
+			boolean showAll = false;
 			for(FlexiTableFilter filter:filters) {
-				if(filter.getFilter().equals(filterKey)) {
-					filter.setSelected(!filter.isSelected());
+				if(filter.getFilter().equals(filterKey) && filter.isShowAll()) {
+					showAll = !filter.isSelected();//Show all is currently not selected, but the event will toggle it
 				}
+			}
+			
+			if(showAll) {
+				for(FlexiTableFilter filter:filters) {
+					filter.setSelected(filter.isShowAll());
+				}
+			} else {
+				for(FlexiTableFilter filter:filters) {
+					if(filter.isShowAll()) {
+						filter.setSelected(false);
+					} else if(filter.getFilter().equals(filterKey)) {
+						filter.setSelected(!filter.isSelected());
+					}
+				}
+			}
+
+			for(FlexiTableFilter filter:filters) {
 				if(filter.isSelected()) {
 					selectedFilters.add(filter);
 				}
diff --git a/src/main/java/org/olat/modules/portfolio/ui/shared/SharedPagesController.java b/src/main/java/org/olat/modules/portfolio/ui/shared/SharedPagesController.java
index 3b1adca3e35fb094f7638fe0f3c9ca9a27e8f395..469e29e2eeba2f80cefffbe043124c606afafba6 100644
--- a/src/main/java/org/olat/modules/portfolio/ui/shared/SharedPagesController.java
+++ b/src/main/java/org/olat/modules/portfolio/ui/shared/SharedPagesController.java
@@ -311,9 +311,11 @@ public class SharedPagesController extends FormBasicController implements Activa
 	@Override
 	protected void event(UserRequest ureq, Controller source, Event event) {
 		if(pageCtrl == source) {
-			if(event instanceof ClosePageEvent || event instanceof DonePageEvent) {
+			if(event instanceof ClosePageEvent) {
 				loadModel(false, false);
 				stackPanel.popController(pageCtrl);
+			} else if(event instanceof DonePageEvent) {
+				loadModel(false, false);
 			}
 		}
 		super.event(ureq, source, event);
diff --git a/src/main/java/org/olat/modules/portfolio/ui/shared/SharedPagesDataModel.java b/src/main/java/org/olat/modules/portfolio/ui/shared/SharedPagesDataModel.java
index c2e019887dd37b78b8c04fc068d8329a593944ee..babf347738dc90fed5a4ef3c81306c65ec12c3fa 100644
--- a/src/main/java/org/olat/modules/portfolio/ui/shared/SharedPagesDataModel.java
+++ b/src/main/java/org/olat/modules/portfolio/ui/shared/SharedPagesDataModel.java
@@ -68,7 +68,9 @@ public class SharedPagesDataModel extends DefaultFlexiTableDataModel<SharedPageR
 	@Override
 	public void filter(List<FlexiTableFilter> filters) {
 		String key = filters == null || filters.isEmpty() || filters.get(0) == null ? null : filters.get(0).getFilter();
-		if(StringHelper.containsNonWhitespace(key)) {
+		if("all".equals(key)) {
+			super.setObjects(backups);
+		} else if(StringHelper.containsNonWhitespace(key)) {
 			List<String> allowedStatus = filters.stream()
 					.map(f -> f.getFilter()).collect(Collectors.toList());
 			List<SharedPageRow> filteredRows = backups.stream()