From 2007596accee509052680e7df54ff246cd8415ce Mon Sep 17 00:00:00 2001
From: uhensler <none@none>
Date: Mon, 5 Mar 2018 15:10:21 +0100
Subject: [PATCH] OO-3185: Keep summary view status when switching from entry
 list to overview, sync binder summary

---
 .../generic/spacesaver/ToggleBoxController.java | 17 ++++++++++++-----
 .../modules/portfolio/manager/BinderDAO.java    |  1 +
 .../modules/portfolio/ui/BinderController.java  |  1 +
 .../portfolio/ui/TableOfContentController.java  |  4 ++++
 4 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/src/main/java/org/olat/core/gui/control/generic/spacesaver/ToggleBoxController.java b/src/main/java/org/olat/core/gui/control/generic/spacesaver/ToggleBoxController.java
index 2ca1280d17d..6d2b82a43ac 100644
--- a/src/main/java/org/olat/core/gui/control/generic/spacesaver/ToggleBoxController.java
+++ b/src/main/java/org/olat/core/gui/control/generic/spacesaver/ToggleBoxController.java
@@ -50,6 +50,8 @@ public class ToggleBoxController extends BasicController {
 	private final String titleOpen;
 	private final String titleClose;
 	private final String key;
+	private final Component componentToToggle;
+	private final boolean defaultToggleStatus;
 	private Link toggleButton;
 	private Link hideButton;
 	private final VelocityContainer mainVC;
@@ -69,22 +71,27 @@ public class ToggleBoxController extends BasicController {
 		this.key = key;
 		this.titleOpen = titleOpen;
 		this.titleClose = titleClose;
+		this.componentToToggle = componentToToggle;
+		this.defaultToggleStatus = defaultToggleStatus;
 		
 		mainVC = createVelocityContainer("togglebox");
 		toggleButton = LinkFactory.createCustomLink("toggle", "toggle", "", Link.NONTRANSLATED, mainVC, this);
 		toggleButton.setIconLeftCSS("o_icon o_icon-fw");
 
-		Preferences prefs = ureq.getUserSession().getGuiPreferences();
-		toggleStatus = (Boolean) prefs.get(this.getClass(), key, defaultToggleStatus);
-		mainVC.put("cmpToToggle", componentToToggle);
-
 		hideButton = LinkFactory.createLink("hide", mainVC, this);	
 		hideButton.setCustomEnabledLinkCSS("o_hide");
-		updateUI();
+		reload(ureq);
 
 		putInitialPanel(mainVC);
 	}
 	
+	public void reload(UserRequest ureq) {
+		Preferences prefs = ureq.getUserSession().getGuiPreferences();
+		toggleStatus = (Boolean) prefs.get(this.getClass(), key, defaultToggleStatus);
+		mainVC.put("cmpToToggle", componentToToggle);
+		updateUI();
+	}
+	
 	protected void updateUI() {
 		if(toggleStatus.booleanValue()) {
 			toggleButton.setCustomDisplayText(titleClose);
diff --git a/src/main/java/org/olat/modules/portfolio/manager/BinderDAO.java b/src/main/java/org/olat/modules/portfolio/manager/BinderDAO.java
index 2378812136c..f2c5a8dfff0 100644
--- a/src/main/java/org/olat/modules/portfolio/manager/BinderDAO.java
+++ b/src/main/java/org/olat/modules/portfolio/manager/BinderDAO.java
@@ -137,6 +137,7 @@ public class BinderDAO {
 	
 	public Binder syncWithTemplate(BinderImpl template, BinderImpl binder, AtomicBoolean changes) {
 		binder.setImagePath(template.getImagePath());
+		binder.setSummary(template.getSummary());
 		
 		List<Section> templateSections = template.getSections();
 		Map<Assignment,Section> assignmentTemplateToSectionTemplatesMap = new HashMap<>();
diff --git a/src/main/java/org/olat/modules/portfolio/ui/BinderController.java b/src/main/java/org/olat/modules/portfolio/ui/BinderController.java
index a1aceb519e4..f028ab14347 100644
--- a/src/main/java/org/olat/modules/portfolio/ui/BinderController.java
+++ b/src/main/java/org/olat/modules/portfolio/ui/BinderController.java
@@ -276,6 +276,7 @@ public class BinderController extends BasicController implements TooledControlle
 			listenTo(overviewCtrl);
 		} else {
 			overviewCtrl.loadModel();
+			overviewCtrl.updateSummaryView(ureq);
 		}
 
 		segmentButtonsCmp.setSelectedButton(overviewLink);
diff --git a/src/main/java/org/olat/modules/portfolio/ui/TableOfContentController.java b/src/main/java/org/olat/modules/portfolio/ui/TableOfContentController.java
index c80ae02cd9e..6ba407a88ab 100644
--- a/src/main/java/org/olat/modules/portfolio/ui/TableOfContentController.java
+++ b/src/main/java/org/olat/modules/portfolio/ui/TableOfContentController.java
@@ -170,6 +170,10 @@ public class TableOfContentController extends BasicController implements TooledC
 		loadModel();
 	}
 	
+	void updateSummaryView(UserRequest ureq) {
+		summaryCtrl.reload(ureq);
+	}
+	
 	private String getGuiPrefsKey(OLATResourceable binderOres) {
 		return new StringBuilder()
 				.append(binderOres.getResourceableTypeName())
-- 
GitLab