Index: magnolia-module-admininterface/src/main/java/info/magnolia/module/admininterface/trees/WebsiteTreeHandler.java =================================================================== --- magnolia-module-admininterface/src/main/java/info/magnolia/module/admininterface/trees/WebsiteTreeHandler.java (revision 39453) +++ magnolia-module-admininterface/src/main/java/info/magnolia/module/admininterface/trees/WebsiteTreeHandler.java (working copy) @@ -87,16 +87,11 @@ } @Override - public String show() { - //show start page if no templates present yet - if (!templateManager.getAvailableTemplates().hasNext()) { - try { - request.getRequestDispatcher("/.magnolia/pages/quickstart.html").forward(request, response); - return ""; - } catch (Exception e) { - log.error("Couldn't forward to quickstart page: " + e.getMessage()); - } - } - return super.show(); + protected void renderHeaderIncludes(StringBuffer html) { + super.renderHeaderIncludes(html); + html.append(""); } } Index: magnolia-module-admininterface/src/main/java/info/magnolia/module/admininterface/trees/WebsiteTreeConfiguration.java =================================================================== --- magnolia-module-admininterface/src/main/java/info/magnolia/module/admininterface/trees/WebsiteTreeConfiguration.java (revision 39453) +++ magnolia-module-admininterface/src/main/java/info/magnolia/module/admininterface/trees/WebsiteTreeConfiguration.java (working copy) @@ -35,14 +35,17 @@ import info.magnolia.cms.core.ItemType; import info.magnolia.cms.core.MetaData; +import info.magnolia.cms.gui.control.ContextMenu; import info.magnolia.cms.gui.control.ContextMenuItem; import info.magnolia.cms.gui.control.FunctionBarItem; import info.magnolia.cms.gui.control.Tree; import info.magnolia.cms.gui.control.TreeColumn; import info.magnolia.cms.i18n.Messages; import info.magnolia.module.admininterface.AbstractTreeConfiguration; +import info.magnolia.module.templating.TemplateManager; import javax.servlet.http.HttpServletRequest; +import java.util.List; /** @@ -50,7 +53,13 @@ * @version $Revision$ ($Author$) */ public class WebsiteTreeConfiguration extends AbstractTreeConfiguration { + private final TemplateManager templateManager; + public WebsiteTreeConfiguration() { + super(); + templateManager = TemplateManager.getInstance(); + } + /** * @see info.magnolia.module.admininterface.AdminTreeConfiguration#prepareTree(info.magnolia.cms.gui.control.Tree, * boolean, javax.servlet.http.HttpServletRequest) @@ -254,6 +263,7 @@ tree.addMenuItem(ContextMenuItem.getRefreshMenuItem(tree, msgs, request)); } + disableAllIfNoTemplates(tree.getMenu()); } /** @@ -272,5 +282,19 @@ tree.getFunctionBar().setSearchable(true); tree.getFunctionBar().setOnSearchFunction("mgnl.admininterface.WebsiteTree.search"); + + disableAllIfNoTemplates(tree.getFunctionBar()); } + + private void disableAllIfNoTemplates(ContextMenu menu) { + final List menuItems = menu.getMenuItems(); + if (!templateManager.getAvailableTemplates().hasNext()) { + // disable all items + for (ContextMenuItem item : menuItems) { + if (item != null) { + item.addJavascriptCondition("new mgnlTreeMenuItemConditionBoolean(false)"); + } + } + } + } }