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 17f7b92c2d0ae321172910c676d27c5b690a353c..0c4b5c08fcc8c66e755cbce9e6f7b3631b64dbb3 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 af9a321fe126f45ee8f03b559dca896c5f07c9b1..d4dd694b46eafbf271d95b0116d7818c630f83b5 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 e04ddf53b8a43f35ab0db742a2fdbba7a54fd2be..1b787abc53aa374ec7a85ffa0a9a01275de064b4 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 1f6146f8744641bfbdf764a24d45d59f145e6bb9..8e3145552a65dc24f9cd12fdfda509512860a068 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) {