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

Reply via email to