From 495e43c7f59c77cee64eaa0626e8469b5afc61ee Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Wed, 2 Jul 2014 09:47:35 +0200 Subject: [PATCH] OO-990: better update after changes on repository entries, small fixes --- .../OverviewBusinessGroupListController.java | 71 +++++++----- .../olat/repository/RepositoryManager.java | 5 +- .../ui/author/AuthorListController.java | 23 +++- .../AuthoringEntryDetailsController.java | 6 + .../author/OverviewAuthoringController.java | 69 ++++++----- .../OverviewRepositoryListController.java | 107 +++++++++--------- .../RepositoryEntryDetailsController.java | 9 ++ .../ProfileAndHomePageEditController.java | 6 +- 8 files changed, 178 insertions(+), 118 deletions(-) diff --git a/src/main/java/org/olat/group/ui/main/OverviewBusinessGroupListController.java b/src/main/java/org/olat/group/ui/main/OverviewBusinessGroupListController.java index 1f32ec93c16..22e000c0e33 100644 --- a/src/main/java/org/olat/group/ui/main/OverviewBusinessGroupListController.java +++ b/src/main/java/org/olat/group/ui/main/OverviewBusinessGroupListController.java @@ -120,6 +120,17 @@ public class OverviewBusinessGroupListController extends BasicController impleme } } } + + private void cleanUp() { + removeAsListenerAndDispose(favoritGroupsCtrl); + removeAsListenerAndDispose(myGroupsCtrl); + removeAsListenerAndDispose(openGroupsCtrl); + removeAsListenerAndDispose(searchGroupsCtrl); + favoritGroupsCtrl = null; + myGroupsCtrl = null; + openGroupsCtrl = null; + searchGroupsCtrl = null; + } @Override public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) { @@ -152,13 +163,14 @@ public class OverviewBusinessGroupListController extends BasicController impleme } private FavoritBusinessGroupListController updateMarkedGroups(UserRequest ureq) { - if(favoritGroupsCtrl == null) { - OLATResourceable ores = OresHelper.createOLATResourceableInstance("Favorits", 0l); - ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores)); - WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl()); - favoritGroupsCtrl = new FavoritBusinessGroupListController(ureq, bwControl); - listenTo(favoritGroupsCtrl); - } + cleanUp(); + + OLATResourceable ores = OresHelper.createOLATResourceableInstance("Favorits", 0l); + ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores)); + WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl()); + favoritGroupsCtrl = new FavoritBusinessGroupListController(ureq, bwControl); + listenTo(favoritGroupsCtrl); + favoritGroupsCtrl.doDefaultSearch(); mainVC.put("groupList", favoritGroupsCtrl.getInitialComponent()); addToHistory(ureq, favoritGroupsCtrl); @@ -166,13 +178,14 @@ public class OverviewBusinessGroupListController extends BasicController impleme } private BusinessGroupListController updateMyGroups(UserRequest ureq) { - if(myGroupsCtrl == null) { - OLATResourceable ores = OresHelper.createOLATResourceableInstance("AllGroups", 0l); - ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores)); - WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl()); - myGroupsCtrl = new BusinessGroupListController(ureq, bwControl); - listenTo(myGroupsCtrl); - } + cleanUp(); + + OLATResourceable ores = OresHelper.createOLATResourceableInstance("AllGroups", 0l); + ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores)); + WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl()); + myGroupsCtrl = new BusinessGroupListController(ureq, bwControl); + listenTo(myGroupsCtrl); + myGroupsCtrl.doDefaultSearch(); mainVC.put("groupList", myGroupsCtrl.getInitialComponent()); addToHistory(ureq, myGroupsCtrl); @@ -180,13 +193,14 @@ public class OverviewBusinessGroupListController extends BasicController impleme } private OpenBusinessGroupListController updateOpenGroups(UserRequest ureq) { - if(openGroupsCtrl == null) { - OLATResourceable ores = OresHelper.createOLATResourceableInstance("OwnedGroups", 0l); - ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores)); - WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl()); - openGroupsCtrl = new OpenBusinessGroupListController(ureq, bwControl); - listenTo(openGroupsCtrl); - } + cleanUp(); + + OLATResourceable ores = OresHelper.createOLATResourceableInstance("OwnedGroups", 0l); + ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores)); + WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl()); + openGroupsCtrl = new OpenBusinessGroupListController(ureq, bwControl); + listenTo(openGroupsCtrl); + openGroupsCtrl.doDefaultSearch(); mainVC.put("groupList", openGroupsCtrl.getInitialComponent()); addToHistory(ureq, openGroupsCtrl); @@ -194,13 +208,14 @@ public class OverviewBusinessGroupListController extends BasicController impleme } private SearchBusinessGroupListController updateSearch(UserRequest ureq) { - if(searchGroupsCtrl == null) { - OLATResourceable ores = OresHelper.createOLATResourceableInstance("Search", 0l); - ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores)); - WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl()); - searchGroupsCtrl = new SearchBusinessGroupListController(ureq, bwControl); - listenTo(searchGroupsCtrl); - } + cleanUp(); + + OLATResourceable ores = OresHelper.createOLATResourceableInstance("Search", 0l); + ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores)); + WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl()); + searchGroupsCtrl = new SearchBusinessGroupListController(ureq, bwControl); + listenTo(searchGroupsCtrl); + mainVC.put("groupList", searchGroupsCtrl.getInitialComponent()); addToHistory(ureq, searchGroupsCtrl); return searchGroupsCtrl; diff --git a/src/main/java/org/olat/repository/RepositoryManager.java b/src/main/java/org/olat/repository/RepositoryManager.java index 85856652ca2..66f51aabc81 100644 --- a/src/main/java/org/olat/repository/RepositoryManager.java +++ b/src/main/java/org/olat/repository/RepositoryManager.java @@ -1684,7 +1684,7 @@ public class RepositoryManager extends BasicManager { public List<RepositoryEntryLight> getParticipantRepositoryEntry(IdentityRef identity, int maxResults, RepositoryEntryOrder... orderby) { StringBuilder sb = new StringBuilder(200); - sb.append("select v from repoentrylight as v ") + sb.append("select distinct v from repoentrylight as v ") .append(" inner join fetch v.olatResource as res ") .append(" inner join v.groups as relGroup") .append(" inner join relGroup.group as baseGroup") @@ -1699,8 +1699,7 @@ public class RepositoryManager extends BasicManager { query.setMaxResults(maxResults); } - List<RepositoryEntryLight> repoEntries = query.getResultList(); - return repoEntries; + return query.getResultList(); } public List<RepositoryEntryLight> getTutorRepositoryEntry(IdentityRef identity, int maxResults, RepositoryEntryOrder... orderby) { diff --git a/src/main/java/org/olat/repository/ui/author/AuthorListController.java b/src/main/java/org/olat/repository/ui/author/AuthorListController.java index 0789593140f..abfb40f4702 100644 --- a/src/main/java/org/olat/repository/ui/author/AuthorListController.java +++ b/src/main/java/org/olat/repository/ui/author/AuthorListController.java @@ -55,6 +55,7 @@ import org.olat.core.gui.components.form.flexible.impl.elements.table.StaticFlex import org.olat.core.gui.components.form.flexible.impl.elements.table.TextFlexiCellRenderer; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; +import org.olat.core.gui.components.stack.PopEvent; import org.olat.core.gui.components.stack.TooledStackedPanel; import org.olat.core.gui.components.stack.TooledStackedPanel.Align; import org.olat.core.gui.control.Controller; @@ -117,6 +118,8 @@ public class AuthorListController extends FormBasicController implements Activat private Link importLink; private Dropdown createDropdown; private FormLink addOwnersButton; + //only used as marker for dirty, model cannot load specific rows + private final List<Integer> dirtyRows = new ArrayList<>(); @Autowired private MarkManager markManager; @@ -283,6 +286,11 @@ public class AuthorListController extends FormBasicController implements Activat if(handler != null) { doCreate(ureq, handler); } + } else if(event instanceof PopEvent) { + PopEvent pop = (PopEvent)event; + if(pop.getController() == detailsCtrl) { + reloadDirtyRows(); + } } super.event(ureq, source, event); } @@ -321,9 +329,6 @@ public class AuthorListController extends FormBasicController implements Activat SearchEvent se = (SearchEvent)event; doSearch(se); } else if(event == Event.CANCELLED_EVENT) { - System.out.println(); - //removeSearchParameters(); - searchParams.setResourceTypes(null); searchParams.setIdAndRefs(null); searchParams.setAuthor(null); @@ -335,6 +340,11 @@ public class AuthorListController extends FormBasicController implements Activat OpenEvent oe = (OpenEvent)event; RepositoryEntryRef repoEntryKey = oe.getRepositoryEntry(); doOpenDetails(ureq, repoEntryKey); + } else if (event == Event.CHANGED_EVENT || event == Event.DONE_EVENT) { + dirtyRows.add(new Integer(-1)); + /* + System.out.println("Mark as dirty"); + */ } } else if(userSearchCtr == source) { @SuppressWarnings("unchecked") @@ -419,6 +429,13 @@ public class AuthorListController extends FormBasicController implements Activat //do not update the } + protected void reloadDirtyRows() { + if(dirtyRows.size() > 0) { + tableEl.reloadData(); + dirtyRows.clear(); + } + } + private AuthoringEntryDetailsController doOpenDetails(UserRequest ureq, RepositoryEntryRef ref) { stackPanel.popUpToRootController(ureq); diff --git a/src/main/java/org/olat/repository/ui/author/AuthoringEntryDetailsController.java b/src/main/java/org/olat/repository/ui/author/AuthoringEntryDetailsController.java index 86f11a91a4a..0e07f8c97ea 100644 --- a/src/main/java/org/olat/repository/ui/author/AuthoringEntryDetailsController.java +++ b/src/main/java/org/olat/repository/ui/author/AuthoringEntryDetailsController.java @@ -159,6 +159,10 @@ public class AuthoringEntryDetailsController extends RepositoryEntryDetailsContr } } + public RepositoryEntryRef getRef() { + return entry; + } + private void initToolbar(UserRequest ureq) { // init handler details @@ -462,7 +466,9 @@ public class AuthoringEntryDetailsController extends RepositoryEntryDetailsContr if (event == Event.CHANGED_EVENT || event == Event.DONE_EVENT) { // RepositoryEntry changed entry = repositoryService.loadByKey(entry.getKey()); + flc.contextPut("v", entry); updateView(ureq, flc); + fireEvent(ureq, event); } } else if (deleteDialogCtrl == source){ if (DialogBoxUIFactory.isYesEvent(event)){ diff --git a/src/main/java/org/olat/repository/ui/author/OverviewAuthoringController.java b/src/main/java/org/olat/repository/ui/author/OverviewAuthoringController.java index 25b7600d819..89f88b2c8cb 100644 --- a/src/main/java/org/olat/repository/ui/author/OverviewAuthoringController.java +++ b/src/main/java/org/olat/repository/ui/author/OverviewAuthoringController.java @@ -136,20 +136,29 @@ public class OverviewAuthoringController extends BasicController implements Acti } } } + + private void cleanUp() { + removeAsListenerAndDispose(markedCtrl); + removeAsListenerAndDispose(myEntriesCtrl); + removeAsListenerAndDispose(searchEntriesCtrl); + markedCtrl = null; + myEntriesCtrl = null; + searchEntriesCtrl = null; + } private AuthorListController doOpenMark(UserRequest ureq) { - if(markedCtrl == null) { - SearchAuthorRepositoryEntryViewParams searchParams - = new SearchAuthorRepositoryEntryViewParams(getIdentity(), ureq.getUserSession().getRoles()); - searchParams.setMarked(Boolean.TRUE); - searchParams.setOwnedResourcesOnly(false); + cleanUp(); + + SearchAuthorRepositoryEntryViewParams searchParams + = new SearchAuthorRepositoryEntryViewParams(getIdentity(), ureq.getUserSession().getRoles()); + searchParams.setMarked(Boolean.TRUE); + searchParams.setOwnedResourcesOnly(false); - OLATResourceable ores = OresHelper.createOLATResourceableInstance("Favorits", 0l); - ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores)); - WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl()); - markedCtrl = new AuthorListController(ureq, bwControl, "search.mark", searchParams, false); - listenTo(markedCtrl); - } + OLATResourceable ores = OresHelper.createOLATResourceableInstance("Favorits", 0l); + ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores)); + WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl()); + markedCtrl = new AuthorListController(ureq, bwControl, "search.mark", searchParams, false); + listenTo(markedCtrl); addToHistory(ureq, markedCtrl); mainVC.put("segmentCmp", markedCtrl.getStackPanel()); @@ -157,17 +166,17 @@ public class OverviewAuthoringController extends BasicController implements Acti } private AuthorListController doOpenMyEntries(UserRequest ureq) { - if(myEntriesCtrl == null) { - SearchAuthorRepositoryEntryViewParams searchParams - = new SearchAuthorRepositoryEntryViewParams(getIdentity(), ureq.getUserSession().getRoles()); - searchParams.setOwnedResourcesOnly(true); + cleanUp(); - OLATResourceable ores = OresHelper.createOLATResourceableInstance("My", 0l); - ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores)); - WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl()); - myEntriesCtrl = new AuthorListController(ureq, bwControl, "search.my", searchParams, false); - listenTo(myEntriesCtrl); - } + SearchAuthorRepositoryEntryViewParams searchParams + = new SearchAuthorRepositoryEntryViewParams(getIdentity(), ureq.getUserSession().getRoles()); + searchParams.setOwnedResourcesOnly(true); + + OLATResourceable ores = OresHelper.createOLATResourceableInstance("My", 0l); + ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores)); + WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl()); + myEntriesCtrl = new AuthorListController(ureq, bwControl, "search.my", searchParams, false); + listenTo(myEntriesCtrl); addToHistory(ureq, myEntriesCtrl); mainVC.put("segmentCmp", myEntriesCtrl.getStackPanel()); @@ -175,16 +184,16 @@ public class OverviewAuthoringController extends BasicController implements Acti } private AuthorListController doSearchEntries(UserRequest ureq) { - if(searchEntriesCtrl == null) { - SearchAuthorRepositoryEntryViewParams searchParams - = new SearchAuthorRepositoryEntryViewParams(getIdentity(), ureq.getUserSession().getRoles()); - searchParams.setOwnedResourcesOnly(false); + cleanUp(); - OLATResourceable ores = OresHelper.createOLATResourceableInstance("Search", 0l); - ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores)); - WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl()); - searchEntriesCtrl = new AuthorListController(ureq, bwControl, "search.generic", searchParams, true); - } + SearchAuthorRepositoryEntryViewParams searchParams + = new SearchAuthorRepositoryEntryViewParams(getIdentity(), ureq.getUserSession().getRoles()); + searchParams.setOwnedResourcesOnly(false); + + OLATResourceable ores = OresHelper.createOLATResourceableInstance("Search", 0l); + ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores)); + WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl()); + searchEntriesCtrl = new AuthorListController(ureq, bwControl, "search.generic", searchParams, true); addToHistory(ureq, searchEntriesCtrl); mainVC.put("segmentCmp", searchEntriesCtrl.getStackPanel()); diff --git a/src/main/java/org/olat/repository/ui/list/OverviewRepositoryListController.java b/src/main/java/org/olat/repository/ui/list/OverviewRepositoryListController.java index 63ebc253a00..f7496d1bf35 100644 --- a/src/main/java/org/olat/repository/ui/list/OverviewRepositoryListController.java +++ b/src/main/java/org/olat/repository/ui/list/OverviewRepositoryListController.java @@ -179,19 +179,19 @@ public class OverviewRepositoryListController extends BasicController implements } private RepositoryEntryListController doOpenMark(UserRequest ureq) { - if(markedCtrl == null) { - SearchMyRepositoryEntryViewParams searchParams - = new SearchMyRepositoryEntryViewParams(getIdentity(), ureq.getUserSession().getRoles(), "CourseModule"); - searchParams.setMarked(Boolean.TRUE); + cleanUp(); + + SearchMyRepositoryEntryViewParams searchParams + = new SearchMyRepositoryEntryViewParams(getIdentity(), ureq.getUserSession().getRoles(), "CourseModule"); + searchParams.setMarked(Boolean.TRUE); - OLATResourceable ores = OresHelper.createOLATResourceableInstance("Favorits", 0l); - ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores)); - WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl()); - markedStackPanel = new BreadcrumbedStackedPanel("mrkstack", getTranslator(), this); - markedCtrl = new RepositoryEntryListController(ureq, bwControl, searchParams, true, false, "marked", markedStackPanel); - markedStackPanel.pushController(translate("search.mark"), markedCtrl); - listenTo(markedCtrl); - } + OLATResourceable ores = OresHelper.createOLATResourceableInstance("Favorits", 0l); + ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores)); + WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl()); + markedStackPanel = new BreadcrumbedStackedPanel("mrkstack", getTranslator(), this); + markedCtrl = new RepositoryEntryListController(ureq, bwControl, searchParams, true, false, "marked", markedStackPanel); + markedStackPanel.pushController(translate("search.mark"), markedCtrl); + listenTo(markedCtrl); addToHistory(ureq, markedCtrl); mainVC.put("segmentCmp", markedStackPanel); @@ -199,43 +199,44 @@ public class OverviewRepositoryListController extends BasicController implements } private RepositoryEntryListController doOpenMyCourses(UserRequest ureq) { - if(myCoursesCtrl == null) { - SearchMyRepositoryEntryViewParams searchParams - = new SearchMyRepositoryEntryViewParams(getIdentity(), ureq.getUserSession().getRoles(), "CourseModule"); - searchParams.setMembershipMandatory(true); + cleanUp(); + + SearchMyRepositoryEntryViewParams searchParams + = new SearchMyRepositoryEntryViewParams(getIdentity(), ureq.getUserSession().getRoles(), "CourseModule"); + searchParams.setMembershipMandatory(true); + + OLATResourceable ores = OresHelper.createOLATResourceableInstance("My", 0l); + ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores)); + WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl()); + myCoursesStackPanel = new BreadcrumbedStackedPanel("mystack", getTranslator(), this); + myCoursesCtrl = new RepositoryEntryListController(ureq, bwControl, searchParams, true, false, "my", myCoursesStackPanel); + myCoursesStackPanel.pushController(translate("search.mycourses.student"), myCoursesCtrl); + listenTo(myCoursesCtrl); - OLATResourceable ores = OresHelper.createOLATResourceableInstance("My", 0l); - ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores)); - WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl()); - myCoursesStackPanel = new BreadcrumbedStackedPanel("mystack", getTranslator(), this); - myCoursesCtrl = new RepositoryEntryListController(ureq, bwControl, searchParams, true, false, "my", myCoursesStackPanel); - myCoursesStackPanel.pushController(translate("search.mycourses.student"), myCoursesCtrl); - listenTo(myCoursesCtrl); - } - addToHistory(ureq, myCoursesCtrl); mainVC.put("segmentCmp", myCoursesStackPanel); return myCoursesCtrl; } private CatalogNodeController doOpenCatalog(UserRequest ureq) { - if(!repositoryModule.isCatalogEnabled() || !repositoryModule.isCatalogBrowsingEnabled()) return null; - - if(catalogCtrl == null) { - List<CatalogEntry> entries = catalogManager.getRootCatalogEntries(); - CatalogEntry rootEntry = null; - if(entries.size() > 0) { - rootEntry = entries.get(0); - } - - OLATResourceable ores = OresHelper.createOLATResourceableInstance("Catalog", 0l); - ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores)); - WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl()); - catalogStackPanel = new BreadcrumbedStackedPanel("catstack", getTranslator(), this); - catalogCtrl = new CatalogNodeController(ureq, bwControl, rootEntry, catalogStackPanel, false); - catalogStackPanel.pushController(translate("search.catalog"), catalogCtrl); - listenTo(catalogCtrl); + if(!repositoryModule.isCatalogEnabled() || !repositoryModule.isCatalogBrowsingEnabled()) { + return null; + } + cleanUp(); + + List<CatalogEntry> entries = catalogManager.getRootCatalogEntries(); + CatalogEntry rootEntry = null; + if(entries.size() > 0) { + rootEntry = entries.get(0); } + + OLATResourceable ores = OresHelper.createOLATResourceableInstance("Catalog", 0l); + ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores)); + WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl()); + catalogStackPanel = new BreadcrumbedStackedPanel("catstack", getTranslator(), this); + catalogCtrl = new CatalogNodeController(ureq, bwControl, rootEntry, catalogStackPanel, false); + catalogStackPanel.pushController(translate("search.catalog"), catalogCtrl); + listenTo(catalogCtrl); addToHistory(ureq, catalogCtrl); mainVC.put("segmentCmp", catalogStackPanel); @@ -243,19 +244,19 @@ public class OverviewRepositoryListController extends BasicController implements } private RepositoryEntryListController doOpenSearchCourses(UserRequest ureq) { - if(searchCoursesCtrl == null) { - SearchMyRepositoryEntryViewParams searchParams - = new SearchMyRepositoryEntryViewParams(getIdentity(), ureq.getUserSession().getRoles(), "CourseModule"); - searchParams.setMembershipMandatory(false); + cleanUp(); - OLATResourceable ores = OresHelper.createOLATResourceableInstance("Search", 0l); - ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores)); - WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl()); - searchCoursesStackPanel = new BreadcrumbedStackedPanel("search", getTranslator(), this); - searchCoursesCtrl = new RepositoryEntryListController(ureq, bwControl, searchParams, false, true, "my-search", searchCoursesStackPanel); - searchCoursesStackPanel.pushController(translate("search.mycourses.student"), searchCoursesCtrl); - listenTo(searchCoursesCtrl); - } + SearchMyRepositoryEntryViewParams searchParams + = new SearchMyRepositoryEntryViewParams(getIdentity(), ureq.getUserSession().getRoles(), "CourseModule"); + searchParams.setMembershipMandatory(false); + + OLATResourceable ores = OresHelper.createOLATResourceableInstance("Search", 0l); + ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores)); + WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl()); + searchCoursesStackPanel = new BreadcrumbedStackedPanel("search", getTranslator(), this); + searchCoursesCtrl = new RepositoryEntryListController(ureq, bwControl, searchParams, false, true, "my-search", searchCoursesStackPanel); + searchCoursesStackPanel.pushController(translate("search.mycourses.student"), searchCoursesCtrl); + listenTo(searchCoursesCtrl); addToHistory(ureq, searchCoursesCtrl); mainVC.put("segmentCmp", searchCoursesStackPanel); diff --git a/src/main/java/org/olat/repository/ui/list/RepositoryEntryDetailsController.java b/src/main/java/org/olat/repository/ui/list/RepositoryEntryDetailsController.java index 19cdf8ff6a0..a648a1c840a 100644 --- a/src/main/java/org/olat/repository/ui/list/RepositoryEntryDetailsController.java +++ b/src/main/java/org/olat/repository/ui/list/RepositoryEntryDetailsController.java @@ -105,6 +105,7 @@ public class RepositoryEntryDetailsController extends FormBasicController { protected RepositoryEntry entry; protected RepositoryEntryRow row; + private Integer index; @Autowired protected UserRatingsDAO userRatingsDao; @@ -158,6 +159,14 @@ public class RepositoryEntryDetailsController extends FormBasicController { initForm(ureq); } + public Integer getIndex() { + return index; + } + + public void setIndex(Integer index) { + this.index = index; + } + private void setText(String text, String key, FormLayoutContainer layoutCont) { if(!StringHelper.containsNonWhitespace(text)) return; text = StringHelper.xssScan(text); diff --git a/src/main/java/org/olat/user/ProfileAndHomePageEditController.java b/src/main/java/org/olat/user/ProfileAndHomePageEditController.java index aed02babd54..bbf871e11c7 100644 --- a/src/main/java/org/olat/user/ProfileAndHomePageEditController.java +++ b/src/main/java/org/olat/user/ProfileAndHomePageEditController.java @@ -90,6 +90,8 @@ public class ProfileAndHomePageEditController extends BasicController implements segmentView.addSegment(homePageLink, false); putInitialPanel(myContent); + + doOpenProfile(ureq); } @Override @@ -150,7 +152,9 @@ public class ProfileAndHomePageEditController extends BasicController implements @Override public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) { if(entries == null || entries.isEmpty()) { - doOpenProfile(ureq); + if(profileFormController == null) { + doOpenProfile(ureq); + } } } -- GitLab