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