From edd6d29cf4db22faec0011293f934bfcd64221b5 Mon Sep 17 00:00:00 2001 From: Ariel Backenroth Date: Thu, 23 Nov 2006 01:43:12 +0000 Subject: [PATCH] - cleanup of create form configure rendering engines step - first pass at starting the workflow from create content. i'm able to start a workflow with parameters collected by the create website wizard. however, i'm not able to associate files with the workflow yet due to some problems with the workflowservice. i'll wait until word from britt or dave before continuing on this. - making usage of workflowdefinition.id the key for workflows across the model since getWorkflowDefinitionByName isn't as reliable as getWorkflowdefinitionById for some reason - adding FormProcessor back in; looks like it got removed in a merge. - fixing localized strings in configure rendering engines git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@4431 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- config/alfresco/messages/webclient.properties | 3 +- .../web/bean/wcm/CreateWebContentWizard.java | 130 +++++++++++++++--- .../web/bean/wcm/CreateWebsiteWizard.java | 43 ++++-- .../web/bean/wcm/FormDetailsDialog.java | 10 +- .../web/bean/wcm/FormWorkflowDialog.java | 2 +- .../alfresco/web/forms/FormInstanceData.java | 4 + .../web/forms/FormInstanceDataImpl.java | 10 +- .../org/alfresco/web/forms/RenditionImpl.java | 9 +- .../ui/wcm/component/UISandboxSnapshots.java | 8 +- source/web/WEB-INF/faces-config-beans.xml | 4 + source/web/WEB-INF/faces-config-wcm.xml | 5 + .../configure-rendering-engines.jsp | 44 +++--- 12 files changed, 214 insertions(+), 58 deletions(-) diff --git a/config/alfresco/messages/webclient.properties b/config/alfresco/messages/webclient.properties index beb4b8baf7..b3ef6c7375 100644 --- a/config/alfresco/messages/webclient.properties +++ b/config/alfresco/messages/webclient.properties @@ -650,6 +650,8 @@ create_form_form_details_step2_desc=Specify details for new form. create_form_form_details_no_schema_selected= create_form_configure_rendering_engine_templates_title=Step Two - Configure Rendering Engine Templates create_form_configure_rendering_engine_templates_desc=Enter information about the rendering engine templates you want to use for this form. +create_form_configure_rendering_engine_templates_step1_desc=Select the rendering engine template to use +create_form_configure_rendering_engine_templates_step2_desc=Specify details for the new rendering engine template create_form_select_default_workflow_title=Stop Three - Select default workflow create_form_select_default_workflow_desc=Select the workflow you want to be used by default for this form. create_web_content_summary_desc=The wizard has successfully created the content and all renditions. @@ -664,7 +666,6 @@ rendering_engine_template_file=Rendering Engine Template File rendering_engine=Rendering Engine output_path_pattern=Output path pattern mimetype_for_renditions=Mimetype for renditions -file_extension=Extension schema=Schema schema_root_element_name=Root element form=Form diff --git a/source/java/org/alfresco/web/bean/wcm/CreateWebContentWizard.java b/source/java/org/alfresco/web/bean/wcm/CreateWebContentWizard.java index 532f36e067..f555ab5f5f 100644 --- a/source/java/org/alfresco/web/bean/wcm/CreateWebContentWizard.java +++ b/source/java/org/alfresco/web/bean/wcm/CreateWebContentWizard.java @@ -16,11 +16,7 @@ */ package org.alfresco.web.bean.wcm; -import java.io.BufferedInputStream; -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.Serializable; +import java.io.*; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -37,11 +33,13 @@ import org.alfresco.config.ConfigService; import org.alfresco.model.ContentModel; import org.alfresco.repo.avm.AVMNodeConverter; import org.alfresco.repo.content.MimetypeMap; +import org.alfresco.repo.workflow.WorkflowModel; import org.alfresco.service.cmr.avm.AVMService; import org.alfresco.service.cmr.avmsync.AVMDifference; import org.alfresco.service.cmr.avmsync.AVMSyncService; -import org.alfresco.service.cmr.repository.ChildAssociationRef; -import org.alfresco.service.cmr.repository.NodeRef; +import org.alfresco.service.cmr.repository.*; +import org.alfresco.service.cmr.workflow.*; +import org.alfresco.service.namespace.NamespaceService; import org.alfresco.service.namespace.QName; import org.alfresco.service.namespace.RegexQNamePattern; import org.alfresco.web.app.Application; @@ -56,6 +54,7 @@ import org.alfresco.web.forms.FormInstanceDataImpl; import org.alfresco.web.forms.FormProcessor; import org.alfresco.web.forms.FormsService; import org.alfresco.web.forms.Rendition; +import org.alfresco.web.forms.RenditionImpl; import org.alfresco.web.ui.wcm.component.UIUserSandboxes; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -85,7 +84,9 @@ public class CreateWebContentWizard extends BaseContentWizard /** AVM Browse Bean reference */ protected AVMBrowseBean avmBrowseBean; - + + /** Workflow service bean reference */ + protected WorkflowService workflowService; /** * @param avmService The AVMService to set. @@ -103,6 +104,15 @@ public class CreateWebContentWizard extends BaseContentWizard this.avmSyncService = avmSyncService; } + /** + * @param workflowService The WorkflowService to set. + */ + public void setWorkflowService(WorkflowService workflowService) + { + this.workflowService = workflowService; + } + + /** * @param avmBrowseBean The AVMBrowseBean to set. */ @@ -164,7 +174,92 @@ public class CreateWebContentWizard extends BaseContentWizard if (this.startWorkflow) { - System.err.println("************* starting workflow"); + WorkflowDefinition wd = null; + Map parameters = null; + + // get the workflow definition and parameters + { + final Node website = this.avmBrowseBean.getWebsite(); + final List webFormRefs = this.nodeService.getChildAssocs( + website.getNodeRef(), ContentModel.ASSOC_WEBFORM, RegexQNamePattern.MATCH_ALL); + for (ChildAssociationRef ref : webFormRefs) + { + final String formName = (String) + this.nodeService.getProperty(ref.getChildRef(), ContentModel.PROP_FORMNAME); + if (formName.equals(this.getForm().getName())) + { + System.err.println("loading workflowRefs for " + formName); + final List workflowRefs = + this.nodeService.getChildAssocs(ref.getChildRef(), + ContentModel.ASSOC_WORKFLOWDEFAULTS, + RegexQNamePattern.MATCH_ALL); + if (workflowRefs.size() == 0) + { + throw new RuntimeException("no workflow parameters found for form " + formName); + } + if (workflowRefs.size() > 1) + { + throw new RuntimeException("found more than one workflow parameters node for " + formName); + } + + final NodeRef workflowRef = workflowRefs.get(0).getChildRef(); + final String workflowId = (String) + this.nodeService.getProperty(workflowRef, ContentModel.PROP_WORKFLOW_ID); + if (workflowId == null) + { + throw new RuntimeException("no workflow found for form " + formName); + } + System.err.println("using workflow " + workflowId + " for form " + formName); + wd = this.workflowService.getDefinitionById(workflowId); + + final ByteArrayOutputStream baos = new ByteArrayOutputStream(); + final ContentReader cr = this.contentService.getReader(workflowRef, ContentModel.PROP_WORKFLOWDEFAULTS); + if (cr == null) + { + parameters = new HashMap(); + } + else + { + cr.getContent(baos); + + final ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); + final ObjectInputStream ois = new ObjectInputStream(bais); + parameters = (Map)ois.readObject(); + } + break; + } + } + } + + System.err.println("creating workflow package"); + final NodeRef workflowPackageNodeRef = this.workflowService.createPackage(null); +// doesn't work yet. need to use ASPECT_REFERENCES_NODE to get it to deal with avm nodes +// and we need some fixes from dave before we can enable. +// QName qn = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, +// QName.createValidLocalName(this.formInstanceData.getName())); +// String s = AVMNodeConverter.ToAVMVersionPath(this.formInstanceData.getNodeRef()).getSecond(); +// s = s.replaceFirst(AVMConstants.STORE_PREVIEW, AVMConstants.STORE_MAIN); +// System.err.println("adding " + s + " to workflow package with qname" + qn); +// this.nodeService.addChild(workflowPackageNodeRef, +// AVMNodeConverter.ToNodeRef(-1, s), +// ContentModel.ASSOC_CONTAINS, +// qn); +// for (Rendition rendition : this.getRenditions()) +// { +// qn = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, +// QName.createValidLocalName(rendition.getName())); +// s = AVMNodeConverter.ToAVMVersionPath(rendition.getNodeRef()).getSecond(); +// s = s.replaceFirst(AVMConstants.STORE_PREVIEW, AVMConstants.STORE_MAIN); +// System.err.println("adding " + s + " to workflow package with qname " + qn); +// +// this.nodeService.addChild(workflowPackageNodeRef, +// AVMNodeConverter.ToNodeRef(-1, s), +// ContentModel.ASSOC_CONTAINS, +// qn); +// } + parameters.put(WorkflowModel.ASSOC_PACKAGE, workflowPackageNodeRef); + System.err.println("starting workflow " + wd + " with parameters " + parameters); + final WorkflowPath wp = this.workflowService.startWorkflow(wd.getId(), parameters); } else { @@ -226,6 +321,9 @@ public class CreateWebContentWizard extends BaseContentWizard if (logger.isDebugEnabled()) logger.debug("creating file " + this.fileName + " in " + path); + + this.avmSyncService.resetLayer(path.split(":")[0] + ":/" + AVMConstants.DIR_APPBASE); + // put the content of the file into the AVM store if (fileContent != null) { @@ -248,8 +346,7 @@ public class CreateWebContentWizard extends BaseContentWizard if (MimetypeMap.MIMETYPE_XML.equals(this.mimeType) && this.formName != null) { - final Form form = this.getForm(); - form.registerFormInstanceData(formInstanceDataNodeRef); + this.getForm().registerFormInstanceData(formInstanceDataNodeRef); this.renditions = FormsService.getInstance().generateRenditions(formInstanceDataNodeRef); } } @@ -279,18 +376,19 @@ public class CreateWebContentWizard extends BaseContentWizard */ public List getFormChoices() { - Node website = this.avmBrowseBean.getWebsite(); + final Node website = this.avmBrowseBean.getWebsite(); if (website == null) { throw new IllegalStateException("CreateWebContentWizard must be called within a Web Project context!"); } - List webFormRefs = this.nodeService.getChildAssocs( + final List webFormRefs = this.nodeService.getChildAssocs( website.getNodeRef(), ContentModel.ASSOC_WEBFORM, RegexQNamePattern.MATCH_ALL); - List items = new ArrayList(webFormRefs.size()); + final List items = new ArrayList(webFormRefs.size()); for (ChildAssociationRef ref : webFormRefs) { - String formName = (String)this.nodeService.getProperty(ref.getChildRef(), ContentModel.PROP_FORMNAME); - Form form = FormsService.getInstance().getForm(formName); + final String formName = (String) + this.nodeService.getProperty(ref.getChildRef(), ContentModel.PROP_FORMNAME); + final Form form = FormsService.getInstance().getForm(formName); if (form != null) { items.add(new SelectItem(formName, form.getTitle())); diff --git a/source/java/org/alfresco/web/bean/wcm/CreateWebsiteWizard.java b/source/java/org/alfresco/web/bean/wcm/CreateWebsiteWizard.java index 6f7055f831..f0978125ee 100644 --- a/source/java/org/alfresco/web/bean/wcm/CreateWebsiteWizard.java +++ b/source/java/org/alfresco/web/bean/wcm/CreateWebsiteWizard.java @@ -283,7 +283,7 @@ public class CreateWebsiteWizard extends BaseWizardBean { WorkflowWrapper workflow = form.getWorkflow(); props.clear(); - props.put(ContentModel.PROP_WORKFLOWNAME, workflow.getName()); + props.put(ContentModel.PROP_WORKFLOW_ID, workflow.getId()); NodeRef workflowRef = this.nodeService.createNode(formRef, ContentModel.ASSOC_WORKFLOWDEFAULTS, ContentModel.ASSOC_WORKFLOWDEFAULTS, @@ -322,7 +322,7 @@ public class CreateWebsiteWizard extends BaseWizardBean for (WorkflowWrapper workflow : this.workflows) { props.clear(); - props.put(ContentModel.PROP_NAME, workflow.getName()); + props.put(ContentModel.PROP_NAME, workflow.getId()); NodeRef workflowRef = this.nodeService.createNode(nodeRef, ContentModel.ASSOC_WEBWORKFLOWDEFAULTS, ContentModel.ASSOC_WEBWORKFLOWDEFAULTS, @@ -575,7 +575,7 @@ public class CreateWebsiteWizard extends BaseWizardBean if (index != -1) { Form form = (Form)this.formsList.get(index).getValue(); - this.forms.add(new FormWrapper(form)); + this.forms.add(this.new FormWrapper(form)); } } @@ -686,7 +686,7 @@ public class CreateWebsiteWizard extends BaseWizardBean for (WorkflowDefinition workflowDef : workflowDefs) { UIListItem item = new UIListItem(); - item.setValue(workflowDef.name); + item.setValue(workflowDef.id); item.setLabel(workflowDef.title); item.setDescription(workflowDef.description); item.setImage(WebResources.IMAGE_WORKFLOW_32); @@ -706,7 +706,7 @@ public class CreateWebsiteWizard extends BaseWizardBean if (index != -1) { String workflow = (String)this.workflowsList.get(index).getValue(); - this.workflows.add(new WorkflowWrapper(workflow)); + this.workflows.add(this.new WorkflowWrapper(workflow)); } } @@ -1008,7 +1008,7 @@ public class CreateWebsiteWizard extends BaseWizardBean /** * Wrapper class for a configurable template Form instance */ - public static class FormWrapper + public class FormWrapper { private Form form; private String title; @@ -1061,7 +1061,7 @@ public class CreateWebsiteWizard extends BaseWizardBean WorkflowDefinition wf = this.form.getDefaultWorkflow(); if (this.workflow == null && wf != null) { - this.workflow = new WorkflowWrapper(wf.name); + this.workflow = CreateWebsiteWizard.this.new WorkflowWrapper(wf.getId()); } return this.workflow; } @@ -1126,9 +1126,9 @@ public class CreateWebsiteWizard extends BaseWizardBean { String none = '<' + Application.getMessage(FacesContext.getCurrentInstance(), MSG_NONE) + '>'; return MessageFormat.format(Application.getMessage(FacesContext.getCurrentInstance(), MSG_FORM_SUMMARY), - getWorkflow() != null ? this.workflow.name : none, - getFilenamePattern() != null ? this.filenamePattern : none, - getTemplates() != null ? this.templates.size() : 0); + getWorkflow() != null ? this.workflow.getName() : none, + getFilenamePattern() != null ? this.filenamePattern : none, + getTemplates() != null ? this.templates.size() : 0); } } @@ -1197,28 +1197,41 @@ public class CreateWebsiteWizard extends BaseWizardBean } } + public WorkflowWrapper getWorkflowWrapper(String id) + { + return this.new WorkflowWrapper(id); + } + /** * Class to represent a single configured Workflow instance */ - public static class WorkflowWrapper + public class WorkflowWrapper { - private String name; + private String id; private String filenamePattern; private QName type; private Map params; - public WorkflowWrapper(String name) + public WorkflowWrapper(String id) { - this.name = name; + this.id = id; this.filenamePattern = filenamePattern; } + /** + * @return Returns the id of the workflow. + */ + public String getId() + { + return this.id; + } + /** * @return Returns the name of the workflow. */ public String getName() { - return this.name; + return workflowService.getDefinitionById(this.getId()).getName(); } /** diff --git a/source/java/org/alfresco/web/bean/wcm/FormDetailsDialog.java b/source/java/org/alfresco/web/bean/wcm/FormDetailsDialog.java index dfeae4401c..ed4c290204 100644 --- a/source/java/org/alfresco/web/bean/wcm/FormDetailsDialog.java +++ b/source/java/org/alfresco/web/bean/wcm/FormDetailsDialog.java @@ -169,7 +169,7 @@ public class FormDetailsDialog extends BaseDialogBean WorkflowWrapper workflow = getActionForm().getWorkflow(); if (workflow != null) { - this.workflowSelectedValue = new String[] {workflow.getName()}; + this.workflowSelectedValue = new String[] {workflow.getId()}; } } return this.workflowSelectedValue; @@ -195,9 +195,9 @@ public class FormDetailsDialog extends BaseDialogBean for (WorkflowDefinition workflowDef : workflowDefs) { UIListItem item = new UIListItem(); - item.setValue(workflowDef.name); - item.setLabel(workflowDef.title); - item.setDescription(workflowDef.description); + item.setValue(workflowDef.getId()); + item.setLabel(workflowDef.getTitle()); + item.setDescription(workflowDef.getDescription()); item.setImage(WebResources.IMAGE_WORKFLOW_32); items.add(item); } @@ -231,7 +231,7 @@ public class FormDetailsDialog extends BaseDialogBean } if (this.workflowSelectedValue != null && this.workflowSelectedValue.length != 0) { - form.setWorkflow(new CreateWebsiteWizard.WorkflowWrapper(this.workflowSelectedValue[0])); + form.setWorkflow(websiteWizard.getWorkflowWrapper(this.workflowSelectedValue[0])); } return outcome; } diff --git a/source/java/org/alfresco/web/bean/wcm/FormWorkflowDialog.java b/source/java/org/alfresco/web/bean/wcm/FormWorkflowDialog.java index def255cd38..e934edd9e8 100644 --- a/source/java/org/alfresco/web/bean/wcm/FormWorkflowDialog.java +++ b/source/java/org/alfresco/web/bean/wcm/FormWorkflowDialog.java @@ -122,7 +122,7 @@ public class FormWorkflowDialog extends BaseDialogBean if (this.workflowNode == null) { // TODO: remove the 'jbpm$' prefix once bug fix to WorkflowService has been merged across! - WorkflowDefinition flowDef = this.workflowService.getDefinitionByName("jbpm$" + getActionWorkflow().getName()); + WorkflowDefinition flowDef = this.workflowService.getDefinitionById(getActionWorkflow().getId()); if (logger.isDebugEnabled()) logger.debug("Selected workflow: "+ flowDef); diff --git a/source/java/org/alfresco/web/forms/FormInstanceData.java b/source/java/org/alfresco/web/forms/FormInstanceData.java index b974332e7c..e26e36dc6a 100644 --- a/source/java/org/alfresco/web/forms/FormInstanceData.java +++ b/source/java/org/alfresco/web/forms/FormInstanceData.java @@ -17,6 +17,7 @@ package org.alfresco.web.forms; import java.io.Serializable; +import org.alfresco.service.cmr.repository.NodeRef; /** * Encapsulation of form instance data. @@ -38,4 +39,7 @@ public interface FormInstanceData /** the url to the asset */ public String getUrl(); + + /** the noderef containing the form instance data */ + public NodeRef getNodeRef(); } diff --git a/source/java/org/alfresco/web/forms/FormInstanceDataImpl.java b/source/java/org/alfresco/web/forms/FormInstanceDataImpl.java index 740760c8e1..a541c7122e 100644 --- a/source/java/org/alfresco/web/forms/FormInstanceDataImpl.java +++ b/source/java/org/alfresco/web/forms/FormInstanceDataImpl.java @@ -16,6 +16,8 @@ */ package org.alfresco.web.forms; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import javax.faces.context.FacesContext; import org.alfresco.model.ContentModel; import org.alfresco.model.WCMModel; @@ -50,6 +52,7 @@ public class FormInstanceDataImpl { this.nodeRef = nodeRef; } + /** the name of this rendition */ public String getName() { @@ -61,7 +64,12 @@ public class FormInstanceDataImpl /** the path relative to the containing webapp */ public String getWebappRelativePath() { - return AVMNodeConverter.ToAVMVersionPath(this.nodeRef).getSecond(); + final String path = AVMNodeConverter.ToAVMVersionPath(this.nodeRef).getSecond(); + final String p = ("[^:]+:/" + AVMConstants.DIR_APPBASE + + "/" + AVMConstants.DIR_WEBAPPS + + "/[^/]+(.*)/" + this.getName()); + final Matcher m = Pattern.compile(p).matcher(path); + return m.matches() && m.group(1).length() != 0 ? m.group(1) : "/"; } public Form getForm() diff --git a/source/java/org/alfresco/web/forms/RenditionImpl.java b/source/java/org/alfresco/web/forms/RenditionImpl.java index 2e86ced186..a717a559a1 100644 --- a/source/java/org/alfresco/web/forms/RenditionImpl.java +++ b/source/java/org/alfresco/web/forms/RenditionImpl.java @@ -16,6 +16,8 @@ */ package org.alfresco.web.forms; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import javax.faces.context.FacesContext; import org.alfresco.model.ContentModel; import org.alfresco.model.WCMModel; @@ -62,7 +64,12 @@ public class RenditionImpl /** the path relative to the containing webapp */ public String getWebappRelativePath() { - return AVMNodeConverter.ToAVMVersionPath(this.nodeRef).getSecond(); + final String path = AVMNodeConverter.ToAVMVersionPath(this.nodeRef).getSecond(); + final String p = ("[^:]+:/" + AVMConstants.DIR_APPBASE + + "/" + AVMConstants.DIR_WEBAPPS + + "/[^/]+(.*)/" + this.getName()); + final Matcher m = Pattern.compile(p).matcher(path); + return m.matches() && m.group(1).length() != 0 ? m.group(1) : "/"; } public FormInstanceData getPrimaryFormInstanceData() diff --git a/source/java/org/alfresco/web/ui/wcm/component/UISandboxSnapshots.java b/source/java/org/alfresco/web/ui/wcm/component/UISandboxSnapshots.java index 9281510f01..840a96ee08 100644 --- a/source/java/org/alfresco/web/ui/wcm/component/UISandboxSnapshots.java +++ b/source/java/org/alfresco/web/ui/wcm/component/UISandboxSnapshots.java @@ -18,6 +18,7 @@ package org.alfresco.web.ui.wcm.component; import java.io.IOException; import java.text.DateFormat; +import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -181,7 +182,12 @@ public class UISandboxSnapshots extends SelfRenderingComponent Date fromDate; if (FILTER_DATE_TODAY.equals(dateFilter)) { - fromDate = new Date(toDate.getYear(), toDate.getMonth(), toDate.getDate(), 0, 0, 0); + final Calendar c = Calendar.getInstance(); + c.setTime(toDate); + c.set(Calendar.HOUR, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + fromDate = c.getTime(); } else if (FILTER_DATE_WEEK.equals(dateFilter)) { diff --git a/source/web/WEB-INF/faces-config-beans.xml b/source/web/WEB-INF/faces-config-beans.xml index 9ecf442ee2..2a75c28b26 100644 --- a/source/web/WEB-INF/faces-config-beans.xml +++ b/source/web/WEB-INF/faces-config-beans.xml @@ -2111,6 +2111,10 @@ dictionaryService #{DictionaryService} + + workflowService + #{WorkflowService} + avmService #{AVMService} diff --git a/source/web/WEB-INF/faces-config-wcm.xml b/source/web/WEB-INF/faces-config-wcm.xml index 7d6e5b18f7..ae4905b2d8 100644 --- a/source/web/WEB-INF/faces-config-wcm.xml +++ b/source/web/WEB-INF/faces-config-wcm.xml @@ -18,6 +18,11 @@ org.alfresco.faces.SandboxSnapshots org.alfresco.web.ui.wcm.component.UISandboxSnapshots + + + org.alfresco.faces.FormProcessor + org.alfresco.web.ui.wcm.component.UIFormProcessor + diff --git a/source/web/jsp/wcm/create-form-wizard/configure-rendering-engines.jsp b/source/web/jsp/wcm/create-form-wizard/configure-rendering-engines.jsp index 4d2d992c2a..614b894474 100644 --- a/source/web/jsp/wcm/create-form-wizard/configure-rendering-engines.jsp +++ b/source/web/jsp/wcm/create-form-wizard/configure-rendering-engines.jsp @@ -43,14 +43,16 @@ - + - + <% final FileUploadBean upload = (FileUploadBean) @@ -69,7 +71,7 @@ if (upload == null || upload.getFile() == null) else { %> - + - + + + - - + - @@ -106,17 +116,17 @@ else value="#{WizardManager.bean.mimeTypeChoices}" /> - - - + - - + + + value="#{msg.selected_rendering_engine_templates}" /> - +