Skip to content
Snippets Groups Projects
Commit 9f6c1556 authored by srosse's avatar srosse
Browse files

Merge OpenOLAT 8.3 to OpenOLAT default branch with 7871eb1a32fac746d9a67402ed7ce22dc23f7c73

parents 019fba39 5fce03dd
No related branches found
No related tags found
No related merge requests found
...@@ -134,18 +134,12 @@ public class BaseFullWebappController extends BasicController implements Generic ...@@ -134,18 +134,12 @@ public class BaseFullWebappController extends BasicController implements Generic
private Panel initialPanel; private Panel initialPanel;
private DTabs myDTabsImpl; private DTabs myDTabsImpl;
private static Integer MAX_TAB; private static Integer MAX_TAB;
private boolean invitee = false;
public BaseFullWebappController(UserRequest ureq, WindowControl ouisc_wControl, public BaseFullWebappController(UserRequest ureq, WindowControl ouisc_wControl,
BaseFullWebappControllerParts baseFullWebappControllerParts) { BaseFullWebappControllerParts baseFullWebappControllerParts) {
// only-use-in-super-call, since we define our own // only-use-in-super-call, since we define our own
super(ureq, null); super(ureq, null);
if(ureq != null && ureq.getUserSession() != null && ureq.getUserSession().getRoles() != null) {
invitee = ureq.getUserSession().getRoles().isInvitee();
}
this.baseFullWebappControllerParts = baseFullWebappControllerParts; this.baseFullWebappControllerParts = baseFullWebappControllerParts;
guiMessage = new GUIMessage(); guiMessage = new GUIMessage();
...@@ -759,33 +753,33 @@ public class BaseFullWebappController extends BasicController implements Generic ...@@ -759,33 +753,33 @@ public class BaseFullWebappController extends BasicController implements Generic
} }
private void popTheTabState(UserRequest ureq) { private void popTheTabState(UserRequest ureq) {
if(siteAndTabs.isEmpty()) { if(siteAndTabs.isEmpty() && sites != null) {
SiteInstance home = sites.get(0); SiteInstance home = sites.get(0);
BornSiteInstance bs = siteToBornSite.get(home); BornSiteInstance bs = siteToBornSite.get(home);
doActivateSite(home, bs.getGuiStackHandle()); doActivateSite(home, bs.getGuiStackHandle());
} } else if(!siteAndTabs.isEmpty()) {
TabState state = siteAndTabs.remove(siteAndTabs.size() - 1);
TabState state = siteAndTabs.remove(siteAndTabs.size() - 1); if(state.getSite() != null) {
if(state.getSite() != null) { // latest selected static tab
// latest selected static tab // activate previous chosen static site -> this site has already been
// activate previous chosen static site -> this site has already been // constructed and is thus in the cache
// constructed and is thus in the cache SiteInstance si = state.getSite();
SiteInstance si = state.getSite(); BornSiteInstance bs = siteToBornSite.get(si);
BornSiteInstance bs = siteToBornSite.get(si); // bs != null since clicked previously
// bs != null since clicked previously GuiStack gsh = bs.getGuiStackHandle();
GuiStack gsh = bs.getGuiStackHandle(); doActivateSite(si, gsh);
doActivateSite(si, gsh); if(siteToBusinessPath.containsValue(si)) {
if(siteToBusinessPath.containsValue(si)) { ureq.getUserSession().addToHistory(ureq, siteToBusinessPath.get(si));
ureq.getUserSession().addToHistory(ureq, siteToBusinessPath.get(si)); }
} } else if (state.getDtab() != null && !state.getDtab().getController().isDisposed()) {
} else if (state.getDtab() != null && !state.getDtab().getController().isDisposed()) { DTab tab = state.getDtab();
DTab tab = state.getDtab(); doActivateDTab(tab);
doActivateDTab(tab); if(dtabToBusinessPath.containsKey(tab)) {
if(dtabToBusinessPath.containsKey(tab)) { ureq.getUserSession().addToHistory(ureq, dtabToBusinessPath.get(tab));
ureq.getUserSession().addToHistory(ureq, dtabToBusinessPath.get(tab)); }
} else {
popTheTabState(ureq);
} }
} else {
popTheTabState(ureq);
} }
} }
...@@ -1031,7 +1025,8 @@ public class BaseFullWebappController extends BasicController implements Generic ...@@ -1031,7 +1025,8 @@ public class BaseFullWebappController extends BasicController implements Generic
* @return * @return
*/ */
public boolean isCanCloseDTab(DTab dtab) { public boolean isCanCloseDTab(DTab dtab) {
return !invitee && !(sites == null || sites.isEmpty()); //can close
return (sites != null && !sites.isEmpty()) || (dtabs != null && dtabs.size() > 1);
} }
private void setCurrent(SiteInstance site, DTab tab) { private void setCurrent(SiteInstance site, DTab tab) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment