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 2022/01/17 04:03:02 UTC
[openmeetings] branch master updated: [OPENMEETINGS-2719] RTL re-worked, initial commit
This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/master by this push:
new 025f944 [OPENMEETINGS-2719] RTL re-worked, initial commit
025f944 is described below
commit 025f9445680b12c2ac216e194ac9459eab60d4d9
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Mon Jan 17 10:43:11 2022 +0700
[OPENMEETINGS-2719] RTL re-worked, initial commit
---
.../openmeetings/db/entity/label/OmLanguage.java | 4 +--
.../apache/openmeetings/db/util/FormatHelper.java | 40 ----------------------
.../service/calendar/caldav/IcalUtils.java | 10 +++---
.../mail/template/AbstractTemplatePanel.java | 4 +--
.../apache/openmeetings/util/mail/IcalHandler.java | 6 ++--
.../apache/openmeetings/web/common/BasePanel.java | 3 +-
.../openmeetings/web/pages/BaseInitedPage.java | 3 +-
.../openmeetings/web/pages/BaseNotInitedPage.java | 7 +---
.../web/user/dashboard/OmDashboardPanel.java | 4 +--
pom.xml | 16 ++++-----
10 files changed, 23 insertions(+), 74 deletions(-)
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/label/OmLanguage.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/label/OmLanguage.java
index b51db93..64cdc0b 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/label/OmLanguage.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/label/OmLanguage.java
@@ -21,7 +21,7 @@ package org.apache.openmeetings.db.entity.label;
import java.io.Serializable;
import java.util.Locale;
-import org.apache.openmeetings.db.util.FormatHelper;
+import org.apache.wicket.protocol.http.WebSession;
public class OmLanguage implements Serializable {
private static final long serialVersionUID = 1L;
@@ -35,7 +35,7 @@ public class OmLanguage implements Serializable {
public OmLanguage(Long id, Locale locale) {
this.id = id;
this.locale = locale;
- this.rtl = FormatHelper.isRtlLanguage(locale.toLanguageTag());
+ this.rtl = WebSession.isRtlLanguage(locale);
}
public long getId() {
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/FormatHelper.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/FormatHelper.java
index 2a84177..e2900cc 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/FormatHelper.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/FormatHelper.java
@@ -22,52 +22,12 @@ import static java.text.DateFormat.SHORT;
import static org.apache.commons.text.StringEscapeUtils.escapeHtml4;
import static org.apache.openmeetings.db.util.TimezoneUtil.getTimeZone;
-import java.util.regex.Pattern;
-
import org.apache.commons.lang3.time.FastDateFormat;
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)($|-|_))($|-|_)");
-
private FormatHelper() {}
- /**
- * 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.
- *
- * @param languageString - locale string
- * @return <code>true</code> in case passed locale is right-to-left
- */
- public static boolean isRtlLanguage(String languageString) {
- return languageString != null && RtlLocalesRe.matcher(languageString).find();
- }
-
public static String formatUser(User u) {
return formatUser(u, false);
}
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java
index 5c57007..4d7333e 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java
@@ -192,7 +192,7 @@ public class IcalUtils {
event.getProperty(Property.LOCATION).ifPresent(location -> a.setLocation(location.getValue()));
event.getProperty(Property.RRULE).ifPresent(recur -> {
- recur.getParameters().getFirst("FREQ").ifPresent(freq -> {
+ recur.getParameter("FREQ").ifPresent(freq -> {
if (freq.getValue().equals(Frequency.DAILY.name())) {
a.setIsDaily(true);
} else if (freq.getValue().equals(Frequency.WEEKLY.name())) {
@@ -236,7 +236,7 @@ public class IcalUtils {
if (SCHEME_MAILTO.equals(uri.getScheme())) {
String email = uri.getSchemeSpecificPart();
- Optional<Role> role = attendee.getParameters().getFirst(Role.CHAIR.getName());
+ Optional<Role> role = attendee.getParameter(Role.CHAIR.getName());
if (role.isPresent() && role.get().getValue().equals(Role.CHAIR.getValue()) && email.equals(organizerEmail.get())) {
return;
}
@@ -307,7 +307,7 @@ public class IcalUtils {
return null;
}
- return dt.getParameters().getFirst(Parameter.TZID)
+ return dt.getParameter(Parameter.TZID)
.map(tzid -> parseDate(dt.getValue(), getTimeZone(tzid.getValue())))
.orElse(parseDate(dt.getValue(), timeZone));
}
@@ -377,7 +377,7 @@ public class IcalUtils {
ZonedDateTime end = getZoneDateTime(appointment.getEnd(), timeZone.getID());
VEvent meeting = new VEvent(start, end, appointment.getTitle());
- List<Property> mProperties = new ArrayList<>(meeting.getProperties().getAll());
+ List<Property> mProperties = new ArrayList<>(meeting.getProperties());
if (appointment.getLocation() != null) {
mProperties.add(new Location(appointment.getLocation()));
}
@@ -411,7 +411,7 @@ public class IcalUtils {
mProperties.add(new Organizer(new ParameterList(List.of(orgCn)), orgUri));
- meeting.setProperties(new PropertyList(mProperties));
+ meeting.setPropertyList(new PropertyList(mProperties));
return meeting;
}
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AbstractTemplatePanel.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AbstractTemplatePanel.java
index 39c0d5f..ee4c982 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AbstractTemplatePanel.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AbstractTemplatePanel.java
@@ -18,8 +18,6 @@
*/
package org.apache.openmeetings.service.mail.template;
-import static org.apache.openmeetings.db.util.FormatHelper.isRtlLanguage;
-
import java.util.Locale;
import org.apache.openmeetings.IApplication;
@@ -41,7 +39,7 @@ public abstract class AbstractTemplatePanel extends Panel {
protected AbstractTemplatePanel(Locale locale) {
super(COMP_ID);
this.locale = locale;
- add(new TransparentWebMarkupContainer("container").add(AttributeModifier.append("dir", isRtlLanguage(this.locale.toLanguageTag()) ? "rtl" : "ltr")));
+ add(new TransparentWebMarkupContainer("container").add(AttributeModifier.append("dir", WebSession.isRtlLanguage(this.locale) ? "rtl" : "ltr")));
}
public static IWebSession getOmSession() {
diff --git a/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java b/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java
index f324a1b..7a7b85e 100644
--- a/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java
+++ b/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java
@@ -112,7 +112,7 @@ public class IcalHandler {
}
meeting = new VEvent(start, end, name);
- meetingProperties.addAll(meeting.getProperties().getAll());
+ meetingProperties.addAll(meeting.getProperties());
meetingProperties.addAll(List.of(Transp.OPAQUE, Status.VEVENT_CONFIRMED));
return this;
}
@@ -173,8 +173,8 @@ public class IcalHandler {
}
public IcalHandler build() {
- meeting.setProperties(new PropertyList(meetingProperties));
- icsCalendar.setComponents(new ComponentList<>(List.of(timeZone.getVTimeZone(), meeting)));
+ meeting.setPropertyList(new PropertyList(meetingProperties));
+ icsCalendar.setComponentList(new ComponentList<>(List.of(timeZone.getVTimeZone(), meeting)));
return this;
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java
index f9cd354..67a855e 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java
@@ -20,7 +20,6 @@ package org.apache.openmeetings.web.common;
import java.io.IOException;
-import org.apache.openmeetings.db.util.FormatHelper;
import org.apache.openmeetings.web.app.WebSession;
import org.apache.openmeetings.web.common.menu.MenuPanel;
import org.apache.openmeetings.web.pages.BasePage;
@@ -55,7 +54,7 @@ public abstract class BasePanel extends Panel {
}
protected boolean isRtl() {
- return FormatHelper.isRtlLanguage(WebSession.get().getLocale().toLanguageTag());
+ return WebSession.get().isRtlLocale();
}
/**
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java
index 1886f25..3ac0b65 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java
@@ -18,7 +18,6 @@
*/
package org.apache.openmeetings.web.pages;
-import org.apache.openmeetings.db.util.FormatHelper;
import org.apache.openmeetings.web.app.WebSession;
public abstract class BaseInitedPage extends BasePage {
@@ -31,6 +30,6 @@ public abstract class BaseInitedPage extends BasePage {
@Override
public boolean isRtl() {
- return FormatHelper.isRtlLanguage(getLanguageCode());
+ return WebSession.get().isRtlLocale();
}
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseNotInitedPage.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseNotInitedPage.java
index a3b3398..cc62fba 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseNotInitedPage.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseNotInitedPage.java
@@ -18,7 +18,6 @@
*/
package org.apache.openmeetings.web.pages;
-import org.apache.openmeetings.db.util.FormatHelper;
import org.apache.openmeetings.web.app.Application;
import org.apache.openmeetings.web.app.WebSession;
import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -34,11 +33,7 @@ public abstract class BaseNotInitedPage extends BasePage {
@Override
public boolean isRtl() {
- boolean rtl = false;
- if (Application.isInstalled()) {
- rtl = FormatHelper.isRtlLanguage(WebSession.get().getLocale().toString());
- }
- return rtl;
+ return Application.isInstalled() ? WebSession.get().isRtlLocale() : false;
}
@Override
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/OmDashboardPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/OmDashboardPanel.java
index 2274add..23c9c3d 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/OmDashboardPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/OmDashboardPanel.java
@@ -18,7 +18,6 @@
*/
package org.apache.openmeetings.web.user.dashboard;
-import org.apache.openmeetings.db.util.FormatHelper;
import org.apache.openmeetings.web.app.WebSession;
import org.apache.openmeetings.web.common.UserBasePanel;
import org.apache.wicket.model.Model;
@@ -30,7 +29,6 @@ public class OmDashboardPanel extends UserBasePanel {
public OmDashboardPanel(String id) {
super(id);
- boolean isRtl = FormatHelper.isRtlLanguage(WebSession.get().getLocale().toLanguageTag());
- add(new DashboardPanel("dashboard", Model.of(WebSession.getDashboard())).setRtlModel(Model.of(isRtl)));
+ add(new DashboardPanel("dashboard", Model.of(WebSession.getDashboard())));
}
}
diff --git a/pom.xml b/pom.xml
index ca387b8..c0cb06e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,12 +54,12 @@
<license-maven-plugin.version>2.0.0</license-maven-plugin.version>
<reflow-maven-skin.version>2.3.0</reflow-maven-skin.version>
<reflow-theme>cerulean</reflow-theme>
- <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
+ <maven-compiler-plugin.version>3.9.0</maven-compiler-plugin.version>
<maven-project-info-reports-plugin.version>3.1.2</maven-project-info-reports-plugin.version>
- <maven-jar-plugin.version>3.2.1</maven-jar-plugin.version>
+ <maven-jar-plugin.version>3.2.2</maven-jar-plugin.version>
<maven-assembly-plugin.version>3.3.0</maven-assembly-plugin.version>
<maven-dependency-plugin.version>3.2.0</maven-dependency-plugin.version>
- <maven-bundle-plugin.version>5.1.1</maven-bundle-plugin.version>
+ <maven-bundle-plugin.version>5.1.4</maven-bundle-plugin.version>
<maven-war-plugin.version>3.3.2</maven-war-plugin.version>
<maven-clean-plugin.version>3.1.0</maven-clean-plugin.version>
<wagon-maven-plugin.version>2.0.2</wagon-maven-plugin.version>
@@ -80,14 +80,14 @@
<swagger-plugin.version>2.1.6</swagger-plugin.version>
<!-- dependency versions -->
<junit.version>5.8.2</junit.version>
- <wicket.version>9.7.0</wicket.version>
+ <wicket.version>9.8.0-SNAPSHOT</wicket.version>
<wicket-jquery-ui.version>9.7.0</wicket-jquery-ui.version>
- <wicketstuff.version>9.7.0</wicketstuff.version>
+ <wicketstuff.version>9.8.0-SNAPSHOT</wicketstuff.version>
<wicket-bootstrap.version>6.0.0-M6-SNAPSHOT</wicket-bootstrap.version>
<font-awesome.version>5.15.4</font-awesome.version>
- <spring.version>5.3.14</spring.version>
+ <spring.version>5.3.15</spring.version>
<tomcat.version>9.0.56</tomcat.version>
- <ical4j.version>4.0.0-alpha10</ical4j.version>
+ <ical4j.version>4.0.0-alpha11</ical4j.version>
<cxf.version>3.5.0</cxf.version>
<io.prometheus.version>0.14.1</io.prometheus.version>
<aspectjtools.version>1.9.7</aspectjtools.version>
@@ -113,7 +113,7 @@
<commons-collections4.version>4.4</commons-collections4.version>
<xstream.version>1.4.18</xstream.version>
<api-all.version>2.1.0</api-all.version>
- <caldav4j.version>1.0.3</caldav4j.version>
+ <caldav4j.version>1.0.5</caldav4j.version>
<tika-parsers.version>2.2.1</tika-parsers.version>
<commons-text.version>1.9</commons-text.version>
<slf4j.version>1.7.32</slf4j.version>