DM Forms - fix web forms with inline URIs (eg. company press release sample)

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@7527 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Jan Vonka
2007-12-04 14:32:21 +00:00
parent 7fa5e1e028
commit b2b34375a8
3 changed files with 42 additions and 19 deletions

View File

@@ -26,7 +26,7 @@ import java.io.IOException;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.workflow.WorkflowDefinition; import org.alfresco.service.cmr.workflow.WorkflowDefinition;
import org.alfresco.service.namespace.QName; import org.alfresco.service.namespace.QName;
import org.w3c.dom.Document; import org.w3c.dom.Document;
@@ -113,4 +113,9 @@ public interface Form
* @return the rendering engine template or <tt>null</tt> if not found. * @return the rendering engine template or <tt>null</tt> if not found.
*/ */
public RenderingEngineTemplate getRenderingEngineTemplate(final String name); public RenderingEngineTemplate getRenderingEngineTemplate(final String name);
/**
* @return true if WCM Form, false if ECM form
*/
public boolean isWebForm();
} }

View File

@@ -23,17 +23,18 @@
*/ */
package org.alfresco.web.forms; package org.alfresco.web.forms;
import freemarker.ext.dom.NodeModel; import java.io.IOException;
import freemarker.template.SimpleDate; import java.io.Serializable;
import freemarker.template.SimpleHash; import java.util.ArrayList;
import freemarker.template.SimpleScalar; import java.util.Collections;
import freemarker.template.TemplateHashModel; import java.util.Date;
import freemarker.template.TemplateModel; import java.util.HashMap;
import freemarker.template.TemplateModelException; import java.util.LinkedList;
import java.io.*; import java.util.List;
import java.net.URI; import java.util.Map;
import java.util.*;
import javax.faces.context.FacesContext; import javax.faces.context.FacesContext;
import org.alfresco.error.AlfrescoRuntimeException; import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.model.ContentModel; import org.alfresco.model.ContentModel;
import org.alfresco.model.WCMAppModel; import org.alfresco.model.WCMAppModel;
@@ -41,7 +42,6 @@ import org.alfresco.repo.avm.AVMNodeConverter;
import org.alfresco.service.ServiceRegistry; import org.alfresco.service.ServiceRegistry;
import org.alfresco.service.cmr.repository.AssociationRef; import org.alfresco.service.cmr.repository.AssociationRef;
import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.ContentService;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.repository.TemplateException; import org.alfresco.service.cmr.repository.TemplateException;
@@ -56,9 +56,13 @@ import org.alfresco.web.bean.wcm.AVMWorkflowUtil;
import org.alfresco.web.forms.xforms.XFormsProcessor; import org.alfresco.web.forms.xforms.XFormsProcessor;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.w3c.dom.*; import org.w3c.dom.Document;
import org.xml.sax.SAXException; import org.xml.sax.SAXException;
import freemarker.ext.dom.NodeModel;
import freemarker.template.SimpleDate;
import freemarker.template.SimpleHash;
public class FormImpl public class FormImpl
implements Form implements Form
{ {
@@ -278,6 +282,18 @@ public class FormImpl
{ {
return this.folderNodeRef; return this.folderNodeRef;
} }
public boolean isWebForm()
{
boolean isWebForm = true;
NodeService nodeService = this.getServiceRegistry().getNodeService();
if (nodeService.getPrimaryParent(this.folderNodeRef).getParentRef().equals(this.formsService.getContentFormsNodeRef()))
{
// ECM form
isWebForm = false;
}
return isWebForm;
}
public int hashCode() public int hashCode()
{ {

View File

@@ -657,14 +657,16 @@ public class XFormsBean
private Document getXFormsDocument() private Document getXFormsDocument()
throws FormBuilderException throws FormBuilderException
{ {
// TODO - need better way to to determine if WCM or ECM context, or earlier ... String path = null;
final String path = this.getCurrentPath(); if (this.xformsSession.form.isWebForm())
if (path == null)
{ {
this.getCurrentAVMPath(); path = this.getCurrentAVMPath();
} }
else
{
path = this.getCurrentPath();
}
if (LOGGER.isDebugEnabled()) if (LOGGER.isDebugEnabled())
{ {
LOGGER.debug("building xform for schema " + this.xformsSession.form.getName() + LOGGER.debug("building xform for schema " + this.xformsSession.form.getName() +