From b9d8bb4a515e043eaa1b55ddadefdaf05a3e09c9 Mon Sep 17 00:00:00 2001 From: Jan Vonka Date: Thu, 22 Nov 2007 17:31:56 +0000 Subject: [PATCH] DM Forms - fix create/edit web project (when listing web forms) and UI tweaks for DM forms git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@7425 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../web/bean/content/CreateContentWizard.java | 25 ++++++++-- .../web/bean/content/EditContentWizard.java | 50 ------------------- .../web/bean/wcm/CreateFormWizard.java | 27 +++++++--- .../web/bean/wcm/CreateWebsiteWizard.java | 2 +- .../alfresco/web/bean/wcm/EditFormWizard.java | 11 ++-- .../content/create-content-wizard/details.jsp | 18 ++++++- .../jsp/wcm/create-form-wizard/details.jsp | 16 +++--- .../wcm/create-form-wizard/form-summary.jsp | 1 - 8 files changed, 74 insertions(+), 76 deletions(-) diff --git a/source/java/org/alfresco/web/bean/content/CreateContentWizard.java b/source/java/org/alfresco/web/bean/content/CreateContentWizard.java index 606310c86d..a005ca8a6b 100644 --- a/source/java/org/alfresco/web/bean/content/CreateContentWizard.java +++ b/source/java/org/alfresco/web/bean/content/CreateContentWizard.java @@ -95,8 +95,7 @@ public class CreateContentWizard extends BaseContentWizard { this.content = XMLUtil.toString(this.instanceDataDocument, true); - // TODO - first step in wizard should auto-select XML when form is selected - this.mimeType = MimetypeMap.MIMETYPE_XML; // override mimetype (in case is not set to XML) + this.mimeType = MimetypeMap.MIMETYPE_XML; // belts & braces - override mimetype (in case is not set to XML) } String result = super.finish(); @@ -130,6 +129,7 @@ public class CreateContentWizard extends BaseContentWizard this.content = null; this.inlineEdit = true; this.mimeType = MimetypeMap.MIMETYPE_HTML; + this.formName = ""; this.instanceDataDocument = null; if (this.formProcessorSession != null) @@ -160,6 +160,24 @@ public class CreateContentWizard extends BaseContentWizard return disabled; } + + @Override + public boolean getFinishButtonDisabled() + { + boolean disabled = false; + int step = Application.getWizardManager().getCurrentStep(); + switch(step) + { + case 1: + { + disabled = (this.fileName == null || this.fileName.length() == 0); + break; + } + } + + return disabled; + } + @Override protected String doPostCommitProcessing(FacesContext context, String outcome) { @@ -257,8 +275,7 @@ public class CreateContentWizard extends BaseContentWizard if (this.instanceDataDocument != null) { - // TODO - first step in wizard should auto-select XML when form is selected - this.mimeType = MimetypeMap.MIMETYPE_XML; // override mimetype (in case it is not set to XML) + this.mimeType = MimetypeMap.MIMETYPE_XML; // belts & braces - override mimetype (in case is not set to XML) } // TODO: show first few lines of content here? diff --git a/source/java/org/alfresco/web/bean/content/EditContentWizard.java b/source/java/org/alfresco/web/bean/content/EditContentWizard.java index fb845d0a01..c17b3a79b2 100644 --- a/source/java/org/alfresco/web/bean/content/EditContentWizard.java +++ b/source/java/org/alfresco/web/bean/content/EditContentWizard.java @@ -24,78 +24,28 @@ */ package org.alfresco.web.bean.content; -import java.io.ByteArrayInputStream; import java.io.File; -import java.io.Serializable; -import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; import java.util.Map; -import java.util.ResourceBundle; import javax.faces.context.FacesContext; -import javax.faces.event.ValueChangeEvent; -import javax.faces.model.SelectItem; -import org.alfresco.config.Config; -import org.alfresco.config.ConfigElement; -import org.alfresco.config.ConfigService; -import org.alfresco.error.AlfrescoRuntimeException; import org.alfresco.model.ContentModel; import org.alfresco.model.WCMAppModel; -import org.alfresco.model.WCMWorkflowModel; -import org.alfresco.repo.avm.AVMNodeConverter; import org.alfresco.repo.content.MimetypeMap; -import org.alfresco.repo.workflow.WorkflowModel; -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.avm.locking.AVMLock; -import org.alfresco.service.cmr.avmsync.AVMDifference; -import org.alfresco.service.cmr.avmsync.AVMSyncService; -import org.alfresco.service.cmr.dictionary.DataTypeDefinition; import org.alfresco.service.cmr.repository.ContentWriter; -import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.NodeRef; -import org.alfresco.service.cmr.workflow.WorkflowDefinition; -import org.alfresco.service.cmr.workflow.WorkflowPath; -import org.alfresco.service.cmr.workflow.WorkflowService; -import org.alfresco.service.cmr.workflow.WorkflowTask; -import org.alfresco.service.cmr.workflow.WorkflowTaskState; -import org.alfresco.service.namespace.QName; -import org.alfresco.service.namespace.RegexQNamePattern; -import org.alfresco.web.app.Application; -import org.alfresco.web.bean.content.BaseContentWizard; 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; -import org.alfresco.web.forms.FormInstanceData; import org.alfresco.web.forms.FormNotFoundException; -import org.alfresco.web.forms.FormProcessor; -import org.alfresco.web.forms.FormsService; -import org.alfresco.web.forms.RenderingEngineTemplate; -import org.alfresco.web.forms.Rendition; -import org.alfresco.web.forms.XMLUtil; import org.alfresco.web.ui.common.Utils; -import org.alfresco.web.ui.common.component.UIListItem; -import org.alfresco.web.ui.wcm.component.UIUserSandboxes; -import org.apache.commons.io.FilenameUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.w3c.dom.Document; /** * Bean implementation for the "Edit Content Wizard" dialog */ public class EditContentWizard extends CreateContentWizard { - private static final Log LOGGER = LogFactory.getLog(EditContentWizard.class); - private NodeRef nodeRef; private Form form; diff --git a/source/java/org/alfresco/web/bean/wcm/CreateFormWizard.java b/source/java/org/alfresco/web/bean/wcm/CreateFormWizard.java index 4e17f5d702..cdf146d677 100644 --- a/source/java/org/alfresco/web/bean/wcm/CreateFormWizard.java +++ b/source/java/org/alfresco/web/bean/wcm/CreateFormWizard.java @@ -34,7 +34,6 @@ import java.util.List; import java.util.Map; import java.util.ResourceBundle; -import javax.faces.application.FacesMessage; import javax.faces.context.FacesContext; import javax.faces.event.ActionEvent; import javax.faces.event.ValueChangeEvent; @@ -237,15 +236,16 @@ public class CreateFormWizard // get the node ref of the node that will contain the content - // TODO - need better way to determine WCM vs ECM context - // can create form from CreateWebProject Wizard, or from Forms DataDictionary space or Web Forms DataDictionary space - NodeRef contentFormsNodeRef = this.formsService.getWebContentFormsNodeRef(); - if (this.navigator.getCurrentNode().getNodeRef().equals(this.formsService.getContentFormsNodeRef())) + NodeRef contentFormsNodeRef = null; + if (getIsWebForm() == true) + { + contentFormsNodeRef = this.formsService.getWebContentFormsNodeRef(); + } + else { - // ECM form, store in Forms DataDictionary space contentFormsNodeRef = this.formsService.getContentFormsNodeRef(); } - + final FileInfo folderInfo = this.fileFolderService.create(contentFormsNodeRef, this.getFormName(), @@ -1105,6 +1105,19 @@ public class CreateFormWizard return this.defaultWorkflowChoices; } + public boolean getIsWebForm() + { + boolean isWebForm = true; + // TODO - need better way to determine WCM vs ECM context + // can create form from CreateWebProject Wizard, or from Forms DataDictionary space or Web Forms DataDictionary space + if (this.navigator.getCurrentNode().getNodeRef().equals(this.formsService.getContentFormsNodeRef())) + { + // ECM form + isWebForm = false; + } + return isWebForm; + } + // ------------------------------------------------------------------------------ // Service Injection diff --git a/source/java/org/alfresco/web/bean/wcm/CreateWebsiteWizard.java b/source/java/org/alfresco/web/bean/wcm/CreateWebsiteWizard.java index 872e419795..0e0a08fe5a 100644 --- a/source/java/org/alfresco/web/bean/wcm/CreateWebsiteWizard.java +++ b/source/java/org/alfresco/web/bean/wcm/CreateWebsiteWizard.java @@ -471,7 +471,7 @@ public class CreateWebsiteWizard extends BaseWizardBean String name = (String)this.nodeService.getProperty(formRef, WCMAppModel.PROP_FORMNAME); try { - Form formImpl = this.formsService.getForm(name); + Form formImpl = this.formsService.getWebForm(name); FormWrapper form = new FormWrapper(formImpl); form.setTitle((String)this.nodeService.getProperty(formRef, ContentModel.PROP_TITLE)); form.setDescription((String)this.nodeService.getProperty(formRef, ContentModel.PROP_DESCRIPTION)); diff --git a/source/java/org/alfresco/web/bean/wcm/EditFormWizard.java b/source/java/org/alfresco/web/bean/wcm/EditFormWizard.java index b333816b64..01d3a0fac1 100644 --- a/source/java/org/alfresco/web/bean/wcm/EditFormWizard.java +++ b/source/java/org/alfresco/web/bean/wcm/EditFormWizard.java @@ -42,12 +42,9 @@ import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.workflow.WorkflowDefinition; import org.alfresco.service.namespace.QName; import org.alfresco.service.namespace.RegexQNamePattern; -import org.alfresco.web.app.AlfrescoNavigationHandler; -import org.alfresco.web.forms.xforms.FormBuilderException; -import org.alfresco.web.forms.xforms.SchemaUtil; import org.alfresco.web.forms.Form; -import org.alfresco.web.forms.FormsService; import org.alfresco.web.forms.RenderingEngineTemplate; +import org.alfresco.web.forms.xforms.SchemaUtil; import org.alfresco.web.ui.common.Utils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -137,7 +134,11 @@ public class EditFormWizard this.renderingEngineTemplates.add(data); } this.removedRenderingEngineTemplates = null; - this.associatedWebProjects = this.formsService.getAssociatedWebProjects(form); + + if (getIsWebForm() == true) + { + this.associatedWebProjects = this.formsService.getAssociatedWebProjects(form); + } } /** diff --git a/source/web/jsp/content/create-content-wizard/details.jsp b/source/web/jsp/content/create-content-wizard/details.jsp index 06ad0b6e03..bdc251385a 100644 --- a/source/web/jsp/content/create-content-wizard/details.jsp +++ b/source/web/jsp/content/create-content-wizard/details.jsp @@ -70,6 +70,19 @@ return true; } } + + function formChanged() + { + if (document.getElementById("wizard:wizard-body:form-name").value != "") + { + document.getElementById("wizard:wizard-body:mime-type").disabled = true; + document.getElementById("wizard:wizard-body:mime-type").value = "text/xml"; + } + else + { + document.getElementById("wizard:wizard-body:mime-type").disabled = false; + } + } @@ -95,14 +108,15 @@ - - + diff --git a/source/web/jsp/wcm/create-form-wizard/details.jsp b/source/web/jsp/wcm/create-form-wizard/details.jsp index 4b071393d3..4ec682d3b9 100644 --- a/source/web/jsp/wcm/create-form-wizard/details.jsp +++ b/source/web/jsp/wcm/create-form-wizard/details.jsp @@ -224,16 +224,20 @@ + alt="#{msg.required_field}" + rendered="#{WizardManager.bean.isWebForm == true}"/> + value="#{msg.output_path_pattern}:" + rendered="#{WizardManager.bean.isWebForm == true}"/> + disabled="#{WizardManager.bean.schemaFileName == null}" + value="#{WizardManager.bean.outputPathPatternForFormInstanceData}" + style="width:100%" + rendered="#{WizardManager.bean.isWebForm == true}"/> + onclick="javascript:toggleOutputPathPatternHelp()" + rendered="#{WizardManager.bean.isWebForm == true}"/> diff --git a/source/web/jsp/wcm/create-form-wizard/form-summary.jsp b/source/web/jsp/wcm/create-form-wizard/form-summary.jsp index a0a0b48077..4072394659 100644 --- a/source/web/jsp/wcm/create-form-wizard/form-summary.jsp +++ b/source/web/jsp/wcm/create-form-wizard/form-summary.jsp @@ -60,7 +60,6 @@ ${msg.schema_root_element_name}:${WizardManager.bean.schemaRootElementName} - ${msg.output_path_pattern}:${WizardManager.bean.outputPathPatternForFormInstanceData}