Hi, Fantastic - thank you. I've updated my AppModule with this change.
I appreciate all your help, Thanks, Steve On 4 May 2015 at 18:04, Dimitris Zenios <dimitris.zen...@gmail.com> wrote: > HI > > Your contribution to ModuleManager is correct.It will be better though to > inject the resource > > Like this > @Contribute(ModuleManager.class) > public static void overrideCoreModules( > MappedConfiguration<String, JavaScriptModuleConfiguration>configuration, > @Path("META-INF/modules/ajaxformloop.js") Resource ajaxFormLoop > ) { > configuration.add("t5/core/ajaxformloop",new > JavaScriptModuleConfiguration(ajaxFormLoop)); > } > > Also your change to "this" was correct.It was supposed to be > "this".Something went wrong on copy paste.I am reattaching the fixed > ajaxformloop > > > > On Mon, May 4, 2015 at 7:31 PM, Stephen Nutbrown <steves...@gmail.com> > wrote: >> >> Hi, >> >> Thanks again Dimitris. I really really appreciate your help, it's now >> fixed - I got there in the end, and it's looking very good too. >> >> Just a few things which may help anyone else who comes across this issue: >> >> I've spent a fair bit of time looking up exactly how to override that >> js (I found several links to threads like this, but not much in the >> documentation: >> http://apache-tapestry-mailing-list-archives.1045711.n5.nabble.com/5-4-beta-2-Two-JavaScript-Errors-Quick-Fixes-td5725545.html). >> The documentation seems to just say that it is possible, but not >> really how to do it (perhaps an improvement for another day). >> >> I think I have done this correctly now (for anyone else who comes >> across this thread, this is in my AppModule): >> >> @Contribute(ModuleManager.class) >> public static void overrideCoreModules(AssetSource assetSource, >> MappedConfiguration<String, JavaScriptModuleConfiguration> >> configuration) { >> Resource ajaxFormLoop = >> assetSource.resourceForPath("/META-INF/modules/ajaxformloop.js"); >> configuration.add("t5/core/ajaxformloop",new >> JavaScriptModuleConfiguration(ajaxFormLoop)); >> } >> >> I can see the file updated (I can see it by viewing the sources from >> the browser), however I now get this in my console (And nothing >> appears to happen when I click "add row") >> >> :8080/webapp/modules.gz/t5/core/ajaxformloop.js:52 Uncaught >> ReferenceError: eeventthis is not defined >> >> In ajaxformloop.js I changed line 52: "eeventthis" to "this" (I'm not >> good with js with js is just based on looking at other modules - so I >> am guessing this is a typo). >> >> This seems to fix it! >> >> Thank you for all of the help Dimitris, I have certainly learned a few >> things. Hopefully this thread will be useful to anyone else with the >> same issues too. >> I'm going to spend a bit of time looking through the datetimefield >> code to understand it, it all looks sensible so I don't think it'll >> take me long. >> >> Thank you again, all your help has been fantastic. >> >> Thanks, >> Steve >> >> >> On 4 May 2015 at 13:54, Dimitris Zenios <dimitris.zen...@gmail.com> wrote: >> > The problem lies within tapestry ajaxformloop javascript file >> > >> > The events.zone.didUpdate is not triggered on the new element but on the >> > addRowButton (insertionPoint) resulting on the scanner to not be >> > executed.Until this gets fixed you can override tapestry core >> > ajaxformloop >> > file with the one I have attached >> > >> > Thanks >> > Dimitris Zenios >> > >> > >> > On Mon, May 4, 2015 at 2:16 PM, Stephen Nutbrown <steves...@gmail.com> >> > wrote: >> >> >> >> When I remove, the console says: >> >> >> >> Executing 0 inits >> >> console.js:104 All inits executed >> >> >> >> Thanks, >> >> Steve >> >> >> >> On 4 May 2015 at 12:04, Stephen Nutbrown <steves...@gmail.com> wrote: >> >> > Hi, >> >> > >> >> > Just to add to that - when I press remove row, this function also is >> >> > not called (at least, the alert doesn't show). Only when the page >> >> > loads. >> >> > >> >> > Thanks, >> >> > Steve >> >> > >> >> > On 4 May 2015 at 11:56, Stephen Nutbrown <steves...@gmail.com> wrote: >> >> >> Hi, >> >> >> >> >> >> Thank you Akshay & Dimitris. >> >> >> >> >> >> Just a quick note on the things I have now tried, and the outcome. >> >> >> I tried Ashkay's example but seemed to run into some problems, >> >> >> mainly >> >> >> that I don't know exactly where to put this code as it is using a js >> >> >> module, the function is also anonymous so I was a bit >> >> >> stuck/confused. >> >> >> >> >> >> I then put an alert inside the function passed to the scanner: >> >> >> dom.scanner("[data-component-type='DateTimeField']", >> >> >> function(container) { >> >> >> alert('running function'); >> >> >> .... >> >> >> .... >> >> >> } >> >> >> >> >> >> I see this runs once for each row on the form to begin with, but >> >> >> does >> >> >> no run again when adding a new row. E.g, if I have 2 rows, it runs >> >> >> twice, I press add row, it does not run again (but I now have 3 >> >> >> rows). >> >> >> The new row is the one which contains the field which doesn't seem >> >> >> show the picker on click. >> >> >> >> >> >> I then updated from 5.4-beta-28 to 5.4-beta-31, this didn't seem to >> >> >> work. >> >> >> >> >> >> This is what I get in the console of Google Chrome developer tools: >> >> >> >> >> >> >> >> >> ===== When the page loads ===== >> >> >> Loading 0 libraries >> >> >> console.js:104 Executing 7 inits >> >> >> console.js:104 Invoking t5/core/pageinit:focus("price") >> >> >> console.js:104 Loaded module t5/core/forms >> >> >> console.js:104 Loaded module t5/core/form-fragment >> >> >> console.js:104 Loaded module t5/core/validation >> >> >> console.js:104 Loaded module t5/core/ajaxformloop >> >> >> console.js:104 Loaded module bootstrap/alert >> >> >> console.js:104 Loaded module datetimefield >> >> >> console.js:104 All inits executed >> >> >> >> >> >> ==== When I then click "Add Row ====== >> >> >> console.js:104 Executing 3 inits >> >> >> console.js:104 Loaded module datetimefield >> >> >> console.js:104 Loaded module t5/core/validation >> >> >> console.js:104 Loaded module t5/core/ajaxformloop >> >> >> console.js:104 All inits executed >> >> >> ================================ >> >> >> >> >> >> Looking in the events listeners part of Google chrome developer >> >> >> tools, >> >> >> I can see the original one has two additional event listeners which >> >> >> the new one doesn't. These are called "dp" and "mousedown". >> >> >> >> >> >> Perhaps the order in which these are initialised matter here, should >> >> >> the datetimefield be after the validation/ajaxformloop? >> >> >> >> >> >> Thanks, >> >> >> Steve >> >> >> >> >> >> On 4 May 2015 at 11:08, Dimitris Zenios <dimitris.zen...@gmail.com> >> >> >> wrote: >> >> >>> Also can you please update to latest tapestry 5.4-beta-31 >> >> >>> >> >> >>> I think there was a bug that looks like that and got fixed. >> >> >>> >> >> >>> On Mon, May 4, 2015 at 1:04 PM, Dimitris Zenios >> >> >>> <dimitris.zen...@gmail.com> >> >> >>> wrote: >> >> >>> >> >> >>>> Javascript is using dom.scanner function which should execute on >> >> >>>> every >> >> >>>> zone change.Just like the DateField >> >> >>>> >> >> >>>> Can you please check whether the function passed to dom.scanner is >> >> >>>> executed when you add or remove rows? >> >> >>>> >> >> >>>> On Mon, May 4, 2015 at 2:42 AM, akshay <akshayestat...@gmail.com> >> >> >>>> wrote: >> >> >>>> >> >> >>>>> Hi Stephen, >> >> >>>>> >> >> >>>>> You can try something like this:- >> >> >>>>> @Inject >> >> >>>>> private AjaxResponseRenderer ajaxResponseRenderer; >> >> >>>>> >> >> >>>>> >> >> >>>>> ajaxResponseRenderer.addRender("YOUR ZONE"); >> >> >>>>> ajaxResponseRenderer.addCallback(new JavaScriptCallback() { >> >> >>>>> >> >> >>>>> @Override >> >> >>>>> public void run(JavaScriptSupport javascriptSupport) { >> >> >>>>> >> >> >>>>> javascriptSupport.require("YOUR JS >> >> >>>>> FILE").invoke("function >> >> >>>>> to be >> >> >>>>> invoked"); >> >> >>>>> >> >> >>>>> >> >> >>>>> } >> >> >>>>> }); >> >> >>>>> >> >> >>>>> Best Regards >> >> >>>>> Akshay >> >> >>>>> >> >> >>>>> On Mon, May 4, 2015 at 1:38 AM, Stephen Nutbrown >> >> >>>>> <steves...@gmail.com> >> >> >>>>> wrote: >> >> >>>>> >> >> >>>>> > I tried adding this to the DateTimeField without much luck: >> >> >>>>> > >> >> >>>>> > @AfterRender >> >> >>>>> > void afterRender(){ >> >> >>>>> > javascriptSupport.require("datetimefield"); >> >> >>>>> > } >> >> >>>>> > >> >> >>>>> > I don't think this has any effect since the js is already >> >> >>>>> > loaded >> >> >>>>> > once, >> >> >>>>> > and i'm not 100% certain that this is the problem either. >> >> >>>>> > >> >> >>>>> > On 4 May 2015 at 00:35, Stephen Nutbrown <steves...@gmail.com> >> >> >>>>> > wrote: >> >> >>>>> > > Hi, >> >> >>>>> > > >> >> >>>>> > > I have a quick question (and this isn't anything to do with >> >> >>>>> > > your >> >> >>>>> > > code, >> >> >>>>> > > which is fantastic) - it's more to do with how Tapestry >> >> >>>>> > > handles >> >> >>>>> > > an >> >> >>>>> > > AjaxFormLoop. >> >> >>>>> > > >> >> >>>>> > > I have this component inside an ajax form loop. When I add a >> >> >>>>> > > new >> >> >>>>> > > row, >> >> >>>>> > > it will add in a new component (of type DateTimeField). >> >> >>>>> > > >> >> >>>>> > > However, although the DateTimeField from the previous rows >> >> >>>>> > > works >> >> >>>>> > > fine, >> >> >>>>> > > the new one doesn't. I get the feeling this is because the >> >> >>>>> > > javascript >> >> >>>>> > > wants to be re-initialised - we want to run DateTimeField.js >> >> >>>>> > > again? >> >> >>>>> > > >> >> >>>>> > > I'm struggling a little bit to find out exactly why this is. >> >> >>>>> > > There are >> >> >>>>> > > no console errors (either to the java output or JS console), >> >> >>>>> > > so >> >> >>>>> > > I >> >> >>>>> > > assume the event handler isn't added to the newly added row. >> >> >>>>> > > >> >> >>>>> > > Any ideas on how I would go about doing that? >> >> >>>>> > > >> >> >>>>> > > I noticed something similar going on with Tapestry's >> >> >>>>> > > DateField, >> >> >>>>> > > so i'm >> >> >>>>> > > sure this isn't to do with the component. If I refresh the >> >> >>>>> > > page, >> >> >>>>> > > the >> >> >>>>> > > newly added row works fine. >> >> >>>>> > > >> >> >>>>> > > Thanks, >> >> >>>>> > > Steve >> >> >>>>> > > >> >> >>>>> > > On 3 May 2015 at 15:59, Stephen Nutbrown >> >> >>>>> > > <steves...@gmail.com> >> >> >>>>> > > wrote: >> >> >>>>> > >> Hi Dimitris, >> >> >>>>> > >> >> >> >>>>> > >> That's extremely kind and generous of you, thank you! I owe >> >> >>>>> > >> you >> >> >>>>> > >> a few >> >> >>>>> > >> beers, if you happen to have a paypal address hooked up to >> >> >>>>> > >> your >> >> >>>>> > >> email >> >> >>>>> > >> account I can send you a little something (Not much as I'm >> >> >>>>> > >> currently >> >> >>>>> a >> >> >>>>> > >> student myself, but just to buy yourself a few beers on me). >> >> >>>>> > >> >> >> >>>>> > >> Cheers, >> >> >>>>> > >> Steve >> >> >>>>> > >> >> >> >>>>> > >> C >> >> >>>>> > >> >> >> >>>>> > >> On 3 May 2015 at 11:28, Dimitris Zenios >> >> >>>>> > >> <dimitris.zen...@gmail.com> >> >> >>>>> > wrote: >> >> >>>>> > >>> Sure I will put them here as an attachment so everybody can >> >> >>>>> > >>> see it >> >> >>>>> > >>> >> >> >>>>> > >>> You will also need to >> >> >>>>> > >>> 1.Put the datetimepicker library inside >> >> >>>>> > >>> META-INF/modules/datetime/. >> >> >>>>> > >>> 2.Put the datetimepicker css inside >> >> >>>>> > >>> META-INF/assets/other/css/. >> >> >>>>> > >>> >> >> >>>>> > >>> The example I have attached is using Java 8 LocalDateTime >> >> >>>>> > >>> but >> >> >>>>> > >>> it >> >> >>>>> can be >> >> >>>>> > >>> adopted in order to use java.util.Date >> >> >>>>> > >>> >> >> >>>>> > >>> Thanks >> >> >>>>> > >>> Dimitris Zenios >> >> >>>>> > >>> >> >> >>>>> > >>> On Fri, May 1, 2015 at 9:41 PM, Stephen Nutbrown < >> >> >>>>> steves...@gmail.com> >> >> >>>>> > >>> wrote: >> >> >>>>> > >>>> >> >> >>>>> > >>>> Hi Dimitris, >> >> >>>>> > >>>> >> >> >>>>> > >>>> Wow, as it happens that's the exact same one I was having >> >> >>>>> > >>>> problems >> >> >>>>> > >>>> implementing! >> >> >>>>> > >>>> >> >> >>>>> > >>>> It would be awesome to have some kind of tapestry5 >> >> >>>>> > >>>> component >> >> >>>>> > >>>> marketplace. Perhaps another thing for another day. >> >> >>>>> > >>>> I feel very cheeky asking, but would you be up for (able >> >> >>>>> > >>>> to) >> >> >>>>> > >>>> send >> >> >>>>> me >> >> >>>>> > >>>> the code, i'd be more than happy to pay for a few drinks >> >> >>>>> > >>>> for >> >> >>>>> > >>>> you? >> >> >>>>> > >>>> >> >> >>>>> > >>>> Thanks, >> >> >>>>> > >>>> Steve >> >> >>>>> > >>>> >> >> >>>>> > >>>> On 1 May 2015 at 11:24, Dimitris Zenios >> >> >>>>> > >>>> <dimitris.zen...@gmail.com >> >> >>>>> > >> >> >>>>> > wrote: >> >> >>>>> > >>>> > For tapestry 5.4 i have been using this javascript >> >> >>>>> > >>>> > library >> >> >>>>> > >>>> > https://eonasdan.github.io/bootstrap-datetimepicker/ >> >> >>>>> > >>>> > >> >> >>>>> > >>>> > and a custom component extending AbstractField >> >> >>>>> > >>>> > >> >> >>>>> > >>>> > >> >> >>>>> > >>>> > >> >> >>>>> > >>>> > >> >> >>>>> > >>>> > On Fri, May 1, 2015 at 1:15 PM, Stephen Nutbrown < >> >> >>>>> > steves...@gmail.com> >> >> >>>>> > >>>> > wrote: >> >> >>>>> > >>>> > >> >> >>>>> > >>>> >> Hi, >> >> >>>>> > >>>> >> >> >> >>>>> > >>>> >> I have been looking for a date + time picker for >> >> >>>>> > >>>> >> Tapestry. >> >> >>>>> > >>>> >> I'd >> >> >>>>> > like a >> >> >>>>> > >>>> >> form component which will bind to a java.util.Date >> >> >>>>> > >>>> >> object, >> >> >>>>> > >>>> >> and >> >> >>>>> asks >> >> >>>>> > >>>> >> for a time as well as a date. >> >> >>>>> > >>>> >> >> >> >>>>> > >>>> >> I haven't had much luck, i've found bits of code here >> >> >>>>> > >>>> >> and >> >> >>>>> > >>>> >> there >> >> >>>>> for >> >> >>>>> > >>>> >> older versions of tapestry. I would have thought this >> >> >>>>> > >>>> >> component >> >> >>>>> > would >> >> >>>>> > >>>> >> be one which comes with Tapestry out of the box, as I >> >> >>>>> > >>>> >> would >> >> >>>>> think >> >> >>>>> > it's >> >> >>>>> > >>>> >> a common requirement. >> >> >>>>> > >>>> >> >> >> >>>>> > >>>> >> I tried to create my own component which extends >> >> >>>>> > >>>> >> AbstractField, >> >> >>>>> > based >> >> >>>>> > >>>> >> on the source code I can see for the >> >> >>>>> > >>>> >> >> >> >>>>> > >>>> >> >> >> >>>>> > >>>> >> >> >> >>>>> > >> >> >>>>> >> >> >>>>> >> >> >>>>> http://tapestry.apache.org/5.3/apidocs/src-html/org/apache/tapestry5/corelib/components/DateField.html#line.52 >> >> >>>>> > >>>> >> but I ran in to some issues (I think perhaps I just >> >> >>>>> > >>>> >> didn't >> >> >>>>> > >>>> >> have >> >> >>>>> > enough >> >> >>>>> > >>>> >> patience, I will need to revisit it if I am to try >> >> >>>>> > >>>> >> again - >> >> >>>>> > >>>> >> it's >> >> >>>>> a >> >> >>>>> > bit >> >> >>>>> > >>>> >> of a learning curve for me). >> >> >>>>> > >>>> >> >> >> >>>>> > >>>> >> Is there a simpler way to do this? Am I going in the >> >> >>>>> > >>>> >> right >> >> >>>>> > direction >> >> >>>>> > >>>> >> trying to create a new component which extends >> >> >>>>> > >>>> >> AbstractField? If >> >> >>>>> > there >> >> >>>>> > >>>> >> was one that is known to work on the latest versions of >> >> >>>>> > >>>> >> tapestry >> >> >>>>> > and >> >> >>>>> > >>>> >> with jQuery as the js provider (or not requiring >> >> >>>>> > jQuery/Prototype), I >> >> >>>>> > >>>> >> would really appreciate a link. If not, any guidance on >> >> >>>>> > >>>> >> if >> >> >>>>> > >>>> >> my >> >> >>>>> > approach >> >> >>>>> > >>>> >> is sensible, if it is.. i'll just try again this >> >> >>>>> > >>>> >> evening. >> >> >>>>> > >>>> >> >> >> >>>>> > >>>> >> >> >> >>>>> > >>>> >> Any help is really appreciated. >> >> >>>>> > >>>> >> Thanks, >> >> >>>>> > >>>> >> >> >> >>>>> > >>>> >> >> >> >>>>> > >> >> >>>>> > >> >> >>>>> > --------------------------------------------------------------------- >> >> >>>>> > >>>> >> To unsubscribe, e-mail: >> >> >>>>> > >>>> >> users-unsubscr...@tapestry.apache.org >> >> >>>>> > >>>> >> For additional commands, e-mail: >> >> >>>>> > >>>> >> users-h...@tapestry.apache.org >> >> >>>>> > >>>> >> >> >> >>>>> > >>>> >> >> >> >>>>> > >>>> >> >> >>>>> > >>>> >> >> >>>>> >> >> >>>>> >> >> >>>>> --------------------------------------------------------------------- >> >> >>>>> > >>>> To unsubscribe, e-mail: >> >> >>>>> > >>>> users-unsubscr...@tapestry.apache.org >> >> >>>>> > >>>> For additional commands, e-mail: >> >> >>>>> > >>>> users-h...@tapestry.apache.org >> >> >>>>> > >>>> >> >> >>>>> > >>> >> >> >>>>> > >>> >> >> >>>>> > >>> >> >> >>>>> > >>> >> >> >>>>> >> >> >>>>> >> >> >>>>> --------------------------------------------------------------------- >> >> >>>>> > >>> To unsubscribe, e-mail: >> >> >>>>> > >>> users-unsubscr...@tapestry.apache.org >> >> >>>>> > >>> For additional commands, e-mail: >> >> >>>>> > >>> users-h...@tapestry.apache.org >> >> >>>>> > >> >> >>>>> > >> >> >>>>> > >> >> >>>>> > --------------------------------------------------------------------- >> >> >>>>> > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >> >> >>>>> > For additional commands, e-mail: users-h...@tapestry.apache.org >> >> >>>>> > >> >> >>>>> > >> >> >>>>> >> >> >>>>> >> >> >>>>> -- >> >> >>>>> Cheers!! >> >> >>>>> Akshay >> >> >>>>> >> >> >>>> >> >> >>>> >> >> >> >> --------------------------------------------------------------------- >> >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >> >> For additional commands, e-mail: users-h...@tapestry.apache.org >> >> >> > >> > >> > >> > --------------------------------------------------------------------- >> > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >> > For additional commands, e-mail: users-h...@tapestry.apache.org >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >> For additional commands, e-mail: users-h...@tapestry.apache.org >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org