[html-formfu] Dojo and HTML::FormFu
Mario Minati
mario.minati at googlemail.com
Sun Jul 26 20:41:50 GMT 2009
Ferruccio Zamuner schrieb:
> Hello,
>
> I'm trying to resume HTML::FormFu::Dojo from svn, it's old and it was
> not working anymore:
>
> - dojo has changed since last release
> - html::formfu has improved too
>
> I've fixed DropdownDatePicker and at least it's rendering now pass the
> test and I've started to fix also Editor2 element,
> but there are some things about html::formfu that I don't understand:
>
> 1) in render() it created an hash with some keys like javascript to
> use in string() to stringify element.
> Which is the hash key where to store xhtml rendered?
>
> 2) I like dojo (http://www.dojotoolkit.org/) for its declarative way
> to describe widgets like:
>
> <div dojoType="dijit.form.Button" label="foo">
> <script type="dojo/method" event="onClick">
> // some jascript code to handle click event on foo button.
> </script>
> </div>
>
> <input dojoType="dijit.form.ValidationTextBox" size="30" name="bar"
> required="true" invalidMessage="You need to fill this field"
> promptMessage="This is the bar field" />
>
> To make this happen I need to write some javascript in page head:
>
> <!-- the init part -->
> <script type="text/javascript">
> var djConfig={ parseOnLoad: true };
> </script>
>
> <script type="text/javascript"
> src="http://ajax.googleapis.com/ajax/libs/dojo/1.3/dojo/dojo.xd.js">
> </script>
>
> <!-- end init part -->
>
> <!-- the variable part for each kind of widget I need -->
>
> <script type="text/javascript">
> dojo.require('dijit.form.Button');
> dojo.require('dijit.form.ValidationTextBox');
> </script>
>
> <!-- end of variable part -->
>
> Can I introduce another %render key for render the variable part?
>
> 3) the old HTML::FormFu::Dojo is quite old and it makes some trouble
> using programmatic inline javascript creation of widget:
> when the browser parses them, some part of dojo may be in loading
> phase yet and not ready.
> But programmatic creation of dojo widgets may be wanted (for
> validation issues for example) then it could be fine to make it
> possible placing a <script> section just at the end of the page body:
>
> ...
> <script type="text/javascript">
> dojo.addOnLoad(function () {
> var foo_button = new dijit.form.Button({label: 'foo'},
> dojo.query('someCssSelectorHere'), 'after');
> // ... some code about foo_button handling
> var bar_input = new dijit.form.ValidationTextBox({name: 'bar',
> required: true, promptMessage: 'bar field'},
> dojo.query('someOtherCssSelectorHere', 'after');
> });
> </script>
> </body>
>
> I suppose that it requires another key in the render hash too for
> delayed javascript insertion at end of the page, isn't it?
>
>
> 4) some dojo widgets are for layout only and they have not any form
> field element like dijit.TitlePane but they have children elements
> that can be form fields (dojox.widget.wizard for example), some other
> like dijit.form.ValidationTextBox are field and we need to
> html::formfu to process them. I suppose that a process() function in
> elements with field can be enough to handle them.
> Isn't it?
>
> 5) Another power of dojo is that it permits to define quite easy some
> custom and compound widgets, but they can be useless if
> html::formfu don't permit to declare them easly.
> Is there any quick guide about hot to write brand new html::formfu
> elements?
Hi Ferruccio,
in the HTML::FormFu::ExtJS tree we also faced some of this problems. We
decided to make it working without (almost I think) touching the
HTML::FormFu code itself.
So layout elements have been defined under our branch as
HTML::FormFu::Element::ExtJS::Panel and can be used if this distribution
is installed.
Maybe you can copy some of the design for the DOJO stuff.
Greets,
Mario
More information about the HTML-FormFu
mailing list