I don't really like the idea of having setting in the options which is overwritten on every login (silently)
My vote is for Alternative 2. @Sebastian I guess Alternative 2 is for 3.1.0? I can try to perform refactoring faster. Then you can handle "fine tuning" of this issue and I can handle Import/Export (might be tricky) On Fri, Aug 9, 2013 at 2:24 PM, seba.wag...@gmail.com <seba.wag...@gmail.com > wrote: > So probably we can put this up for a vote? > > The only alternative I see as a short term fix is to overwrite the users > "OmTimeZone" with the current timezone of the browser. > > Alternative 1: > Short term fix, default OmTimeZone to current timezone in browser, > overwrite everytime the user logs in (Estimated 1-2 weeks of work) > > Alternative 2: > Rewrite and refactor to get rid of entire OmTimeZone (as described in > attached discussion or thread: > http://markmail.org/message/rem2snf74srvftnt) > (Estimated 1-2 months of work) > > The effort estimates are including time that is needed for fixing bugs and > do the testing. > > Vote for 1 if you like to see this implemented as part of OpenMeetings > 3.0.0, vote for Alternative 2 if you want to see this implemented as part > of OpenMeetings 3.0.0. > > Thanks, > Sebastian > > > 2013/8/8 seba.wag...@gmail.com <seba.wag...@gmail.com> > > > That is the major question. > > > > Basically status now is that the Calendar UI is not ready to be released. > > The UI is simply not working when your browser timezone is different from > > the timezone in your OpenMeetings profile. > > > > So either we can do the proposed fixes around getting rid of the > > OmTimeZone completely or we try to do some kind of workaround in > > OpenMeetings 3.0.0 and do the refactoring later. > > > > Sebastian > > > > > > 2013/8/7 Maxim Solodovnik <solomax...@gmail.com> > > > >> >>> Can we define any useful JUnit tests so that we don't need to do so > >> much manual testing ? > >> I believe so, but what version will be affected with this change? 3.0.0 > or > >> 3.1.0? > >> > >> > >> On Wed, Aug 7, 2013 at 1:43 PM, seba.wag...@gmail.com < > >> seba.wag...@gmail.com > >> > wrote: > >> > >> > "I would default server time zone to the time zone of the server. > >> > It is up to admin to set it to the different value." > >> > ok > >> > > >> > "Additionally Appointment, I guess." > >> > Nope, Appointment does not have timezone information. The start/end > >> date of > >> > the appointment is always in the server time zone. Actually _an_ > >> date/time > >> > that is stored is always the server time. > >> > We only need timezone information when we need to display that time > for > >> any > >> > _user_ to generate a localized representation of the date/time. > >> > For instance an Appointment can be 8am GMT but for one user 1am > >> GMT/Berlin > >> > should be displayed as 6pm NZDT/Auckland and for yet another > >> MeetingMember > >> > it has to be displayed as 2am EDT/New York. > >> > > >> > So from my point of view the User, MeetingMember and Invitations > Entity > >> are > >> > the right place. And that is already as it is now. So you can replace > >> > OmTimeZone in all those classes with the new attribute that stored the > >> > timezone. > >> > > >> > Can we define any useful JUnit tests so that we don't need to do so > much > >> > manual testing ? > >> > > >> > Sebastian > >> > > >> > > >> > > >> > 2013/8/7 Maxim Solodovnik <solomax...@gmail.com> > >> > > >> > > I would default server time zone to the time zone of the server. > >> > > It is up to admin to set it to the different value. > >> > > > >> > > > >> > > On Wed, Aug 7, 2013 at 12:09 PM, seba.wag...@gmail.com < > >> > > seba.wag...@gmail.com> wrote: > >> > > > >> > > > I basically don't mind about the component in the UI. I just > thought > >> > > > initially that 650 in a combobox is too much. > >> > > > However it does not seem to be an issue for the UI as such. > >> > > > > >> > > > My basic question is what we use as default: Do we default to the > >> > server > >> > > > timezone or to the client site user timezone ? > >> > > > > >> > > > Sebastian > >> > > > > >> > > > > >> > > > 2013/8/7 Maxim Solodovnik <solomax...@gmail.com> > >> > > > > >> > > > > The correct URL is http://timezonepicker.com/ > >> > > > > > >> > > > > > >> > > > > On Wed, Aug 7, 2013 at 9:30 AM, Maxim Solodovnik < > >> > solomax...@gmail.com > >> > > > > >wrote: > >> > > > > > >> > > > > > I believe we can use something like this: > >> > https://timezonepicker.com > >> > > > > > (sources are here: > >> https://github.com/quicksketch/timezonepicker) > >> > > > > > > >> > > > > > The only issues I can see right now: > >> > > > > > 1) it has no License set in the moment ( > >> > > > > > https://github.com/quicksketch/timezonepicker/issues/2) > >> > > > > > 2) It last updated 9 months ago > >> > > > > > > >> > > > > > So maybe additional googling is required :) > >> > > > > > > >> > > > > > > >> > > > > > On Wed, Aug 7, 2013 at 4:50 AM, seba.wag...@gmail.com < > >> > > > > > seba.wag...@gmail.com> wrote: > >> > > > > > > >> > > > > >> One thing that is not on our list now is the default timezone > >> of > >> > the > >> > > > > >> server. > >> > > > > >> Currently when you install OpenMeetings you choose a > timezone. > >> > > > > >> > >> > > > > >> The questions are: > >> > > > > >> 1) Where do we populate the timezones from in that list, > >> > displaying > >> > > > 650 > >> > > > > >> timezones of java.util.Timezone is not practical > >> > > > > >> 2) If we default that timezone to some value, what shall it > >> be? > >> > The > >> > > > > >> timezone of the server or the timezone of the client browser? > >> > > > > >> => In theory this default timezone is used whenever we > >> can't > >> > > > find a > >> > > > > >> suitable timezone. So potentially we can default it to the > >> > browsers > >> > > > > >> timezone that is currently installing OpenMeetings. > >> > > > > >> This default timzeone will be used whenever there is no > >> > > timezone > >> > > > > >> available for a user or if the timezone of the user is > >> corrupted. > >> > > > > >> > >> > > > > >> Sebastian > >> > > > > >> > >> > > > > >> > >> > > > > >> > >> > > > > >> > >> > > > > >> 2013/8/6 Maxim Solodovnik <solomax...@gmail.com> > >> > > > > >> > >> > > > > >> > Additionally Appointment, I guess. > >> > > > > >> > Non-existent XML attribute will be ignored by > >> simpleframework. > >> > > > > >> > > >> > > > > >> > I believe we can let timezones.xml live in our sources and > >> > convert > >> > > > > >> backups > >> > > > > >> > based on it > >> > > > > >> > > >> > > > > >> > > >> > > > > >> > On Tue, Aug 6, 2013 at 5:28 PM, seba.wag...@gmail.com < > >> > > > > >> > seba.wag...@gmail.com > >> > > > > >> > > wrote: > >> > > > > >> > > >> > > > > >> > > That might be another approach. > >> > > > > >> > > So you are saying we get rid of the Entity OmTimeZone in > >> > total? > >> > > > > >> > > > >> > > > > >> > > Even if we have the timezone in the each of those > object,I > >> > think > >> > > > > there > >> > > > > >> > > should be a fallback mechanism. Cause with every Java > >> update > >> > > (or I > >> > > > > >> think > >> > > > > >> > > you can even do it manually) you can get updates to the > >> > > > > number/offset > >> > > > > >> of > >> > > > > >> > > the timezones (appearently every year such and such > >> countries > >> > > for > >> > > > > >> > instance > >> > > > > >> > > "decide" to switch to have not a Daylight saving time, et > >> > > cetera, > >> > > > or > >> > > > > >> > there > >> > > > > >> > > is even a brand new timezone). > >> > > > > >> > > So it could happen one day that we have timezone string > in > >> our > >> > > > > >> > application > >> > > > > >> > > that is neither known to java.util.Timezone nor to > >> > > > > >> > > net.fortuna.ical4j.model.TimeZone. Or a timezone exists > in > >> the > >> > > one > >> > > > > and > >> > > > > >> > does > >> > > > > >> > > not exist in the other. > >> > > > > >> > > > >> > > > > >> > > I think we should go the extra mile and try to outline > the > >> > > > technical > >> > > > > >> part > >> > > > > >> > > upfront doing anything concretly. It could save us a lot > of > >> > > time. > >> > > > > >> Also it > >> > > > > >> > > might be good to discuss this publicly as more then one > >> person > >> > > can > >> > > > > >> then > >> > > > > >> > > work on it in parallel. > >> > > > > >> > > > >> > > > > >> > > As far as I can judge you can't save the type > >> > java.util.Timezone > >> > > > in > >> > > > > a > >> > > > > >> > > database. > >> > > > > >> > > So it has to be either a string or you store an Integer > >> > > > > >> > > (utcTimeZoneOffset). But I really don't like the latter > as > >> it > >> > > does > >> > > > > not > >> > > > > >> > > handle Daylight savings times. > >> > > > > >> > > > >> > > > > >> > > So the Entities that hold an attribute "omTimeZone" that > >> would > >> > > > need > >> > > > > >> to be > >> > > > > >> > > changed: > >> > > > > >> > > User > >> > > > > >> > > Invitations > >> > > > > >> > > MeetingMembers > >> > > > > >> > > > >> > > > > >> > > and they all get a new attribute "String tz" > >> > > > > >> > > > >> > > > > >> > > How would we imagine could the export and import work if > >> you > >> > > > import > >> > > > > an > >> > > > > >> > old > >> > > > > >> > > backup where the OmTimeZone is set in the user? I guess > we > >> > need > >> > > a > >> > > > > >> > converter > >> > > > > >> > > that can handle OmTimeZone to the new format. > >> > > > > >> > > However would that even work currently with > >> > > > > >> > > org.simpleframework.xml.Element, when you have an > attribute > >> > that > >> > > > > does > >> > > > > >> > just > >> > > > > >> > > no more exist ? > >> > > > > >> > > > >> > > > > >> > > Any other considerations that are not yet covered? > >> > > > > >> > > > >> > > > > >> > > Sebastian > >> > > > > >> > > > >> > > > > >> > > > >> > > > > >> > > > >> > > > > >> > > > >> > > > > >> > > 2013/8/6 Maxim Solodovnik <solomax...@gmail.com> > >> > > > > >> > > > >> > > > > >> > > > I like the idea of having less custom issues > >> > > > > >> > > > I believe TZ field in all our objects can easily be > just > >> a > >> > > > string > >> > > > > >> like: > >> > > > > >> > > > "Europe/Berlin" > >> > > > > >> > > > > >> > > > > >> > > > > >> > > > > >> > > > On Tue, Aug 6, 2013 at 3:36 PM, Maxim Solodovnik < > >> > > > > >> solomax...@gmail.com > >> > > > > >> > > > >wrote: > >> > > > > >> > > > > >> > > > > >> > > > > I have: It is impossible to get User timezone (you > only > >> > can > >> > > > get > >> > > > > tz > >> > > > > >> > > shift > >> > > > > >> > > > > and/or dst shift and if dst is in effect) > >> > > > > >> > > > > > >> > > > > >> > > > > According to iCal4J time zone mapping I guess the > name > >> > > should > >> > > > be > >> > > > > >> the > >> > > > > >> > > same > >> > > > > >> > > > > > >> > > > > >> > > > > > >> > > > > >> > > > > On Tue, Aug 6, 2013 at 3:17 PM, > seba.wag...@gmail.com< > >> > > > > >> > > > > seba.wag...@gmail.com> wrote: > >> > > > > >> > > > > > >> > > > > >> > > > >> Okay, > >> > > > > >> > > > >> > >> > > > > >> > > > >> after a bit of back and forth using the > >> wicket-jquery-ui > >> > > > > library > >> > > > > >> I > >> > > > > >> > > think > >> > > > > >> > > > >> it > >> > > > > >> > > > >> might be worth re-evaluating our timezone behaviour. > >> > > > > >> > > > >> > >> > > > > >> > > > >> Basically it seems like the approach to show the UI > >> in a > >> > > > > timezone > >> > > > > >> > > > >> different > >> > > > > >> > > > >> from the users browser/os is a non common approach. > >> And > >> > > > > >> eventually > >> > > > > >> > we > >> > > > > >> > > > can > >> > > > > >> > > > >> directly migrate away from it. > >> > > > > >> > > > >> > >> > > > > >> > > > >> So the proposal would be: > >> > > > > >> > > > >> Show the calendar UI and any timezone relevant > >> > information > >> > > in > >> > > > > the > >> > > > > >> > > > >> browser's > >> > > > > >> > > > >> timezone. > >> > > > > >> > > > >> > >> > > > > >> > > > >> To resolve the issues in the invitations I would > >> suggest > >> > > the > >> > > > > >> > following > >> > > > > >> > > > >> changes: > >> > > > > >> > > > >> - When the user signs up the timezone is no more > >> > > > editable/not > >> > > > > >> even > >> > > > > >> > > > shown > >> > > > > >> > > > >> maybe or read only and taken from the browser/client > >> os > >> > > > > >> > > > >> - Everytime the user logs in the timezone field in > >> the > >> > > users > >> > > > > >> > profile > >> > > > > >> > > is > >> > > > > >> > > > >> updated with the current timezone of the > >> browser/client > >> > os. > >> > > > > >> > > > >> The idea might be that we add a new entry in the > >> table > >> > > > > >> OmTimeZone > >> > > > > >> > > > >> whenever > >> > > > > >> > > > >> we detect any user with a new timezone. > >> > > > > >> > > > >> - Login view the Flash application will no more be > >> > > possible. > >> > > > > The > >> > > > > >> > > > >> Openlaszlo application will only be used for the > >> > conference > >> > > > > room > >> > > > > >> > > itself > >> > > > > >> > > > >> > >> > > > > >> > > > >> By doing that it should basically all just work > fine. > >> > > > > >> > > > >> > >> > > > > >> > > > >> But now comes the elefant :) We need a mapping > between > >> > > iCal4J > >> > > > > >> > > timezones > >> > > > > >> > > > >> and > >> > > > > >> > > > >> java.util.Timezone. > >> > > > > >> > > > >> iCal4J is using net.fortuna.ical4j.model.TimeZone > and > >> we > >> > > only > >> > > > > >> have > >> > > > > >> > > > >> java.util.TimeZones. This is the historical reason > why > >> > the > >> > > > code > >> > > > > >> is a > >> > > > > >> > > > >> little > >> > > > > >> > > > >> bit messed up with various timezone calculations and > >> > > > fallbacks. > >> > > > > >> > > > >> > >> > > > > >> > > > >> So it will be a major refactoring that should be > >> planned > >> > > and > >> > > > > >> broken > >> > > > > >> > > down > >> > > > > >> > > > >> in > >> > > > > >> > > > >> several phases. > >> > > > > >> > > > >> We will change and touch all and any kind of > >> > functionality > >> > > in > >> > > > > >> > > > >> OpenMeetings. > >> > > > > >> > > > >> It will require quite a bit of regression testing to > >> > check > >> > > if > >> > > > > >> > nothing > >> > > > > >> > > is > >> > > > > >> > > > >> broken. > >> > > > > >> > > > >> > >> > > > > >> > > > >> We generall said refactorings like this are not part > >> of > >> > > > > >> OpenMeetings > >> > > > > >> > > > 3.0. > >> > > > > >> > > > >> And once we start this there is no way back. It will > >> > delay > >> > > > any > >> > > > > >> > > potential > >> > > > > >> > > > >> release by 1 - 2 months. > >> > > > > >> > > > >> > >> > > > > >> > > > >> What is the general opinion about this ? > >> > > > > >> > > > >> > >> > > > > >> > > > >> > >> > > > > >> > > > >> > >> > > > > >> > > > >> -- > >> > > > > >> > > > >> Sebastian Wagner > >> > > > > >> > > > >> https://twitter.com/#!/dead_lock > >> > > > > >> > > > >> http://www.webbase-design.de > >> > > > > >> > > > >> http://www.wagner-sebastian.com > >> > > > > >> > > > >> seba.wag...@gmail.com > >> > > > > >> > > > >> > >> > > > > >> > > > > > >> > > > > >> > > > > > >> > > > > >> > > > > > >> > > > > >> > > > > -- > >> > > > > >> > > > > WBR > >> > > > > >> > > > > Maxim aka solomax > >> > > > > >> > > > > > >> > > > > >> > > > > >> > > > > >> > > > > >> > > > > >> > > > > >> > > > > >> > > > -- > >> > > > > >> > > > WBR > >> > > > > >> > > > Maxim aka solomax > >> > > > > >> > > > > >> > > > > >> > > > >> > > > > >> > > > >> > > > > >> > > > >> > > > > >> > > -- > >> > > > > >> > > Sebastian Wagner > >> > > > > >> > > https://twitter.com/#!/dead_lock > >> > > > > >> > > http://www.webbase-design.de > >> > > > > >> > > http://www.wagner-sebastian.com > >> > > > > >> > > seba.wag...@gmail.com > >> > > > > >> > > > >> > > > > >> > > >> > > > > >> > > >> > > > > >> > > >> > > > > >> > -- > >> > > > > >> > WBR > >> > > > > >> > Maxim aka solomax > >> > > > > >> > > >> > > > > >> > >> > > > > >> > >> > > > > >> > >> > > > > >> -- > >> > > > > >> Sebastian Wagner > >> > > > > >> https://twitter.com/#!/dead_lock > >> > > > > >> http://www.webbase-design.de > >> > > > > >> http://www.wagner-sebastian.com > >> > > > > >> seba.wag...@gmail.com > >> > > > > >> > >> > > > > > > >> > > > > > > >> > > > > > > >> > > > > > -- > >> > > > > > WBR > >> > > > > > Maxim aka solomax > >> > > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > -- > >> > > > > WBR > >> > > > > Maxim aka solomax > >> > > > > > >> > > > > >> > > > > >> > > > > >> > > > -- > >> > > > Sebastian Wagner > >> > > > https://twitter.com/#!/dead_lock > >> > > > http://www.webbase-design.de > >> > > > http://www.wagner-sebastian.com > >> > > > seba.wag...@gmail.com > >> > > > > >> > > > >> > > > >> > > > >> > > -- > >> > > WBR > >> > > Maxim aka solomax > >> > > > >> > > >> > > >> > > >> > -- > >> > Sebastian Wagner > >> > https://twitter.com/#!/dead_lock > >> > http://www.webbase-design.de > >> > http://www.wagner-sebastian.com > >> > seba.wag...@gmail.com > >> > > >> > >> > >> > >> -- > >> WBR > >> Maxim aka solomax > >> > > > > > > > > -- > > Sebastian Wagner > > https://twitter.com/#!/dead_lock > > http://www.webbase-design.de > > http://www.wagner-sebastian.com > > seba.wag...@gmail.com > > > > > > -- > Sebastian Wagner > https://twitter.com/#!/dead_lock > http://www.webbase-design.de > http://www.wagner-sebastian.com > seba.wag...@gmail.com > -- WBR Maxim aka solomax