You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by vd...@apache.org on 2013/08/13 10:07:45 UTC
svn commit: r1513385 - in
/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web: app/
pages/auth/ pages/install/ util/
Author: vdegtyarev
Date: Tue Aug 13 08:07:44 2013
New Revision: 1513385
URL: http://svn.apache.org/r1513385
Log:
OPENMEETINGS-749 is fixed. New time zone UI is implemented to Installer.
Added:
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/TimeZoneOffsetAjaxBehavior.java
Modified:
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/WebSession.java
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInDialog.java
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/install/InstallWizard.java
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/install/InstallWizardPage.html
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/install/InstallWizardPage.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=1513385&r1=1513384&r2=1513385&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 Tue Aug 13 08:07:44 2013
@@ -79,6 +79,7 @@ public class WebSession extends Abstract
private Dashboard dashboard;
private String baseUrl = null;
private Locale browserLocale = null;
+ private int browserTZOffset = Integer.MIN_VALUE;
public WebSession(Request request) {
super(request);
@@ -231,6 +232,14 @@ public class WebSession extends Abstract
return browserLocale;
}
+ public void setBrowserTimeZoneOffset(int browserTZOffset){
+ this.browserTZOffset = browserTZOffset;
+ }
+
+ public int getBrowserTimeZoneOffset(){
+ return browserTZOffset;
+ }
+
public FieldLanguage getLanguageByBrowserLocale() {
List<FieldLanguage> languages = getBean(FieldLanguageDao.class).getLanguages();
for (FieldLanguage l : languages) {
Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInDialog.java?rev=1513385&r1=1513384&r2=1513385&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInDialog.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInDialog.java Tue Aug 13 08:07:44 2013
@@ -22,7 +22,6 @@ import static org.apache.openmeetings.we
import static org.apache.openmeetings.web.app.Application.getBean;
import static org.apache.openmeetings.web.pages.auth.SignInPage.allowOAuthLogin;
import static org.apache.openmeetings.web.pages.auth.SignInPage.allowRegister;
-import static org.apache.wicket.ajax.attributes.CallbackParameter.resolved;
import java.util.ArrayList;
import java.util.List;
@@ -36,14 +35,11 @@ import org.apache.openmeetings.web.app.O
import org.apache.openmeetings.web.app.WebSession;
import org.apache.openmeetings.web.pages.SwfPage;
import org.apache.openmeetings.web.util.BaseUrlAjaxBehavior;
-import org.apache.wicket.Component;
+import org.apache.openmeetings.web.util.TimeZoneOffsetAjaxBehavior;
import org.apache.wicket.RestartResponseException;
-import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
-import org.apache.wicket.markup.head.IHeaderResponse;
-import org.apache.wicket.markup.head.JavaScriptHeaderItem;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.form.CheckBox;
import org.apache.wicket.markup.html.form.ChoiceRenderer;
@@ -58,7 +54,6 @@ import org.apache.wicket.markup.html.pan
import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.wicket.util.string.StringValue;
import com.googlecode.wicket.jquery.core.JQueryBehavior;
import com.googlecode.wicket.jquery.core.Options;
@@ -90,22 +85,14 @@ public class SignInDialog extends Abstra
add(browserTZOffset);
// This code is required to detect time zone offset
- add(new AbstractDefaultAjaxBehavior() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void renderHead(Component component, IHeaderResponse response) {
- super.renderHead(component, response);
- response.render(JavaScriptHeaderItem.forScript(getCallbackFunctionBody(resolved("tzOffset", "getTimeZoneOffsetMinutes()")), "getTzOffset"));
- }
+ add(new TimeZoneOffsetAjaxBehavior() {
+ private static final long serialVersionUID = 2954455885345860021L;
@Override
- protected void respond(AjaxRequestTarget target) {
- StringValue offset = getRequestCycle().getRequest().getRequestParameters().getParameterValue("tzOffset");
- try {
- browserTZOffset.setModelObject(offset.toInteger());
- } catch (NumberFormatException ex) { }
+ protected void customFunction(){
+ browserTZOffset.setModelObject(WebSession.get().getBrowserTimeZoneOffset());
}
+
});
add(new BaseUrlAjaxBehavior());
}
Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/install/InstallWizard.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/install/InstallWizard.java?rev=1513385&r1=1513384&r2=1513385&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/install/InstallWizard.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/install/InstallWizard.java Tue Aug 13 08:07:44 2013
@@ -31,8 +31,8 @@ import java.util.List;
import org.apache.openmeetings.installation.ImportInitvalues;
import org.apache.openmeetings.installation.InstallationConfig;
-import org.apache.openmeetings.persistence.beans.basic.OmTimeZone;
import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.app.WebSession;
import org.apache.openmeetings.web.common.ErrorMessagePanel;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
@@ -71,13 +71,25 @@ public class InstallWizard extends Wizar
private final static List<SelectOption> yesNoList = Arrays.asList(SelectOption.NO, SelectOption.YES);
private final static List<String> allFonts = Arrays.asList("TimesNewRoman", "Verdana", "Arial");
private final IDynamicWizardStep welcomeStep;
- private final IDynamicWizardStep paramsStep1;
+ private final ParamsStep1 paramsStep1;
private final IDynamicWizardStep paramsStep2;
private final IDynamicWizardStep paramsStep3;
private final IDynamicWizardStep paramsStep4;
private final InstallStep installStep;
private Throwable th = null;
+ public void initTzDropDown(int browserTZOffset){
+ List<String> tzList = WebSession.getAvailableTimezones();
+ paramsStep1.tzDropDown.option = tzList.get(0);
+ String tzId = WebSession.get().getTimeZoneByBrowserLocale(browserTZOffset);
+ for (String tz : tzList) {
+ if (tz.equals(tzId)) {
+ paramsStep1.tzDropDown.option = tz;
+ break;
+ }
+ }
+ }
+
//onInit, applyState
public InstallWizard(String id) throws Exception {
super(id);
@@ -150,6 +162,7 @@ public class InstallWizard extends Wizar
private final class ParamsStep1 extends BaseStep {
private static final long serialVersionUID = 1L;
+ private final TzDropDown tzDropDown;
public ParamsStep1() throws Exception {
super(welcomeStep);
@@ -157,7 +170,7 @@ public class InstallWizard extends Wizar
add(new RequiredTextField<String>("cfg.username").add(minimumLength(USER_LOGIN_MINIMUM_LENGTH)));
add(new PasswordTextField("cfg.password").add(minimumLength(USER_PASSWORD_MINIMUM_LENGTH)));
add(new RequiredTextField<String>("cfg.email").add(RfcCompliantEmailAddressValidator.getInstance()));
- add(new TzDropDown("ical_timeZone"));
+ add(tzDropDown = new TzDropDown("ical_timeZone"));
add(new RequiredTextField<String>("cfg.group"));
}
@@ -410,26 +423,27 @@ public class InstallWizard extends Wizar
}
}
- private final class TzDropDown extends WizardDropDown<OmTimeZone> {
+ private final class TzDropDown extends WizardDropDown<String> {
private static final long serialVersionUID = 6084349711073918837L;
public TzDropDown(String id) throws Exception {
super(id);
- List<OmTimeZone> tzList = ImportInitvalues.getTimeZones();
+ List<String> tzList = WebSession.getAvailableTimezones();
setChoices(tzList);
- setChoiceRenderer(new IChoiceRenderer<OmTimeZone>() {
+ setChoiceRenderer(new IChoiceRenderer<String>() {
private static final long serialVersionUID = 1L;
- public Object getDisplayValue(OmTimeZone object) {
- return object.getLabel() + " (" + object.getJname() + ")";
- }
- public String getIdValue(OmTimeZone object, int index) {
- return object.getIcal();
+ public Object getDisplayValue(String object) {
+ return object.toString();
}
+ public String getIdValue(String object, int index) {
+ return object.toString();
+ }
});
option = tzList.get(0);
- for (OmTimeZone tz : tzList) {
- if (tz.getIcal().equals(propModel.getObject())) {
+ String tzId = WebSession.get().getTimeZoneByBrowserLocale(WebSession.get().getBrowserTimeZoneOffset());
+ for (String tz : tzList) {
+ if (tz.equals(tzId)) {
option = tz;
break;
}
@@ -439,7 +453,7 @@ public class InstallWizard extends Wizar
@Override
protected void onModelChanged() {
if (propModel != null && option != null) {
- propModel.setObject(option.getIcal());
+ propModel.setObject(option);
}
}
}
Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/install/InstallWizardPage.html
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/install/InstallWizardPage.html?rev=1513385&r1=1513384&r2=1513385&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/install/InstallWizardPage.html (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/install/InstallWizardPage.html Tue Aug 13 08:07:44 2013
@@ -20,6 +20,8 @@
-->
<html xmlns:wicket="http://wicket.apache.org">
<wicket:head>
+ <script type="text/javascript" src="js/openmeetings_functions.js" >
+ </script>
<style type="text/css">
form,fieldset {
margin: 0;
Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/install/InstallWizardPage.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/install/InstallWizardPage.java?rev=1513385&r1=1513384&r2=1513385&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/install/InstallWizardPage.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/install/InstallWizardPage.java Tue Aug 13 08:07:44 2013
@@ -19,19 +19,32 @@
package org.apache.openmeetings.web.pages.install;
import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.app.WebSession;
import org.apache.openmeetings.web.common.ErrorMessagePanel;
import org.apache.openmeetings.web.pages.BaseNotInitedPage;
+import org.apache.openmeetings.web.util.TimeZoneOffsetAjaxBehavior;
import org.apache.wicket.RestartResponseException;
public class InstallWizardPage extends BaseNotInitedPage {
private static final long serialVersionUID = -438388395397826138L;
+ private InstallWizard wizard = null;
public InstallWizardPage() {
if (Application.isInstalled()) {
throw new RestartResponseException(Application.get().getHomePage());
}
try {
- add(new InstallWizard("wizard"));
+ add(wizard = new InstallWizard("wizard"));
+ // This code is required to detect time zone offset
+ add(new TimeZoneOffsetAjaxBehavior() {
+ private static final long serialVersionUID = 2558971671370041214L;
+
+ @Override
+ protected void customFunction(){
+ wizard.initTzDropDown(WebSession.get().getBrowserTimeZoneOffset());
+ }
+
+ });
} catch (RestartResponseException re) {
throw re;
} catch (Exception e) {
Added: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/TimeZoneOffsetAjaxBehavior.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/TimeZoneOffsetAjaxBehavior.java?rev=1513385&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/TimeZoneOffsetAjaxBehavior.java (added)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/TimeZoneOffsetAjaxBehavior.java Tue Aug 13 08:07:44 2013
@@ -0,0 +1,54 @@
+/*
+ * 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;
+
+import static org.apache.wicket.ajax.attributes.CallbackParameter.resolved;
+
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.wicket.Component;
+import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.JavaScriptHeaderItem;
+import org.apache.wicket.util.string.StringValue;
+
+public class TimeZoneOffsetAjaxBehavior extends AbstractDefaultAjaxBehavior {
+ private static final long serialVersionUID = 5857580283353735353L;
+
+ @Override
+ public void renderHead(Component component, IHeaderResponse response) {
+ super.renderHead(component, response);
+ if (WebSession.get().getBrowserTimeZoneOffset() == Integer.MIN_VALUE) {
+ response.render(JavaScriptHeaderItem.forScript(getCallbackFunctionBody(resolved("tzOffset", "getTimeZoneOffsetMinutes()")), "getTzOffset"));
+ }
+ }
+
+ @Override
+ protected void respond(AjaxRequestTarget target) {
+ StringValue offset = getComponent().getRequestCycle().getRequest().getRequestParameters().getParameterValue("tzOffset");
+ try {
+ WebSession.get().setBrowserTimeZoneOffset(offset.toInteger());
+ customFunction();
+ } catch (NumberFormatException ex) { }
+ }
+
+ protected void customFunction(){
+ }
+
+}