Mark,
Attached is the sitemap, flow script and the form model.
Thanks
-----Original Message-----
From: Mark Lundquist [mailto:[EMAIL PROTECTED]
Sent: Tuesday, April 06, 2004 11:36 AM
To: [EMAIL PROTECTED]
Subject: Re: Cform - Help with redisplaying form after submission
On Apr 6, 2004, at 11:05 AM, Uchenna Igwebuike wrote:
> Below is a snapshot of the flow
I might be able to help if you include the whole flowscript function
instead of just an excerpt. For instance, I can't see the loop in what
you sent.
~ mark
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
***************** Site map ***********************
<map:match pattern="material-type-display-pipeline">
<map:generate src="forms/material-type-template.xml">
<map:parameter name="contextPath" value="{request:contextPath}"/>
</map:generate>
<map:transform type="forms"/>
<map:transform type="i18n"/>
<map:transform
src="context://common/stylesheets/default/transc-page2html.xsl">
<map:parameter name="contextPath" value="{request:contextPath}"/>
</map:transform>
<map:transform
src="context://common/forms/resources/forms-styling.xsl">
<map:parameter name="resources-uri"
value="{request:contextPath}/common/forms/resources"/>
</map:transform>
<map:serialize/>
</map:match>
***************** Flow Script ***********************
cocoon.load("resource://org/apache/cocoon/forms/flow/javascript/Form.js");
importPackage(java.util);
function materialType(form) {
//Set Locale
var locale = cocoon.request.getLocale();
myForm=form;
myForm.locale = locale;
sproxy =
Packages.com.company.zeus.sproxy.BusinessServiceManager.getInstance().getMaterialService();
var formInfo = sproxy.getMaterialTypeFormInfo(locale);
var data = new Object(); //Holds all required lists
data.materialGroup = formInfo.getMaterialGroup();
data.stockMeasure = formInfo.getStockMeasure();
data.currencyMeasure = formInfo.getCurrencyMeasure();
data.freightGroup = formInfo.getFrieghtGroup();
data.documentSequence = formInfo.getDocumentSequence();
//If request contains a material type name, load form with data
var name = cocoon.request.get("materialTypeName");
if(name != null) {
try {
//Load form with data from DB
var msg = form.getWidget("message");
bean = sproxy.readMaterialType(locale,name);
form.load(bean);
var args = [name];
var i18nVal =
Packages.org.apache.cocoon.components.messages.MessageHandler.getMessage
(inventoryMessages,myForm.locale,"materialType.message.save",args);
msg.value = i18nVal;
}catch(ex) {
if(ex instanceof
Packages.com.company.zeus.service.system.exceptions.BaseAppException) {
var i18nVal =
Packages.org.apache.cocoon.components.messages.ExceptionHandler.
getWebExceptionMessage(inventoryMessages,myForm.locale,ex);
msg.value = i18nVal;
} else {
throw ex;
}
}
}
myForm.showForm("material-type-display-pipeline", data);
//if submit is a close, send to summary page
if (form.submitId == "close") {
dispatch = null;
cocoon.sendPage("");
}else {
var msg = form.getWidget("message");
form.save(bean);
try {
if(dispatch != null) {
if(dispatch.equals("create")) {
sproxy.createMaterialType(locale,bean);
dispatch = "update"; //reset to ensure back button will not create
new objects
}else if(dispatch.equals("update")) {
sproxy.updateMaterialType(locale,bean);
}
//Load form with data from DB
bean = sproxy.readMaterialType(locale,bean.name);
form.load(bean);
var args = [bean.name];
var i18nVal =
Packages.org.apache.cocoon.components.messages.MessageHandler.getMessage
(inventoryMessages,myForm.locale,"materialType.message.save",args);
msg.value = i18nVal;
}
}catch(ex) {
if(ex instanceof
Packages.com.company.zeus.service.system.exceptions.BaseAppException) {
var i18nVal =
Packages.org.apache.cocoon.components.messages.ExceptionHandler.
getWebExceptionMessage(inventoryMessages,myForm.locale,ex);
msg.value = i18nVal;
} else {
throw ex;
}
}
//Redisplay the form with the transaction messages
form.showForm("material-type-display-pipeline", data);
//cocoon.sendPage("material-type?materialTypeName=" + bean.name, null);
//cocoon.sendPage("material-type-success-pipeline", { "materialType": bean });
}
}
***************** Form Model ***********************
<?xml version="1.0" encoding="ISO-8859-1"?>
<fd:form
xmlns:fd="http://apache.org/cocoon/forms/1.0#definition"
xmlns:i18n="http://apache.org/cocoon/i18n/2.1">
<fd:widgets>
<!-- Control Fields -->
<fd:field id="tab-state">
<fd:datatype base="string"/>
</fd:field>
<!-- Header values -->
<fd:field id="id">
<fd:datatype base="long"/>
</fd:field>
<fd:field id="name" required="false">
<fd:label>
<i18n:text
i18n:catalogue="inventory">materialType.name.label</i18n:text>
</fd:label>
<fd:hint>
<i18n:text
i18n:catalogue="inventory">materialType.name.hint</i18n:text>
</fd:hint>
<fd:help>
<i18n:text
i18n:catalogue="inventory">materialType.name.help</i18n:text>
</fd:help>
<fd:datatype base="string">
<fd:validation>
<fd:length max='50'>
<fd:failmessage>
<i18n:text
i18n:catalogue="inventory">materialType.name.failmessage</i18n:text>
</fd:failmessage>
</fd:length>
</fd:validation>
</fd:datatype>
</fd:field>
<fd:field id="description" required="true">
<fd:label>
<i18n:text
i18n:catalogue="inventory">materialType.description.label</i18n:text>
</fd:label>
<fd:hint>
<i18n:text
i18n:catalogue="inventory">materialType.description.hint</i18n:text>
</fd:hint>
<fd:help>
<i18n:text
i18n:catalogue="inventory">materialType.description.help</i18n:text>
</fd:help>
<fd:datatype base="string">
<fd:validation>
<fd:length max='50'>
<fd:failmessage>
<i18n:text
i18n:catalogue="inventory">materialType.description.failmessage</i18n:text>
</fd:failmessage>
</fd:length>
</fd:validation>
</fd:datatype>
</fd:field>
<fd:field id="documentSeqName" required="true">
<fd:label>
<i18n:text
i18n:catalogue="inventory">materialType.documentSeqName.label</i18n:text>
</fd:label>
<fd:hint>
<i18n:text
i18n:catalogue="inventory">materialType.documentSeqName.hint</i18n:text>
</fd:hint>
<fd:help>
<i18n:text
i18n:catalogue="inventory">materialType.documentSeqName.help</i18n:text>
</fd:help>
<fd:datatype base="string"/>
<fd:selection-list type="flow-jxpath-wprompt" list-path="documentSequence"
value-path="name"
label-path="concat(name,' - ',description)"
msg-key="selection.prompt"/>
</fd:field>
<!-- Configuration -->
<fd:booleanfield id="active" required="true">
<fd:label>
<i18n:text
i18n:catalogue="inventory">materialType.active.label</i18n:text>
</fd:label>
<fd:hint>
<i18n:text
i18n:catalogue="inventory">materialType.active.hint</i18n:text>
</fd:hint>
<fd:help>
<i18n:text
i18n:catalogue="inventory">materialType.active.help</i18n:text>
</fd:help>
</fd:booleanfield>
<!-- MM Defaulting rules -->
<fd:field id="materialGroup" required="false">
<fd:label>
<i18n:text
i18n:catalogue="inventory">materialType.materialGroup.label</i18n:text>
</fd:label>
<fd:hint>
<i18n:text
i18n:catalogue="inventory">materialType.materialGroup.hint</i18n:text>
</fd:hint>
<fd:help>
<i18n:text
i18n:catalogue="inventory">materialType.materialGroup.help</i18n:text>
</fd:help>
<fd:datatype base="long"/>
<fd:selection-list type="flow-jxpath-wprompt" list-path="materialGroup"
value-path="id"
label-path="concat(name,' - ',description)"
msg-key="selection.prompt"/>
</fd:field>
<fd:booleanfield id="sellable" required="false">
<fd:label>
<i18n:text
i18n:catalogue="inventory">materialType.sellable.label</i18n:text>
</fd:label>
<fd:hint>
<i18n:text
i18n:catalogue="inventory">materialType.sellable.hint</i18n:text>
</fd:hint>
<fd:help>
<i18n:text
i18n:catalogue="inventory">materialType.sellable.help</i18n:text>
</fd:help>
</fd:booleanfield>
<fd:booleanfield id="serialized" required="false">
<fd:label>
<i18n:text
i18n:catalogue="inventory">materialType.serialized.label</i18n:text>
</fd:label>
<fd:hint>
<i18n:text
i18n:catalogue="inventory">materialType.serialized.hint</i18n:text>
</fd:hint>
<fd:help>
<i18n:text
i18n:catalogue="inventory">materialType.serialized.help</i18n:text>
</fd:help>
</fd:booleanfield>
<fd:booleanfield id="vmiMaterial" required="false">
<fd:label>
<i18n:text
i18n:catalogue="inventory">materialType.vmiMaterial.label</i18n:text>
</fd:label>
<fd:hint>
<i18n:text
i18n:catalogue="inventory">materialType.vmiMaterial.hint</i18n:text>
</fd:hint>
<fd:help>
<i18n:text
i18n:catalogue="inventory">materialType.vmiMaterial.help</i18n:text>
</fd:help>
</fd:booleanfield>
<!-- Pricing Defaulting Rules -->
<fd:booleanfield id="discountAllowed" required="false">
<fd:label>
<i18n:text
i18n:catalogue="inventory">materialType.discountAllowed.label</i18n:text>
</fd:label>
<fd:hint>
<i18n:text
i18n:catalogue="inventory">materialType.discountAllowed.hint</i18n:text>
</fd:hint>
<fd:help>
<i18n:text
i18n:catalogue="inventory">materialType.discountAllowed.help</i18n:text>
</fd:help>
</fd:booleanfield>
<fd:booleanfield id="taxable" required="false">
<fd:label>
<i18n:text
i18n:catalogue="inventory">materialType.taxable.label</i18n:text>
</fd:label>
<fd:hint>
<i18n:text
i18n:catalogue="inventory">materialType.taxable.hint</i18n:text>
</fd:hint>
<fd:help>
<i18n:text
i18n:catalogue="inventory">materialType.taxable.help</i18n:text>
</fd:help>
</fd:booleanfield>
<fd:field id="pricingCurrency" required="false">
<fd:label>
<i18n:text
i18n:catalogue="inventory">materialType.pricingCurrency.label</i18n:text>
</fd:label>
<fd:hint>
<i18n:text
i18n:catalogue="inventory">materialType.pricingCurrency.hint</i18n:text>
</fd:hint>
<fd:help>
<i18n:text
i18n:catalogue="inventory">materialType.pricingCurrency.help</i18n:text>
</fd:help>
<fd:datatype base="long"/>
<fd:selection-list type="flow-jxpath-wprompt" list-path="currencyMeasure"
value-path="id"
label-path="concat(name,' - ',description)"
msg-key="selection.prompt"/>
</fd:field>
<!-- Storage & Shipping Defaulting rules -->
<fd:field id="packingQty" required="false">
<fd:label>
<i18n:text
i18n:catalogue="inventory">materialType.packingQty.label</i18n:text>
</fd:label>
<fd:hint>
<i18n:text
i18n:catalogue="inventory">materialType.packingQty.hint</i18n:text>
</fd:hint>
<fd:help>
<i18n:text
i18n:catalogue="inventory">materialType.packingQty.help</i18n:text>
</fd:help>
<fd:datatype base="long">
<fd:validation>
<fd:range min='1'>
<fd:failmessage>
<i18n:text
i18n:catalogue="inventory">materialType.packingQty.failmessage</i18n:text>
</fd:failmessage>
</fd:range>
</fd:validation>
</fd:datatype>
</fd:field>
<fd:field id="packingQtyUOM" required="false">
<fd:label>
<i18n:text
i18n:catalogue="inventory">materialType.packingQtyUOM.label</i18n:text>
</fd:label>
<fd:hint>
<i18n:text
i18n:catalogue="inventory">materialType.packingQtyUOM.hint</i18n:text>
</fd:hint>
<fd:help>
<i18n:text
i18n:catalogue="inventory">materialType.packingQtyUOM.help</i18n:text>
</fd:help>
<fd:datatype base="long">
</fd:datatype>
<fd:selection-list type="flow-jxpath-wprompt" list-path="stockMeasure"
value-path="id"
label-path="concat(name,' - ',description)"
msg-key="selection.prompt"/>
</fd:field>
<fd:field id="freightGroup" required="false">
<fd:label>
<i18n:text
i18n:catalogue="inventory">materialType.freightGroup.label</i18n:text>
</fd:label>
<fd:hint>
<i18n:text
i18n:catalogue="inventory">materialType.freightGroup.hint</i18n:text>
</fd:hint>
<fd:help>
<i18n:text
i18n:catalogue="inventory">materialType.freightGroup.help</i18n:text>
</fd:help>
<fd:datatype base="long"/>
<fd:selection-list type="flow-jxpath-wprompt" list-path="freightGroup"
value-path="id"
label-path="concat(name,' - ',description)"
msg-key="selection.prompt"/>
</fd:field>
<!-- Sales Defaulting rules -->
<fd:field id="minOrderQty" required="false">
<fd:label>
<i18n:text
i18n:catalogue="inventory">materialType.minOrderQty.label</i18n:text>
</fd:label>
<fd:hint>
<i18n:text
i18n:catalogue="inventory">materialType.minOrderQty.hint</i18n:text>
</fd:hint>
<fd:help>
<i18n:text
i18n:catalogue="inventory">materialType.minOrderQty.help</i18n:text>
</fd:help>
<fd:datatype base="long"/>
</fd:field>
<fd:field id="minOrderQtyUOM" required="false">
<fd:label>
<i18n:text
i18n:catalogue="inventory">materialType.minOrderQtyUOM.label</i18n:text>
</fd:label>
<fd:hint>
<i18n:text
i18n:catalogue="inventory">materialType.minOrderQtyUOM.hint</i18n:text>
</fd:hint>
<fd:help>
<i18n:text
i18n:catalogue="inventory">materialType.minOrderQtyUOM.help</i18n:text>
</fd:help>
<fd:datatype base="long"/>
<fd:selection-list type="flow-jxpath-wprompt" list-path="stockMeasure"
value-path="id"
label-path="concat(name,' - ',description)"
msg-key="selection.prompt"/>
</fd:field>
<!-- Configuration -->
<fd:booleanfield id="configurable" required="false">
<fd:label>
<i18n:text
i18n:catalogue="inventory">materialType.configurable.label</i18n:text>
</fd:label>
<fd:hint>
<i18n:text
i18n:catalogue="inventory">materialType.configurable.hint</i18n:text>
</fd:hint>
<fd:help>
<i18n:text
i18n:catalogue="inventory">materialType.configurable.help</i18n:text>
</fd:help>
</fd:booleanfield>
<!-- Messages -->
<fd:output id="message">
<fd:datatype base="string"/>
</fd:output>
<fd:action id="open" action-command="open" validate="false">
<fd:label><i18n:text>button.open.label</i18n:text></fd:label>
<fd:help><i18n:text>button.open.help</i18n:text></fd:help>
<fd:hint><i18n:text>button.open.hint</i18n:text></fd:hint>
<fd:on-action>
<javascript>
<![CDATA[
var name = cocoon.request.get("name");
var msg = event.source.parent.getWidget("message");
try {
bean = sproxy.readMaterialType(myForm.locale,name);
var args = [name];
var i18nVal =
Packages.org.apache.cocoon.components.messages.MessageHandler.getMessage
(inventoryMessages,myForm.locale,"materialType.message.open",args);
msg.value = i18nVal;
myForm.load(bean);
dispatch="update";
}catch(ex) {
if(ex instanceof
Packages.com.company.zeus.service.system.exceptions.BaseAppException) {
var i18nVal =
Packages.org.apache.cocoon.components.messages.ExceptionHandler.
getWebExceptionMessage(inventoryMessages,myForm.locale,ex);
msg.value = i18nVal;
} else {
throw ex;
}
}
]]>
</javascript>
</fd:on-action>
</fd:action>
<fd:action id="new" action-command="new" validate="false">
<fd:label><i18n:text>button.new.label</i18n:text></fd:label>
<fd:help><i18n:text>button.new.help</i18n:text></fd:help>
<fd:hint><i18n:text>button.new.hint</i18n:text></fd:hint>
<fd:on-action>
<javascript>
<![CDATA[
dispatch="create";
bean = new
Packages.com.company.zeus.domain.inventory.material.MaterialTypeView();
myForm.load(bean);
var msg = event.source.parent.getWidget("message");
var i18nVal =
Packages.org.apache.cocoon.components.messages.MessageHandler.getMessage
(inventoryMessages,myForm.locale,"materialType.message.new");
msg.value = i18nVal;
]]>
</javascript>
</fd:on-action>
</fd:action>
<fd:action id="delete" action-command="delete" validate="false">
<fd:label><i18n:text>button.delete.label</i18n:text></fd:label>
<fd:help><i18n:text>button.delete.help</i18n:text></fd:help>
<fd:hint><i18n:text>button.delete.hint</i18n:text></fd:hint>
<fd:on-action>
<javascript>
<![CDATA[
var name = cocoon.request.get("name");
var msg = event.source.parent.getWidget("message");
try {
sproxy.deleteMaterialType(myForm.locale,name);
var args = [name];
var i18nVal =
Packages.org.apache.cocoon.components.messages.MessageHandler.getMessage
(inventoryMessages,myForm.locale,"materialType.message.delete",args);
msg.value = i18nVal;
//Reset form
bean = new
Packages.com.company.zeus.domain.inventory.material.MaterialTypeView();
myForm.load(bean);
dispatch="update";
}catch(ex) {
if(ex instanceof
Packages.com.company.zeus.service.system.exceptions.BaseAppException) {
var args = [name];
var i18nVal =
Packages.org.apache.cocoon.components.messages.ExceptionHandler.
getWebExceptionMessage(inventoryMessages,myForm.locale,ex);
msg.value = i18nVal;
} else {
throw ex;
}
}
]]>
</javascript>
</fd:on-action>
</fd:action>
<fd:submit id="save" action-command="save" validate="true">
<fd:label><i18n:text>button.save.label</i18n:text></fd:label>
<fd:help><i18n:text>button.save.help</i18n:text></fd:help>
<fd:hint><i18n:text>button.save.hint</i18n:text></fd:hint>
</fd:submit>
<fd:submit id="close" action-command="close" validate="false">
<fd:label><i18n:text>button.close.label</i18n:text></fd:label>
<fd:help><i18n:text>button.close.help</i18n:text></fd:help>
<fd:hint><i18n:text>button.close.hint</i18n:text></fd:hint>
</fd:submit>
<fd:submit id="cancel" action-command="cancel" validate="false">
<fd:label><i18n:text>button.cancel.label</i18n:text></fd:label>
<fd:help><i18n:text>button.cancel.help</i18n:text></fd:help>
<fd:hint><i18n:text>button.cancel.hint</i18n:text></fd:hint>
</fd:submit>
</fd:widgets>
</fd:form>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]