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)");
+ }
+ }
+ }
+ }
}