Author: reinhard Date: Fri Nov 26 00:44:32 2004 New Revision: 106646 URL: http://svn.apache.org/viewcvs?view=rev&rev=106646 Log: HTMLcleaningConvertor, htmlarea in HTML-tables, improved examples, XMLized strings - utility class by Bruno Added: cocoon/trunk/src/blocks/forms/lib/daisy-htmlcleaner-1.1.jar (contents, props changed) cocoon/trunk/src/blocks/forms/lib/daisy-util-1.1.jar (contents, props changed) cocoon/trunk/src/blocks/forms/lib/nekodtd-0.1.10.jar (contents, props changed) Modified: cocoon/trunk/src/blocks/forms/conf/forms-datatype.xconf cocoon/trunk/src/blocks/forms/samples/flow/bindings.js cocoon/trunk/src/blocks/forms/samples/flow/htmlarea.js cocoon/trunk/src/blocks/forms/samples/forms/form2_bind_xml.xml cocoon/trunk/src/blocks/forms/samples/forms/htmlarea.xml cocoon/trunk/src/blocks/forms/samples/forms/htmlarea_success.jx cocoon/trunk/src/blocks/forms/samples/forms/htmlarea_template.xml cocoon/trunk/src/blocks/forms/samples/resources/forms-advanced-field-styling.xsl cocoon/trunk/src/blocks/forms/samples/resources/forms-field-styling.xsl cocoon/trunk/src/blocks/forms/samples/resources/forms-htmlarea-styling.xsl cocoon/trunk/src/blocks/forms/samples/resources/forms-lib.js cocoon/trunk/src/blocks/forms/samples/resources/forms-samples-styling.xsl cocoon/trunk/src/blocks/forms/samples/sitemap.xmap
Modified: cocoon/trunk/src/blocks/forms/conf/forms-datatype.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/conf/forms-datatype.xconf?view=diff&rev=106646&p1=cocoon/trunk/src/blocks/forms/conf/forms-datatype.xconf&r1=106645&p2=cocoon/trunk/src/blocks/forms/conf/forms-datatype.xconf&r2=106646 ============================================================================== --- cocoon/trunk/src/blocks/forms/conf/forms-datatype.xconf (original) +++ cocoon/trunk/src/blocks/forms/conf/forms-datatype.xconf Fri Nov 26 00:44:32 2004 @@ -25,6 +25,7 @@ <datatype name="string" src="org.apache.cocoon.forms.datatype.typeimpl.StringTypeBuilder"> <convertors default="dummy" plain="dummy"> <convertor name="dummy" src="org.apache.cocoon.forms.datatype.convertor.DummyStringConvertorBuilder"/> + <convertor name="htmlcleaner" src="org.apache.cocoon.forms.datatype.convertor.HtmlCleaningConvertorBuilder"/> </convertors> </datatype> <datatype name="integer" src="org.apache.cocoon.forms.datatype.typeimpl.IntegerTypeBuilder"> Added: cocoon/trunk/src/blocks/forms/lib/daisy-htmlcleaner-1.1.jar Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/lib/daisy-htmlcleaner-1.1.jar?view=auto&rev=106646 ============================================================================== Binary file. No diff available. Added: cocoon/trunk/src/blocks/forms/lib/daisy-util-1.1.jar Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/lib/daisy-util-1.1.jar?view=auto&rev=106646 ============================================================================== Binary file. No diff available. Added: cocoon/trunk/src/blocks/forms/lib/nekodtd-0.1.10.jar Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/lib/nekodtd-0.1.10.jar?view=auto&rev=106646 ============================================================================== Binary file. No diff available. Modified: cocoon/trunk/src/blocks/forms/samples/flow/bindings.js Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/samples/flow/bindings.js?view=diff&rev=106646&p1=cocoon/trunk/src/blocks/forms/samples/flow/bindings.js&r1=106645&p2=cocoon/trunk/src/blocks/forms/samples/flow/bindings.js&r2=106646 ============================================================================== --- cocoon/trunk/src/blocks/forms/samples/flow/bindings.js (original) +++ cocoon/trunk/src/blocks/forms/samples/flow/bindings.js Fri Nov 26 00:44:32 2004 @@ -66,7 +66,7 @@ // all back-end models are bound to essentially the same form, using the same binding! var form = createFormForSample(sampleCode); - // the beack-end model itself however depends on sample and type. + // the back-end model itself however depends on sample and type. var bean = createBeanForSample(backendType, sampleCode); // loads the backend-bean into the form @@ -78,7 +78,7 @@ // saves the form into the backend-bean form.save(bean); var bizData = new Object(); - //hack the XML content to a string for display + // hack the XML content to a string for display if (backendType.equals("XML")) { bean = {xml: serializeNode(bean)}; } Modified: cocoon/trunk/src/blocks/forms/samples/flow/htmlarea.js Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/samples/flow/htmlarea.js?view=diff&rev=106646&p1=cocoon/trunk/src/blocks/forms/samples/flow/htmlarea.js&r1=106645&p2=cocoon/trunk/src/blocks/forms/samples/flow/htmlarea.js&r2=106646 ============================================================================== --- cocoon/trunk/src/blocks/forms/samples/flow/htmlarea.js (original) +++ cocoon/trunk/src/blocks/forms/samples/flow/htmlarea.js Fri Nov 26 00:44:32 2004 @@ -21,6 +21,9 @@ form.showForm("htmlarea-display-pipeline"); var model = form.getModel(); - var htmldata = { "data" : model.data } + var htmldata = { + "data1" : new Packages.org.apache.cocoon.xml.StringXMLizable(model.data1), + "data2" : new Packages.org.apache.cocoon.xml.StringXMLizable(model.data2) + } cocoon.sendPage("htmlarea-success-pipeline", htmldata); -} +} \ No newline at end of file Modified: cocoon/trunk/src/blocks/forms/samples/forms/form2_bind_xml.xml Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/samples/forms/form2_bind_xml.xml?view=diff&rev=106646&p1=cocoon/trunk/src/blocks/forms/samples/forms/form2_bind_xml.xml&r1=106645&p2=cocoon/trunk/src/blocks/forms/samples/forms/form2_bind_xml.xml&r2=106646 ============================================================================== --- cocoon/trunk/src/blocks/forms/samples/forms/form2_bind_xml.xml (original) +++ cocoon/trunk/src/blocks/forms/samples/forms/form2_bind_xml.xml Fri Nov 26 00:44:32 2004 @@ -107,7 +107,7 @@ </fb:on-bind> <fb:on-delete-row> - <!-- chose on of these to test --> + <!-- choose one of these to test --> <!-- <fb:set-attribute name="row-state" value="deleted" /> --> Modified: cocoon/trunk/src/blocks/forms/samples/forms/htmlarea.xml Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/samples/forms/htmlarea.xml?view=diff&rev=106646&p1=cocoon/trunk/src/blocks/forms/samples/forms/htmlarea.xml&r1=106645&p2=cocoon/trunk/src/blocks/forms/samples/forms/htmlarea.xml&r2=106646 ============================================================================== --- cocoon/trunk/src/blocks/forms/samples/forms/htmlarea.xml (original) +++ cocoon/trunk/src/blocks/forms/samples/forms/htmlarea.xml Fri Nov 26 00:44:32 2004 @@ -19,9 +19,17 @@ xmlns:i18n="http://apache.org/cocoon/i18n/2.1"> <fd:widgets> - <fd:field id="data"> - <fd:label>HTML:</fd:label> - <fd:datatype base="string" /> + <fd:field id="data1"> + <fd:label>in div; configuration within cForms template</fd:label> + <fd:datatype base="string"> + <fd:convertor type="htmlcleaner" config="resource://org/apache/cocoon/forms/datatype/convertor/HtmlCleanerConfiguration.xml"/> + </fd:datatype> + </fd:field> + <fd:field id="data2"> + <fd:label>in a table</fd:label> + <fd:datatype base="string"> + <fd:convertor type="htmlcleaner" config="resource://org/apache/cocoon/forms/datatype/convertor/HtmlCleanerConfiguration.xml"/> + </fd:datatype> </fd:field> </fd:widgets> </fd:form> Modified: cocoon/trunk/src/blocks/forms/samples/forms/htmlarea_success.jx Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/samples/forms/htmlarea_success.jx?view=diff&rev=106646&p1=cocoon/trunk/src/blocks/forms/samples/forms/htmlarea_success.jx&r1=106645&p2=cocoon/trunk/src/blocks/forms/samples/forms/htmlarea_success.jx&r2=106646 ============================================================================== --- cocoon/trunk/src/blocks/forms/samples/forms/htmlarea_success.jx (original) +++ cocoon/trunk/src/blocks/forms/samples/forms/htmlarea_success.jx Fri Nov 26 00:44:32 2004 @@ -14,11 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. --> -<page> - <title>Editing successful</title> - <content> - Editing was successful:<br/> - <br/> - ${data} - </content> -</page> +<result> + <data1>#{data1}</data1> + <data2>#{data2}</data2> +</result> Modified: cocoon/trunk/src/blocks/forms/samples/forms/htmlarea_template.xml Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/samples/forms/htmlarea_template.xml?view=diff&rev=106646&p1=cocoon/trunk/src/blocks/forms/samples/forms/htmlarea_template.xml&r1=106645&p2=cocoon/trunk/src/blocks/forms/samples/forms/htmlarea_template.xml&r2=106646 ============================================================================== --- cocoon/trunk/src/blocks/forms/samples/forms/htmlarea_template.xml (original) +++ cocoon/trunk/src/blocks/forms/samples/forms/htmlarea_template.xml Fri Nov 26 00:44:32 2004 @@ -19,14 +19,48 @@ <title>HTMLArea</title> <content> <ft:form-template action="#{$continuation/id}.continue" method="POST"> - <div> - <ft:widget-label id="data"/><br/> - <ft:widget id="data"> - <fi:styling type="htmlarea" style="width: 100%;" rows="20" cols="80"/> + <div style="width:500px"> + <ft:widget-label id="data1"/><br/> + <ft:widget id="data1"> + <fi:styling type="htmlarea" rows="8" style="width:100%"> + <!-- at this place, the configuration property of the HTMLArea is under 'conf' + available. Find more info about the available properties at + http://www.htmlarea.com/htmlarea_2/documentation.html --> + <conf> + conf.statusBar = false; + conf.sizeIncludesToolbar = false; + conf.fullPage = false; + conf.toolbar = [ + [ "bold", "italic", "separator", + "subscript", "superscript", "separator", + "insertorderedlist", "insertunorderedlist", + "outdent", "indent", "separator", + "inserthorizontalrule", "separator", + "copy", "cut", "paste", "space", "undo", "redo", + "separator", "showhelp"] + ]; + </conf> + </fi:styling> </ft:widget> - <br/> - <input type="submit"/> </div> + <p/> + <table border="1"> + <tr> + <td><ft:widget-label id="data2"/></td> + </tr> + <tr> + <td> + <ft:widget id="data2"> + <fi:styling type="htmlarea" rows="8" cols="70"> + <!-- if you add initFunction, make sure that it is available at the browser --> + <!--initFunction>myInit</initFunction--> + </fi:styling> + </ft:widget> + </td> + </tr> + </table> + <p/> + <input type="submit"/> </ft:form-template> </content> </page> Modified: cocoon/trunk/src/blocks/forms/samples/resources/forms-advanced-field-styling.xsl Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/samples/resources/forms-advanced-field-styling.xsl?view=diff&rev=106646&p1=cocoon/trunk/src/blocks/forms/samples/resources/forms-advanced-field-styling.xsl&r1=106645&p2=cocoon/trunk/src/blocks/forms/samples/resources/forms-advanced-field-styling.xsl&r2=106646 ============================================================================== --- cocoon/trunk/src/blocks/forms/samples/resources/forms-advanced-field-styling.xsl (original) +++ cocoon/trunk/src/blocks/forms/samples/resources/forms-advanced-field-styling.xsl Fri Nov 26 00:44:32 2004 @@ -24,7 +24,7 @@ | The very specific advanced stylings as the calendar or htmlarea (both | also need additional JS files) are separated out of this file. +--> - + <xsl:import href="forms-field-styling.xsl"/> <xsl:include href="forms-calendar-styling.xsl"/> <xsl:include href="forms-htmlarea-styling.xsl"/> @@ -99,7 +99,7 @@ </th> <th> </th> <th> - <xsl:copy-of select="fi:styling/fi:selected-label/node()"/> + <xsl:copy-of select="fi:styling/fi:selected-label/node()"/> </th> </tr> </xsl:if> @@ -116,7 +116,7 @@ <xsl:copy-of select="fi:label/node()"/> </option> </xsl:if> - </xsl:for-each> + </xsl:for-each> </select> </td> <td> @@ -125,7 +125,7 @@ <xsl:text> </xsl:text> <input type="button" value=">" onclick="opt{generate-id()}.forms_transferRight()"> <xsl:if test="@state='disabled'"> - <xsl:attribute name="disabled">disabled</xsl:attribute> + <xsl:attribute name="disabled">disabled</xsl:attribute> </xsl:if> </input> <xsl:text> </xsl:text> Modified: cocoon/trunk/src/blocks/forms/samples/resources/forms-field-styling.xsl Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/samples/resources/forms-field-styling.xsl?view=diff&rev=106646&p1=cocoon/trunk/src/blocks/forms/samples/resources/forms-field-styling.xsl&r1=106645&p2=cocoon/trunk/src/blocks/forms/samples/resources/forms-field-styling.xsl&r2=106646 ============================================================================== --- cocoon/trunk/src/blocks/forms/samples/resources/forms-field-styling.xsl (original) +++ cocoon/trunk/src/blocks/forms/samples/resources/forms-field-styling.xsl Fri Nov 26 00:44:32 2004 @@ -33,7 +33,13 @@ <xsl:template match="body" mode="forms-field"> <xsl:copy-of select="@*"/> - <xsl:attribute name="onload">forms_onload(); <xsl:value-of select="@onload"/></xsl:attribute> + <xsl:attribute name="onload">forms_onload();<xsl:value-of select="@onload"/></xsl:attribute> + </xsl:template> + + <xsl:template match="body" mode="forms-afterload"> + <script language="Javascript"> + forms_afterLoad(); + </script> </xsl:template> <!--+ Modified: cocoon/trunk/src/blocks/forms/samples/resources/forms-htmlarea-styling.xsl Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/samples/resources/forms-htmlarea-styling.xsl?view=diff&rev=106646&p1=cocoon/trunk/src/blocks/forms/samples/resources/forms-htmlarea-styling.xsl&r1=106645&p2=cocoon/trunk/src/blocks/forms/samples/resources/forms-htmlarea-styling.xsl&r2=106646 ============================================================================== --- cocoon/trunk/src/blocks/forms/samples/resources/forms-htmlarea-styling.xsl (original) +++ cocoon/trunk/src/blocks/forms/samples/resources/forms-htmlarea-styling.xsl Fri Nov 26 00:44:32 2004 @@ -47,11 +47,46 @@ </textarea> <xsl:apply-templates select="." mode="common"/> <xsl:choose> - <xsl:when test="fi:styling/initFunction"> - <script language="JavaScript"><xsl:value-of select="fi:styling/initFunction"/>('<xsl:value-of select="@id"/>');</script> + <xsl:when test="fi:styling/conf"> + <!-- use an 'ad hoc' configuration --> + <script type="text/javascript"> + var handler = new Object(); + handler.fieldId = "<xsl:value-of select="@id"/>"; + handler.forms_afterLoad = function() { + var id = "<xsl:value-of select="@id"/>"; + var textarea = document.getElementById(id); + var editor = new HTMLArea(id); + textarea.htmlarea = editor; + var conf = editor.config; + <xsl:value-of select="fi:styling/conf/text()"/> + editor.generate(); + } + forms_afterLoadHandler.push(handler); + </script> </xsl:when> + <!-- use a passed configuration function --> + <xsl:when test="fi:styling/initFunction and not(fi:styling/conf)"> + <script type="text/javascript"> + var handler = new Object(); + handler.fieldId = "<xsl:value-of select="@id"/>"; + if(typeof(<xsl:value-of select="fi:styling/initFunction"/>)!="function") { + alert("<xsl:value-of select="fi:styling/initFunction"/> is not a function " + + or not available! Can't render widget '<xsl:value-of select="@id"/>'"); + } + handler.forms_afterLoad = <xsl:value-of select="fi:styling/initFunction"/>; + forms_afterLoadHandler.push(handler); + </script> + </xsl:when> + <!-- default mode with all buttons available --> <xsl:otherwise> - <script type="text/javascript">HTMLArea.replace('<xsl:value-of select="@id"/>');</script> + <script type="text/javascript"> + var handler = new Object(); + handler.fieldId = "<xsl:value-of select="@id"/>"; + handler.forms_afterLoad = function() { + HTMLArea.replace('<xsl:value-of select="@id"/>'); + } + forms_afterLoadHandler.push(handler); + </script> </xsl:otherwise> </xsl:choose> </xsl:template> Modified: cocoon/trunk/src/blocks/forms/samples/resources/forms-lib.js Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/samples/resources/forms-lib.js?view=diff&rev=106646&p1=cocoon/trunk/src/blocks/forms/samples/resources/forms-lib.js&r1=106645&p2=cocoon/trunk/src/blocks/forms/samples/resources/forms-lib.js&r2=106646 ============================================================================== --- cocoon/trunk/src/blocks/forms/samples/resources/forms-lib.js (original) +++ cocoon/trunk/src/blocks/forms/samples/resources/forms-lib.js Fri Nov 26 00:44:32 2004 @@ -31,8 +31,20 @@ forms_onloadHandlers = null; } +// Handlers that are to be called at the end of the document +// (called before the closing body element) +var forms_afterLoadHandler = new Array(); + +function forms_afterLoad() { + for (var i = 0; i < forms_afterLoadHandler.length; i++) { + forms_afterLoadHandler[i].forms_afterLoad(forms_afterLoadHandler[i].fieldId); + } + // Clear it (we no more need them) + forms_afterLoadHandler = null; +} + // Handlers that are to be called in form's "onsubmit" event -//FIXME: this single var implies only one form per page, and needs to be +// FIXME: this single var implies only one form per page, and needs to be // visited if we decide to support several forms per page. var forms_onsubmitHandlers = new Array(); Modified: cocoon/trunk/src/blocks/forms/samples/resources/forms-samples-styling.xsl Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/samples/resources/forms-samples-styling.xsl?view=diff&rev=106646&p1=cocoon/trunk/src/blocks/forms/samples/resources/forms-samples-styling.xsl&r1=106645&p2=cocoon/trunk/src/blocks/forms/samples/resources/forms-samples-styling.xsl&r2=106646 ============================================================================== --- cocoon/trunk/src/blocks/forms/samples/resources/forms-samples-styling.xsl (original) +++ cocoon/trunk/src/blocks/forms/samples/resources/forms-samples-styling.xsl Fri Nov 26 00:44:32 2004 @@ -29,7 +29,7 @@ <head> <xsl:apply-templates/> <xsl:apply-templates select="." mode="forms-page"/> - <xsl:apply-templates select="." mode="forms-field"/> + <xsl:apply-templates select="." mode="forms-field"/> </head> </xsl:template> @@ -41,6 +41,7 @@ <xsl:apply-templates select="." mode="forms-page"/> <xsl:apply-templates select="." mode="forms-field"/> <xsl:apply-templates/> + <xsl:apply-templates select="." mode="forms-afterload"/> </body> </xsl:template> Modified: cocoon/trunk/src/blocks/forms/samples/sitemap.xmap Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/samples/sitemap.xmap?view=diff&rev=106646&p1=cocoon/trunk/src/blocks/forms/samples/sitemap.xmap&r1=106645&p2=cocoon/trunk/src/blocks/forms/samples/sitemap.xmap&r2=106646 ============================================================================== --- cocoon/trunk/src/blocks/forms/samples/sitemap.xmap (original) +++ cocoon/trunk/src/blocks/forms/samples/sitemap.xmap Fri Nov 26 00:44:32 2004 @@ -40,6 +40,10 @@ <map:view name="content" from-label="content"> <map:serialize type="xml"/> </map:view> + + <map:view name="content1" from-label="content1"> + <map:serialize type="xml"/> + </map:view> <map:view from-label="content" name="pretty-content"> <map:transform src="context://stylesheets/system/xml2html.xslt"/> @@ -124,7 +128,7 @@ <!-- pipeline to show the form --> <map:generate src="forms/form1_template_action.xml"/> - <map:transform type="forms"> + <map:transform type="forms" label="content1"> <map:parameter name="attribute-name" value="form1"/> </map:transform> <map:transform type="i18n"> @@ -162,7 +166,7 @@ --> <map:match pattern="*-display-pipeline"> <map:generate src="forms/{1}_template.xml"/> - <map:transform type="forms"/> + <map:transform type="forms" label="content1"/> <map:transform type="i18n"> <map:parameter name="locale" value="en-US"/> </map:transform> @@ -177,7 +181,7 @@ | Show a form, using the jx template macros --> <map:match pattern="*-display-pipeline.jx"> - <map:generate type="jx" src="forms/{1}_template.xml"/> + <map:generate type="jx" src="forms/{1}_template.xml" label="content1"/> <map:transform type="i18n"> <map:parameter name="locale" value="en-US"/> </map:transform> @@ -414,14 +418,7 @@ <map:match pattern="htmlarea-success-pipeline"> <map:generate type="jx" src="forms/htmlarea_success.jx"/> - <map:transform src="context://samples/common/style/xsl/html/simple-page2html.xsl"> - <map:parameter name="contextPath" value="{request:contextPath}"/> - <map:parameter name="servletPath" value="{request:servletPath}"/> - <map:parameter name="sitemapURI" value="{request:sitemapURI}"/> - <map:parameter name="file" value="forms/htmlarea_success.jx"/> - <map:parameter name="remove" value="{0}"/> - </map:transform> - <map:serialize/> + <map:serialize type="xml"/> </map:match> <map:match pattern="resources/**">