Author: sebawagner
Date: Sat Aug  3 00:36:00 2013
New Revision: 1509919

URL: http://svn.apache.org/r1509919
Log:
OPENMEETINGS-728 - Fixes Appointment input of DateTime is in the timezone of 
the Openmeetings user profile, not the browser/os timezone

Added:
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/ui/
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/ui/CustomTimeZoneDateTimeField.java
Modified:
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/WebSession.java
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/WebSession.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/WebSession.java?rev=1509919&r1=1509918&r2=1509919&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/WebSession.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/WebSession.java
 Sat Aug  3 00:36:00 2013
@@ -180,6 +180,10 @@ public class WebSession extends Abstract
        public static long getUserId() {
                return get().userId;
        }
+       
+       public static TimeZone getUserTimeZone() {
+               return get().tz;
+       }
 
        public static Calendar getCalendar() {
                return Calendar.getInstance(get().tz);

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java?rev=1509919&r1=1509918&r2=1509919&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
 Sat Aug  3 00:36:00 2013
@@ -41,11 +41,11 @@ import org.apache.openmeetings.persisten
 import org.apache.openmeetings.persistence.beans.room.RoomType;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.util.RoomTypeDropDown;
+import org.apache.openmeetings.web.util.ui.CustomTimeZoneDateTimeField;
 import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox;
 import org.apache.wicket.behavior.AttributeAppender;
-import org.apache.wicket.extensions.yui.calendar.DateTimeField;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.ChoiceRenderer;
@@ -217,8 +217,8 @@ public class AppointmentDialog extends A
                        //add(new WysiwygEditor("appointmentDescription"));
                        add(new TextArea<String>("appointmentDescription"));
                        add(new TextField<String>("appointmentLocation"));
-                       add(new DateTimeField("appointmentStarttime"));
-                       add(new DateTimeField("appointmentEndtime"));
+                       add(new 
CustomTimeZoneDateTimeField("appointmentStarttime", 
WebSession.getUserTimeZone()));
+                       add(new 
CustomTimeZoneDateTimeField("appointmentEndtime", 
WebSession.getUserTimeZone()));
                        final PasswordTextField pwd = new 
PasswordTextField("password");
                        pwd.setEnabled(isPwdProtected());
                        pwd.setOutputMarkupId(true);

Added: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/ui/CustomTimeZoneDateTimeField.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/ui/CustomTimeZoneDateTimeField.java?rev=1509919&view=auto
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/ui/CustomTimeZoneDateTimeField.java
 (added)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/ui/CustomTimeZoneDateTimeField.java
 Sat Aug  3 00:36:00 2013
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.util.ui;
+
+import java.util.TimeZone;
+
+import org.apache.wicket.extensions.yui.calendar.DateTimeField;
+
+/**
+ * 
+ * This class provides and interface to fix the issue with custom set 
timezone's in the user
+ * profile of any user
+ * 
+ * @author swagner
+ *
+ */
+public class CustomTimeZoneDateTimeField extends DateTimeField  {
+       
+       private final TimeZone customTimeZone;
+
+       /**
+        * 
+        */
+       private static final long serialVersionUID = 1078348065479470152L;
+
+       public CustomTimeZoneDateTimeField(String id, TimeZone customTimeZone) {
+               super(id);
+               this.customTimeZone = customTimeZone;
+       }
+
+       @Override
+       protected TimeZone getClientTimeZone()
+       {
+               if (customTimeZone != null) {
+                       return customTimeZone;
+               }
+               
+               return super.getClientTimeZone();
+       }
+}


Reply via email to