+1 for merging them and without the js it still works (like the default-mode of codi).
regards, gerhard 2014/1/14 Thomas Andraschko <andraschko.tho...@gmail.com> > +1 for keeping URL and LAZY? :) > > > 2014/1/14 Gerhard Petracek <gerhard.petra...@gmail.com> > > > +1 > > > > regards, > > gerhard > > > > > > > > 2014/1/14 Thomas Andraschko <andraschko.tho...@gmail.com> > > > > > Hi Gerhard, > > > > > > LAZY mode without adding ds:windowId will exactly work like URL. > > > But it will never have a chance to detect new windows. > > > We could also keep LAZY and URL, doesn't matter for me :) > > > > > > The main goal of the last email to clarify what the LAZY script part > > should > > > do and that it currently has an bug. > > > > > > Regards, > > > Thomas > > > > > > > > > 2014/1/14 Gerhard Petracek <gerhard.petra...@gmail.com> > > > > > > > imo we should keep one mode which works without js. > > > > > > > > regards, > > > > gerhard > > > > > > > > > > > > > > > > 2014/1/14 Thomas Andraschko <andraschko.tho...@gmail.com> > > > > > > > > > I think i understand know what lazy should do... > > > > > > > > > > Our windowhandler.js just checks if window.name is empty, removes > > the > > > > > windowId and redirects to the same url without a windowId. > > > > > > > > > > But we must also do another check if the mode is LAZY because it > > > > currently > > > > > don't validate the windowId. > > > > > > > > > > If you a page in a new tab -> > > > > > test.xhtml?windowId=1 > > > > > it checks that the window.name is empty and redirects to > > > > > test.xhtml?windowId= > > > > > > > > > > The server will now redirect to: > > > > > text.xhtml?windowId=someNewAndValidWIndowId > > > > > > > > > > What appens now if you open this in the same tab: > > > > > test.xhtml?windowId=3 > > > > > > > > > > nothing! #assertWindowId must also take care of this. > > > > > What should happen? Reload/redirect via the windowId stored in > > > > > window.nameor doing a redirect without windowId (assigning a new > > > > > windowId to the tab)? > > > > > > > > > > I would rename URL to LAZY (merge these modes) and fix this small > bug > > > > > above. > > > > > Any objections? > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 2014/1/13 Thomas Andraschko <andraschko.tho...@gmail.com> > > > > > > > > > > > Mark, i understand the windowhandler.html approach but i still > > don't > > > > > > understand LAZY. > > > > > > You said that it's the same as URL but with some JS checks. > > > > > > I tried to explain my thoughts about a LAZY in my last email in > the > > > > "JSF > > > > > - > > > > > > default ClientWindowRenderMode?" thread. > > > > > > I really completely understand the logic for CLIENTWINDOW but it > > > would > > > > be > > > > > > nice, if you could explain what exactly should happen on client > > side > > > if > > > > > the > > > > > > LAZY mode is used. > > > > > > > > > > > > URL is just for appending the windowId to the url's without any > JS > > - > > > > like > > > > > > the default mode in CODI. > > > > > > If LAZY requires JS, then it's a different mode IMO because the > > > current > > > > > > windowhandling also makes the target attribute of links unusable. > > > Isn't > > > > > it? > > > > > > > > > > > > > > > > > > > > > > > > 2014/1/13 Mark Struberg <strub...@yahoo.de> > > > > > > > > > > > >> LAZY is really exactly the same as you mean with 'URL'. I just > > like > > > > the > > > > > >> term 'LAZY' more than 'URL' as it explains much better what > > happens. > > > > > >> > > > > > >> Please read the very last paragraph in > > > > > >> > > > > > >> http://myfaces.apache.org/orchestra/multiwindow.html > > > > > >> > > > > > >> Afaik, this was written by Mario Ivankovic (main-brain of > > Orchestra) > > > > and > > > > > >> Werner Punz (_the_ JSF spec JavaScript wizzard) back in the days > > > when > > > > > they > > > > > >> did Apache MyFaces Orchestra. > > > > > >> > > > > > >> The 100% solution is the ClientWindow mode. But this has the > > > downside > > > > of > > > > > >> the intermediate page... > > > > > >> > > > > > >> LieGrue, > > > > > >> strub > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > On Sunday, 12 January 2014, 22:25, Thomas Andraschko < > > > > > >> andraschko.tho...@gmail.com> wrote: > > > > > >> > > Here is my idea about the initial refactoring on the > > > > > windowhandler.js > > > > > >> > > > > > > >> > https://gist.github.com/tandraschko/3d2aa9d84f6469206ce7 > > > > > >> > > > > > > >> > I think it will need some more refactoring/fixing when we > > finally > > > > know > > > > > >> what > > > > > >> > LAZY should do. > > > > > >> > But i like to structure and the single entry point via > > > > > >> DSWindowContext#init. > > > > > >> > > > > > > >> > Also storeEvent seems the be unused? Could anyone explain this > > to > > > > me? > > > > > >> > > > > > > >> > > > > > > >> > > > > > > >> > 2014/1/10 Gerhard Petracek <gerhard.petra...@gmail.com> > > > > > >> > > > > > > >> >> (similar to what we have in codi) we can do a lazy restore > in > > > > > >> addition (if > > > > > >> >> it is limited to the url/lazy mode). > > > > > >> >> > > > > > >> >> regards, > > > > > >> >> gerhard > > > > > >> >> > > > > > >> >> > > > > > >> >> > > > > > >> >> 2014/1/10 Thomas Andraschko <andraschko.tho...@gmail.com> > > > > > >> >> > > > > > >> >> > (of course it would only be required #ifPostback) > > > > > >> >> > > > > > > >> >> > > > > > > >> >> > 2014/1/10 Thomas Andraschko <andraschko.tho...@gmail.com> > > > > > >> >> > > > > > > >> >> > > Hmm right - but we could also move > > > > windowContext#activateWindow > > > > > >> > to a > > > > > >> >> > > AFTER_RESTORE_VIEW phase listener? > > > > > >> >> > > AFAIK RESTORE_VIEW shouldn't touch any beans? > > > > > >> >> > > > > > > > >> >> > > > > > > > >> >> > > 2014/1/10 Gerhard Petracek <gerhard.petra...@gmail.com> > > > > > >> >> > > > > > > > >> >> > >> we need to restore the window-id before the lifecycle > > > starts. > > > > > >> >> > >> > > > > > >> >> > >> regards, > > > > > >> >> > >> gerhard > > > > > >> >> > >> > > > > > >> >> > >> > > > > > >> >> > >> > > > > > >> >> > >> 2014/1/10 Thomas Andraschko > > > > > >> > <andraschko.tho...@gmail.com> > > > > > >> >> > >> > > > > > >> >> > >> > but why should we keep the JS logic instead of > ViewMap? > > > > > >> >> > >> > Are there any drawbacks when we store it in the > > ViewMap? > > > > > >> >> > >> > > > > > > >> >> > >> > The current implementations looks soo complex, but > > > > > >> > actually it isn't > > > > > >> >> > >> that > > > > > >> >> > >> > complex. So therefore i would like to get rid of not > > > > > >> > required code. > > > > > >> >> > >> > > > > > > >> >> > >> > > > > > > >> >> > >> > 2014/1/10 Gerhard Petracek > > > > > >> > <gerhard.petra...@gmail.com> > > > > > >> >> > >> > > > > > > >> >> > >> > > as a (deactivatable) fallback the view-map would be > > > > > >> > fine (we > > > > > >> >> > couldn't > > > > > >> >> > >> use > > > > > >> >> > >> > > it in codi, because we had to support jsf 1.2.x as > > > > > >> > well) > > > > > >> >> > >> > > > > > > > >> >> > >> > > regards, > > > > > >> >> > >> > > gerhard > > > > > >> >> > >> > > > > > > > >> >> > >> > > > > > > > >> >> > >> > > > > > > > >> >> > >> > > 2014/1/10 Mark Struberg <strub...@yahoo.de> > > > > > >> >> > >> > > > > > > > >> >> > >> > > > we probably should do both. > > > > > >> >> > >> > > > > > > > > >> >> > >> > > > LieGrue, > > > > > >> >> > >> > > > strub > > > > > >> >> > >> > > > > > > > > >> >> > >> > > > > > > > > >> >> > >> > > > > > > > > >> >> > >> > > > > > > > > >> >> > >> > > > ----- Original Message ----- > > > > > >> >> > >> > > > > From: Thomas Andraschko > > > > > >> > <andraschko.tho...@gmail.com> > > > > > >> >> > >> > > > > To: "dev@deltaspike.apache.org" > > > > > >> > <dev@deltaspike.apache.org> > > > > > >> >> > >> > > > > Cc: > > > > > >> >> > >> > > > > Sent: Friday, 10 January 2014, 16:56 > > > > > >> >> > >> > > > > Subject: Re: Ideas on ClientWindow > > > > > >> > handling / refactoring > > > > > >> >> > >> > > > > > > > > > >> >> > >> > > > > Saving the windowId for postbacks in the > > > > > >> > ViewMap, would be > > > > > >> >> > really > > > > > >> >> > >> a > > > > > >> >> > >> > > much > > > > > >> >> > >> > > > > easier, more compatible and safer way > > > > > >> > than adding hidden > > > > > >> >> inputs > > > > > >> >> > >> via > > > > > >> >> > >> > JS. > > > > > >> >> > >> > > > > > > > > > >> >> > >> > > > > > > > > > >> >> > >> > > > > > > > > > >> >> > >> > > > > 2014/1/10 Thomas Andraschko > > > > > >> > <andraschko.tho...@gmail.com> > > > > > >> >> > >> > > > > > > > > > >> >> > >> > > > >> Hi Gerhard, > > > > > >> >> > >> > > > >> > > > > > >> >> > >> > > > >> thats true. Therefore we added extra > > > > > >> > processing of > > > > > >> >> > >> > > > >> > > > > > >> > javax.faces.ViewState+javax.faces.ClientWindow in PrimeFaces > > > > > >> >> > :) > > > > > >> >> > >> > > > >> Don't know if Cagatay would > > > > > >> > accept that i add workarounds > > > > > >> >> for > > > > > >> >> > >> DS in > > > > > >> >> > >> > > > >> PrimeFaces. Therefore adding the > > > > > >> > windowId e.g. to the > > > > > >> >> ViewMap > > > > > >> >> > >> would > > > > > >> >> > >> > > be > > > > > >> >> > >> > > > a > > > > > >> >> > >> > > > >> safer way. > > > > > >> >> > >> > > > >> > > > > > >> >> > >> > > > >> Regards, > > > > > >> >> > >> > > > >> Thomas > > > > > >> >> > >> > > > >> > > > > > >> >> > >> > > > >> > > > > > >> >> > >> > > > >> 2014/1/10 Gerhard Petracek > > > > > >> > <gerhard.petra...@gmail.com> > > > > > >> >> > >> > > > >> > > > > > >> >> > >> > > > >>> @thomas: > > > > > >> >> > >> > > > >>> with jsf 2.2+ it's > > > > > >> > different. > > > > > >> >> > >> > > > >>> the window-id is (/should be) > > > > > >> > also used (if enabled) to > > > > > >> >> find > > > > > >> >> > >> the > > > > > >> >> > >> > > > > correct > > > > > >> >> > >> > > > >>> state. > > > > > >> >> > >> > > > >>> -> any compliant request > > > > > >> > needs to include the window-id (if > > > > > >> >> > >> > > > > enabled). > > > > > >> >> > >> > > > >>> > > > > > >> >> > >> > > > >>> regards, > > > > > >> >> > >> > > > >>> gerhard > > > > > >> >> > >> > > > >>> > > > > > >> >> > >> > > > >>> > > > > > >> >> > >> > > > >>> > > > > > >> >> > >> > > > >>> 2014/1/10 Thomas Andraschko > > > > > >> > <andraschko.tho...@gmail.com> > > > > > >> >> > >> > > > >>> > > > > > >> >> > >> > > > >>> > Based on the discussion in > > > > > >> > "JSF - default > > > > > >> >> > >> > > > > ClientWindowRenderMode?": > > > > > >> >> > >> > > > >>> > > > > > > >> >> > >> > > > >>> > >> struberg: > > > > > >> >> > >> > > > >>> > >> The windowId is > > > > > >> > added as root element to the view > > > > > >> >> tree. > > > > > >> >> > >> > > > >>> > > > > > > >> >> > >> > > > >>> > You mean that the > > > > > >> > dsPostWindowId input is added as direct > > > > > >> >> > >> form > > > > > >> >> > >> > > > > child. > > > > > >> >> > >> > > > >>> > Right? > > > > > >> >> > >> > > > >>> > > > > > > >> >> > >> > > > >>> > Posting it with default > > > > > >> > ajax options should work fine > > > > > >> >> with > > > > > >> >> > >> > > > > PrimeFaces. > > > > > >> >> > >> > > > >>> > The only difference is our > > > > > >> > partialSubmit modus, which > > > > > >> >> only > > > > > >> >> > >> > > > > collects the > > > > > >> >> > >> > > > >>> > values from the processed > > > > > >> > components. > > > > > >> >> > >> > > > >>> > So if you only process e.g. > > > > > >> > "input1 input2", the hidden > > > > > >> >> > >> > > > > inputs on the > > > > > >> >> > >> > > > >>> form > > > > > >> >> > >> > > > >>> > won't processed. > > > > > >> >> > >> > > > >>> > Updating the ViewState is a > > > > > >> > custom logic with > > > > > >> >> > partialSubmit. > > > > > >> >> > >> > > > >>> > > > > > > >> >> > >> > > > >>> > Maybe it should be handled > > > > > >> > better on PrimeFaces side but > > > > > >> >> I > > > > > >> >> > >> think > > > > > >> >> > >> > > > > it > > > > > >> >> > >> > > > >>> would > > > > > >> >> > >> > > > >>> > be better the store the > > > > > >> > windowId in the > > > > > >> >> WindowIdComponent. > > > > > >> >> > >> > > > >>> > It works for all cases and > > > > > >> > it don't requires any JS or > > > > > >> >> > >> > > > > compontlib > > > > > >> >> > >> > > > >>> > compatibility. > > > > > >> >> > >> > > > >>> > It's just stored the > > > > > >> > windowId in the ViewRoot which is > > > > > >> >> > always > > > > > >> >> > >> > > > > available > > > > > >> >> > >> > > > >>> for > > > > > >> >> > >> > > > >>> > postbacks. > > > > > >> >> > >> > > > >>> > Or will it have other > > > > > >> > drawbacks? > > > > > >> >> > >> > > > >>> > > > > > > >> >> > >> > > > >>> > > > > > > >> >> > >> > > > >>> > About > > > > > >> > windowhandler.js/html: > > > > > >> >> > >> > > > >>> > What about moving the whole > > > > > >> > JS stuff to the > > > > > >> >> > windowhandler.js? > > > > > >> >> > >> > > > >>> > We could parse the > > > > > >> > windowhandler html string on the > > > > > >> >> server > > > > > >> >> > >> and > > > > > >> >> > >> > > > > parse JSF > > > > > >> >> > >> > > > >>> > resource includes. So we > > > > > >> > could easily include our > > > > > >> >> > >> > > > > windowhandler.js. > > > > > >> >> > >> > > > >>> > The user can also import > > > > > >> > other resources like css. > > > > > >> >> > >> > > > >>> > > > > > > >> >> > >> > > > >>> > I already done this for a > > > > > >> > custom JSF 2.2 ClientWindow - > > > > > >> >> > works > > > > > >> >> > >> > > > > fine. > > > > > >> >> > >> > > > >>> > > > > > > >> >> > >> > > > >>> > I think we should also > > > > > >> > render the ClientWindowRenderMode > > > > > >> >> to > > > > > >> >> > >> the > > > > > >> >> > >> > > > > client, > > > > > >> >> > >> > > > >>> so > > > > > >> >> > >> > > > >>> > that the windowhandler only > > > > > >> > handles CLIENTWINDOW and not > > > > > >> >> > e.g. > > > > > >> >> > >> > URL. > > > > > >> >> > >> > > > >>> > I would refactor the > > > > > >> > windowhandler.js, that it must be > > > > > >> >> > >> > initialized > > > > > >> >> > >> > > > > via > > > > > >> >> > >> > > > >>> a JS > > > > > >> >> > >> > > > >>> > call -> > > > > > >> > DSWindowContext.init(windowId, > > > > > >> >> > >> clientWindowRenderMode); > > > > > >> >> > >> > > > >>> > We could simply render that > > > > > >> > script via our > > > > > >> >> > >> > > > >>> WindowIdComponentHtmlRenderer. > > > > > >> >> > >> > > > >>> > > > > > > >> >> > >> > > > >>> > > > > > >> >> > >> > > > >> > > > > > >> >> > >> > > > >> > > > > > >> >> > >> > > > > > > > > > >> >> > >> > > > > > > > > >> >> > >> > > > > > > > >> >> > >> > > > > > > >> >> > >> > > > > > >> >> > > > > > > > >> >> > > > > > > > >> >> > > > > > > >> >> > > > > > >> > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >