diff --git a/config/alfresco/templates/webscripts/org/alfresco/office/documentDetails.get.html.ftl b/config/alfresco/templates/webscripts/org/alfresco/office/documentDetails.get.html.ftl index f6f2568853..b543eef395 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/office/documentDetails.get.html.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/office/documentDetails.get.html.ftl @@ -1,6 +1,6 @@ <#assign doc_actions="${url.serviceContext}/office/docActions"> <#if args.p?exists><#assign path=args.p><#else><#assign path=""> -<#if args.e?exists><#assign extn=args.e><#else><#assign extn="doc"> +<#if args.e?exists><#assign extn=args.e><#else><#assign extn="doc"><#assign extnx=extn+"x"> <#if args.n?exists><#assign nav=args.n><#else><#assign nav=""> <#-- resolve the path (from Company Home) into a node --> <#if companyhome.childByNamePath[path]?exists> @@ -167,7 +167,7 @@
Start Advanced Workflow for the current document. - <#if d.name?ends_with(extn)> + <#if d.name?ends_with(extn) || d.name?ends_with(extnx)>
  • Transform to PDF diff --git a/config/alfresco/templates/webscripts/org/alfresco/office/myAlfresco.get.html.ftl b/config/alfresco/templates/webscripts/org/alfresco/office/myAlfresco.get.html.ftl index cd74faa0e9..b5d2dc34a6 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/office/myAlfresco.get.html.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/office/myAlfresco.get.html.ftl @@ -1,6 +1,6 @@ <#assign doc_actions="${url.serviceContext}/office/docActions"> <#if args.p?exists><#assign path=args.p><#else><#assign path=""> -<#if args.e?exists><#assign extn=args.e><#else><#assign extn="doc"> +<#if args.e?exists><#assign extn=args.e><#else><#assign extn="doc"><#assign extnx=extn+"x"> <#if args.n?exists><#assign nav=args.n><#else><#assign nav=""> <#-- resolve the path (from Company Home) into a node --> <#if companyhome.childByNamePath[path]?exists> @@ -46,7 +46,7 @@ ${child.name} - <#if child.name?ends_with(extn)> + <#if child.name?ends_with(extn) || child.name?ends_with(extnx)> ${child.name}
    <#else> ${child.name}
    diff --git a/config/alfresco/templates/webscripts/org/alfresco/office/myTasksDetail.get.html.ftl b/config/alfresco/templates/webscripts/org/alfresco/office/myTasksDetail.get.html.ftl index 4529089fcf..5d36b66749 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/office/myTasksDetail.get.html.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/office/myTasksDetail.get.html.ftl @@ -1,4 +1,4 @@ -<#if args.e?exists><#assign extn=args.e><#else><#assign extn="doc"> +<#if args.e?exists><#assign extn=args.e><#else><#assign extn="doc"><#assign extnx=extn+"x"> <#if args.t?exists> <#assign taskid = args.t> <#if taskid != ""> @@ -45,7 +45,7 @@ <#list task.packageResources as res> <#if res.isDocument> - <#if res.name?ends_with(extn)> + <#if child.name?ends_with(extn) || child.name?ends_with(extnx)> <#assign relativePath = (res.displayPath?substring(companyhome.name?length+1) + '/' + res.name)?url?replace('%2F', '/')?replace('\'', '\\\'') /> ${res.name} diff --git a/config/alfresco/templates/webscripts/org/alfresco/office/navigation.get.html.ftl b/config/alfresco/templates/webscripts/org/alfresco/office/navigation.get.html.ftl index f96678e6ad..c304c69b75 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/office/navigation.get.html.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/office/navigation.get.html.ftl @@ -1,5 +1,5 @@ <#assign doc_actions="${url.serviceContext}/office/docActions"> -<#if args.e?exists><#assign extn=args.e><#else><#assign extn="doc"> +<#if args.e?exists><#assign extn=args.e><#else><#assign extn="doc"><#assign extnx=extn+"x"> <#if args.n?exists><#assign nav=args.n><#else><#assign nav=""> <#assign chLen=companyhome.name?length> <#if node.isDocument> @@ -137,14 +137,14 @@ <#assign relativePath = (child.displayPath?substring(chLen+1) + '/' + child.name)?url?replace('%2F', '/')?replace('\'', '\\\'') />
    - <#if child.name?ends_with(extn)> + <#if child.name?ends_with(extn) || child.name?ends_with(extnx)> Open ${child.name} <#else> Open ${child.name} - <#if child.name?ends_with(extn)> + <#if child.name?ends_with(extn) || child.name?ends_with(extnx)> ${child.name} <#else> ${child.name} diff --git a/config/alfresco/templates/webscripts/org/alfresco/office/search.get.html.ftl b/config/alfresco/templates/webscripts/org/alfresco/office/search.get.html.ftl index 2897f1b888..acd3b73068 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/office/search.get.html.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/office/search.get.html.ftl @@ -1,6 +1,6 @@ <#if args.p?exists><#assign path=args.p><#else><#assign path=""> <#if args.n?exists><#assign node=args.n><#else><#assign node=companyhome> -<#if args.e?exists><#assign extn=args.e><#else><#assign extn="doc"> +<#if args.e?exists><#assign extn=args.e><#else><#assign extn="doc"><#assign extnx=extn+"x"> <#if args.n?exists><#assign nav=args.n><#else><#assign nav=""> <#assign searchCommand="OfficeSearch.runSearch('${url.serviceContext}/office/searchResults', '${path}&e=${extn}')" > <#if (args.searchagain?exists)><#assign searchText=args.searchagain><#else><#assign searchText=""> diff --git a/config/alfresco/templates/webscripts/org/alfresco/office/searchResults.get.html.ftl b/config/alfresco/templates/webscripts/org/alfresco/office/searchResults.get.html.ftl index 9eeff0184b..890bfc9201 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/office/searchResults.get.html.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/office/searchResults.get.html.ftl @@ -1,4 +1,4 @@ -<#if args.e?exists><#assign extn=args.e><#else><#assign extn="doc"> +<#if args.e?exists><#assign extn=args.e><#else><#assign extn="doc"><#assign extnx=extn+"x"> <#if args.search?exists> <#assign searchString = args.search> <#if searchString != ""> @@ -28,7 +28,7 @@ <#list results as child> <#assign resCount=resCount + 1> <#if child.isDocument> - <#if child.name?ends_with(extn)> + <#if child.name?ends_with(extn) || child.name?ends_with(extnx)> <#assign relativePath = (child.displayPath?substring(companyhome.name?length+1) + '/' + child.name)?url?replace('%2F', '/')?replace('\'', '\\\'') /> <#assign openURL = "#"> <#assign hrefExtra = " onClick=\"window.external.openDocument('${relativePath}')\""> diff --git a/source/java/org/alfresco/web/bean/wcm/AVMWorkflowUtil.java b/source/java/org/alfresco/web/bean/wcm/AVMWorkflowUtil.java index 9f76e3e46e..ece99433cd 100644 --- a/source/java/org/alfresco/web/bean/wcm/AVMWorkflowUtil.java +++ b/source/java/org/alfresco/web/bean/wcm/AVMWorkflowUtil.java @@ -60,6 +60,7 @@ import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.security.AuthorityService; import org.alfresco.service.cmr.security.PermissionService; import org.alfresco.service.cmr.workflow.WorkflowDefinition; +import org.alfresco.service.cmr.workflow.WorkflowException; import org.alfresco.service.cmr.workflow.WorkflowPath; import org.alfresco.service.cmr.workflow.WorkflowService; import org.alfresco.service.namespace.QName; @@ -110,7 +111,17 @@ public class AVMWorkflowUtil extends WorkflowUtil diffs.add(new AVMDifference(-1, parentPath, -1, AVMUtil.getCorrespondingPath(parentPath, workflowMainStoreName), AVMDifference.NEWER)); - avmSubmittedAspect.markSubmitted(-1, parentPath, path.instance.id); + try + { + avmSubmittedAspect.markSubmitted(-1, parentPath, path.instance.id); + } + catch (final WorkflowException alreadySubmitted) + { + if (! path.instance.id.equals(avmSubmittedAspect.getWorkflowInstance(-1, parentPath))) + { + throw alreadySubmitted; + } + } directoriesAdded.add(parentPath); parentPath = AVMNodeConverter.SplitBase(parentPath)[0]; } diff --git a/source/java/org/alfresco/web/bean/workflow/ManageTaskDialog.java b/source/java/org/alfresco/web/bean/workflow/ManageTaskDialog.java index 569a93d423..1427f798fe 100644 --- a/source/java/org/alfresco/web/bean/workflow/ManageTaskDialog.java +++ b/source/java/org/alfresco/web/bean/workflow/ManageTaskDialog.java @@ -41,6 +41,7 @@ import org.alfresco.model.ContentModel; import org.alfresco.model.WCMModel; import org.alfresco.repo.avm.AVMNodeConverter; import org.alfresco.repo.workflow.WorkflowModel; +import org.alfresco.service.cmr.avm.AVMNodeDescriptor; import org.alfresco.service.cmr.avm.AVMService; import org.alfresco.service.cmr.avmsync.AVMDifference; import org.alfresco.service.cmr.avmsync.AVMSyncService; @@ -67,11 +68,13 @@ import org.alfresco.web.bean.repository.Repository; import org.alfresco.web.bean.repository.TransientNode; import org.alfresco.web.bean.repository.User; import org.alfresco.web.bean.wcm.AVMNode; +import org.alfresco.web.bean.wcm.AVMUtil; import org.alfresco.web.bean.wcm.AVMWorkflowUtil; import org.alfresco.web.config.DialogsConfigElement.DialogButtonConfig; import org.alfresco.web.ui.common.Utils; import org.alfresco.web.ui.common.component.UIActionLink; import org.alfresco.web.ui.common.component.data.UIRichList; +import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -816,6 +819,14 @@ public class ManageTaskDialog extends BaseDialogBean node.addPropertyResolver("url", this.browseBean.resolverUrl); } this.resources.add(node); + if (node.isDirectory()) + { + for (final AVMNodeDescriptor d : + this.avmService.getDirectoryListingArray(node.getDescriptor(), true)) + { + this.addAVMNode(new AVMNode(d)); + } + } } protected void createAndAddNode(NodeRef nodeRef)