You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2014/11/19 15:34:13 UTC
svn commit: r1640561 - in /openmeetings:
branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/
branches/3.0.x/src/web/java/org/apache/openmeetings/web/util/
trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/
t...
Author: solomax
Date: Wed Nov 19 14:34:13 2014
New Revision: 1640561
URL: http://svn.apache.org/r1640561
Log:
[OPENMEETINGS-1123] redirect loop is fixed
Modified:
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/BasePage.java
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/util/FormatHelper.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseNotInitedPage.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/FormatHelper.java
Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/BasePage.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/BasePage.java?rev=1640561&r1=1640560&r2=1640561&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/BasePage.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/BasePage.java Wed Nov 19 14:34:13 2014
@@ -25,6 +25,7 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.web.app.Application;
import org.apache.openmeetings.web.app.WebSession;
import org.apache.openmeetings.web.common.HeaderPanel;
+import org.apache.openmeetings.web.util.FormatHelper;
import org.apache.openmeetings.web.util.OmUrlFragment;
import org.apache.openmeetings.web.util.OmUrlFragment.AreaKeys;
import org.apache.wicket.AttributeModifier;
@@ -81,8 +82,13 @@ public abstract class BasePage extends A
response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(Application.get().getJavaScriptLibrarySettings().getJQueryReference())));
super.renderHead(response);
- FieldLanguage lang = WebSession.getLanguageObj();
- if (Boolean.TRUE.equals(lang.getRtl())) {
+ boolean rtl = false;
+ if (Application.isInstalled()) {
+ rtl = Boolean.TRUE.equals(WebSession.getLanguageObj().getRtl());
+ } else {
+ rtl = FormatHelper.isRtlLanguage(WebSession.get().getLocale().toString());
+ }
+ if (rtl) {
response.render(CssHeaderItem.forUrl("css/theme-rtl.css"));
}
}
Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/util/FormatHelper.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/util/FormatHelper.java?rev=1640561&r1=1640560&r2=1640561&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/util/FormatHelper.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/util/FormatHelper.java Wed Nov 19 14:34:13 2014
@@ -20,9 +20,45 @@ package org.apache.openmeetings.web.util
import static org.apache.commons.lang3.StringEscapeUtils.escapeHtml4;
+import java.util.regex.Pattern;
+
import org.apache.openmeetings.db.entity.user.User;
public class FormatHelper {
+ /**
+ * taken from BidiUtils
+ *
+ * A regular expression for matching right-to-left language codes. See
+ * {@link #isRtlLanguage} for the design.
+ */
+ private static final Pattern RtlLocalesRe = Pattern.compile("^(ar|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Arab|Hebr|Thaa|Nkoo|Tfng))"
+ + "(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)");
+
+ /**
+ * Check if a BCP 47 / III language code indicates an RTL language, i.e.
+ * either: - a language code explicitly specifying one of the right-to-left
+ * scripts, e.g. "az-Arab", or
+ * <p>
+ * - a language code specifying one of the languages normally written in a
+ * right-to-left script, e.g. "fa" (Farsi), except ones explicitly
+ * specifying Latin or Cyrillic script (which are the usual LTR
+ * alternatives).
+ * <p>
+ * The list of right-to-left scripts appears in the 100-199 range in
+ * http://www.unicode.org/iso15924/iso15924-num.html, of which Arabic and
+ * Hebrew are by far the most widely used. We also recognize Thaana, N'Ko,
+ * and Tifinagh, which also have significant modern usage. The rest (Syriac,
+ * Samaritan, Mandaic, etc.) seem to have extremely limited or no modern
+ * usage and are not recognized. The languages usually written in a
+ * right-to-left script are taken as those with Suppress-Script:
+ * Hebr|Arab|Thaa|Nkoo|Tfng in
+ * http://www.iana.org/assignments/language-subtag-registry, as well as
+ * Sindhi (sd) and Uyghur (ug). The presence of other subtags of the
+ * language code, e.g. regions like EG (Egypt), is ignored.
+ */
+ public static boolean isRtlLanguage(String languageString) {
+ return languageString != null && RtlLocalesRe.matcher(languageString).find();
+ }
public static String formatUser(User u) {
return formatUser(u, false);
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseNotInitedPage.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseNotInitedPage.java?rev=1640561&r1=1640560&r2=1640561&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseNotInitedPage.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseNotInitedPage.java Wed Nov 19 14:34:13 2014
@@ -19,6 +19,9 @@
package org.apache.openmeetings.web.pages;
import org.apache.openmeetings.installation.InstallationConfig;
+import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.util.FormatHelper;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.request.IRequestParameters;
@@ -34,12 +37,16 @@ public abstract class BaseNotInitedPage
@Override
protected String getLanguageCode() {
- return "en";
+ return WebSession.get().getLocale().getCountry();
}
@Override
protected boolean isRtl() {
- return false;
+ boolean rtl = false;
+ if (Application.isInstalled()) {
+ rtl = FormatHelper.isRtlLanguage(WebSession.get().getLocale().toString());
+ }
+ return rtl;
}
@Override
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/FormatHelper.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/FormatHelper.java?rev=1640561&r1=1640560&r2=1640561&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/FormatHelper.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/FormatHelper.java Wed Nov 19 14:34:13 2014
@@ -20,9 +20,45 @@ package org.apache.openmeetings.web.util
import static org.apache.commons.lang3.StringEscapeUtils.escapeHtml4;
+import java.util.regex.Pattern;
+
import org.apache.openmeetings.db.entity.user.User;
public class FormatHelper {
+ /**
+ * taken from BidiUtils
+ *
+ * A regular expression for matching right-to-left language codes. See
+ * {@link #isRtlLanguage} for the design.
+ */
+ private static final Pattern RtlLocalesRe = Pattern.compile("^(ar|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Arab|Hebr|Thaa|Nkoo|Tfng))"
+ + "(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)");
+
+ /**
+ * Check if a BCP 47 / III language code indicates an RTL language, i.e.
+ * either: - a language code explicitly specifying one of the right-to-left
+ * scripts, e.g. "az-Arab", or
+ * <p>
+ * - a language code specifying one of the languages normally written in a
+ * right-to-left script, e.g. "fa" (Farsi), except ones explicitly
+ * specifying Latin or Cyrillic script (which are the usual LTR
+ * alternatives).
+ * <p>
+ * The list of right-to-left scripts appears in the 100-199 range in
+ * http://www.unicode.org/iso15924/iso15924-num.html, of which Arabic and
+ * Hebrew are by far the most widely used. We also recognize Thaana, N'Ko,
+ * and Tifinagh, which also have significant modern usage. The rest (Syriac,
+ * Samaritan, Mandaic, etc.) seem to have extremely limited or no modern
+ * usage and are not recognized. The languages usually written in a
+ * right-to-left script are taken as those with Suppress-Script:
+ * Hebr|Arab|Thaa|Nkoo|Tfng in
+ * http://www.iana.org/assignments/language-subtag-registry, as well as
+ * Sindhi (sd) and Uyghur (ug). The presence of other subtags of the
+ * language code, e.g. regions like EG (Egypt), is ignored.
+ */
+ public static boolean isRtlLanguage(String languageString) {
+ return languageString != null && RtlLocalesRe.matcher(languageString).find();
+ }
public static String formatUser(User u) {
return formatUser(u, false);