Cool! Seems like the right way to go, now that you did almost all the work
anyway :)



On Fri, Nov 22, 2013 at 12:31 PM, Magnus Kvalheim <mag...@movellas.com>wrote:

> Hi Chris, yes sure - will do that in the Jira.
>
> I think also the solution is interesting because it shows what's possible
> now with more flexible requirejs config on Tapestry side.
> One obvious use case for paths is to configure 'local' paths for thirdparty
> amd modules which themselves express dependencies.
> (But can also be used to 'patch' tapestry modules as mentioned here)
>
>
> On Fri, Nov 22, 2013 at 12:20 PM, Chris Poulsen <mailingl...@nesluop.dk
> >wrote:
>
> > Why not submit a patch, now that you've spent the time figuring it out?
> >
> >
> > On Fri, Nov 22, 2013 at 12:07 PM, Magnus Kvalheim <mag...@kvalheim.eu
> > >wrote:
> >
> > > So, was looking into fixing this myself as a temporary workaround.
> > >
> > > I think the fix is quite clean, and of interest for others in similar
> > > situation, so I'll briefly post it.
> > >
> > > --
> > > What I wanted to do was to make a modified version of forms.coffee and
> > > contribute/override that somehow.
> > > The forms.coffee mod is quite simple: (line 77)
> > >
> > > Replace:  return if type is "checkbox" && field.checked() is false
> > > with: return if (type is "checkbox" || type is "radio") &&
> > field.checked()
> > > is false
> > >
> > >
> > > Then contribute to JavascriptStack like so
> > > @Contribute(JavaScriptStack.class)
> > >  @Core
> > > public static void
> > > setupCoreJavaScriptStack(OrderedConfiguration<StackExtension>
> > > configuration) {
> > >  configuration.override("t5/core/forms", new
> > > StackExtension(StackExtensionType.MODULE, "t5-custom/core/forms"));
> > > }
> > >
> > > However, t5/core/forms is not actually added to the stack so I had to
> > look
> > > elsewhere.
> > >
> > >
> > > The solution: Set and alias path on Requirejs config for forms module
> > > Thiagos RequireJs config contribution have now made this possible,
> > > https://issues.apache.org/jira/browse/TAP5-2196
> > >
> > > jsSupport.addModuleConfigurationCallback(new
> > ModuleConfigurationCallback()
> > > {
> > >  @Override
> > > public JSONObject configure(JSONObject configuration) {
> > >  JSONObject paths = (JSONObject) configuration.opt("paths");
> > > if(paths==null) paths = new JSONObject();
> > >  paths.put("t5/core/forms", "t5-custom/core/forms");
> > >  configuration.put("paths", paths);
> > >  return configuration;
> > > }
> > > });
> > >
> > >
> > > Just great, thanks again Thiago :-)
> > >
> > >
> > > On Fri, Nov 22, 2013 at 9:34 AM, Magnus Kvalheim <mag...@kvalheim.eu>
> > > wrote:
> > >
> > > > JIRA is here: https://issues.apache.org/jira/browse/TAP5-2231
> > > >
> > > > On Fri, Nov 22, 2013 at 9:10 AM, Magnus Kvalheim <mag...@kvalheim.eu
> > > >wrote:
> > > >
> > > >> Just verified again with a simple form like this one:
> > > >>
> > > >>
> > >
> >
> http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/components/Radio.html
> > > >>
> > > >> =tml=
> > > >> <h2>Selected type: ${type}</h2>
> > > >> <t:zone t:id="formZone">
> > > >> <t:form t:zone="^" t:id="radioForm">
> > > >>
> > > >> <t:label for="type" />:
> > > >>
> > > >>  <t:radiogroup t:id="type">
> > > >>  <t:radio t:id="masterCard" />
> > > >> <t:label for="masterCard" />
> > > >> <t:radio t:id="visa" />
> > > >>  <t:label for="visa" />
> > > >> <t:radio t:id="amex" />
> > > >> <t:label for="amex" />
> > > >>  <t:radio t:id="dinersClub" />
> > > >> <t:label for="dinersClub" />
> > > >> <t:radio t:id="discover" />
> > > >>  <t:label for="discover" />
> > > >> </t:radiogroup>
> > > >>  <t:submit/>
> > > >>
> > > >> </t:form>
> > > >> </t:zone>
> > > >>
> > > >> =Java=
> > > >> public enum CardType{MASTER_CARD, VISA, AMERICAN_EXPRESS,
> DINERS_CLUB,
> > > >> DISCOVER}
> > > >>
> > > >> @InjectComponent private Zone formZone;
> > > >> @Inject private Request request;
> > > >>
> > > >> @Property
> > > >> @Persist
> > > >> private CardType type;
> > > >>
> > > >> public CardType getMasterCard() { return CardType.MASTER_CARD; }
> > > >>
> > > >> public CardType getVisa() { return CardType.VISA; }
> > > >>
> > > >> public CardType getAmex() { return CardType.AMERICAN_EXPRESS; }
> > > >>
> > > >> public CardType getDinersClub() { return CardType.DINERS_CLUB; }
> > > >>
> > > >> public CardType getDiscover() { return CardType.DISCOVER; }
> > > >>
> > > >> Object onSubmitFromRadioForm() {
> > > >> return request.isXHR() ? formZone.getBody() : null;
> > > >> }
> > > >>
> > > >> =Request Form data=
> > > >> t:zoneid:formZone
> > > >> t:submit:["submit_19b3a276fbae1_0","submit_0"]
> > > >>
> > > >>
> > >
> >
> t:formdata:hxLFSgWPQ9kZJpyI3CYQavAif/A=:H4sIAAAAAAAAAFvzloG1XIxBpCS1uEQ/KLW4ID+vOLMs1aqksiC1uIjBIr8oXS+xIDE5I1WvJBEoVFJUaaqXnF+UmpOZBKRzgepT80qK9YISUzLz3YvySwtUglNLSgsmGuzT2cz3+RATA6MPA3dyfl5JUX6OX2JuagmDkE9WYlmifk5iXrp+cElRZl66dUVBCQMLyEo8TjEhwymGpypOndoU/HcfEwNDRUG5BIMYuuHFpUm5mSVA4x2INT4YrEMloCg/ObW4GMwrLs7Mz5sZ/Ely65YWZyYGJh8GjuScTKBqz5RChjpwCKTmpOYCBUAhABYC+VgMYnm8oWWScaKRuVlaUmKqYbxBCQMHVMIAANTuUEWeAQAA
> > > >> *type:MASTER_CARD*
> > > >> *type:VISA*
> > > >> *type:AMERICAN_EXPRESS*
> > > >> *type:DINERS_CLUB*
> > > >> *type:DISCOVER*
> > > >>
> > > >> Looks like the "forms.gatherParameters (forms.js)" is adding all
> > values
> > > -
> > > >> and not just the checked one.
> > > >>
> > > >> I'll create a JIRA.
> > > >>
> > > >> magnus
> > > >>
> > > >> On Thu, Nov 21, 2013 at 11:07 PM, Magnus Kvalheim <
> mag...@kvalheim.eu
> > > >wrote:
> > > >>
> > > >>> Hi guys.
> > > >>>
> > > >>> Just notised a strange issue with radio ajax/zone submit. It
> submits
> > > all
> > > >>> values - selected and not selected.
> > > >>>
> > > >>> - If I disable javascript - then it submits single value. Correct
> > > >>> - If I remove form t:zone then it also submits fine. Correct
> > > >>>
> > > >>> If I enable t:zone then it submits all possible radio values.
> > > >>>
> > > >>>
> > > >>> Please let me know if anyone can confirm.
> > > >>>
> > > >>> Thanks
> > > >>> Magnus
> > > >>>
> > > >>
> > > >>
> > > >
> > >
> >
>

Reply via email to