From 56df1da6bd6453897cd487f9bc0449d51dbaea64 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Mon, 30 Jun 2014 16:24:45 +0200 Subject: [PATCH] OO-981: check if the catalog is enable in details of course, add a "feature enabled" for site configuration --- .../admin/site/ui/SitesAdminController.java | 2 +- .../site/ui/SitesConfigurationController.java | 20 ++++++--- .../navigation/AbstractSiteDefinition.java | 8 ++-- .../control/navigation/SiteDefinition.java | 2 + .../control/navigation/SiteDefinitions.java | 14 +++--- .../olat/course/run/RunMainController.java | 12 +++-- .../org/olat/portfolio/site/EPSiteDef.java | 6 +++ .../manager/RepositoryEntryAuthorQueries.java | 2 +- .../repository/site/CatalogAdminSiteDef.java | 5 +++ .../olat/repository/site/CatalogSiteDef.java | 6 +++ .../AuthoringEntryDetailsController.java | 22 --------- .../RepositoryEntryDetailsController.java | 45 ++++++++++--------- 12 files changed, 82 insertions(+), 62 deletions(-) diff --git a/src/main/java/org/olat/admin/site/ui/SitesAdminController.java b/src/main/java/org/olat/admin/site/ui/SitesAdminController.java index ce7dd3fe7b8..a6d8e71831f 100644 --- a/src/main/java/org/olat/admin/site/ui/SitesAdminController.java +++ b/src/main/java/org/olat/admin/site/ui/SitesAdminController.java @@ -123,7 +123,7 @@ public class SitesAdminController extends BasicController { orderCtrl = new SitesConfigurationController(ureq, getWindowControl()); listenTo(orderCtrl); } else { - orderCtrl.reload(ureq); + orderCtrl.reload(); } mainVC.put("segmentCmp", orderCtrl.getInitialComponent()); } diff --git a/src/main/java/org/olat/admin/site/ui/SitesConfigurationController.java b/src/main/java/org/olat/admin/site/ui/SitesConfigurationController.java index 967c3a7f2d7..16a75480f13 100644 --- a/src/main/java/org/olat/admin/site/ui/SitesConfigurationController.java +++ b/src/main/java/org/olat/admin/site/ui/SitesConfigurationController.java @@ -148,7 +148,7 @@ public class SitesConfigurationController extends FormBasicController { tableEl.setCustomizeColumns(true); tableEl.setAndLoadPersistedPreferences(ureq, "sites-admin"); - reload(ureq); + reload(); } @Override @@ -197,7 +197,7 @@ public class SitesConfigurationController extends FormBasicController { // } - protected void reload(UserRequest ureq) { + protected void reload() { List<SiteDefRow> configs = new ArrayList<SiteDefRow>(); for(Map.Entry<String, SiteDefinition> entryDef:siteDefs.entrySet()) { String id = entryDef.getKey(); @@ -290,7 +290,11 @@ public class SitesConfigurationController extends FormBasicController { String id = config.getId(); secCallbackEl = uifactory.addDropdownSingleselect("site.security." + id, "site.security", formLayout, secKeys, secValues, null); - secCallbackEl.addActionListener(FormEvent.ONCHANGE); + if(siteDef.isFeatureEnabled()) { + secCallbackEl.addActionListener(FormEvent.ONCHANGE); + } else { + secCallbackEl.setEnabled(false); + } secCallbackEl.setUserObject(this); boolean needAlt = false; @@ -305,7 +309,11 @@ public class SitesConfigurationController extends FormBasicController { } enableSiteEl = uifactory.addCheckboxesHorizontal("site.enable." + id, null, formLayout, new String[]{ "x" }, new String[]{ "" }); - enableSiteEl.addActionListener(FormEvent.ONCHANGE); + if(siteDef.isFeatureEnabled()) { + enableSiteEl.addActionListener(FormEvent.ONCHANGE); + } else { + enableSiteEl.setEnabled(false); + } altControllerEl = uifactory.addDropdownSingleselect("site.alternative." + id, "site.alternative", formLayout, altKeys, altValues, null); altControllerEl.addActionListener(FormEvent.ONCHANGE); @@ -405,7 +413,9 @@ public class SitesConfigurationController extends FormBasicController { return enableSiteEl; } case title: return def.getTitle(); - case secCallback: return def.getSecurityCallbackEl(); + case secCallback: { + return def.getSecurityCallbackEl(); + } case altController: return def.getAlternativeControllerEl(); case type: { String type = def.getSiteDef().getClass().getSimpleName(); diff --git a/src/main/java/org/olat/core/gui/control/navigation/AbstractSiteDefinition.java b/src/main/java/org/olat/core/gui/control/navigation/AbstractSiteDefinition.java index 32d702b4da2..1708d98543f 100644 --- a/src/main/java/org/olat/core/gui/control/navigation/AbstractSiteDefinition.java +++ b/src/main/java/org/olat/core/gui/control/navigation/AbstractSiteDefinition.java @@ -58,8 +58,6 @@ public abstract class AbstractSiteDefinition extends AbstractConfigOnOff impleme public String getDefaultSiteSecurityCallbackBeanId() { return defaultSiteSecurityCallbackBeanId; } - - @Override public final SiteInstance createSite(UserRequest ureq, WindowControl wControl) { @@ -86,5 +84,9 @@ public abstract class AbstractSiteDefinition extends AbstractConfigOnOff impleme SiteConfiguration config = siteModule.getConfigurationSite(this); return config; } -} + @Override + public boolean isFeatureEnabled() { + return true; + } +} diff --git a/src/main/java/org/olat/core/gui/control/navigation/SiteDefinition.java b/src/main/java/org/olat/core/gui/control/navigation/SiteDefinition.java index e85ecfa2e30..5870c816075 100644 --- a/src/main/java/org/olat/core/gui/control/navigation/SiteDefinition.java +++ b/src/main/java/org/olat/core/gui/control/navigation/SiteDefinition.java @@ -47,5 +47,7 @@ public interface SiteDefinition extends ConfigOnOff { public int getOrder(); public String getDefaultSiteSecurityCallbackBeanId(); + + public boolean isFeatureEnabled(); } diff --git a/src/main/java/org/olat/core/gui/control/navigation/SiteDefinitions.java b/src/main/java/org/olat/core/gui/control/navigation/SiteDefinitions.java index edac7704102..053cfb421fd 100644 --- a/src/main/java/org/olat/core/gui/control/navigation/SiteDefinitions.java +++ b/src/main/java/org/olat/core/gui/control/navigation/SiteDefinitions.java @@ -249,13 +249,15 @@ public class SiteDefinitions extends AbstractOLATModule { for(Map.Entry<String,SiteDefinition> siteDefEntry:allDefList.entrySet()) { String id = siteDefEntry.getKey(); SiteDefinition siteDef = siteDefEntry.getValue(); - if(siteConfigMap.containsKey(id)) { - SiteConfiguration config = siteConfigMap.get(id); - if(config.isEnabled()) { - enabledOrderedSites.add(new SiteDefinitionOrder(siteDef, config)); + if(siteDef.isFeatureEnabled()) { + if(siteConfigMap.containsKey(id)) { + SiteConfiguration config = siteConfigMap.get(id); + if(config.isEnabled()) { + enabledOrderedSites.add(new SiteDefinitionOrder(siteDef, config)); + } + } else if(siteDef.isEnabled()) { + enabledOrderedSites.add(new SiteDefinitionOrder(siteDef)); } - } else if(siteDef.isEnabled()) { - enabledOrderedSites.add(new SiteDefinitionOrder(siteDef)); } } Collections.sort(enabledOrderedSites, new SiteDefinitionOrderComparator()); diff --git a/src/main/java/org/olat/course/run/RunMainController.java b/src/main/java/org/olat/course/run/RunMainController.java index e48e7faef7d..9e6842c8a1b 100644 --- a/src/main/java/org/olat/course/run/RunMainController.java +++ b/src/main/java/org/olat/course/run/RunMainController.java @@ -141,6 +141,7 @@ import org.olat.repository.RepositoryManager; import org.olat.repository.RepositoryService; import org.olat.repository.controllers.EntryChangedEvent; import org.olat.repository.ui.author.AuthoringEditEntrySettingsController; +import org.olat.repository.ui.author.AuthoringEntryDetailsController; import org.olat.repository.ui.list.RepositoryEntryDetailsController; import org.olat.resource.OLATResource; import org.olat.util.logging.activity.LoggingResourceable; @@ -667,10 +668,9 @@ public class RunMainController extends MainLayoutBasicController implements Gene if (hasCourseRight(CourseRights.RIGHT_COURSEEDITOR) || isCourseAdmin) { if(!(currentToolCtr instanceof AuthoringEditEntrySettingsController)) { toolbarPanel.popUpToRootController(ureq); - + //push happen in the init method of the controller currentToolCtr = new AuthoringEditEntrySettingsController(ureq, getWindowControl(), toolbarPanel, courseRepositoryEntry); listenTo(currentToolCtr); - toolbarPanel.pushController(translate("command.settings"), currentToolCtr); } } else { throw new OLATSecurityException("wanted to activate editor, but no according right"); @@ -784,8 +784,12 @@ public class RunMainController extends MainLayoutBasicController implements Gene } private void launchDetails(UserRequest ureq) { - currentToolCtr = new RepositoryEntryDetailsController(ureq, getWindowControl(), courseRepositoryEntry); - toolbarPanel.pushController(translate("command.courseconfig"), currentToolCtr); + if(isCourseAdmin) { + currentToolCtr = new AuthoringEntryDetailsController(ureq, getWindowControl(), toolbarPanel, courseRepositoryEntry); + } else { + currentToolCtr = new RepositoryEntryDetailsController(ureq, getWindowControl(), courseRepositoryEntry); + toolbarPanel.pushController(translate("command.courseconfig"), currentToolCtr); + } } private void launchCourseFolder(UserRequest ureq) { diff --git a/src/main/java/org/olat/portfolio/site/EPSiteDef.java b/src/main/java/org/olat/portfolio/site/EPSiteDef.java index f70fb76f299..df0cea0b881 100644 --- a/src/main/java/org/olat/portfolio/site/EPSiteDef.java +++ b/src/main/java/org/olat/portfolio/site/EPSiteDef.java @@ -53,4 +53,10 @@ public class EPSiteDef extends AbstractSiteDefinition implements SiteDefinition PortfolioModule module = CoreSpringFactory.getImpl(PortfolioModule.class); return module.isEnabled() && super.isEnabled(); } + + @Override + public boolean isFeatureEnabled() { + PortfolioModule module = CoreSpringFactory.getImpl(PortfolioModule.class); + return module.isEnabled(); + } } diff --git a/src/main/java/org/olat/repository/manager/RepositoryEntryAuthorQueries.java b/src/main/java/org/olat/repository/manager/RepositoryEntryAuthorQueries.java index f5dd40019d9..fa679b4969d 100644 --- a/src/main/java/org/olat/repository/manager/RepositoryEntryAuthorQueries.java +++ b/src/main/java/org/olat/repository/manager/RepositoryEntryAuthorQueries.java @@ -265,7 +265,7 @@ public class RepositoryEntryAuthorQueries { appendAsc(sb, asc).append(", lower(v.displayname) asc"); break; case author: - sb.append(" order by lower(v.author)"); + sb.append(" order by lower(v.initialAuthor)"); appendAsc(sb, asc).append(", lower(v.displayname) asc"); break; case ac: diff --git a/src/main/java/org/olat/repository/site/CatalogAdminSiteDef.java b/src/main/java/org/olat/repository/site/CatalogAdminSiteDef.java index 11d9f727381..8b24e43c378 100644 --- a/src/main/java/org/olat/repository/site/CatalogAdminSiteDef.java +++ b/src/main/java/org/olat/repository/site/CatalogAdminSiteDef.java @@ -54,4 +54,9 @@ public class CatalogAdminSiteDef extends AbstractSiteDefinition implements SiteD return repositoryModule.isCatalogEnabled() && super.isEnabled(); } + @Override + public boolean isFeatureEnabled() { + RepositoryModule repositoryModule = CoreSpringFactory.getImpl(RepositoryModule.class); + return repositoryModule.isCatalogEnabled(); + } } diff --git a/src/main/java/org/olat/repository/site/CatalogSiteDef.java b/src/main/java/org/olat/repository/site/CatalogSiteDef.java index 8f266fb9a9e..52c06b93808 100644 --- a/src/main/java/org/olat/repository/site/CatalogSiteDef.java +++ b/src/main/java/org/olat/repository/site/CatalogSiteDef.java @@ -46,4 +46,10 @@ public class CatalogSiteDef extends AbstractSiteDefinition implements SiteDefini RepositoryModule repositoryModule = CoreSpringFactory.getImpl(RepositoryModule.class); return repositoryModule.isCatalogEnabled() && repositoryModule.isCatalogSiteEnabled() && super.isEnabled(); } + + @Override + public boolean isFeatureEnabled() { + RepositoryModule repositoryModule = CoreSpringFactory.getImpl(RepositoryModule.class); + return repositoryModule.isCatalogEnabled() && repositoryModule.isCatalogSiteEnabled(); + } } 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 cb729e0a38b..86f11a91a4a 100644 --- a/src/main/java/org/olat/repository/ui/author/AuthoringEntryDetailsController.java +++ b/src/main/java/org/olat/repository/ui/author/AuthoringEntryDetailsController.java @@ -24,10 +24,8 @@ import java.util.List; import org.olat.NewControllerFactory; import org.olat.basesecurity.GroupRoles; -import org.olat.catalog.CatalogManager; import org.olat.core.commons.services.commentAndRating.ui.UserCommentsController; import org.olat.core.commons.services.mark.Mark; -import org.olat.core.commons.services.mark.MarkManager; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.dropdown.Dropdown; @@ -69,15 +67,12 @@ import org.olat.course.CorruptedCourseException; import org.olat.course.CourseModule; import org.olat.course.run.RunMainController; import org.olat.group.BusinessGroup; -import org.olat.group.BusinessGroupService; import org.olat.group.model.SearchBusinessGroupParams; import org.olat.repository.ErrorList; import org.olat.repository.RepositoryEntry; import org.olat.repository.RepositoryEntryManagedFlag; import org.olat.repository.RepositoryEntryRef; import org.olat.repository.RepositoryManager; -import org.olat.repository.RepositoryModule; -import org.olat.repository.RepositoryService; import org.olat.repository.controllers.EntryChangedEvent; import org.olat.repository.controllers.WizardCloseResourceController; import org.olat.repository.handlers.RepositoryHandler; @@ -86,8 +81,6 @@ import org.olat.repository.ui.PriceMethod; import org.olat.repository.ui.RepositoyUIFactory; import org.olat.repository.ui.list.RepositoryEntryDetailsController; import org.olat.resource.OLATResource; -import org.olat.resource.accesscontrol.ACService; -import org.olat.resource.accesscontrol.AccessControlModule; import org.olat.resource.accesscontrol.AccessResult; import org.olat.resource.accesscontrol.method.AccessMethodHandler; import org.olat.resource.accesscontrol.model.AccessMethod; @@ -128,25 +121,11 @@ public class AuthoringEntryDetailsController extends RepositoryEntryDetailsContr private boolean corrupted; - @Autowired - private ACService acService; - @Autowired - private AccessControlModule acModule; - @Autowired - private MarkManager markManager; @Autowired private UserManager userManager; @Autowired - private CatalogManager catalogManager; - @Autowired private RepositoryManager repositoryManager; @Autowired - private RepositoryModule repositoryModule; - @Autowired - private RepositoryService repositoryService; - @Autowired - private BusinessGroupService businessGroupService; - @Autowired private RepositoryHandlerFactory repositoryHandlerFactory; private String baseUrl; @@ -223,7 +202,6 @@ public class AuthoringEntryDetailsController extends RepositoryEntryDetailsContr boolean editManaged = RepositoryEntryManagedFlag.isManaged(entry, RepositoryEntryManagedFlag.editcontent); editLink.setEnabled(handler.supportsEdit(entry) && !corrupted && !editManaged); stackPanel.addTool(editLink, Align.left); - } if (isAuthor || isOwner) { 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 7c402dd00a0..19cdf8ff6a0 100644 --- a/src/main/java/org/olat/repository/ui/list/RepositoryEntryDetailsController.java +++ b/src/main/java/org/olat/repository/ui/list/RepositoryEntryDetailsController.java @@ -71,6 +71,7 @@ import org.olat.group.BusinessGroupService; import org.olat.group.model.SearchBusinessGroupParams; import org.olat.repository.RepositoryEntry; import org.olat.repository.RepositoryEntryRef; +import org.olat.repository.RepositoryModule; import org.olat.repository.RepositoryService; import org.olat.repository.handlers.RepositoryHandler; import org.olat.repository.handlers.RepositoryHandlerFactory; @@ -106,27 +107,29 @@ public class RepositoryEntryDetailsController extends FormBasicController { protected RepositoryEntryRow row; @Autowired - private UserRatingsDAO userRatingsDao; + protected UserRatingsDAO userRatingsDao; @Autowired - private ACService acService; + protected ACService acService; @Autowired - private AccessControlModule acModule; + protected AccessControlModule acModule; @Autowired - private MarkManager markManager; + protected MarkManager markManager; @Autowired - private CatalogManager catalogManager; + protected CatalogManager catalogManager; @Autowired - private RepositoryService repositoryService; + protected RepositoryModule repositoryModule; @Autowired - private BusinessGroupService businessGroupService; + protected RepositoryService repositoryService; @Autowired - private EfficiencyStatementManager effManager; + protected BusinessGroupService businessGroupService; @Autowired - private UserCourseInformationsManager userCourseInfosManager; + protected EfficiencyStatementManager effManager; @Autowired - private CoordinatorManager coordinatorManager; + protected UserCourseInformationsManager userCourseInfosManager; @Autowired - private ReferenceManager referenceManager; + protected CoordinatorManager coordinatorManager; + @Autowired + protected ReferenceManager referenceManager; private String baseUrl; @@ -205,16 +208,18 @@ public class RepositoryEntryDetailsController extends FormBasicController { } //categories - List<CatalogEntry> categories = catalogManager.getCatalogEntriesReferencing(entry); - List<String> categoriesLink = new ArrayList<>(categories.size()); - for(CatalogEntry category:categories) { - String id = "cat_" + ++cmpcount; - String title = category.getParent().getName(); - FormLink catLink = uifactory.addFormLink(id, "category", title, null, layoutCont, Link.LINK | Link.NONTRANSLATED); - catLink.setUserObject(category.getKey()); - categoriesLink.add(id); + if(repositoryModule.isCatalogEnabled()) { + List<CatalogEntry> categories = catalogManager.getCatalogEntriesReferencing(entry); + List<String> categoriesLink = new ArrayList<>(categories.size()); + for(CatalogEntry category:categories) { + String id = "cat_" + ++cmpcount; + String title = category.getParent().getName(); + FormLink catLink = uifactory.addFormLink(id, "category", title, null, layoutCont, Link.LINK | Link.NONTRANSLATED); + catLink.setUserObject(category.getKey()); + categoriesLink.add(id); + } + layoutCont.contextPut("categories", categoriesLink); } - layoutCont.contextPut("categories", categoriesLink); boolean marked; if(row == null) { -- GitLab