From 16f5b57b43baf5b1cbb5d557ca538e7ed940fb17 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Mon, 6 May 2013 10:36:23 +0200 Subject: [PATCH] OO-589: add the 2 properties to show/hide the menu items courses and the list of resources by type --- .../org/olat/repository/RepositoryModule.java | 38 +++++++++++++++++-- .../repository/_spring/repositoryContext.xml | 21 ++++++---- .../controllers/RepositoryMainController.java | 17 ++++++--- .../resources/serviceconfig/olat.properties | 7 ++++ 4 files changed, 67 insertions(+), 16 deletions(-) diff --git a/src/main/java/org/olat/repository/RepositoryModule.java b/src/main/java/org/olat/repository/RepositoryModule.java index 0fde493a66a..beab18a1752 100644 --- a/src/main/java/org/olat/repository/RepositoryModule.java +++ b/src/main/java/org/olat/repository/RepositoryModule.java @@ -25,6 +25,7 @@ import org.olat.core.configuration.AbstractOLATModule; import org.olat.core.configuration.PersistedProperties; import org.olat.core.id.Roles; import org.olat.core.id.context.SiteContextEntryControllerCreator; +import org.olat.core.util.StringHelper; import org.olat.group.BusinessGroupModule; import org.olat.repository.site.RepositorySite; @@ -39,6 +40,11 @@ import org.olat.repository.site.RepositorySite; */ public class RepositoryModule extends AbstractOLATModule { + + + private boolean listAllCourses; + private boolean listAllResourceTypes; + private BusinessGroupModule groupModule; /** @@ -56,6 +62,14 @@ public class RepositoryModule extends AbstractOLATModule { NewControllerFactory.getInstance().addContextEntryControllerCreator(RepositorySite.class.getSimpleName(), new SiteContextEntryControllerCreator(RepositorySite.class)); + String listAllCoursesStr = getStringPropertyValue("listallcourse", true); + if(StringHelper.containsNonWhitespace(listAllCoursesStr)) { + listAllCourses = "true".equals(listAllCoursesStr); + } + String listAllResourceTypesStr = getStringPropertyValue("listallresourcetypes", true); + if(StringHelper.containsNonWhitespace(listAllResourceTypesStr)) { + listAllResourceTypes = "true".equals(listAllResourceTypesStr); + } } /** @@ -71,7 +85,10 @@ public class RepositoryModule extends AbstractOLATModule { */ @Override protected void initDefaultProperties() { - // nothing to init + String listAllCoursesStr = getStringConfigParameter("listallcourse", "true", false); + listAllCourses = "true".equals(listAllCoursesStr); + String listAllResourceTypesStr = getStringConfigParameter("listallresourcetypes", "true", false); + listAllResourceTypes = "true".equals(listAllResourceTypesStr); } /** @@ -79,7 +96,7 @@ public class RepositoryModule extends AbstractOLATModule { */ @Override protected void initFromChangedProperties() { - // nothing to init + init(); } @Override @@ -95,4 +112,19 @@ public class RepositoryModule extends AbstractOLATModule { return groupModule.isMandatoryEnrolmentEmail(roles); } -} + public boolean isListAllCourses() { + return listAllCourses; + } + + public void setListAllCourses(boolean listAllCourses) { + setBooleanProperty("listallcourse", listAllCourses, true); + } + + public boolean isListAllResourceTypes() { + return listAllResourceTypes; + } + + public void setListAllResourceTypes(boolean listAllResourceTypes) { + setBooleanProperty("listallresourcetypes", listAllResourceTypes, true); + } +} \ No newline at end of file diff --git a/src/main/java/org/olat/repository/_spring/repositoryContext.xml b/src/main/java/org/olat/repository/_spring/repositoryContext.xml index 6fa218e2050..e171dfb7c6c 100644 --- a/src/main/java/org/olat/repository/_spring/repositoryContext.xml +++ b/src/main/java/org/olat/repository/_spring/repositoryContext.xml @@ -3,7 +3,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> + http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="repositoryModule" class="org.olat.repository.RepositoryModule" depends-on="userModule"> <property name="groupModule" ref="businessGroupModule"/> @@ -15,12 +15,17 @@ </property> </bean> -<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> - <property name="targetObject" ref="repositoryModule" /> - <property name="targetMethod" value="init" /> -</bean> - - -<bean id="repositoryManager" class="org.olat.repository.RepositoryManager"/> + <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> + <property name="targetObject" ref="repositoryModule" /> + <property name="targetMethod" value="init" /> + <property name="arguments"> + <value> + listallcourse=${repo.listallcourses.enabled} + listallresourcetypes=${repo.listallresourcetypes.enabled} + </value> + </property> + </bean> + + <bean id="repositoryManager" class="org.olat.repository.RepositoryManager"/> </beans> \ No newline at end of file diff --git a/src/main/java/org/olat/repository/controllers/RepositoryMainController.java b/src/main/java/org/olat/repository/controllers/RepositoryMainController.java index 9553a9ed3ae..7bd294479ba 100644 --- a/src/main/java/org/olat/repository/controllers/RepositoryMainController.java +++ b/src/main/java/org/olat/repository/controllers/RepositoryMainController.java @@ -77,6 +77,7 @@ import org.olat.portfolio.EPTemplateMapResource; import org.olat.portfolio.PortfolioModule; import org.olat.repository.RepositoryEntry; import org.olat.repository.RepositoryManager; +import org.olat.repository.RepositoryModule; import org.olat.repository.RepositoryTableModel; import org.olat.repository.delete.TabbedPaneController; import org.olat.repository.handlers.RepositoryHandler; @@ -148,6 +149,7 @@ public class RepositoryMainController extends MainLayoutBasicController implemen private Controller creationWizardController; private final PortfolioModule portfolioModule; private final CatalogModule catalogModule; + private final RepositoryModule repositoryModule; /** * The check for author rights is executed on construction time and then @@ -162,8 +164,9 @@ public class RepositoryMainController extends MainLayoutBasicController implemen if (log.isDebug()) { log.debug("Constructing ReposityMainController for user::" + ureq.getIdentity()); } - portfolioModule = (PortfolioModule) CoreSpringFactory.getBean("portfolioModule"); + portfolioModule = CoreSpringFactory.getImpl(PortfolioModule.class); catalogModule = CoreSpringFactory.getImpl(CatalogModule.class); + repositoryModule = CoreSpringFactory.getImpl(RepositoryModule.class); // use i18n from RepositoryManager level setTranslator(Util.createPackageTranslator(RepositoryManager.class, ureq.getLocale())); @@ -301,10 +304,14 @@ public class RepositoryMainController extends MainLayoutBasicController implemen rootNode.addChild(node); } } - node = new GenericTreeNode(translate("search.course"), "search.course"); - node.setCssClass("o_sel_repo_course"); - rootNode.addChild(node); - if (bIsAuthor) { + + if(repositoryModule.isListAllCourses()) { + node = new GenericTreeNode(translate("search.course"), "search.course"); + node.setCssClass("o_sel_repo_course"); + rootNode.addChild(node); + } + + if (bIsAuthor && repositoryModule.isListAllResourceTypes()) { //cp, scorm, wiki, podcast, portfolie, test, questionn, resource folder, glossary node = new GenericTreeNode(translate("search.cp"), "search.cp"); node.setCssClass("o_sel_repo_cp"); diff --git a/src/main/resources/serviceconfig/olat.properties b/src/main/resources/serviceconfig/olat.properties index dfbdfc9b824..39d0f20e92e 100644 --- a/src/main/resources/serviceconfig/olat.properties +++ b/src/main/resources/serviceconfig/olat.properties @@ -385,6 +385,13 @@ repo.catalog.enable=true my.courses.enable=false ### +# When repo.listallcourses.enabled=true, the list of all courses are show as it is today. +# When false, the menu item does not show up. +repo.listallcourses.enabled=true +# When repo.listallresourcetypes.enabled=true and the user is author, all other resource +# types appear as separate menu items. When set to false, the menu items are not show to any user. +repo.listallresourcetypes.enabled=true + # The course database: a REST key-value store that can be used in single pages to # implement all kind of fancy things that need a storage, e.g. build your own # survey or "I've read this" checkbox. Course authors have the possibility do -- GitLab