Thanks for the suggestions, I'll have time to get into this properly, figure out the details of Wicket etc., later in the coming week.
On Fri, Sep 16, 2016 at 6:44 PM, Dan Haywood <d...@haywood-associates.co.uk> wrote: > Hi Steve, > > Hmm, thanks for your work on this so far. > > Unfortunately, I haven't been able to reproduce. I've run up the > kitchensink on one dev box, and then accessed it from another, with > kitchensink running in SERVER rather than prototype mode. On the > "semantics" menu it will return an object that has a no-arg action "Safe > action", and this invokes just fine. > > My suggestion is trying to trace the interaction from Wicket's javascript, > see where it gets stuck. If you use Chrome dev tools, you should be able > to find the callback, eg [1]. I know you say you aren't seeing any network > interaction, but if you were, then (with "preserve log" checked), you would > see something like [2], ie an initial XHR request to invoke the action, > which ultimately returns a response code for the javascript to request the > next version of the entity (or at least, the bit of the page to be > repainted). > > If you can't find the callback in the first place, then I guess there's > some sort of issue with javascript resources not being downloaded, or with > the Wicket callbacks not being wired together somehow when the HTML DOM is > initially built. > > If you can find the callback, then I guess it's hitting some sort of > network issue. > > @martin-g ... any further insights/clues/debugging suggestions? > > Thx > Dan > > > > [1] http://imgur.com/a/RUVvW > [2] http://imgur.com/a/vwAbC > > > > > > > On 14 September 2016 at 11:45, Stephen Cameron <steve.cameron...@gmail.com > > > wrote: > > > > > > > This is the HTML DOM from Chrome for the Add Next (Scheduled Activity) > > button. > > > > <div class="btn-group"> > > <div id="id1b2"> > > <ul class="additionalLinkList additionalLinkListInline > > list-unstyled list-inline" id="id1b3"> > > <li class="additionalLinkItem" title="Adds another child > > Activity"> > > <a href="javascript:;" class="btn btn-sm btn-default > > noVeil RecurringActivity-addNextScheduledActivity" id="id1a1"> > > <span class="fa fa-fw fa-plus-square > > fontAwesomeIcon"></span><span class="additionalLinkItem add-next">Add > > Next</span> > > </a> > > </li> > > </ul> > > </div> > > </div> > > > > This is what is present for the single arg Action > > > > <div class="entityActions" id="id1ad"> > > <ul class="additionalLinkList additionalLinkListInline > > list-unstyled list-inline" id="id1ae"> > > <li class="additionalLinkItem" title=""> > > <a href="javascript:;" class="btn btn-sm btn-default > > noVeil RecurringActivity-addMany" id="id195"> > > <span class="fa fa-fw fa-plus-square > > fontAwesomeIcon"></span><span class="additionalLinkItem add-many">Add > > Many</span> > > </a> > > </li> > > </ul> > > </div> > > > > There is no difference. The href="javascript:;" is maybe just a place > > holder to make the markup legal and the actual javascript routine > executed > > is updated after page load. So, I need to see that enhance DOM to know > > where to start I guess. > > > > However, that the no-args 'Add Next' button works on one system and not > > on another, might suggest something to someone. > > > > It maybe suggests that something important is not getting to the client? > > > > I now have a work-around, so urgency is not so great, I can work on > > resolving this as time allows. > > > > Regards > > Steve C > > > > > > > > > > > > > > On Wed, Sep 14, 2016 at 10:20 AM, Stephen Cameron < > > steve.cameron...@gmail.com> wrote: > > > >> Network activity with no args Action: none! > >> > >> Network activity with 1-parameter Action: some, see request below > >> > >> GET /chats/wicket/entity?14-1.IBehaviorListener.0-theme-entityPa > >> geContainer-entity-rows-1-rowContents-1-col-entityHeader > >> Panel-entityActions-additionalLinkList-additionalLinkItem-0- > additionalLink&_=1473812104907 > >> HTTP/1.1 > >> Host: lifechatsdb > >> Connection: keep-alive > >> Wicket-FocusedElementId: id195 > >> User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 > >> (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36 > >> Accept: application/xml, text/xml, */*; q=0.01 > >> X-Requested-With: XMLHttpRequest > >> Wicket-Ajax: true > >> Wicket-Ajax-BaseURL: entity?14 > >> Referer: http://lifechatsdb/chats/wicket/entity?14 > >> Accept-Encoding: gzip, deflate, sdch > >> Accept-Language: en-US,en;q=0.8 > >> Cookie: LoggedIn=PjpOK6Pku8mL27old8t-DA; isis..viewer..wicket..themes.. > selected=Flatly; > >> isisWicketRememberMe=VQ_ElYTPZMrqNSoiJsEZ2G0ktvE5ArT4; > >> JSESSIONID=wdt3bnexk6vx16c6cmh9g57mf > >> > >> > >> > >> The > >> > >> On Wed, Sep 14, 2016 at 10:04 AM, Stephen Cameron < > >> steve.cameron...@gmail.com> wrote: > >> > >>> Hi Oscar, > >>> > >>> I am setting both sides, setParentActivity(this); is where the > >>> child->parent object reference is created. > >>> > >>> I added the code simply to show its just a very simple method (that > >>> works just fine on my laptop). > >>> > >>> It seems that the problem does in fact relate to the action having no > >>> parameters(arguments)! > >>> > >>> I show this I created another action as below > >>> > >>> @Action > >>> public RecurrentActivity addMany(Integer count){ > >>> for(int i = 0; i<count; i++){ > >>> addNextScheduledActivity() > >>> } > >>> return this; > >>> } > >>> > >>> This works, it just calls the 'problematic' no-args action in a loop > >>> depending on how many times you pass as an Integer parameter. > >>> > >>> I'll try to snoop on the requests using Chrome as Jeroen suggested. > >>> > >>> Steve > >>> > >>> > >>> > >>> > >>> > >>> On Tue, Sep 13, 2016 at 10:22 PM, Óscar Bou - GOVERTIS < > >>> o....@govertis.com> wrote: > >>> > >>>> Hi, Steve. > >>>> > >>>> You’re not setting both sides of the relationship (only adding to the > >>>> collection, but not setting the property on the other side, assuming > it’s a > >>>> 1-n relationship). > >>>> > >>>> This is managed through 2 DN properties: > >>>> - datanucleus.manageRelationships > >>>> - datanucleus.manageRelationshipsChecks > >>>> > >>>> Have you introduced any changes on the “persistor_datanucleus. > properties” > >>>> file? > >>>> > >>>> Usually you will find something like: > >>>> > >>>> # Manage Relationships > >>>> isis.persistor.datanucleus.impl.datanucleus.manageRelationships=true > >>>> isis.persistor.datanucleus.impl.datanucleus. > manageRelationshipsChecks=true > >>>> > >>>> > >>>> > >>>> Cheers, > >>>> > >>>> Oscar > >>>> > >>>> > >>>> > >>>> > >>>> [1] http://www.datanucleus.org/products/datanucleus/jdo/orm/ > >>>> relationships.html > >>>> > >>>> > >>>> El 13 sept 2016, a las 14:14, Jeroen van der Wal <jer...@stromboli.it > > > >>>> escribió: > >>>> > >>>> My first step would be to watch the network activity in Chrome > developer > >>>> tools [1]. Secondly you can set up remote debugging of your app [2]. > >>>> > >>>> [1] https://developer.chrome.com/devtools > >>>> [2] > >>>> http://blog.trifork.com/2014/07/14/how-to-remotely-debug-app > >>>> lication-running-on-tomcat-from-within-intellij-idea/ > >>>> > >>>> On 13 September 2016 at 13:38, Stephen Cameron < > >>>> steve.cameron...@gmail.com> > >>>> wrote: > >>>> > >>>> Hi, > >>>> > >>>> I have an unusual situation where the behaviour of what is apparently > >>>> the > >>>> same configuration of my app differs on two different systems. When I > >>>> deploy my app to a clients server there is one action that produces no > >>>> effects whereas on my development machine it works as expected. > >>>> > >>>> The norma; effect is to add new objects to a collection, each click of > >>>> the > >>>> action should create a new collection member. > >>>> > >>>> At the client site all other action buttons work as expected, only one > >>>> has > >>>> the problem. All I can think that is unusual about this one compared > to > >>>> all the others is that it has no parameters. > >>>> > >>>> I've made a copy of the database as the clients sit'e, imported that > at > >>>> home and everything works. > >>>> > >>>> I am using the Isis security module, but I don't think that is > causing a > >>>> problem, the action button is not greyed out as inactivated. > >>>> > >>>> I've used three different browsers at the client's site, all have the > >>>> same > >>>> issue. > >>>> > >>>> The action is simple > >>>> > >>>> @Action > >>>> public RecurringActivity addNextScheduledActivity() { > >>>> if (getChildActivities().size() == 0) { > >>>> if (getStartDateTime() == null) { > >>>> container.warnUser("Please set 'Start date time' for > >>>> this > >>>> Recurring Activity (as starting time from which to schedule more > >>>> activity > >>>> events)"); > >>>> } else { > >>>> ActivityEvent obj = > >>>> container.newTransientInstance(ActivityEvent.class); > >>>> obj.setParentActivity(this); > >>>> obj.setName(getName()); > >>>> obj.setAbbreviatedName(getAbbreviatedName()); > >>>> //set time one second ahead for comparison inequality > >>>> obj.setStartDateTime(getStartDateTime(). > plusSeconds(1)); > >>>> getChildActivities().add(obj); > >>>> container.persistIfNotAlready(obj); > >>>> container.flush(); > >>>> } > >>>> } else { > >>>> // find last event from which to schedule next > >>>> // first should be last in chronological order > >>>> DateTime origin = > >>>> getChildActivities().first().getStartDateTime(); > >>>> ActivityEvent obj = > >>>> container.newTransientInstance(ActivityEvent.class); > >>>> obj.setParentActivity(this); > >>>> obj.setName(getName()); > >>>> obj.setAbbreviatedName(getAbbreviatedName()); > >>>> switch (getPeriodicity()) { > >>>> case DAILY: > >>>> obj.setStartDateTime(origin.plusDays(1)); > >>>> break; > >>>> case WEEKLY: > >>>> obj.setStartDateTime(origin.plusDays(7)); > >>>> break; > >>>> case FORTNIGHTLY: > >>>> obj.setStartDateTime(origin.plusDays(14)); > >>>> break; > >>>> case MONTHLY: > >>>> obj.setStartDateTime(origin.plusDays(28)); > >>>> break; > >>>> case BIMONTHLY: > >>>> obj.setStartDateTime(origin.plusDays(56)); > >>>> break; > >>>> } > >>>> getChildActivities().add(obj); > >>>> container.persistIfNotAlready(obj); > >>>> container.flush(); > >>>> } > >>>> return this; > >>>> } > >>>> > >>>> I can start adding some debug messages to this code, but is there a > >>>> smarter > >>>> way to find out happens at the client and server sides? > >>>> > >>>> I guess one distinct difference is that in my development environment > >>>> the > >>>> client and server are on the same machine, but in deployment they > >>>> aren't. > >>>> > >>>> Thanks for any advice. > >>>> > >>>> Steve Cameron > >>>> > >>>> > >>>> > >>>> Óscar Bou Bou > >>>> Socio - IT & GRC Management Services Director > >>>> m: +34 620 267 520 > >>>> s: <http://www.govertis.com>www.govertis.com e: o....@govertis.com > >>>> > >>>> LinkedIn: https://www.linkedin.com/in/oscarbou > >>>> Twitter: @oscarbou <https://twitter.com/oscarbou> > >>>> > >>>> > >>>> > >>>> Este mensaje y los ficheros anexos son confidenciales. Los mismos > >>>> contienen información reservada que no puede ser difundida. Si usted > ha > >>>> recibido este correo por error, tenga la amabilidad de eliminarlo de > su > >>>> sistema y avisar al remitente mediante reenvío a su dirección > electrónica; > >>>> no deberá copiar el mensaje ni divulgar su contenido a ninguna > persona. > >>>> > >>>> Su dirección de correo electrónico junto a sus datos personales > constan > >>>> en un fichero titularidad de GOVERTIS ADVISORY SERVICES, S.L. cuya > >>>> finalidad es la de mantener el contacto con Ud. Si quiere saber de qué > >>>> información disponemos de Ud., modificarla, y en su caso, cancelarla, > puede > >>>> hacerlo enviando un escrito al efecto, acompañado de una fotocopia de > su > >>>> D.N.I. a la siguiente dirección: GOVERTIS ADVISORY SERVICES, S.L. Avda > >>>> Cortes Valencianas, 58 – 8º - 6ª. 46015 - Valencia, y Paseo de la > >>>> Castellana, 153, 28045 - MADRID. Asimismo, es su responsabilidad > comprobar > >>>> que este mensaje o sus archivos adjuntos no contengan virus > informáticos, y > >>>> en caso que los tuvieran eliminarlos. > >>>> > >>>> > >>> > >> > > >