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
This commit is contained in:
Jan Vonka
2007-11-22 17:31:56 +00:00
parent a3325bff9e
commit b9d8bb4a51
8 changed files with 74 additions and 76 deletions

View File

@@ -95,8 +95,7 @@ public class CreateContentWizard extends BaseContentWizard
{ {
this.content = XMLUtil.toString(this.instanceDataDocument, true); 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; // belts & braces - override mimetype (in case is not set to XML)
this.mimeType = MimetypeMap.MIMETYPE_XML; // override mimetype (in case is not set to XML)
} }
String result = super.finish(); String result = super.finish();
@@ -130,6 +129,7 @@ public class CreateContentWizard extends BaseContentWizard
this.content = null; this.content = null;
this.inlineEdit = true; this.inlineEdit = true;
this.mimeType = MimetypeMap.MIMETYPE_HTML; this.mimeType = MimetypeMap.MIMETYPE_HTML;
this.formName = "";
this.instanceDataDocument = null; this.instanceDataDocument = null;
if (this.formProcessorSession != null) if (this.formProcessorSession != null)
@@ -160,6 +160,24 @@ public class CreateContentWizard extends BaseContentWizard
return disabled; 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 @Override
protected String doPostCommitProcessing(FacesContext context, String outcome) protected String doPostCommitProcessing(FacesContext context, String outcome)
{ {
@@ -257,8 +275,7 @@ public class CreateContentWizard extends BaseContentWizard
if (this.instanceDataDocument != null) if (this.instanceDataDocument != null)
{ {
// TODO - first step in wizard should auto-select XML when form is selected this.mimeType = MimetypeMap.MIMETYPE_XML; // belts & braces - override mimetype (in case is not set to XML)
this.mimeType = MimetypeMap.MIMETYPE_XML; // override mimetype (in case it is not set to XML)
} }
// TODO: show first few lines of content here? // TODO: show first few lines of content here?

View File

@@ -24,78 +24,28 @@
*/ */
package org.alfresco.web.bean.content; package org.alfresco.web.bean.content;
import java.io.ByteArrayInputStream;
import java.io.File; 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.Map;
import java.util.ResourceBundle;
import javax.faces.context.FacesContext; 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.ContentModel;
import org.alfresco.model.WCMAppModel; 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.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.ContentWriter;
import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef; 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.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.Form;
import org.alfresco.web.forms.FormInstanceData;
import org.alfresco.web.forms.FormNotFoundException; 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.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.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.w3c.dom.Document;
/** /**
* Bean implementation for the "Edit Content Wizard" dialog * Bean implementation for the "Edit Content Wizard" dialog
*/ */
public class EditContentWizard extends CreateContentWizard public class EditContentWizard extends CreateContentWizard
{ {
private static final Log LOGGER = LogFactory.getLog(EditContentWizard.class);
private NodeRef nodeRef; private NodeRef nodeRef;
private Form form; private Form form;

View File

@@ -34,7 +34,6 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.ResourceBundle; import java.util.ResourceBundle;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext; import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent; import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent; import javax.faces.event.ValueChangeEvent;
@@ -237,15 +236,16 @@ public class CreateFormWizard
// get the node ref of the node that will contain the content // get the node ref of the node that will contain the content
// TODO - need better way to determine WCM vs ECM context NodeRef contentFormsNodeRef = null;
// can create form from CreateWebProject Wizard, or from Forms DataDictionary space or Web Forms DataDictionary space if (getIsWebForm() == true)
NodeRef contentFormsNodeRef = this.formsService.getWebContentFormsNodeRef(); {
if (this.navigator.getCurrentNode().getNodeRef().equals(this.formsService.getContentFormsNodeRef())) contentFormsNodeRef = this.formsService.getWebContentFormsNodeRef();
}
else
{ {
// ECM form, store in Forms DataDictionary space
contentFormsNodeRef = this.formsService.getContentFormsNodeRef(); contentFormsNodeRef = this.formsService.getContentFormsNodeRef();
} }
final FileInfo folderInfo = final FileInfo folderInfo =
this.fileFolderService.create(contentFormsNodeRef, this.fileFolderService.create(contentFormsNodeRef,
this.getFormName(), this.getFormName(),
@@ -1105,6 +1105,19 @@ public class CreateFormWizard
return this.defaultWorkflowChoices; 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 // Service Injection

View File

@@ -471,7 +471,7 @@ public class CreateWebsiteWizard extends BaseWizardBean
String name = (String)this.nodeService.getProperty(formRef, WCMAppModel.PROP_FORMNAME); String name = (String)this.nodeService.getProperty(formRef, WCMAppModel.PROP_FORMNAME);
try try
{ {
Form formImpl = this.formsService.getForm(name); Form formImpl = this.formsService.getWebForm(name);
FormWrapper form = new FormWrapper(formImpl); FormWrapper form = new FormWrapper(formImpl);
form.setTitle((String)this.nodeService.getProperty(formRef, ContentModel.PROP_TITLE)); form.setTitle((String)this.nodeService.getProperty(formRef, ContentModel.PROP_TITLE));
form.setDescription((String)this.nodeService.getProperty(formRef, ContentModel.PROP_DESCRIPTION)); form.setDescription((String)this.nodeService.getProperty(formRef, ContentModel.PROP_DESCRIPTION));

View File

@@ -42,12 +42,9 @@ 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.alfresco.service.namespace.RegexQNamePattern; 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.Form;
import org.alfresco.web.forms.FormsService;
import org.alfresco.web.forms.RenderingEngineTemplate; import org.alfresco.web.forms.RenderingEngineTemplate;
import org.alfresco.web.forms.xforms.SchemaUtil;
import org.alfresco.web.ui.common.Utils; import org.alfresco.web.ui.common.Utils;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
@@ -137,7 +134,11 @@ public class EditFormWizard
this.renderingEngineTemplates.add(data); this.renderingEngineTemplates.add(data);
} }
this.removedRenderingEngineTemplates = null; this.removedRenderingEngineTemplates = null;
this.associatedWebProjects = this.formsService.getAssociatedWebProjects(form);
if (getIsWebForm() == true)
{
this.associatedWebProjects = this.formsService.getAssociatedWebProjects(form);
}
} }
/** /**

View File

@@ -70,6 +70,19 @@
return true; 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;
}
}
</script> </script>
</f:verbatim> </f:verbatim>
@@ -95,14 +108,15 @@
<h:outputText value=""/> <h:outputText value=""/>
<h:outputText value="#{msg.content_type}:"/> <h:outputText value="#{msg.content_type}:"/>
<h:selectOneMenu value="#{WizardManager.bean.mimeType}" <h:selectOneMenu id="mime-type" value="#{WizardManager.bean.mimeType}"
valueChangeListener="#{WizardManager.bean.createContentChanged}"> valueChangeListener="#{WizardManager.bean.createContentChanged}">
<f:selectItems value="#{WizardManager.bean.createMimeTypes}" /> <f:selectItems value="#{WizardManager.bean.createMimeTypes}" />
</h:selectOneMenu> </h:selectOneMenu>
<h:outputText value=""/> <h:outputText value=""/>
<h:outputText value="#{msg.form}:"/> <h:outputText value="#{msg.form}:"/>
<h:selectOneMenu value="#{WizardManager.bean.formName}"> <h:selectOneMenu id="form-name" value="#{WizardManager.bean.formName}"
onchange="formChanged();">
<f:selectItems value="#{WizardManager.bean.formsList}" /> <f:selectItems value="#{WizardManager.bean.formsList}" />
</h:selectOneMenu> </h:selectOneMenu>
</h:panelGrid> </h:panelGrid>

View File

@@ -224,16 +224,20 @@
<h:graphicImage id="img_form_instance_data_output_path_pattern" <h:graphicImage id="img_form_instance_data_output_path_pattern"
value="/images/icons/required_field.gif" value="/images/icons/required_field.gif"
alt="#{msg.required_field}" /> alt="#{msg.required_field}"
rendered="#{WizardManager.bean.isWebForm == true}"/>
<h:outputText id="out_form_instance_data_output_path_pattern" <h:outputText id="out_form_instance_data_output_path_pattern"
value="#{msg.output_path_pattern}:"/> value="#{msg.output_path_pattern}:"
rendered="#{WizardManager.bean.isWebForm == true}"/>
<h:inputText id="form_instance_data_output_path_pattern" <h:inputText id="form_instance_data_output_path_pattern"
disabled="#{WizardManager.bean.schemaFileName == null}" disabled="#{WizardManager.bean.schemaFileName == null}"
value="#{WizardManager.bean.outputPathPatternForFormInstanceData}" value="#{WizardManager.bean.outputPathPatternForFormInstanceData}"
style="width:100%"/> style="width:100%"
rendered="#{WizardManager.bean.isWebForm == true}"/>
<h:graphicImage id="img_form_instance_data_output_path_pattern_help" <h:graphicImage id="img_form_instance_data_output_path_pattern_help"
value="/images/icons/Help_icon.gif" style="cursor:help" value="/images/icons/Help_icon.gif" style="cursor:help"
onclick="javascript:toggleOutputPathPatternHelp()" /> onclick="javascript:toggleOutputPathPatternHelp()"
rendered="#{WizardManager.bean.isWebForm == true}"/>
<h:column id="output_path_pattern_help_empty_col_1"/> <h:column id="output_path_pattern_help_empty_col_1"/>
<h:column id="output_path_pattern_help_empty_col_2"/> <h:column id="output_path_pattern_help_empty_col_2"/>

View File

@@ -60,7 +60,6 @@
</td> </td>
</tr> </tr>
<tr><td>${msg.schema_root_element_name}:</td><td>${WizardManager.bean.schemaRootElementName}</td></tr> <tr><td>${msg.schema_root_element_name}:</td><td>${WizardManager.bean.schemaRootElementName}</td></tr>
<tr><td>${msg.output_path_pattern}:</td><td>${WizardManager.bean.outputPathPatternForFormInstanceData}</td></tr>
</tbody> </tbody>
</table> </table>
</jsp:attribute> </jsp:attribute>