diff --git a/src/main/java/org/olat/ims/qti/QTIModule.java b/src/main/java/org/olat/ims/qti/QTIModule.java index 22dc85c203c407fbfd28e174dc46ffb568649465..b3896f8e5da9fe79f8e8b408ea09358863689c32 100644 --- a/src/main/java/org/olat/ims/qti/QTIModule.java +++ b/src/main/java/org/olat/ims/qti/QTIModule.java @@ -58,7 +58,7 @@ public class QTIModule extends AbstractOLATModule { @Override public void init() { for (RepositoryHandler qtiRepositoryHandler : qtiRepositoryHandlers) { - RepositoryHandlerFactory.registerHandler(qtiRepositoryHandler, 11); + RepositoryHandlerFactory.registerHandler(qtiRepositoryHandler, 10); } } diff --git a/src/main/java/org/olat/repository/handlers/RepositoryHandlerFactory.java b/src/main/java/org/olat/repository/handlers/RepositoryHandlerFactory.java index e91f68d9c550ee6142016bffbcc737fcd84fe29c..2a994e41cbc6abcf16697346ad733a2524133348 100644 --- a/src/main/java/org/olat/repository/handlers/RepositoryHandlerFactory.java +++ b/src/main/java/org/olat/repository/handlers/RepositoryHandlerFactory.java @@ -64,15 +64,20 @@ public class RepositoryHandlerFactory { handlerMap = new HashMap<String, RepositoryHandler>(21); handlerList = new ArrayList<OrderedRepositoryHandler>(21); + // 0-9 Most important resources = 0-9 registerHandler(new CourseHandler(), 0); - registerHandler(new SCORMCPHandler(), 10); - registerHandler(new ImsCPHandler(), 20); - registerHandler(new SharedFolderHandler(), 21); - registerHandler(new WikiHandler(), 21); - registerHandler(new PodcastHandler(), 22); - registerHandler(new BlogHandler(), 23); - registerHandler(new GlossaryHandler(), 24); - registerHandler(new PortfolioHandler(), 25); + // 10-19 Assessment modules + // 20-29 Content modules + registerHandler(new SCORMCPHandler(), 20); + registerHandler(new ImsCPHandler(), 21); + registerHandler(new WikiHandler(), 22); + // 30-39 Interactive modules + registerHandler(new PodcastHandler(), 31); + registerHandler(new BlogHandler(), 32); + // 40-49 Supporting resources + registerHandler(new SharedFolderHandler(), 40); + registerHandler(new GlossaryHandler(), 41); + registerHandler(new PortfolioHandler(), 42); registerHandler(new WebDocumentHandler(DocFileResource.TYPE_NAME), 10001); registerHandler(new WebDocumentHandler(XlsFileResource.TYPE_NAME), 10002); 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 37a8d479d33613f133240e566250d7a88d0dde3d..b30462b02d440c52e2d87870f8bbd7c30dc4032c 100644 --- a/src/main/java/org/olat/repository/ui/author/AuthorListController.java +++ b/src/main/java/org/olat/repository/ui/author/AuthorListController.java @@ -20,7 +20,6 @@ package org.olat.repository.ui.author; import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Set; @@ -37,6 +36,7 @@ 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; +import org.olat.core.gui.components.dropdown.Dropdown.Spacer; import org.olat.core.gui.components.form.flexible.FormItem; import org.olat.core.gui.components.form.flexible.FormItemContainer; import org.olat.core.gui.components.form.flexible.elements.FlexiTableElement; @@ -182,13 +182,21 @@ public class AuthorListController extends FormBasicController implements Activat importLink.setIconLeftCSS("o_icon o_icon_import"); stackPanel.addTool(importLink, Align.left); - Collection<String> types = repositoryHandlerFactory.getSupportedTypes(); + List<OrderedRepositoryHandler> handlers = repositoryHandlerFactory.getOrderRepositoryHandlers(); createDropdown = new Dropdown("cmd.create.ressource", "cmd.create.ressource", false, getTranslator()); createDropdown.setElementCssClass("o_sel_author_create"); createDropdown.setIconCSS("o_icon o_icon_add"); - for(String type:types) { - RepositoryHandler handler = repositoryHandlerFactory.getRepositoryHandler(type); + int lastGroup = 0; + for(OrderedRepositoryHandler orderedHandler:handlers) { + RepositoryHandler handler = orderedHandler.getHandler(); + if(handler != null && handler.isCreate()) { + // for each 10-group, crate a separator + int group = orderedHandler.getOrder() / 10; + if (group > lastGroup) { + createDropdown.addComponent(new Spacer("spacer" + orderedHandler.getOrder())); + lastGroup = group; + } addCreateLink(handler, createDropdown); } } @@ -285,7 +293,14 @@ public class AuthorListController extends FormBasicController implements Activat private List<FlexiTableFilter> getFilters() { List<OrderedRepositoryHandler> supportedHandlers = repositoryHandlerFactory.getOrderRepositoryHandlers(); List<FlexiTableFilter> resources = new ArrayList<>(supportedHandlers.size() + 1); + int lastGroup = 0; for(OrderedRepositoryHandler handler:supportedHandlers) { + // for each 10-group, crate a separator + int group = handler.getOrder() / 10; + if (group > lastGroup) { + resources.add(FlexiTableFilter.SPACER); + lastGroup = group; + } String type = handler.getHandler().getSupportedType(); String inconLeftCss = RepositoyUIFactory.getIconCssClass(type); resources.add(new FlexiTableFilter(translate(type), type, inconLeftCss));