From 6c3b7b8cd6e7588e47d212f5910d7a72e6fccc39 Mon Sep 17 00:00:00 2001 From: Derek Hulley Date: Tue, 13 Oct 2009 20:08:41 +0000 Subject: [PATCH] Merged V3.2 to HEAD 15897: Merged V3.1 to V3.2 14485: (RECORD ONLY) ETHREEOH-1937 14915: (RECORD ONLY) Fix for ETHREEOH-2011: chaining-authentication-context.xml.sample 14954: (RECORD ONLY) Fix merge error 14966: (RECORD ONLY) Merged V2.2 to V3.1 14131: *RECORD ONLY* 14605: Merged HEAD to V2.2 (workaround for ETWOTWO-1137) 14368: Fix for ETHREEOH-1936 14607: Fixed NPE in TextMiningContentTransformer: Lead-up to fix for ETWOTWO-1174 14992: (RECORD ONLY) Updated svn:mergeinfo for V2.1-A 15080: Applied suggested fix for ETHREEOH-2252: Emailed content created in wrong space 15131: Merged V2.1-A to V3.1 (ETHREEOH-2270) 13465: Fix for ADB-161 ACT 7870 - added 'xsd' to mimetype map. 15134: Merged V2.2 to V3.1 14332: (RECORD-ONLY) 14717: (RECORD-ONLY) 14745: (RECORD-ONLY) 14746: Fixed error relating to detection and clean-up of duplicate child associations 14759: Missed check-in: Set transactionService for post-transaction duplicate child assoc cleanup 14761: (RECORD-ONLY) 14885: (RECORD-ONLY) 14893: (RECORD-ONLY) 14903: (RECORD-ONLY) 15204: Fixed ETHREEOH-2303: FixNameCrcValuesPatch throws ConstraintViolationException during upgrade ... 15214: Fixed ETHREEOH-1861: Offline synchronization updates file content without any changes 15271: Applied patch fix: Imported users don't conform to case-sensitivity switch 15352: ETHREEOH-2322 15361: ETHREEOH-1112 15369: ETHREEOH-2448 15419: ETHREEOH-2479 15431: ETHREEOH-2520 and ETHREEOH-2521 15587: (RECORD ONLY) Moved Enterprise-only scripts to correct location 15616: Fix ETHREEOH-2581 - WCM layered folder - can't submit deleted file 15675: WCM fixes (ETHREEOH-2110 & ETHREEOH-2645) 15836: Check for null username in ContentUsage service getUserUsage() method 15840: (RECORD ONLY) Merged V3.2 to V3.1 14760: Fix for ALFCOM-586 - trims and ignores leading/trailing whitespace before validation in JSF client forms. 15841: Fixes for ETHREEOH-2702 and ETHREEOH-2687 15860: (RECORD ONLY) Added Oracle and MS SQL Server config 15891: Removed unused compiler directive ___________________________________________________________________ Modified: svn:mergeinfo Merged /alfresco/BRANCHES/DEV/BELARUS/ETHREEOH-2221:r14753 Merged /alfresco/BRANCHES/V2.1-A: lots Merged /alfresco/BRANCHES/V2.2:r14131,14332,14605,14607,14717,14745-14746,14759,14761,14885,14893,14903 Merged /alfresco/BRANCHES/V3.1:r14485,14915,14954,14966,14992,15080,15131,15134,15204,15214,15271,15352,15361,15369,15419,15431,15587,15616,15675,15818,15836,15840-15841,15860,15891 Merged /alfresco/BRANCHES/V3.2:r15897 git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@16886 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- config/alfresco/messages/webclient.properties | 1 + .../web-client-config-forum-actions.xml | 2 - .../alfresco/web/bean/admin/ImportDialog.java | 8 ++++ .../web/bean/clipboard/AVMClipboardItem.java | 27 ++++++++--- .../bean/clipboard/AbstractClipboardItem.java | 45 ++++++++++++++++++- .../clipboard/WorkspaceClipboardItem.java | 13 +++++- .../web/bean/content/AddContentDialog.java | 18 ++++++++ .../web/bean/content/CreateContentWizard.java | 21 +++++++++ .../alfresco/web/bean/wcm/EditFormWizard.java | 2 + .../web/bean/wcm/PromptForWebFormDialog.java | 43 +++++++++++++----- .../forms/RenderingEngineTemplateImpl.java | 29 +++++++++--- .../ui/common/component/UIGenericPicker.java | 3 +- source/web/jsp/actions/actions.jsp | 12 ++--- source/web/jsp/content/add-content-dialog.jsp | 2 +- .../content/create-content-wizard/details.jsp | 2 +- source/web/jsp/forums/create-dialog.jsp | 2 +- source/web/jsp/forums/create-topic-dialog.jsp | 2 +- source/web/jsp/ml/add-translation-dialog.jsp | 2 +- source/web/jsp/rules/composite-condition.jsp | 12 ++--- source/web/jsp/rules/conditions.jsp | 12 ++--- source/web/jsp/spaces/create-space-dialog.jsp | 2 +- .../spaces/create-space-wizard/details.jsp | 2 +- source/web/jsp/wcm/add-content-dialog.jsp | 2 +- source/web/jsp/wcm/create-folder-dialog.jsp | 2 +- .../wcm/create-web-content-wizard/details.jsp | 2 +- source/web/jsp/wcm/create-webapp.jsp | 2 +- .../jsp/wcm/create-website-wizard/details.jsp | 2 +- source/web/scripts/office/office_addin.js | 31 ++++++++++++- 28 files changed, 241 insertions(+), 62 deletions(-) diff --git a/config/alfresco/messages/webclient.properties b/config/alfresco/messages/webclient.properties index 75bdfb5f0d..4815d64beb 100644 --- a/config/alfresco/messages/webclient.properties +++ b/config/alfresco/messages/webclient.properties @@ -1923,6 +1923,7 @@ error_delete_rule=Unable to delete Rule due to system error: error_actions=Failed to run Actions due to error: {0} error_rule=Failed to create Rule due to error: {0} error_space=Failed to create new space due to error: {0} +error_content=Failed to create content due to error: {0} error_person=Failed to create Person due to error: {0} error_delete_user=Failed to delete User due to error: {0} error_remove_user=Failed to remove User due to error: {0} diff --git a/config/alfresco/web-client-config-forum-actions.xml b/config/alfresco/web-client-config-forum-actions.xml index 3495e43900..be76f86bf7 100644 --- a/config/alfresco/web-client-config-forum-actions.xml +++ b/config/alfresco/web-client-config-forum-actions.xml @@ -260,7 +260,6 @@ - @@ -298,7 +297,6 @@ - diff --git a/source/java/org/alfresco/web/bean/admin/ImportDialog.java b/source/java/org/alfresco/web/bean/admin/ImportDialog.java index 901062a9ef..e63bbd451d 100644 --- a/source/java/org/alfresco/web/bean/admin/ImportDialog.java +++ b/source/java/org/alfresco/web/bean/admin/ImportDialog.java @@ -218,6 +218,14 @@ public class ImportDialog extends BaseDialogBean return this.fileName; } + /** + * @param fileName The name of the file + */ + public void setFileName(String fileName) + { + //do nothing required for JSF workflow + } + /** * Returns the encoding to use for the export * diff --git a/source/java/org/alfresco/web/bean/clipboard/AVMClipboardItem.java b/source/java/org/alfresco/web/bean/clipboard/AVMClipboardItem.java index 950ddcd5f3..2cf5cbcc6d 100644 --- a/source/java/org/alfresco/web/bean/clipboard/AVMClipboardItem.java +++ b/source/java/org/alfresco/web/bean/clipboard/AVMClipboardItem.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005-2007 Alfresco Software Limited. + * Copyright (C) 2005-2009 Alfresco Software Limited. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -24,16 +24,20 @@ */ package org.alfresco.web.bean.clipboard; +import java.util.Map; + import javax.faces.context.FacesContext; import javax.transaction.UserTransaction; +import org.alfresco.model.WCMAppModel; import org.alfresco.repo.avm.AVMNodeConverter; import org.alfresco.service.cmr.avm.AVMExistsException; +import org.alfresco.service.cmr.avm.AVMNodeDescriptor; import org.alfresco.service.cmr.avm.AVMService; import org.alfresco.service.cmr.model.FileExistsException; -import org.alfresco.service.cmr.model.FileFolderService; import org.alfresco.service.cmr.repository.CrossRepositoryCopyService; import org.alfresco.service.cmr.repository.NodeRef; +import org.alfresco.service.cmr.repository.StoreRef; import org.alfresco.web.app.Application; import org.alfresco.web.app.servlet.FacesHelper; import org.alfresco.web.bean.NavigationBean; @@ -98,8 +102,7 @@ public class AVMClipboardItem extends AbstractClipboardItem NodeRef destRef = AVMNodeConverter.ToNodeRef(-1, destPath); String sourcePath = AVMNodeConverter.ToAVMVersionPath(getNodeRef()).getSecond(); - FileFolderService fileFolderService = getServiceRegistry().getFileFolderService(); - AVMService avmService = getServiceRegistry().getAVMLockingAwareService(); + //FileFolderService fileFolderService = getServiceRegistry().getFileFolderService(); // initial name to attempt the copy of the item with String name = getName(); @@ -131,7 +134,11 @@ public class AVMClipboardItem extends AbstractClipboardItem getNodeRef(), destRef, name);*/ - avmService.copy(-1, sourcePath, destPath, name); + getAvmService().copy(-1, sourcePath, destPath, name); + + // ETHREEOH-2110 + AVMNodeDescriptor desc = getAvmService().lookup(-1, destPath + "/" + name); + recursiveFormCheck(desc); // if we get here without an exception, the clipboard copy operation was successful operationComplete = true; @@ -147,7 +154,7 @@ public class AVMClipboardItem extends AbstractClipboardItem getNodeRef(), destRef, name);*/ - avmService.rename(AVMNodeConverter.SplitBase(sourcePath)[0], getName(), + getAvmService().rename(AVMNodeConverter.SplitBase(sourcePath)[0], getName(), destPath, name); // if we get here without an exception, the clipboard move operation was successful @@ -221,6 +228,14 @@ public class AVMClipboardItem extends AbstractClipboardItem // inter-store copy operation crossRepoCopyService.copy(getNodeRef(), destRef, name); + if (destRef.getStoreRef().getProtocol().equals(StoreRef.PROTOCOL_AVM)) + { + // ETHREEOH-2110 + String destPath = AVMNodeConverter.ToAVMVersionPath(destRef).getSecond(); + AVMNodeDescriptor desc = getAvmService().lookup(-1, destPath + "/" + name); + recursiveFormCheck(desc); + } + // if we get here without an exception, the clipboard copy operation was successful operationComplete = true; } diff --git a/source/java/org/alfresco/web/bean/clipboard/AbstractClipboardItem.java b/source/java/org/alfresco/web/bean/clipboard/AbstractClipboardItem.java index 7fe0288f7c..218aabdc04 100644 --- a/source/java/org/alfresco/web/bean/clipboard/AbstractClipboardItem.java +++ b/source/java/org/alfresco/web/bean/clipboard/AbstractClipboardItem.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005-2007 Alfresco Software Limited. + * Copyright (C) 2005-2009 Alfresco Software Limited. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -25,13 +25,17 @@ package org.alfresco.web.bean.clipboard; import java.util.List; +import java.util.Map; import javax.faces.context.FacesContext; import org.alfresco.model.ApplicationModel; import org.alfresco.model.ContentModel; +import org.alfresco.model.WCMAppModel; import org.alfresco.repo.search.QueryParameterDefImpl; import org.alfresco.service.ServiceRegistry; +import org.alfresco.service.cmr.avm.AVMNodeDescriptor; +import org.alfresco.service.cmr.avm.AVMService; import org.alfresco.service.cmr.dictionary.DataTypeDefinition; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.search.QueryParameterDefinition; @@ -64,6 +68,22 @@ abstract class AbstractClipboardItem implements ClipboardItem private QName type; private String icon; + transient protected AVMService avmService; + + public void setAvmService(AVMService avmService) + { + this.avmService = avmService; + } + + protected AVMService getAvmService() + { + if (avmService == null) + { + avmService = getServiceRegistry().getAVMLockingAwareService(); + } + return avmService; + } + /** * Constructor @@ -173,4 +193,27 @@ abstract class AbstractClipboardItem implements ClipboardItem return (nodeRefs.size() != 0); } + protected void recursiveFormCheck(AVMNodeDescriptor desc) + { + if (desc.isFile()) + { + String filePath = desc.getPath(); + if (avmService.hasAspect(-1, filePath, WCMAppModel.ASPECT_FORM_INSTANCE_DATA)) + { + avmService.removeAspect(filePath, WCMAppModel.ASPECT_FORM_INSTANCE_DATA); + } + if (avmService.hasAspect(-1, filePath, WCMAppModel.ASPECT_RENDITION)) + { + avmService.removeAspect(filePath, WCMAppModel.ASPECT_RENDITION); + } + } + else + { + Map listing = getAvmService().getDirectoryListing(desc); + for (Map.Entry entry : listing.entrySet()) + { + recursiveFormCheck(entry.getValue()); + } + } + } } diff --git a/source/java/org/alfresco/web/bean/clipboard/WorkspaceClipboardItem.java b/source/java/org/alfresco/web/bean/clipboard/WorkspaceClipboardItem.java index ea247a95e2..0774c89f6d 100644 --- a/source/java/org/alfresco/web/bean/clipboard/WorkspaceClipboardItem.java +++ b/source/java/org/alfresco/web/bean/clipboard/WorkspaceClipboardItem.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005-2007 Alfresco Software Limited. + * Copyright (C) 2005-2009 Alfresco Software Limited. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -34,6 +34,7 @@ import javax.transaction.UserTransaction; import org.alfresco.model.ApplicationModel; import org.alfresco.model.ContentModel; import org.alfresco.repo.avm.AVMNodeConverter; +import org.alfresco.service.cmr.avm.AVMNodeDescriptor; import org.alfresco.service.cmr.dictionary.DictionaryService; import org.alfresco.service.cmr.ml.MultilingualContentService; import org.alfresco.service.cmr.model.FileExistsException; @@ -43,6 +44,7 @@ import org.alfresco.service.cmr.repository.CopyService; import org.alfresco.service.cmr.repository.CrossRepositoryCopyService; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; +import org.alfresco.service.cmr.repository.StoreRef; import org.alfresco.service.namespace.QName; import org.alfresco.web.app.Application; import org.alfresco.web.app.servlet.FacesHelper; @@ -345,7 +347,14 @@ public class WorkspaceClipboardItem extends AbstractClipboardItem // inter-store copy operation crossRepoCopyService.copy(getNodeRef(), destRef, name); - + + if (destRef.getStoreRef().getProtocol().equals(StoreRef.PROTOCOL_AVM)) + { + // ETHREEOH-2110 + AVMNodeDescriptor desc = getAvmService().lookup(-1, destPath + "/" + name); + recursiveFormCheck(desc); + } + // if we get here without an exception, the clipboard copy operation was successful operationComplete = true; } diff --git a/source/java/org/alfresco/web/bean/content/AddContentDialog.java b/source/java/org/alfresco/web/bean/content/AddContentDialog.java index a779fddd5c..0d975b2bd9 100644 --- a/source/java/org/alfresco/web/bean/content/AddContentDialog.java +++ b/source/java/org/alfresco/web/bean/content/AddContentDialog.java @@ -44,6 +44,7 @@ import org.alfresco.config.ConfigService; import org.alfresco.model.ContentModel; import org.alfresco.repo.content.MimetypeMap; import org.alfresco.repo.content.filestore.FileContentReader; +import org.alfresco.service.cmr.model.FileExistsException; import org.alfresco.service.cmr.repository.ContentReader; import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter; import org.alfresco.service.namespace.QName; @@ -316,5 +317,22 @@ public class AddContentDialog extends BaseContentWizard return Application.getMessage(FacesContext.getCurrentInstance(), MSG_OK); } + + @Override + protected String formatErrorMessage(Throwable exception) + { + if (exception instanceof FileExistsException) + { + return MessageFormat.format(Application.getMessage( + FacesContext.getCurrentInstance(), Repository.ERROR_EXISTS), + ((FileExistsException)exception).getName()); + } + else + { + return MessageFormat.format(Application.getMessage( + FacesContext.getCurrentInstance(), "error_content"), + exception.getMessage()); + } + } } diff --git a/source/java/org/alfresco/web/bean/content/CreateContentWizard.java b/source/java/org/alfresco/web/bean/content/CreateContentWizard.java index 5a6b074e57..6dd4992e98 100644 --- a/source/java/org/alfresco/web/bean/content/CreateContentWizard.java +++ b/source/java/org/alfresco/web/bean/content/CreateContentWizard.java @@ -25,6 +25,7 @@ package org.alfresco.web.bean.content; import java.io.Serializable; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -41,11 +42,13 @@ import org.alfresco.config.ConfigElement; import org.alfresco.config.ConfigService; import org.alfresco.model.WCMAppModel; import org.alfresco.repo.content.MimetypeMap; +import org.alfresco.service.cmr.model.FileExistsException; import org.alfresco.service.namespace.QName; import org.alfresco.web.app.AlfrescoNavigationHandler; import org.alfresco.web.app.Application; import org.alfresco.web.app.servlet.FacesHelper; import org.alfresco.web.bean.repository.Node; +import org.alfresco.web.bean.repository.Repository; import org.alfresco.web.data.IDataContainer; import org.alfresco.web.data.QuickSort; import org.alfresco.web.forms.Form; @@ -391,4 +394,22 @@ public class CreateContentWizard extends BaseContentWizard // clear the content as HTML is not compatible with the plain text box etc. this.content = null; } + + @Override + protected String formatErrorMessage(Throwable exception) + { + if (exception instanceof FileExistsException) + { + return MessageFormat.format(Application.getMessage( + FacesContext.getCurrentInstance(), Repository.ERROR_EXISTS), + ((FileExistsException)exception).getName()); + } + else + { + return MessageFormat.format(Application.getMessage( + FacesContext.getCurrentInstance(), "error_content"), + exception.getMessage()); + } + } + } diff --git a/source/java/org/alfresco/web/bean/wcm/EditFormWizard.java b/source/java/org/alfresco/web/bean/wcm/EditFormWizard.java index d25ecd8c7e..d95d5785d2 100644 --- a/source/java/org/alfresco/web/bean/wcm/EditFormWizard.java +++ b/source/java/org/alfresco/web/bean/wcm/EditFormWizard.java @@ -244,6 +244,8 @@ public class EditFormWizard assert retd != null; assert retd.getNodeRef() != null; + this.getNodeService().removeAssociation(formNodeRef, retd.getNodeRef(), + WCMAppModel.ASSOC_RENDERING_ENGINE_TEMPLATES); this.getNodeService().removeChild(formNodeRef, retd.getNodeRef()); this.removeRenderingEngineTemplateFromWebProjects(formNodeRef, retd); diff --git a/source/java/org/alfresco/web/bean/wcm/PromptForWebFormDialog.java b/source/java/org/alfresco/web/bean/wcm/PromptForWebFormDialog.java index 01c54195e9..52eb858efb 100644 --- a/source/java/org/alfresco/web/bean/wcm/PromptForWebFormDialog.java +++ b/source/java/org/alfresco/web/bean/wcm/PromptForWebFormDialog.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005-2007 Alfresco Software Limited. + * Copyright (C) 2005-2009 Alfresco Software Limited. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -24,8 +24,10 @@ */ package org.alfresco.web.bean.wcm; +import java.io.Serializable; import java.text.MessageFormat; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -36,6 +38,7 @@ import org.alfresco.model.WCMAppModel; import org.alfresco.repo.domain.PropertyValue; import org.alfresco.service.cmr.avm.AVMService; import org.alfresco.service.cmr.dictionary.DataTypeDefinition; +import org.alfresco.service.namespace.QName; import org.alfresco.web.app.AlfrescoNavigationHandler; import org.alfresco.web.app.Application; import org.alfresco.web.app.servlet.FacesHelper; @@ -57,7 +60,7 @@ public class PromptForWebFormDialog extends BaseDialogBean { private static final long serialVersionUID = 8062203927131257236L; - private static final Log LOGGER = LogFactory.getLog(PromptForWebFormDialog.class); + private static final Log logger = LogFactory.getLog(PromptForWebFormDialog.class); /** AVM service reference */ transient private AVMService avmService; @@ -152,8 +155,12 @@ public class PromptForWebFormDialog extends BaseDialogBean { final Form f = fid.getForm(); this.formName = f.getName(); - // strange case... this should throw an exception if we're here... - LOGGER.debug(avmPath + ".getForm() did not throw a form not found. why are we here?"); + + if (logger.isDebugEnabled()) + { + // strange case... this should throw an exception if we're here... + logger.debug(avmPath + ".getForm() did not throw a form not found. why are we here?"); + } } catch (final FormNotFoundException fnfe) { @@ -178,19 +185,31 @@ public class PromptForWebFormDialog extends BaseDialogBean protected String finishImpl(final FacesContext context, String outcome) throws Exception { - LOGGER.debug("configuring " + this.getAvmNode().getPath() + - " to use form " + this.getFormName()); - - this.getAvmService().setNodeProperty(this.getAvmNode().getPath(), - WCMAppModel.PROP_PARENT_FORM_NAME, - new PropertyValue(DataTypeDefinition.TEXT, this.getFormName())); - + + if (logger.isDebugEnabled()) + { + logger.debug("configuring " + this.getAvmNode().getPath() + + " to use form " + this.getFormName()); + } + if (!this.getAvmService().hasAspect(this.getAvmNode().getVersion(), this.getAvmNode().getPath(), WCMAppModel.ASPECT_FORM_INSTANCE_DATA)) { - this.getAvmService().addAspect(this.getAvmNode().getPath(), WCMAppModel.ASPECT_FORM_INSTANCE_DATA); + String cwd = AVMUtil.getCorrespondingPathInPreviewStore(this.avmBrowseBean.getCurrentPath()); + + Map props = new HashMap(1, 1.0f); + props.put(WCMAppModel.PROP_PARENT_FORM_NAME, this.getFormName()); + props.put(WCMAppModel.PROP_ORIGINAL_PARENT_PATH, cwd); + this.getNodeService().addAspect(this.getAvmNode().getNodeRef(), WCMAppModel.ASPECT_FORM_INSTANCE_DATA, props); } + else + { + this.getAvmService().setNodeProperty(this.getAvmNode().getPath(), + WCMAppModel.PROP_PARENT_FORM_NAME, + new PropertyValue(DataTypeDefinition.TEXT, this.getFormName())); + } + return outcome; } diff --git a/source/java/org/alfresco/web/forms/RenderingEngineTemplateImpl.java b/source/java/org/alfresco/web/forms/RenderingEngineTemplateImpl.java index 0eded318cb..c5c88b5c54 100644 --- a/source/java/org/alfresco/web/forms/RenderingEngineTemplateImpl.java +++ b/source/java/org/alfresco/web/forms/RenderingEngineTemplateImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005-2007 Alfresco Software Limited. + * Copyright (C) 2005-2009 Alfresco Software Limited. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -283,8 +283,11 @@ public class RenderingEngineTemplateImpl RenderingEngine.RenderingException { final AVMService avmService = this.getServiceRegistry().getAVMLockingAwareService(); - final boolean isRegenerate = avmService.lookup(-1, renditionAvmPath) != null; - if (!isRegenerate) + + boolean isRegenerate = true; + boolean exists = avmService.lookup(-1, renditionAvmPath) != null; + + if (! exists) { final String parentAVMPath = AVMNodeConverter.SplitBase(renditionAvmPath)[0]; AVMUtil.makeAllDirectories(parentAVMPath); @@ -292,18 +295,30 @@ public class RenderingEngineTemplateImpl AVMNodeConverter.SplitBase(renditionAvmPath)[1]); if (LOGGER.isDebugEnabled()) + { LOGGER.debug("Created file node for file: " + renditionAvmPath); - - avmService.addAspect(renditionAvmPath, WCMAppModel.ASPECT_FORM_INSTANCE_DATA); + } + avmService.addAspect(renditionAvmPath, ContentModel.ASPECT_TITLED); avmService.addAspect(renditionAvmPath, WCMAppModel.ASPECT_RENDITION); + + isRegenerate = false; } - + else + { + // ETHREEOH-2110 + if (! avmService.hasAspect(-1, renditionAvmPath, WCMAppModel.ASPECT_RENDITION)) + { + avmService.addAspect(renditionAvmPath, WCMAppModel.ASPECT_RENDITION); + isRegenerate = false; + } + } + final Rendition result = new RenditionImpl(-1, renditionAvmPath, this.getFormsService()); this.render(formInstanceData, result); - + if (!isRegenerate) { final PropertyValue pv = diff --git a/source/java/org/alfresco/web/ui/common/component/UIGenericPicker.java b/source/java/org/alfresco/web/ui/common/component/UIGenericPicker.java index c5216ab8cc..b9de6648b3 100644 --- a/source/java/org/alfresco/web/ui/common/component/UIGenericPicker.java +++ b/source/java/org/alfresco/web/ui/common/component/UIGenericPicker.java @@ -371,7 +371,8 @@ public class UIGenericPicker extends UICommand // results list row out.write(""); - out.write("