diff --git a/config/alfresco/web-client-config.xml b/config/alfresco/web-client-config.xml index 16f6207fae..b9b445a8e9 100644 --- a/config/alfresco/web-client-config.xml +++ b/config/alfresco/web-client-config.xml @@ -193,6 +193,7 @@ + @@ -209,17 +210,18 @@ label-id="layout_three_column_label" description-id="layout_three_column_desc" jsp="/jsp/dashboards/layouts/three-column.jsp" /> + - + + + + + + + + + + false diff --git a/source/java/org/alfresco/web/bean/dashboard/DashboardManager.java b/source/java/org/alfresco/web/bean/dashboard/DashboardManager.java index cac42d6c88..3ebc353eee 100644 --- a/source/java/org/alfresco/web/bean/dashboard/DashboardManager.java +++ b/source/java/org/alfresco/web/bean/dashboard/DashboardManager.java @@ -162,16 +162,17 @@ public class DashboardManager Page page = new Page("default", layout); Column defaultColumn = new Column(); - // add the default dashlet(s) to the column - DashletDefinition dashlet = config.getDashletDefinition(DASHLET_STARTEDDEFAULT); - if (dashlet != null) + // add the default dashlet(s) to the column as specified in the config + if (config.getDefaultDashlets() != null) { - defaultColumn.addDashlet(dashlet); - } - dashlet = config.getDashletDefinition(DASHLET_TASKSDEFAULT); - if (dashlet != null) - { - defaultColumn.addDashlet(dashlet); + for (String id : config.getDefaultDashlets()) + { + DashletDefinition dashlet = config.getDashletDefinition(id); + if (dashlet != null) + { + defaultColumn.addDashlet(dashlet); + } + } } // add the column to the page and we are done diff --git a/source/java/org/alfresco/web/config/DashboardsConfigElement.java b/source/java/org/alfresco/web/config/DashboardsConfigElement.java index e733e53e01..b331b22a88 100644 --- a/source/java/org/alfresco/web/config/DashboardsConfigElement.java +++ b/source/java/org/alfresco/web/config/DashboardsConfigElement.java @@ -24,6 +24,7 @@ */ package org.alfresco.web.config; +import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.LinkedHashMap; @@ -45,6 +46,7 @@ public class DashboardsConfigElement extends ConfigElementAdapter private Map layoutDefs = new LinkedHashMap(4, 1.0f); private Map dashletDefs = new LinkedHashMap(8, 1.0f); + private List defaultDashlets = null; private boolean allowGuestConfig = false; /** @@ -91,6 +93,18 @@ public class DashboardsConfigElement extends ConfigElementAdapter combinedElement.allowGuestConfig = newElement.allowGuestConfig; } + // the default-dashlets list is completely replaced if config is overriden + if (newElement.defaultDashlets != null) + { + combinedElement.defaultDashlets = + (List)((ArrayList)newElement.defaultDashlets).clone(); + } + else if (this.defaultDashlets != null) + { + combinedElement.defaultDashlets = + (List)((ArrayList)this.defaultDashlets).clone(); + } + return combinedElement; } @@ -134,6 +148,20 @@ public class DashboardsConfigElement extends ConfigElementAdapter return this.dashletDefs.values(); } + /*package*/ void addDefaultDashlet(String id) + { + if (this.defaultDashlets == null) + { + this.defaultDashlets = new ArrayList(2); + } + this.defaultDashlets.add(id); + } + + public Collection getDefaultDashlets() + { + return this.defaultDashlets; + } + /** * Structure class for the definition of a dashboard page layout */ diff --git a/source/java/org/alfresco/web/config/DashboardsElementReader.java b/source/java/org/alfresco/web/config/DashboardsElementReader.java index 1d533036cf..59f035d355 100644 --- a/source/java/org/alfresco/web/config/DashboardsElementReader.java +++ b/source/java/org/alfresco/web/config/DashboardsElementReader.java @@ -46,6 +46,7 @@ public class DashboardsElementReader implements ConfigElementReader public static final String ELEMENT_DASHLETS = "dashlets"; public static final String ELEMENT_DASHLET = "dashlet"; public static final String ELEMENT_GUESTCONFIG = "allow-guest-config"; + public static final String ELEMENT_DEFAULTDASHLETS = "default-dashlets"; public static final String ATTR_ID = "id"; public static final String ATTR_COLUMNS = "columns"; public static final String ATTR_COLUMNLENGTH = "column-length"; @@ -95,6 +96,17 @@ public class DashboardsElementReader implements ConfigElementReader } } + Element defaultDashletsElement = element.element(ELEMENT_DEFAULTDASHLETS); + if (defaultDashletsElement != null) + { + Iterator dashletsItr = defaultDashletsElement.elementIterator(ELEMENT_DASHLET); + while (dashletsItr.hasNext()) + { + String id = getMandatoryDashletAttributeValue(dashletsItr.next(), ATTR_ID); + configElement.addDefaultDashlet(id); + } + } + Element guestConfigElement = element.element(ELEMENT_GUESTCONFIG); if (guestConfigElement != null) {