diff --git a/config/alfresco/web-client-config-actions.xml b/config/alfresco/web-client-config-actions.xml index 84c6596a86..f4c2d20916 100644 --- a/config/alfresco/web-client-config-actions.xml +++ b/config/alfresco/web-client-config-actions.xml @@ -1,6 +1,6 @@ - + @@ -430,9 +430,9 @@ /images/icons/action.gif wizard:runAction #{WizardManager.setupParameters} - - #{actionContext.id} - + + #{actionContext.id} + diff --git a/config/alfresco/web-client-config-dialogs.xml b/config/alfresco/web-client-config-dialogs.xml index 8a8dfd1e36..863f399109 100644 --- a/config/alfresco/web-client-config-dialogs.xml +++ b/config/alfresco/web-client-config-dialogs.xml @@ -1,6 +1,6 @@ - + /jsp/dialog/container.jsp diff --git a/config/alfresco/web-client-config-forum-actions.xml b/config/alfresco/web-client-config-forum-actions.xml index 64539be46d..6f9cbf0945 100644 --- a/config/alfresco/web-client-config-forum-actions.xml +++ b/config/alfresco/web-client-config-forum-actions.xml @@ -1,6 +1,6 @@ - + org.alfresco.web.action.evaluator.DiscussNodeEvaluator @@ -180,90 +180,35 @@ false - inlineAction - - - - - - - - - - + - - - - - - - false - inlineAction - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/alfresco/web-client-config-wizards.xml b/config/alfresco/web-client-config-wizards.xml index 0ee698ff88..8253dfbb29 100644 --- a/config/alfresco/web-client-config-wizards.xml +++ b/config/alfresco/web-client-config-wizards.xml @@ -1,6 +1,6 @@ - + /jsp/wizard/container.jsp diff --git a/source/java/org/alfresco/web/config/ActionsConfigElement.java b/source/java/org/alfresco/web/config/ActionsConfigElement.java index d880982405..6f2b56a1f4 100644 --- a/source/java/org/alfresco/web/config/ActionsConfigElement.java +++ b/source/java/org/alfresco/web/config/ActionsConfigElement.java @@ -19,7 +19,6 @@ package org.alfresco.web.config; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; -import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; @@ -71,14 +70,51 @@ public class ActionsConfigElement extends ConfigElementAdapter */ public ConfigElement combine(ConfigElement configElement) { - ActionsConfigElement existingElement = (ActionsConfigElement)configElement; + ActionsConfigElement newElement = (ActionsConfigElement)configElement; ActionsConfigElement combinedElement = new ActionsConfigElement(); + // add the existing action definitions combinedElement.actionDefs.putAll(this.actionDefs); - combinedElement.actionDefs.putAll(existingElement.actionDefs); + // overwrite any existing action definitions i.e. don't combine + combinedElement.actionDefs.putAll(newElement.actionDefs); + + // add the existing action groups combinedElement.actionGroups.putAll(this.actionGroups); - combinedElement.actionGroups.putAll(existingElement.actionGroups); + + // any new action groups with the same name must be combined + for (ActionGroup newGroup : newElement.actionGroups.values()) + { + if (combinedElement.actionGroups.containsKey(newGroup.getId())) + { + // there is already a group with this id, combine it + // with the new one + ActionGroup existingGroup = combinedElement.actionGroups.get(newGroup.getId()); + if (newGroup.ShowLink != existingGroup.ShowLink) + { + existingGroup.ShowLink = newGroup.ShowLink; + } + if (newGroup.Style != null) + { + existingGroup.Style = newGroup.Style; + } + if (newGroup.StyleClass != null) + { + existingGroup.StyleClass = newGroup.StyleClass; + } + + // add the new groups to the existing set + for (String actionRef : newGroup.actions) + { + existingGroup.actions.add(actionRef); + } + } + else + { + // it's a new group so just add it + combinedElement.actionGroups.put(newGroup.getId(), newGroup); + } + } return combinedElement; } diff --git a/source/java/org/alfresco/web/config/AdvancedSearchConfigElement.java b/source/java/org/alfresco/web/config/AdvancedSearchConfigElement.java index 6a711ba85b..c7095fd592 100644 --- a/source/java/org/alfresco/web/config/AdvancedSearchConfigElement.java +++ b/source/java/org/alfresco/web/config/AdvancedSearchConfigElement.java @@ -67,15 +67,15 @@ public class AdvancedSearchConfigElement extends ConfigElementAdapter */ public ConfigElement combine(ConfigElement configElement) { - AdvancedSearchConfigElement existingElement = (AdvancedSearchConfigElement)configElement; - AdvancedSearchConfigElement newElement = new AdvancedSearchConfigElement(); + AdvancedSearchConfigElement newElement = (AdvancedSearchConfigElement)configElement; + AdvancedSearchConfigElement combinedElement = new AdvancedSearchConfigElement(); // just copy the list of types and properties from this instance to the new one if (this.contentTypes != null) { for (String type : this.contentTypes) { - newElement.addContentType(type); + combinedElement.addContentType(type); } } @@ -83,28 +83,28 @@ public class AdvancedSearchConfigElement extends ConfigElementAdapter { for (CustomProperty property : this.customProps) { - newElement.addCustomProperty(property); + combinedElement.addCustomProperty(property); } } // now add those types and custom properties from the element to be combined - if (existingElement.getContentTypes() != null) + if (newElement.getContentTypes() != null) { - for (String type : existingElement.getContentTypes()) + for (String type : newElement.getContentTypes()) { - newElement.addContentType(type); + combinedElement.addContentType(type); } } - if (existingElement.getCustomProperties() != null) + if (newElement.getCustomProperties() != null) { - for (CustomProperty property : existingElement.getCustomProperties()) + for (CustomProperty property : newElement.getCustomProperties()) { - newElement.addCustomProperty(property); + combinedElement.addCustomProperty(property); } } - return newElement; + return combinedElement; } /** diff --git a/source/java/org/alfresco/web/config/ClientConfigElement.java b/source/java/org/alfresco/web/config/ClientConfigElement.java index 602159cb92..fc7488ceea 100644 --- a/source/java/org/alfresco/web/config/ClientConfigElement.java +++ b/source/java/org/alfresco/web/config/ClientConfigElement.java @@ -63,88 +63,88 @@ public class ClientConfigElement extends ConfigElementAdapter */ public ConfigElement combine(ConfigElement configElement) { - ClientConfigElement existingElement = (ClientConfigElement)configElement; - ClientConfigElement newElement = new ClientConfigElement(); + ClientConfigElement newElement = (ClientConfigElement)configElement; + ClientConfigElement combinedElement = new ClientConfigElement(); // set those values that have changed - if (existingElement.getEditLinkType() == null) + if (newElement.getEditLinkType() == null) { - newElement.setEditLinkType(this.editLinkType); + combinedElement.setEditLinkType(this.editLinkType); } else { - newElement.setEditLinkType(existingElement.getEditLinkType()); + combinedElement.setEditLinkType(newElement.getEditLinkType()); } - if (existingElement.getErrorPage() == null) + if (newElement.getErrorPage() == null) { - newElement.setErrorPage(this.errorPage); + combinedElement.setErrorPage(this.errorPage); } else { - newElement.setErrorPage(existingElement.getErrorPage()); + combinedElement.setErrorPage(newElement.getErrorPage()); } - if (existingElement.getLoginPage() == null) + if (newElement.getLoginPage() == null) { - newElement.setLoginPage(this.loginPage); + combinedElement.setLoginPage(this.loginPage); } else { - newElement.setLoginPage(existingElement.getLoginPage()); + combinedElement.setLoginPage(newElement.getLoginPage()); } - if (existingElement.getHelpUrl() == null ) + if (newElement.getHelpUrl() == null ) { - newElement.setHelpUrl(this.helpUrl); + combinedElement.setHelpUrl(this.helpUrl); } else { - newElement.setHelpUrl(existingElement.getHelpUrl()); + combinedElement.setHelpUrl(newElement.getHelpUrl()); } - if (existingElement.getHomeSpacePermission() == null) + if (newElement.getHomeSpacePermission() == null) { - newElement.setHomeSpacePermission(this.homeSpacePermission); + combinedElement.setHomeSpacePermission(this.homeSpacePermission); } else { - newElement.setHomeSpacePermission(existingElement.getHomeSpacePermission()); + combinedElement.setHomeSpacePermission(newElement.getHomeSpacePermission()); } // override default values if they have changed - if (existingElement.getRecentSpacesItems() != newElement.getRecentSpacesItems()) + if (newElement.getRecentSpacesItems() != combinedElement.getRecentSpacesItems()) { - newElement.setRecentSpacesItems(existingElement.getRecentSpacesItems()); + combinedElement.setRecentSpacesItems(newElement.getRecentSpacesItems()); } - if (existingElement.getSearchMinimum() != newElement.getSearchMinimum()) + if (newElement.getSearchMinimum() != combinedElement.getSearchMinimum()) { - newElement.setSearchMinimum(existingElement.getSearchMinimum()); + combinedElement.setSearchMinimum(newElement.getSearchMinimum()); } - if (existingElement.getForceAndTerms() != newElement.getForceAndTerms()) + if (newElement.getForceAndTerms() != combinedElement.getForceAndTerms()) { - newElement.setForceAndTerms(existingElement.getForceAndTerms()); + combinedElement.setForceAndTerms(newElement.getForceAndTerms()); } - if (existingElement.getSearchMaxResults() != newElement.getSearchMaxResults()) + if (newElement.getSearchMaxResults() != combinedElement.getSearchMaxResults()) { - newElement.setSearchMaxResults(existingElement.getSearchMaxResults()); + combinedElement.setSearchMaxResults(newElement.getSearchMaxResults()); } - if (existingElement.isShelfVisible() != newElement.isShelfVisible()) + if (newElement.isShelfVisible() != combinedElement.isShelfVisible()) { - newElement.setShelfVisible(existingElement.isShelfVisible()); + combinedElement.setShelfVisible(newElement.isShelfVisible()); } - if (existingElement.getFromEmailAddress() != null && - (existingElement.getFromEmailAddress().equals(newElement.getFromEmailAddress()) == false)) + if (newElement.getFromEmailAddress() != null && + (newElement.getFromEmailAddress().equals(combinedElement.getFromEmailAddress()) == false)) { - newElement.setFromEmailAddress(existingElement.getFromEmailAddress()); + combinedElement.setFromEmailAddress(newElement.getFromEmailAddress()); } - return newElement; + return combinedElement; } /** diff --git a/source/java/org/alfresco/web/config/CommandServletConfigElement.java b/source/java/org/alfresco/web/config/CommandServletConfigElement.java index 58cfa57485..5213297ff0 100644 --- a/source/java/org/alfresco/web/config/CommandServletConfigElement.java +++ b/source/java/org/alfresco/web/config/CommandServletConfigElement.java @@ -64,19 +64,19 @@ public class CommandServletConfigElement extends ConfigElementAdapter */ public ConfigElement combine(ConfigElement configElement) { - CommandServletConfigElement existingElement = (CommandServletConfigElement)configElement; - CommandServletConfigElement newElement = new CommandServletConfigElement(); + CommandServletConfigElement newElement = (CommandServletConfigElement)configElement; + CommandServletConfigElement combinedElement = new CommandServletConfigElement(); for (String name : commandProcessors.keySet()) { - newElement.addCommandProcessor(name, commandProcessors.get(name)); + combinedElement.addCommandProcessor(name, commandProcessors.get(name)); } - for (String name : existingElement.commandProcessors.keySet()) + for (String name : newElement.commandProcessors.keySet()) { - newElement.addCommandProcessor(name, existingElement.commandProcessors.get(name)); + combinedElement.addCommandProcessor(name, newElement.commandProcessors.get(name)); } - return newElement; + return combinedElement; } /*package*/ void addCommandProcessor(String name, String className) diff --git a/source/java/org/alfresco/web/config/LanguagesConfigElement.java b/source/java/org/alfresco/web/config/LanguagesConfigElement.java index c4ddc96ac3..2d95da1cac 100644 --- a/source/java/org/alfresco/web/config/LanguagesConfigElement.java +++ b/source/java/org/alfresco/web/config/LanguagesConfigElement.java @@ -69,28 +69,28 @@ public class LanguagesConfigElement extends ConfigElementAdapter */ public ConfigElement combine(ConfigElement configElement) { - LanguagesConfigElement existingElement = (LanguagesConfigElement)configElement; - LanguagesConfigElement newElement = new LanguagesConfigElement(); + LanguagesConfigElement newElement = (LanguagesConfigElement)configElement; + LanguagesConfigElement combinedElement = new LanguagesConfigElement(); // add the languages from this config element for (String locale : this.languages) { - newElement.addLanguage(locale, this.localeMap.get(locale)); + combinedElement.addLanguage(locale, this.localeMap.get(locale)); } // now add the languages from the one to be combined (but // only if they are not already in the list) - List languages = existingElement.getLanguages(); + List languages = newElement.getLanguages(); for (String locale : languages) { - if (newElement.getLabelForLanguage(locale) == null) + if (combinedElement.getLabelForLanguage(locale) == null) { - String label = existingElement.getLabelForLanguage(locale); - newElement.addLanguage(locale, label); + String label = newElement.getLabelForLanguage(locale); + combinedElement.addLanguage(locale, label); } } - return newElement; + return combinedElement; } /** diff --git a/source/java/org/alfresco/web/config/NavigationConfigElement.java b/source/java/org/alfresco/web/config/NavigationConfigElement.java index 91d3fff88d..905551567b 100644 --- a/source/java/org/alfresco/web/config/NavigationConfigElement.java +++ b/source/java/org/alfresco/web/config/NavigationConfigElement.java @@ -123,36 +123,36 @@ public class NavigationConfigElement extends ConfigElementAdapter */ public ConfigElement combine(ConfigElement configElement) { - NavigationConfigElement combined = new NavigationConfigElement(); + NavigationConfigElement newElement = (NavigationConfigElement)configElement; + NavigationConfigElement combinedElement = new NavigationConfigElement(); // add all the existing from view id overrides for (String fromViewId : this.viewIds.keySet()) { - combined.addOverride(fromViewId, null, this.viewIds.get(fromViewId)); + combinedElement.addOverride(fromViewId, null, this.viewIds.get(fromViewId)); } // add all the existing from outcome overrides for (String fromOutcome : this.outcomes.keySet()) { - combined.addOverride(null, fromOutcome, this.outcomes.get(fromOutcome)); + combinedElement.addOverride(null, fromOutcome, this.outcomes.get(fromOutcome)); } // add all the from view id overrides from the given element - NavigationConfigElement navCfg = (NavigationConfigElement)configElement; - HashMap viewIds = navCfg.getViewIds(); + HashMap viewIds = newElement.getViewIds(); for (String fromViewId : viewIds.keySet()) { - combined.addOverride(fromViewId, null, viewIds.get(fromViewId)); + combinedElement.addOverride(fromViewId, null, viewIds.get(fromViewId)); } // add all the from outcome overrides from the given element - HashMap outcomes = navCfg.getOutcomes(); + HashMap outcomes = newElement.getOutcomes(); for (String fromOutcome : outcomes.keySet()) { - combined.addOverride(null, fromOutcome, outcomes.get(fromOutcome)); + combinedElement.addOverride(null, fromOutcome, outcomes.get(fromOutcome)); } - return combined; + return combinedElement; } /** diff --git a/source/java/org/alfresco/web/config/PropertySheetConfigElement.java b/source/java/org/alfresco/web/config/PropertySheetConfigElement.java index 67daeb174c..59a669b10d 100644 --- a/source/java/org/alfresco/web/config/PropertySheetConfigElement.java +++ b/source/java/org/alfresco/web/config/PropertySheetConfigElement.java @@ -72,21 +72,21 @@ public class PropertySheetConfigElement extends ConfigElementAdapter */ public ConfigElement combine(ConfigElement configElement) { - PropertySheetConfigElement combined = new PropertySheetConfigElement(); + PropertySheetConfigElement combinedElement = new PropertySheetConfigElement(); // add all the existing properties for (ItemConfig item : this.getItems().values()) { - combined.addItem(item); + combinedElement.addItem(item); } // add all the properties from the given element for (ItemConfig item : ((PropertySheetConfigElement)configElement).getItems().values()) { - combined.addItem(item); + combinedElement.addItem(item); } - return combined; + return combinedElement; } /** diff --git a/source/java/org/alfresco/web/config/ViewsConfigElement.java b/source/java/org/alfresco/web/config/ViewsConfigElement.java index 68f5dd806a..f5a0b01aba 100644 --- a/source/java/org/alfresco/web/config/ViewsConfigElement.java +++ b/source/java/org/alfresco/web/config/ViewsConfigElement.java @@ -101,18 +101,18 @@ public class ViewsConfigElement extends ConfigElementAdapter */ public ConfigElement combine(ConfigElement configElement) { - ViewsConfigElement existingElement = (ViewsConfigElement)configElement; - ViewsConfigElement newElement = new ViewsConfigElement(); + ViewsConfigElement newElement = (ViewsConfigElement)configElement; + ViewsConfigElement combinedElement = new ViewsConfigElement(); // copy all the config from this element into the new one for (String viewImpl : this.views) { - newElement.addView(viewImpl); + combinedElement.addView(viewImpl); } for (String page : this.defaultViews.keySet()) { - newElement.addDefaultView(page, this.defaultViews.get(page)); + combinedElement.addDefaultView(page, this.defaultViews.get(page)); } for (String pageView : this.pageSizes.keySet()) @@ -121,56 +121,56 @@ public class ViewsConfigElement extends ConfigElementAdapter { String page = pageView.substring(0, pageView.indexOf(SEPARATOR)); String view = pageView.substring(pageView.indexOf(SEPARATOR)+1); - newElement.addDefaultPageSize(page, view, this.pageSizes.get(pageView).intValue()); + combinedElement.addDefaultPageSize(page, view, this.pageSizes.get(pageView).intValue()); } } for (String page : this.sortColumns.keySet()) { - newElement.addDefaultSortColumn(page, this.sortColumns.get(page)); + combinedElement.addDefaultSortColumn(page, this.sortColumns.get(page)); } for (String page : this.sortDirections.keySet()) { - newElement.addSortDirection(page, this.sortDirections.get(page)); + combinedElement.addSortDirection(page, this.sortDirections.get(page)); } // copy all the config from the element to be combined into the new one - for (String viewImpl : existingElement.getViews()) + for (String viewImpl : newElement.getViews()) { - newElement.addView(viewImpl); + combinedElement.addView(viewImpl); } - Map existingDefaultViews = existingElement.getDefaultViews(); - for (String page : existingDefaultViews.keySet()) + Map newDefaultViews = newElement.getDefaultViews(); + for (String page : newDefaultViews.keySet()) { - newElement.addDefaultView(page, existingDefaultViews.get(page)); + combinedElement.addDefaultView(page, newDefaultViews.get(page)); } - Map existingPageSizes = existingElement.getDefaultPageSizes(); - for (String pageView : existingPageSizes.keySet()) + Map newPageSizes = newElement.getDefaultPageSizes(); + for (String pageView : newPageSizes.keySet()) { if (pageView.indexOf(SEPARATOR) != -1) { String page = pageView.substring(0, pageView.indexOf(SEPARATOR)); String view = pageView.substring(pageView.indexOf(SEPARATOR)+1); - newElement.addDefaultPageSize(page, view, existingPageSizes.get(pageView).intValue()); + combinedElement.addDefaultPageSize(page, view, newPageSizes.get(pageView).intValue()); } } - Map existingSortColumns = existingElement.getDefaultSortColumns(); - for (String page : existingSortColumns.keySet()) + Map newSortColumns = newElement.getDefaultSortColumns(); + for (String page : newSortColumns.keySet()) { - newElement.addDefaultSortColumn(page, existingSortColumns.get(page)); + combinedElement.addDefaultSortColumn(page, newSortColumns.get(page)); } - Map existingSortDirs = existingElement.getSortDirections(); + Map existingSortDirs = newElement.getSortDirections(); for (String page : existingSortDirs.keySet()) { - newElement.addSortDirection(page, existingSortDirs.get(page)); + combinedElement.addSortDirection(page, existingSortDirs.get(page)); } - return newElement; + return combinedElement; } /** diff --git a/source/java/org/alfresco/web/config/WebClientConfigTest.java b/source/java/org/alfresco/web/config/WebClientConfigTest.java index 1d872c7737..df48bd3cc2 100644 --- a/source/java/org/alfresco/web/config/WebClientConfigTest.java +++ b/source/java/org/alfresco/web/config/WebClientConfigTest.java @@ -18,6 +18,7 @@ package org.alfresco.web.config; import java.util.ArrayList; import java.util.Collection; +import java.util.Iterator; import java.util.List; import java.util.Map; @@ -27,6 +28,8 @@ import org.alfresco.config.ConfigException; import org.alfresco.config.source.FileConfigSource; import org.alfresco.config.xml.XMLConfigService; import org.alfresco.util.BaseTest; +import org.alfresco.web.config.ActionsConfigElement.ActionDefinition; +import org.alfresco.web.config.ActionsConfigElement.ActionGroup; import org.alfresco.web.config.AdvancedSearchConfigElement.CustomProperty; import org.alfresco.web.config.DialogsConfigElement.DialogConfig; import org.alfresco.web.config.PropertySheetConfigElement.ItemConfig; @@ -815,4 +818,110 @@ public class WebClientConfigTest extends BaseTest assertNull("step 3 title should be null", step3Page.getTitle()); assertNull("step 3 description should be null", step3Page.getDescription()); } + + public void testActions() + { + // setup the config service + String configFile = getResourcesDir() + "test-config.xml"; + XMLConfigService svc = new XMLConfigService(new FileConfigSource(configFile)); + svc.init(); + + // get the "Actions" config + Config cfg = svc.getGlobalConfig(); + assertNotNull("cfg should not be null", cfg); + + // get the config element + ActionsConfigElement actionsConfig = (ActionsConfigElement)cfg. + getConfigElement(ActionsConfigElement.CONFIG_ELEMENT_ID); + assertNotNull("actions config element should not be null", actionsConfig); + + // get the individual actions + ActionDefinition docDetails = actionsConfig.getActionDefinition("details_doc"); + assertNotNull("details_doc action definition should not be null", docDetails); + assertEquals("details_doc action", "dialog:showDocDetails", docDetails.Action); + + ActionDefinition spaceDetails = actionsConfig.getActionDefinition("details_space"); + assertNotNull("details_space action definition should not be null", spaceDetails); + assertEquals("details_space action", "dialog:showSpaceDetails", spaceDetails.Action); + + // get the action group + ActionGroup group = actionsConfig.getActionGroup("document_browse"); + assertNotNull("group definition should not be null", group); + assertFalse("showLink for document_browse group should be false", group.ShowLink); + for (String actionId : group) + { + if (actionId.equals("details_doc") == false && + actionId.equals("details_space") == false) + { + fail("Unrecognised action-id '" + actionId + "' in action group '" + group.getId() + "'"); + } + } + } + + public void testActionsOverriding() + { + // setup the config service + List configFiles = new ArrayList(2); + configFiles.add(getResourcesDir() + "test-config.xml"); + configFiles.add(getResourcesDir() + "test-config-override.xml"); + XMLConfigService svc = new XMLConfigService(new FileConfigSource(configFiles)); + svc.init(); + + // get the "Actions" config + Config cfg = svc.getConfig("Actions Override"); + assertNotNull("cfg should not be null", cfg); + + // get the config element + ActionsConfigElement actionsConfig = (ActionsConfigElement)cfg. + getConfigElement(ActionsConfigElement.CONFIG_ELEMENT_ID); + assertNotNull("actions config element should not be null", actionsConfig); + + // get the individual actions + ActionDefinition docDetails = actionsConfig.getActionDefinition("details_doc"); + assertNotNull("details_doc action definition should not be null", docDetails); + assertEquals("details_doc action", "dialog:showCustomDocDetails", docDetails.Action); + + ActionDefinition spaceDetails = actionsConfig.getActionDefinition("details_space"); + assertNotNull("details_space action definition should not be null", spaceDetails); + assertEquals("details_space action", "dialog:showSpaceDetails", spaceDetails.Action); + + ActionDefinition customAction = actionsConfig.getActionDefinition("custom_action"); + assertNotNull("custom_action action definition should not be null", customAction); + assertEquals("custom_action action", "customAction", customAction.Action); + + // get the document_browse action group + ActionGroup group = actionsConfig.getActionGroup("document_browse"); + assertNotNull("group definition should not be null", group); + assertTrue("showLink for document_browse group should be true", group.ShowLink); + assertEquals("document_browse group style class", "inlineAction", group.StyleClass); + assertNull("Style for document_browse group should be null", group.Style); + + // make sure there are 3 items + ArrayList actions = new ArrayList(3); + for (String actionId : group) + { + actions.add(actionId); + } + + assertEquals("number of items in document_browse group", 3, actions.size()); + + // make sure they are in the correct order + assertEquals("first action", "details_doc", actions.get(0)); + assertEquals("second action", "details_space", actions.get(1)); + assertEquals("third action", "custom_action", actions.get(2)); + + // get the new_group action group + ActionGroup newGroup = actionsConfig.getActionGroup("new_group"); + assertNotNull("new_group definition should not be null", newGroup); + + // make sure there is only 1 item and it's id is correct + actions = new ArrayList(1); + for (String actionId : newGroup) + { + actions.add(actionId); + } + + assertEquals("number of items in new_group group", 1, actions.size()); + assertEquals("action", "custom_action", actions.get(0)); + } } diff --git a/source/java/org/alfresco/web/ui/repo/component/UIActions.java b/source/java/org/alfresco/web/ui/repo/component/UIActions.java index cf2b87f191..bdbbce52c8 100644 --- a/source/java/org/alfresco/web/ui/repo/component/UIActions.java +++ b/source/java/org/alfresco/web/ui/repo/component/UIActions.java @@ -22,7 +22,6 @@ import java.util.List; import java.util.Map; import java.util.ResourceBundle; -import javax.faces.component.NamingContainer; import javax.faces.component.UIComponent; import javax.faces.component.UIParameter; import javax.faces.context.FacesContext; @@ -108,6 +107,7 @@ public class UIActions extends SelfRenderingComponent /** * @see javax.faces.component.UIComponentBase#encodeBegin(javax.faces.context.FacesContext) */ + @SuppressWarnings("unchecked") public void encodeBegin(FacesContext context) throws IOException { if (isRendered() == false) @@ -130,12 +130,10 @@ public class UIActions extends SelfRenderingComponent return; } - ResponseWriter out = context.getResponseWriter(); - String groupId = getValue(); if (groupId != null && groupId.length() != 0) { - Config config = Application.getConfigService(context).getConfig("Actions"); + Config config = Application.getConfigService(context).getGlobalConfig(); if (config != null) { // find the Actions specific config element @@ -222,11 +220,11 @@ public class UIActions extends SelfRenderingComponent * @param context * @param actionGroup */ + @SuppressWarnings("unchecked") private void buildActionGroup(FacesContext context, ActionsConfigElement config, ActionGroup actionGroup) throws IOException { javax.faces.application.Application facesApp = context.getApplication(); - Node node = getContext(); ResourceBundle messages = Application.getBundle(context); // get overriding display attributes diff --git a/source/test-resources/test-config-dialogs-wizards.xml b/source/test-resources/test-config-dialogs-wizards.xml index e6a1ed512a..8e02b0d95c 100644 --- a/source/test-resources/test-config-dialogs-wizards.xml +++ b/source/test-resources/test-config-dialogs-wizards.xml @@ -7,7 +7,7 @@ - + /jsp/dialog/container.jsp @@ -22,7 +22,7 @@ - + /jsp/wizard/container.jsp diff --git a/source/test-resources/test-config-override.xml b/source/test-resources/test-config-override.xml index 41cd125d75..75159a43f0 100644 --- a/source/test-resources/test-config-override.xml +++ b/source/test-resources/test-config-override.xml @@ -91,7 +91,7 @@ - + /custom/my-container.jsp @@ -100,4 +100,30 @@ + + + + view_details + /images/icons/View_details.gif + dialog:showCustomDocDetails + + + + some_label_id + /images/icons/details.gif + customAction + + + + + true + + + + + + + + + \ No newline at end of file diff --git a/source/test-resources/test-config.xml b/source/test-resources/test-config.xml index 8af108bea9..4855aea2bc 100644 --- a/source/test-resources/test-config.xml +++ b/source/test-resources/test-config.xml @@ -8,6 +8,7 @@ + @@ -47,6 +48,27 @@ alfresco@alfresco.org + + + + view_details + /images/icons/View_details.gif + dialog:showDocDetails + + + + view_details + /images/icons/View_details.gif + dialog:showSpaceDetails + + + + false + inlineAction + + + +