I was merely proposing "fix" client code with "variable info" coming from server. It sounds to me more like your second approach ;-) To be completely honest, I'm not fully aware of the details right now, so I do not know if that makes any sense at all. Let me see if I can find the time to dig that old project and see what library it was I was using and check if it has the problems you describe.
On Fri, Dec 5, 2014 at 5:46 AM, Maxim Solodovnik <[email protected]> wrote: > So you propose to: > 1) create "sort of olson time zone DB" on server > 2) pass it to client > 3) determine TZ on client > 4) pass the TZ to server > > instead of > 1) get current TZ rules on clien > 2) pass it to server > 3) determine and use TZ on server > > I believe second approach is more straight forward > > On Fri, Dec 5, 2014 at 11:40 AM, Ernesto Reinaldo Barreiro < > [email protected]> wrote: > > > Pass info needed by Js library from server side? So that both sides are > in > > synchrony. > > On 5 Dec 2014 05:59, "Maxim Solodovnik" <[email protected]> wrote: > > > > > The problem I see with any JS library is: timezones are changes, OS and > > > java knows the full history > > > Any JS library need to maintain the full TZ list and all changes. > > > > > > In my code I get TZ rules (the exact date-time of each DST shift in a > > year) > > > and pass these data to java, then using Java's timezone definitions > > (which > > > are up to date and maintained by Java vendor) I'm trying to guess the > > > current TZ. > > > > > > And it should work since we need to get TZ on Java side. > > > > > > > > > On Fri, Dec 5, 2014 at 10:44 AM, Ernesto Reinaldo Barreiro < > > > [email protected]> wrote: > > > > > > > For an old project I was using some JS library... I will try to dig > the > > > > code and see what library it was: it seemed to work correctly at the > > > time. > > > > > > > > On Thu, Dec 4, 2014 at 10:10 PM, Maxim Solodovnik < > > [email protected]> > > > > wrote: > > > > > > > > > I would love to have library for such automatic detection > > > > > But the list of time zones is limited, and it currently determines > my > > > > > current time zone wrong :( > > > > > I'll check it's code and will try to enhance mine, I'll try to > > enhance > > > my > > > > > code > > > > > > > > > > In case you prefer to use this library I would vote for that since > > > > current > > > > > wicket code is also not very good :( > > > > > I believe this library can be used and enhanced. > > > > > > > > > > On Sat, Nov 29, 2014 at 1:43 AM, Maxim Solodovnik < > > > [email protected]> > > > > > wrote: > > > > > > > > > > > Thanks will try to check :) > > > > > > > > > > > > On Sat, Nov 29, 2014 at 1:33 AM, Martin Grigorov < > > > [email protected] > > > > > > > > > > > wrote: > > > > > > > > > > > >> Hi Maxim, > > > > > >> > > > > > >> Check http://joshowens.me/dealing-with-timezones-in-javascript/ > . > > It > > > > may > > > > > >> be > > > > > >> in use for you. > > > > > >> > > > > > >> Martin Grigorov > > > > > >> Wicket Training and Consulting > > > > > >> https://twitter.com/mtgrigorov > > > > > >> > > > > > >> On Tue, Nov 11, 2014 at 9:39 AM, Maxim Solodovnik < > > > > [email protected] > > > > > > > > > > > >> wrote: > > > > > >> > > > > > >> > OK, will try to do it after ApacheConEU > > > > > >> > Thanks for the review! > > > > > >> > > > > > > >> > On 11 November 2014 14:33, Martin Grigorov < > > [email protected]> > > > > > >> wrote: > > > > > >> > > > > > > >> > > I find the knowledge of the client timezone generally > useful! > > > > > >> > > If you improve the points in my last mail and integrate it > > > > > >> > > in wicket-browser-info.js then it has better chance of being > > > > merged > > > > > >> ;-) > > > > > >> > > > > > > > >> > > Martin Grigorov > > > > > >> > > Wicket Training and Consulting > > > > > >> > > https://twitter.com/mtgrigorov > > > > > >> > > > > > > > >> > > On Tue, Nov 11, 2014 at 10:28 AM, Maxim Solodovnik < > > > > > >> [email protected] > > > > > >> > > > > > > > >> > > wrote: > > > > > >> > > > > > > > >> > > > you are right :( > > > > > >> > > > I can improve it if it worth so > > > > > >> > > > > > > > > >> > > > The idea was to get client timezone rulez using JS: the > > exact > > > > DST > > > > > >> > switch > > > > > >> > > > start/end date/time > > > > > >> > > > send this data to the server and then find Java timezone > > with > > > > best > > > > > >> > match > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > On 11 November 2014 14:24, Martin Grigorov < > > > > [email protected]> > > > > > >> > wrote: > > > > > >> > > > > > > > > >> > > > > Hi Maxim, > > > > > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > > > > > > > > > > > https://github.com/solomax/tzdetect/blob/master/src/main/webapp/tzdetect.js > > > > > >> > > > > is not very usable in its current state. > > > > > >> > > > > My issues with it: > > > > > >> > > > > - no documentation > > > > > >> > > > > - no tests > > > > > >> > > > > - uses short named variables and method names (thus hard > > to > > > > > >> follow) > > > > > >> > > > > - ... > > > > > >> > > > > > > > > > >> > > > > I have forked it so I can use it as inspiration if I > need > > it > > > > > >> later. > > > > > >> > > > > Feel free to remove it. > > > > > >> > > > > > > > > > >> > > > > Thanks! > > > > > >> > > > > > > > > > >> > > > > Martin Grigorov > > > > > >> > > > > Wicket Training and Consulting > > > > > >> > > > > https://twitter.com/mtgrigorov > > > > > >> > > > > > > > > > >> > > > > On Mon, Nov 10, 2014 at 6:02 PM, Maxim Solodovnik < > > > > > >> > > [email protected]> > > > > > >> > > > > wrote: > > > > > >> > > > > > > > > > >> > > > > > @Martin > > > > > >> > > > > > > > > > > >> > > > > > were you able to take a look at this code? > > > > > >> > > > > > Is it look useful? Or I can remove it? > > > > > >> > > > > > > > > > > >> > > > > > On 23 September 2014 00:54, Maxim Solodovnik < > > > > > >> [email protected] > > > > > >> > > > > > > > >> > > > > wrote: > > > > > >> > > > > > > > > > > >> > > > > > > Finally was able to create prototype: > > > > > >> > > > > > https://github.com/solomax/tzdetect > > > > > >> > > > > > > Maybe you can find it (or parts of it) usable > > > > > >> > > > > > > > > > > > >> > > > > > > On 3 September 2014 12:25, Maxim Solodovnik < > > > > > >> > [email protected]> > > > > > >> > > > > > wrote: > > > > > >> > > > > > > > > > > > >> > > > > > >> I believe if TZ rulez will be detected on client > > side, > > > > and > > > > > TZ > > > > > >> > > itself > > > > > >> > > > > on > > > > > >> > > > > > >> server side it might find user TZ good enough. (due > > to > > > TZ > > > > > >> list > > > > > >> > > with > > > > > >> > > > > > rulez > > > > > >> > > > > > >> will be maintained by java vendor, not JS library > > > itself) > > > > > >> > > > > > >> will try to modify the code and provide quickstart > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> On 3 September 2014 18:18, Martin Grigorov < > > > > > >> > [email protected]> > > > > > >> > > > > > wrote: > > > > > >> > > > > > >> > > > > > >> > > > > > >>> see > > > https://github.com/moment/moment-timezone/issues/55 > > > > > >> > > > > > >>> if Moment.js cannot do it then I don't think we > will > > > do > > > > it > > > > > >> > > > > > >>> > > > > > >> > > > > > >>> Martin Grigorov > > > > > >> > > > > > >>> Wicket Training and Consulting > > > > > >> > > > > > >>> https://twitter.com/mtgrigorov > > > > > >> > > > > > >>> > > > > > >> > > > > > >>> > > > > > >> > > > > > >>> On Wed, Sep 3, 2014 at 12:13 PM, Maxim Solodovnik > < > > > > > >> > > > > > [email protected]> > > > > > >> > > > > > >>> wrote: > > > > > >> > > > > > >>> > > > > > >> > > > > > >>> > there seems to be timezones with more than 1 dst > > > start > > > > > per > > > > > >> > year > > > > > >> > > > :( > > > > > >> > > > > > >>> > code should be updated to reflect this :( > > > > > >> > > > > > >>> > > > > > > >> > > > > > >>> > > > > > > >> > > > > > >>> > On 3 September 2014 16:11, Maxim Solodovnik < > > > > > >> > > > [email protected]> > > > > > >> > > > > > >>> wrote: > > > > > >> > > > > > >>> > > > > > > >> > > > > > >>> > > was tested against multiple Time zones listed > > > here: > > > > > >> > > > > > >>> > > http://www.worldtimezone.com/daylight.html > and > > > own > > > > TZ > > > > > >> > > > > > >>> (Asia/Novosibirsk) > > > > > >> > > > > > >>> > > > > > > > >> > > > > > >>> > > > > > > > >> > > > > > >>> > > On 3 September 2014 16:09, Maxim Solodovnik < > > > > > >> > > > > [email protected]> > > > > > >> > > > > > >>> > wrote: > > > > > >> > > > > > >>> > > > > > > > >> > > > > > >>> > >> here is the JS code > > > > > >> > > > > > >>> > > > > https://gist.github.com/solomax/e86cc77694d67120b8f5 > > > > > >> > > > > > >>> > >> to get DST start date/time (if any) > > > > > >> > > > > > >>> > >> only minute offset was not tested due to > > > > impossibili > > > > > to > > > > > >> > set > > > > > >> > > TZ > > > > > >> > > > > > >>> "Chatham > > > > > >> > > > > > >>> > >> Island" on my Ubuntu) > > > > > >> > > > > > >>> > >> > > > > > >> > > > > > >>> > >> similar code can be added to get DST end > > > date/time > > > > > >> > > > > > >>> > >> > > > > > >> > > > > > >>> > >> the code also might need to be "polished" a > > > little > > > > > >> > > > > > >>> > >> > > > > > >> > > > > > >>> > >> > > > > > >> > > > > > >>> > >> On 3 September 2014 19:59, Martin Grigorov < > > > > > >> > > > > [email protected]> > > > > > >> > > > > > >>> > wrote: > > > > > >> > > > > > >>> > >> > > > > > >> > > > > > >>> > >>> On Sep 3, 2014 10:39 AM, "Maxim Solodovnik" > < > > > > > >> > > > > > [email protected]> > > > > > >> > > > > > >>> > >>> wrote: > > > > > >> > > > > > >>> > >>> > > > > > > >> > > > > > >>> > >>> > Actually my code can be extended to get > > > > > >> > > > > > >>> > >>> > 1) if TZ has DST or not > > > > > >> > > > > > >>> > >>> > 2) what month DST happening > > > > > >> > > > > > >>> > >>> > 3) the day of month DST happening > > > > > >> > > > > > >>> > >>> > 4) hour of day DST happening > > > > > >> > > > > > >>> > >>> > > > > > > >> > > > > > >>> > >>> > I believe after all this info is available > > the > > > > > list > > > > > >> of > > > > > >> > > time > > > > > >> > > > > > zones > > > > > >> > > > > > >>> > with > > > > > >> > > > > > >>> > >>> > certain offset can be reduced to better > > match > > > > > >> current > > > > > >> > > user > > > > > >> > > > > TZ. > > > > > >> > > > > > >>> > >>> > I can provide sample JS code for 1-4 above > > > > > >> > > > > > >>> > >>> > > > > > >> > > > > > >>> > >>> This will increase the chance to include it > ! > > > ;-) > > > > > >> > > > > > >>> > >>> > > > > > >> > > > > > >>> > >>> > > > > > > >> > > > > > >>> > >>> > > > > > > >> > > > > > >>> > >>> > On 3 September 2014 14:22, Martin > Grigorov < > > > > > >> > > > > > [email protected] > > > > > >> > > > > > >>> > > > > > > >> > > > > > >>> > >>> wrote: > > > > > >> > > > > > >>> > >>> > > > > > > >> > > > > > >>> > >>> > > Hi Maxim, > > > > > >> > > > > > >>> > >>> > > > > > > > >> > > > > > >>> > >>> > > Can you please provide more information > > how > > > > your > > > > > >> code > > > > > >> > > > > solves > > > > > >> > > > > > >>> the > > > > > >> > > > > > >>> > >>> problem ? > > > > > >> > > > > > >>> > >>> > > AFAIU Robert explains that Wicket's code > > > > > properly > > > > > >> > > detects > > > > > >> > > > > the > > > > > >> > > > > > >>> > >>> timezone > > > > > >> > > > > > >>> > >>> > > offset, but since there are many > timezone > > > ids > > > > > for > > > > > >> a > > > > > >> > > given > > > > > >> > > > > > >>> offset it > > > > > >> > > > > > >>> > >>> is > > > > > >> > > > > > >>> > >>> not > > > > > >> > > > > > >>> > >>> > > easy to detect the correct DST from the > > > > offset. > > > > > >> > > > > > >>> > >>> > > In your code I don't see anything that > > > should > > > > > >> provide > > > > > >> > > the > > > > > >> > > > > > >>> missing > > > > > >> > > > > > >>> > >>> timezone > > > > > >> > > > > > >>> > >>> > > id. > > > > > >> > > > > > >>> > >>> > > Or I am missing something ? > > > > > >> > > > > > >>> > >>> > > > > > > > >> > > > > > >>> > >>> > > Martin Grigorov > > > > > >> > > > > > >>> > >>> > > Wicket Training and Consulting > > > > > >> > > > > > >>> > >>> > > https://twitter.com/mtgrigorov > > > > > >> > > > > > >>> > >>> > > > > > > > >> > > > > > >>> > >>> > > > > > > > >> > > > > > >>> > >>> > > On Wed, Sep 3, 2014 at 9:44 AM, Maxim > > > > > Solodovnik < > > > > > >> > > > > > >>> > >>> [email protected]> > > > > > >> > > > > > >>> > >>> > > wrote: > > > > > >> > > > > > >>> > >>> > > > > > > > >> > > > > > >>> > >>> > > > Hello All, > > > > > >> > > > > > >>> > >>> > > > > > > > > >> > > > > > >>> > >>> > > > Some time ago we had user query [1] > > > claiming > > > > > >> wicket > > > > > >> > > > based > > > > > >> > > > > > TZ > > > > > >> > > > > > >>> > >>> detection is > > > > > >> > > > > > >>> > >>> > > > not accurate. > > > > > >> > > > > > >>> > >>> > > > I believe the detection can be > enhanced: > > > DST > > > > > >> rules > > > > > >> > > can > > > > > >> > > > be > > > > > >> > > > > > >>> > detected > > > > > >> > > > > > >>> > >>> using > > > > > >> > > > > > >>> > >>> > > JS > > > > > >> > > > > > >>> > >>> > > > code and taken into account while TZ > > > > guessing > > > > > >> > > > > > >>> > >>> > > > > > > > > >> > > > > > >>> > >>> > > > here is the example of JS code > > determining > > > > > >> month TZ > > > > > >> > > > > switch > > > > > >> > > > > > is > > > > > >> > > > > > >>> > >>> happening: > > > > > >> > > > > > >>> > >>> > > > [2] line 50 > > > > > >> > > > > > >>> > >>> > > > > > > > > >> > > > > > >>> > >>> > > > Maybe it worth to implement something > > like > > > > > this > > > > > >> in > > > > > >> > > > > Wicket? > > > > > >> > > > > > >>> > >>> > > > > > > > > >> > > > > > >>> > >>> > > > [1] > > > > > >> http://markmail.org/message/v7vmfburg4zrtizk > > > > > >> > > > > > >>> > >>> > > > [2] > > > > > >> > > > > > >>> > >>> > > > > > > > > >> > > > > > >>> > >>> > > > > > > > > >> > > > > > >>> > >>> > > > > > > > >> > > > > > >>> > >>> > > > > > >> > > > > > >>> > >>> > > > > > >> > > > > > >>> > > > > > > >> > > > > > >>> > > > > > >> > > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > > > > > > > > > > > https://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/webapp/js/openmeetings_functions.js?revision=1562780&view=markup > > > > > >> > > > > > >>> > >>> > > > > > > > > >> > > > > > >>> > >>> > > > -- > > > > > >> > > > > > >>> > >>> > > > WBR > > > > > >> > > > > > >>> > >>> > > > Maxim aka solomax > > > > > >> > > > > > >>> > >>> > > > > > > > > >> > > > > > >>> > >>> > > > > > > > >> > > > > > >>> > >>> > > > > > > >> > > > > > >>> > >>> > > > > > > >> > > > > > >>> > >>> > > > > > > >> > > > > > >>> > >>> > -- > > > > > >> > > > > > >>> > >>> > WBR > > > > > >> > > > > > >>> > >>> > Maxim aka solomax > > > > > >> > > > > > >>> > >>> > > > > > >> > > > > > >>> > >> > > > > > >> > > > > > >>> > >> > > > > > >> > > > > > >>> > >> > > > > > >> > > > > > >>> > >> -- > > > > > >> > > > > > >>> > >> WBR > > > > > >> > > > > > >>> > >> Maxim aka solomax > > > > > >> > > > > > >>> > >> > > > > > >> > > > > > >>> > > > > > > > >> > > > > > >>> > > > > > > > >> > > > > > >>> > > > > > > > >> > > > > > >>> > > -- > > > > > >> > > > > > >>> > > WBR > > > > > >> > > > > > >>> > > Maxim aka solomax > > > > > >> > > > > > >>> > > > > > > > >> > > > > > >>> > > > > > > >> > > > > > >>> > > > > > > >> > > > > > >>> > > > > > > >> > > > > > >>> > -- > > > > > >> > > > > > >>> > WBR > > > > > >> > > > > > >>> > Maxim aka solomax > > > > > >> > > > > > >>> > > > > > > >> > > > > > >>> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> -- > > > > > >> > > > > > >> WBR > > > > > >> > > > > > >> Maxim aka solomax > > > > > >> > > > > > >> > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > -- > > > > > >> > > > > > > WBR > > > > > >> > > > > > > Maxim aka solomax > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > > >> > > > > > -- > > > > > >> > > > > > WBR > > > > > >> > > > > > Maxim aka solomax > > > > > >> > > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > -- > > > > > >> > > > WBR > > > > > >> > > > Maxim aka solomax > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > > >> > > > > > > >> > -- > > > > > >> > WBR > > > > > >> > Maxim aka solomax > > > > > >> > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > WBR > > > > > > Maxim aka solomax > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > WBR > > > > > Maxim aka solomax > > > > > > > > > > > > > > > > > > > > > -- > > > > Regards - Ernesto Reinaldo Barreiro > > > > > > > > > > > > > > > > -- > > > WBR > > > Maxim aka solomax > > > > > > > > > -- > WBR > Maxim aka solomax > -- Regards - Ernesto Reinaldo Barreiro
