From 1b299b9e579fe6ab3bb9bbdd518b6b426ba15a8d Mon Sep 17 00:00:00 2001 From: srosse <stephane.rosse@frentix.com> Date: Fri, 13 Jul 2018 11:23:45 +0200 Subject: [PATCH] OO-3581: save the show/hide status of the timeline in the GUI preferences of the user --- .../ui/AbstractPageListController.java | 24 +++++++++++++++---- .../ui/BinderPageListController.java | 5 ++++ .../ui/DeletedPageListController.java | 5 ++++ .../portfolio/ui/MyPageListController.java | 5 ++++ 4 files changed, 34 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/olat/modules/portfolio/ui/AbstractPageListController.java b/src/main/java/org/olat/modules/portfolio/ui/AbstractPageListController.java index 17f7b92c2d0..0c4b5c08fcc 100644 --- a/src/main/java/org/olat/modules/portfolio/ui/AbstractPageListController.java +++ b/src/main/java/org/olat/modules/portfolio/ui/AbstractPageListController.java @@ -194,7 +194,13 @@ implements Activateable2, TooledController, FlexiTableComponentDelegate { timelineSwitchOffButton = uifactory.addFormLink("timeline.switch.off", formLayout, Link.BUTTON_SMALL); timelineSwitchOffButton.setIconLeftCSS("o_icon o_icon-sm o_icon_toggle_off"); timelineSwitchOffButton.setElementCssClass("o_sel_timeline_off"); - doSwitchTimelineOn(); + + Object prefs = ureq.getUserSession().getGuiPreferences().get(this.getClass(), getTimelineSwitchPreferencesName(), "on"); + if("on".equals(prefs)) { + doSwitchTimelineOn(ureq, false); + } else { + doSwitchTimelineOff(ureq, false); + } } else { flc.contextPut("timelineSwitch", Boolean.FALSE); } @@ -627,9 +633,9 @@ implements Activateable2, TooledController, FlexiTableComponentDelegate { } } } else if(timelineSwitchOnButton == source) { - doSwitchTimelineOff(); + doSwitchTimelineOff(ureq, true); } else if(timelineSwitchOffButton == source) { - doSwitchTimelineOn(); + doSwitchTimelineOn(ureq, true); } else if(source instanceof FormLink) { FormLink link = (FormLink)source; String cmd = link.getCmd(); @@ -726,18 +732,26 @@ implements Activateable2, TooledController, FlexiTableComponentDelegate { fireEvent(ureq, Event.CHANGED_EVENT); } - private void doSwitchTimelineOn() { + private void doSwitchTimelineOn(UserRequest ureq, boolean savePreferences) { timelineSwitchOnButton.setVisible(true); timelineSwitchOffButton.setVisible(false); flc.contextPut("timelineSwitch", Boolean.TRUE); + if(savePreferences) { + ureq.getUserSession().getGuiPreferences().put(this.getClass(), getTimelineSwitchPreferencesName(), "on"); + } } - private void doSwitchTimelineOff() { + private void doSwitchTimelineOff(UserRequest ureq, boolean savePreferences) { timelineSwitchOnButton.setVisible(false); timelineSwitchOffButton.setVisible(true); flc.contextPut("timelineSwitch", Boolean.FALSE); + if(savePreferences) { + ureq.getUserSession().getGuiPreferences().put(this.getClass(), getTimelineSwitchPreferencesName(), "off"); + } } + protected abstract String getTimelineSwitchPreferencesName(); + protected Assignment doStartAssignment(UserRequest ureq, PortfolioElementRow row) { return doStartAssignment(ureq, row.getAssignment().getKey()); } diff --git a/src/main/java/org/olat/modules/portfolio/ui/BinderPageListController.java b/src/main/java/org/olat/modules/portfolio/ui/BinderPageListController.java index af9a321fe12..d4dd694b46e 100644 --- a/src/main/java/org/olat/modules/portfolio/ui/BinderPageListController.java +++ b/src/main/java/org/olat/modules/portfolio/ui/BinderPageListController.java @@ -126,6 +126,11 @@ public class BinderPageListController extends AbstractPageListController { initialPanel.setCssClass("o_edit_mode"); } } + + @Override + protected String getTimelineSwitchPreferencesName() { + return "binder-timeline-switch-" + binder.getKey(); + } private String getGuiPrefsKey(OLATResourceable binderOres) { return new StringBuilder() diff --git a/src/main/java/org/olat/modules/portfolio/ui/DeletedPageListController.java b/src/main/java/org/olat/modules/portfolio/ui/DeletedPageListController.java index e04ddf53b8a..1b787abc53a 100644 --- a/src/main/java/org/olat/modules/portfolio/ui/DeletedPageListController.java +++ b/src/main/java/org/olat/modules/portfolio/ui/DeletedPageListController.java @@ -83,6 +83,11 @@ public class DeletedPageListController extends AbstractPageListController { tableEl.setSelectAllEnable(tableEl.getRendererType() == FlexiTableRendererType.classic); } + @Override + protected String getTimelineSwitchPreferencesName() { + return "del-timeline-switch"; + } + @Override protected void loadModel(UserRequest ureq, String searchString) { Map<Long,Long> numberOfCommentsMap = portfolioService.getNumberOfCommentsOnOwnedPage(getIdentity()); 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 1f6146f8744..8e3145552a6 100644 --- a/src/main/java/org/olat/modules/portfolio/ui/MyPageListController.java +++ b/src/main/java/org/olat/modules/portfolio/ui/MyPageListController.java @@ -81,6 +81,11 @@ public class MyPageListController extends AbstractPageListController { newEntryLink.setElementCssClass("o_sel_pf_new_entry"); stackPanel.addTool(newEntryLink, Align.right); } + + @Override + protected String getTimelineSwitchPreferencesName() { + return "entries-timeline-switch"; + } @Override protected void loadModel(UserRequest ureq, String searchString) { -- GitLab