no worries

On 23 September 2016 at 04:22, Stephen Cameron <[email protected]>
wrote:

> Oh dear, this was working all along. Its much slower on the production
> system for some reason.
>
> Sorry for wasting peoples precious time (incliding my own).
>
> On Sat, Sep 17, 2016 at 9:21 AM, Stephen Cameron <
> [email protected]
> > wrote:
>
> > 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 <
> [email protected]
> > > 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 <
> >> [email protected]>
> >> 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 <
> >> > [email protected]> 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 <
> >> >> [email protected]> 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 <
> >> >>> [email protected]> 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.propert
> >> ies”
> >> >>>> file?
> >> >>>>
> >> >>>> Usually you will find something like:
> >> >>>>
> >> >>>> # Manage Relationships
> >> >>>> isis.persistor.datanucleus.impl.datanucleus.
> manageRelationships=true
> >> >>>> isis.persistor.datanucleus.impl.datanucleus.manageRelationsh
> >> ipsChecks=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 <
> >> [email protected]>
> >> >>>> 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 <
> >> >>>> [email protected]>
> >> >>>> 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(getStartD
> >> ateTime().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:
> [email protected]
> >> >>>>
> >> >>>> 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