From 2a82f44dc272e7547d2487fde1a07eac071896e1 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Mon, 22 Aug 2016 10:26:09 +0200
Subject: [PATCH] OO-2057: fix selection in table view of "My entries" and
 remove deleted entries of the list

---
 .../portfolio/ui/MyPageListController.java    | 24 ++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/olat/modules/portfolio/ui/MyPageListController.java b/src/main/java/org/olat/modules/portfolio/ui/MyPageListController.java
index a9f8e719ff8..6b9e2886b99 100644
--- a/src/main/java/org/olat/modules/portfolio/ui/MyPageListController.java
+++ b/src/main/java/org/olat/modules/portfolio/ui/MyPageListController.java
@@ -29,6 +29,9 @@ import org.olat.core.gui.components.Component;
 import org.olat.core.gui.components.form.flexible.FormItem;
 import org.olat.core.gui.components.form.flexible.elements.FormLink;
 import org.olat.core.gui.components.form.flexible.impl.FormEvent;
+import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableRenderEvent;
+import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableRendererType;
+import org.olat.core.gui.components.form.flexible.impl.elements.table.SelectionEvent;
 import org.olat.core.gui.components.link.Link;
 import org.olat.core.gui.components.link.LinkFactory;
 import org.olat.core.gui.components.stack.TooledStackedPanel;
@@ -44,6 +47,7 @@ import org.olat.modules.portfolio.BinderSecurityCallback;
 import org.olat.modules.portfolio.Category;
 import org.olat.modules.portfolio.CategoryToElement;
 import org.olat.modules.portfolio.Page;
+import org.olat.modules.portfolio.PageStatus;
 import org.olat.modules.portfolio.Section;
 import org.olat.modules.portfolio.ui.component.TimelinePoint;
 import org.olat.modules.portfolio.ui.model.PageRow;
@@ -114,6 +118,10 @@ public class MyPageListController extends AbstractPageListController {
 		List<PageRow> rows = new ArrayList<>(pages.size());
 		List<TimelinePoint> points = new ArrayList<>(pages.size());
 		for (Page page : pages) {
+			if(page.getPageStatus() == PageStatus.deleted) {
+				continue;
+			}
+			
 			List<Assignment> pageAssignmentList = pageToAssignments.get(page);
 			PageRow row = forgeRow(page, null, pageAssignmentList, false, categorizedElementMap, numberOfCommentsMap);
 			rows.add(row);
@@ -139,7 +147,21 @@ public class MyPageListController extends AbstractPageListController {
 
 	@Override
 	protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
-		if(source instanceof FormLink) {
+		if(tableEl == source) {
+			if(event instanceof FlexiTableRenderEvent) {
+				FlexiTableRenderEvent re = (FlexiTableRenderEvent)event;
+				if(re.getRendererType() == FlexiTableRendererType.custom) {
+					tableEl.sort(null, false);
+				}
+			} else if(event instanceof SelectionEvent) {
+				SelectionEvent se = (SelectionEvent)event;
+				String cmd = se.getCommand();
+				if("select-page".equals(cmd)) {
+					PageRow row = model.getObject(se.getIndex());
+					doOpenPage(ureq, row);
+				}
+			}
+		} else if(source instanceof FormLink) {
 			FormLink link = (FormLink)source;
 			String cmd = link.getCmd();
 			if("new.entry".equals(cmd)) {
-- 
GitLab