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 > > > >>> > > > >> > > > >> > > > > > > > > > >