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 2018/11/28 16:59:21 UTC
[openmeetings] branch 4.0.x updated: [OPENMEETINGS-1851] display
name is added and made editable by end user
This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch 4.0.x
in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/4.0.x by this push:
new ffdc21b [OPENMEETINGS-1851] display name is added and made editable by end user
ffdc21b is described below
commit ffdc21ba763621d19ac4e320d0a5faa8ac5ea539
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Wed Nov 28 23:53:43 2018 +0700
[OPENMEETINGS-1851] display name is added and made editable by end user
---
.../openmeetings/core/util/WebSocketHelper.java | 5 +--
.../db/dao/basic/ConfigurationDao.java | 10 +++++
.../apache/openmeetings/db/dao/label/LabelDao.java | 47 +++++++++++++---------
.../openmeetings/db/entity/label/OmLanguage.java | 43 ++++++++++++++++++++
.../apache/openmeetings/db/entity/user/User.java | 35 ++++++++++++++++
.../apache/openmeetings/db/util/FormatHelper.java | 16 --------
.../installation/ImportInitvalues.java | 2 +
.../openmeetings/util/OpenmeetingsVariables.java | 10 +++++
.../web/app/Application.properties.xml | 1 +
.../web/app/Application_ar.properties.xml | 1 +
.../web/app/Application_bg.properties.xml | 1 +
.../web/app/Application_bn.properties.xml | 1 +
.../web/app/Application_ca.properties.xml | 1 +
.../web/app/Application_cs.properties.xml | 1 +
.../web/app/Application_da.properties.xml | 1 +
.../web/app/Application_de.properties.xml | 1 +
.../web/app/Application_el.properties.xml | 1 +
.../web/app/Application_es.properties.xml | 1 +
.../web/app/Application_fa.properties.xml | 1 +
.../web/app/Application_fi.properties.xml | 1 +
.../web/app/Application_fr.properties.xml | 1 +
.../web/app/Application_gl.properties.xml | 1 +
.../web/app/Application_he.properties.xml | 1 +
.../web/app/Application_hu.properties.xml | 1 +
.../web/app/Application_in.properties.xml | 1 +
.../web/app/Application_it.properties.xml | 1 +
.../web/app/Application_ja.properties.xml | 1 +
.../web/app/Application_ko.properties.xml | 1 +
.../web/app/Application_nl.properties.xml | 1 +
.../web/app/Application_pl.properties.xml | 1 +
.../web/app/Application_pt.properties.xml | 1 +
.../web/app/Application_pt_BR.properties.xml | 1 +
.../web/app/Application_ru.properties.xml | 1 +
.../web/app/Application_sk.properties.xml | 1 +
.../web/app/Application_sv.properties.xml | 1 +
.../web/app/Application_th.properties.xml | 1 +
.../web/app/Application_tr.properties.xml | 1 +
.../web/app/Application_uk.properties.xml | 1 +
.../web/app/Application_zh_CN.properties.xml | 1 +
.../web/app/Application_zh_TW.properties.xml | 1 +
.../openmeetings/web/common/GeneralUserForm.html | 3 ++
.../openmeetings/web/common/GeneralUserForm.java | 2 +
.../openmeetings/web/user/chat/ChatForm.java | 3 +-
43 files changed, 168 insertions(+), 40 deletions(-)
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
index 851ae99..59c2a56 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
@@ -19,7 +19,6 @@
package org.apache.openmeetings.core.util;
import static org.apache.openmeetings.core.remote.ScopeApplicationAdapter.getApp;
-import static org.apache.openmeetings.db.util.FormatHelper.getDisplayName;
import static org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
import java.io.IOException;
@@ -71,7 +70,7 @@ public class WebSocketHelper {
if (m.getToUser() != null) {
User u = curUserId == m.getToUser().getId() ? m.getFromUser() : m.getToUser();
scope = ID_USER_PREFIX + u.getId();
- scopeName = getDisplayName(u);
+ scopeName = u.getDisplayName();
} else if (m.getToRoom() != null) {
scope = ID_ROOM_PREFIX + m.getToRoom().getId();
o.put("needModeration", m.isNeedModeration());
@@ -92,7 +91,7 @@ public class WebSocketHelper {
JSONObject from = new JSONObject()
.put("id", m.getFromUser().getId())
.put("displayName", m.getFromName())
- .put("name", getDisplayName(m.getFromUser()));
+ .put("name", m.getFromUser().getDisplayName());
if (uFmt != null) {
uFmt.accept(from, m.getFromUser());
}
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
index d070934..c24d186 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
@@ -27,6 +27,7 @@ import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_CRYPT;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_GROUP_ID;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_LANG;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_TIMEZONE;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DISPLAY_NAME_EDITABLE;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_EMAIL_AT_REGISTER;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_EMAIL_VERIFICATION;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_EXT_PROCESS_TTL;
@@ -88,6 +89,7 @@ import static org.apache.openmeetings.util.OpenmeetingsVariables.setChatSenndOnE
import static org.apache.openmeetings.util.OpenmeetingsVariables.setCryptClassName;
import static org.apache.openmeetings.util.OpenmeetingsVariables.setDefaultGroup;
import static org.apache.openmeetings.util.OpenmeetingsVariables.setDefaultLang;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.setDisplayNameEditable;
import static org.apache.openmeetings.util.OpenmeetingsVariables.setExtProcessTtl;
import static org.apache.openmeetings.util.OpenmeetingsVariables.setGaCode;
import static org.apache.openmeetings.util.OpenmeetingsVariables.setMaxUploadSize;
@@ -413,6 +415,9 @@ public class ConfigurationDao implements IDataProviderDao<Configuration> {
case CONFIG_EMAIL_AT_REGISTER:
reloadSendRegisterEmail();
break;
+ case CONFIG_DISPLAY_NAME_EDITABLE:
+ reloadDisplayNameEditable();
+ break;
}
return entity;
}
@@ -536,6 +541,10 @@ public class ConfigurationDao implements IDataProviderDao<Configuration> {
setSendRegisterEmail(getBool(CONFIG_EMAIL_AT_REGISTER, false));
}
+ private void reloadDisplayNameEditable() {
+ setDisplayNameEditable(getBool(CONFIG_DISPLAY_NAME_EDITABLE, false));
+ }
+
public void reinit() {
reloadMaxUpload();
reloadCrypt();
@@ -562,6 +571,7 @@ public class ConfigurationDao implements IDataProviderDao<Configuration> {
reloadAllowRegisterOauth();
reloadSendVerificationEmail();
reloadSendRegisterEmail();
+ reloadDisplayNameEditable();
}
private JSONObject reloadRoomSettings() {
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java
index eda257c..e2a9ea7 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java
@@ -18,6 +18,10 @@
*/
package org.apache.openmeetings.db.dao.label;
+import static java.util.Locale.ENGLISH;
+import static java.util.Locale.ROOT;
+import static java.util.ResourceBundle.Control.FORMAT_PROPERTIES;
+import static java.util.ResourceBundle.Control.getControl;
import static org.apache.openmeetings.db.util.ApplicationHelper._ensureApplication;
import static org.apache.openmeetings.db.util.DaoHelper.UNSUPPORTED;
import static org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
@@ -39,9 +43,11 @@ import java.util.Map;
import java.util.Properties;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.stream.Collectors;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.openmeetings.db.dao.IDataProviderDao;
+import org.apache.openmeetings.db.entity.label.OmLanguage;
import org.apache.openmeetings.db.entity.label.StringLabel;
import org.apache.openmeetings.util.OmFileHelper;
import org.apache.openmeetings.util.XmlExport;
@@ -64,9 +70,9 @@ public class LabelDao implements IDataProviderDao<StringLabel>{
private static final Logger log = Red5LoggerFactory.getLogger(LabelDao.class, getWebAppRootKey());
private static final String ENTRY_ELEMENT = "entry";
private static final String KEY_ATTR = "key";
- public static final String APP_RESOURCES_EN = "Application.properties.xml";
- public static final String APP_RESOURCES = "Application_%s.properties.xml";
- private static final LinkedHashMap<Long, Locale> languages = new LinkedHashMap<>();
+ public static final String APP_RESOURCES_PREFIX = "Application";
+ public static final String APP_RESOURCES_SUFFIX = ".properties.xml";
+ private static final LinkedHashMap<Long, OmLanguage> languages = new LinkedHashMap<>();
private static final ConcurrentHashMap<Locale, List<StringLabel>> labelCache = new ConcurrentHashMap<>();
private static final Set<String> keys = new HashSet<>();
private static Class<?> appClass = null;
@@ -74,18 +80,18 @@ public class LabelDao implements IDataProviderDao<StringLabel>{
private static void storeLanguages() throws Exception {
Document d = XmlExport.createDocument();
Element r = XmlExport.createRoot(d, "language");
- for (Map.Entry<Long, Locale> e : languages.entrySet()) {
- r.addElement("lang").addAttribute("id", "" + e.getKey()).addAttribute("code", e.getValue().toLanguageTag());
+ for (Map.Entry<Long, OmLanguage> e : languages.entrySet()) {
+ r.addElement("lang").addAttribute("id", "" + e.getKey()).addAttribute("code", e.getValue().getLocale().toLanguageTag());
}
XmlExport.toXml(getLangFile(), d);
}
public static void add(Locale l) throws Exception {
long id = 0L;
- for (Map.Entry<Long, Locale> e : languages.entrySet()) {
+ for (Map.Entry<Long, OmLanguage> e : languages.entrySet()) {
id = e.getKey();
}
- languages.put(id + 1, l);
+ languages.put(id + 1, new OmLanguage(l));
storeLanguages();
labelCache.put(l, new ArrayList<StringLabel>());
}
@@ -120,7 +126,7 @@ public class LabelDao implements IDataProviderDao<StringLabel>{
if (id == 3L) {
continue;
}
- languages.put(id, Locale.forLanguageTag(code));
+ languages.put(id, new OmLanguage(Locale.forLanguageTag(code)));
}
} catch (Exception e) {
log.error("Error while building language map");
@@ -128,11 +134,8 @@ public class LabelDao implements IDataProviderDao<StringLabel>{
}
public static String getLabelFileName(Locale l) {
- String name = APP_RESOURCES_EN;
- if (!Locale.ENGLISH.equals(l)) {
- name = String.format(APP_RESOURCES, l.toLanguageTag().replace('-', '_'));
- }
- return name;
+ String name = getControl(FORMAT_PROPERTIES).toBundleName(APP_RESOURCES_PREFIX, ENGLISH.equals(l) ? ROOT : l);
+ return String.format("%s%s", name, APP_RESOURCES_SUFFIX);
}
private static void storeLabels(Locale l) throws Exception {
@@ -209,14 +212,19 @@ public class LabelDao implements IDataProviderDao<StringLabel>{
throw UNSUPPORTED;
}
+ public static OmLanguage getLanguage(Long id) {
+ OmLanguage l = id == null ? null : languages.get(id);
+ return l == null ? languages.get(1L) : l;
+ }
+
public static Locale getLocale(Long id) {
- return languages.get(id);
+ return getLanguage(id).getLocale();
}
public static Long getLanguage(Locale loc, Long def) {
if (loc != null) {
- for (Map.Entry<Long, Locale> e : languages.entrySet()) {
- if (loc.equals(e.getValue())) {
+ for (Map.Entry<Long, OmLanguage> e : languages.entrySet()) {
+ if (loc.equals(e.getValue().getLocale())) {
return e.getKey();
}
}
@@ -225,7 +233,8 @@ public class LabelDao implements IDataProviderDao<StringLabel>{
}
public static Set<Map.Entry<Long, Locale>> getLanguages() {
- return languages.entrySet();
+ return languages.entrySet().stream()
+ .collect(Collectors.toMap(e -> e.getKey(), e -> e.getValue().getLocale())).entrySet();
}
public static List<StringLabel> get(Locale l, final String search, long start, long count, final SortParam<String> sort) {
@@ -280,8 +289,8 @@ public class LabelDao implements IDataProviderDao<StringLabel>{
}
public static void delete(Locale l) {
- for (Map.Entry<Long, Locale> e : languages.entrySet()) {
- if (e.getValue().equals(l)) {
+ for (Map.Entry<Long, OmLanguage> e : languages.entrySet()) {
+ if (e.getValue().getLocale().equals(l)) {
languages.remove(e.getKey());
break;
}
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
new file mode 100644
index 0000000..165e552
--- /dev/null
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/label/OmLanguage.java
@@ -0,0 +1,43 @@
+/*
+ * 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.db.entity.label;
+
+import java.io.Serializable;
+import java.util.Locale;
+
+import org.apache.openmeetings.db.util.FormatHelper;
+
+public class OmLanguage implements Serializable {
+ private static final long serialVersionUID = 1L;
+ private final Locale locale;
+ private final boolean rtl;
+
+ public OmLanguage(Locale locale) {
+ this.locale = locale;
+ this.rtl = FormatHelper.isRtlLanguage(locale.toLanguageTag());
+ }
+
+ public Locale getLocale() {
+ return locale;
+ }
+
+ public boolean isRtl() {
+ return rtl;
+ }
+}
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java
index 5090e75..ec33095 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java
@@ -20,6 +20,7 @@ package org.apache.openmeetings.db.entity.user;
import static org.apache.openmeetings.util.OpenmeetingsVariables.getSipContext;
import static org.apache.openmeetings.util.OpenmeetingsVariables.isSipEnabled;
+import static org.apache.wicket.util.string.Strings.escapeMarkup;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
@@ -56,10 +57,13 @@ import org.apache.openjpa.persistence.FetchGroup;
import org.apache.openjpa.persistence.FetchGroups;
import org.apache.openjpa.persistence.LoadFetchGroup;
import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.dao.label.LabelDao;
import org.apache.openmeetings.db.entity.HistoricalEntity;
+import org.apache.openmeetings.db.entity.label.OmLanguage;
import org.apache.openmeetings.db.entity.server.Sessiondata;
import org.apache.openmeetings.util.crypt.CryptProvider;
import org.apache.openmeetings.util.crypt.MD5;
+import org.apache.wicket.util.string.Strings;
import org.simpleframework.xml.Element;
import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Root;
@@ -194,6 +198,10 @@ public class User extends HistoricalEntity {
@Element(data = true, required = false)
private String lastname;
+ @Column(name = "displayName")
+ @Element(data = true, required = false)
+ private String displayName;
+
@Column(name = "login")
@Element(data = true, required = false)
private String login;
@@ -361,6 +369,17 @@ public class User extends HistoricalEntity {
return this;
}
+ public String getDisplayName() {
+ return Strings.isEmpty(displayName) ? generateDisplayName() : displayName;
+ }
+
+ public User setDisplayName(String displayName) {
+ if (!Strings.isEmpty(displayName)) {
+ this.displayName = escapeMarkup(displayName).toString();
+ }
+ return this;
+ }
+
public String getLogin() {
return login;
}
@@ -587,4 +606,20 @@ public class User extends HistoricalEntity {
+ ", externalId=" + externalId + ", externalType=" + externalType
+ ", type=" + type + "]";
}
+
+ private String generateDisplayName() {
+ StringBuilder sb = new StringBuilder();
+ String delim = "";
+ OmLanguage l = LabelDao.getLanguage(languageId);
+ String first = l.isRtl() ? getLastname() : getFirstname();
+ String last = l.isRtl() ? getFirstname() : getLastname();
+ if (!Strings.isEmpty(first)) {
+ sb.append(first);
+ delim = " ";
+ }
+ if (!Strings.isEmpty(last)) {
+ sb.append(delim).append(last);
+ }
+ return escapeMarkup(sb).toString();
+ }
}
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 4787c2b..59b58fd 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
@@ -21,7 +21,6 @@ package org.apache.openmeetings.db.util;
import static java.text.DateFormat.SHORT;
import static org.apache.commons.text.StringEscapeUtils.escapeHtml4;
import static org.apache.openmeetings.db.util.TimezoneUtil.getTimeZone;
-import static org.apache.wicket.util.string.Strings.escapeMarkup;
import java.util.regex.Pattern;
@@ -74,21 +73,6 @@ public class FormatHelper {
return formatUser(u, false);
}
- public static String getDisplayName(User u) {
- StringBuilder sb = new StringBuilder();
- String delim = "";
- if (u != null) {
- if (!Strings.isEmpty(u.getFirstname())) {
- sb.append(u.getFirstname());
- delim = " ";
- }
- if (!Strings.isEmpty(u.getLastname())) {
- sb.append(delim).append(u.getLastname());
- }
- }
- return escapeMarkup(sb).toString();
- }
-
public static String formatUser(User u, boolean isHTMLEscape) {
String user = "";
if (u != null) {
diff --git a/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java b/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
index 773ab3d..c770c4e 100644
--- a/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
+++ b/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
@@ -35,6 +35,7 @@ import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_LANG;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_LDAP_ID;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_TIMEZONE;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DISPLAY_NAME_EDITABLE;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DOCUMENT_DPI;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DOCUMENT_QUALITY;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_EMAIL_AT_REGISTER;
@@ -352,6 +353,7 @@ public class ImportInitvalues {
addCfg(list, CONFIG_MP4_VIDEO_PRESET, "medium", Configuration.Type.bool,
"Preset (encoder optimization settings) to be used while performing mp4 conversion."
+ "Valid values are: ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow", "4.0.5");
+ addCfg(list, CONFIG_DISPLAY_NAME_EDITABLE, String.valueOf(false), Configuration.Type.bool, "Is user will be able to edit his/her display name (default false).", "4.0.7");
return list;
}
public void loadConfiguration(InstallationConfig cfg) {
diff --git a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
index fb77944..49b45de 100644
--- a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
+++ b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
@@ -98,6 +98,7 @@ public class OpenmeetingsVariables {
public static final String CONFIG_FNAME_MIN_LENGTH = "user.fname.minimum.length";
public static final String CONFIG_LNAME_MIN_LENGTH = "user.lname.minimum.length";
public static final String CONFIG_CHAT_SEND_ON_ENTER = "chat.send.on.enter";
+ public static final String CONFIG_DISPLAY_NAME_EDITABLE = "display.name.editable";
public static final String HEADER_XFRAME_SAMEORIGIN = "SAMEORIGIN";
public static final String HEADER_CSP_SELF = "default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:;";
@@ -150,6 +151,7 @@ public class OpenmeetingsVariables {
private static boolean allowRegisterOauth = false;
private static boolean sendVerificationEmail = false;
private static boolean sendRegisterEmail = false;
+ private static boolean displayNameEditable = false;
private OpenmeetingsVariables() {}
@@ -388,4 +390,12 @@ public class OpenmeetingsVariables {
public static void setSendRegisterEmail(boolean send) {
sendRegisterEmail = send;
}
+
+ public static boolean isDisplayNameEditable() {
+ return displayNameEditable;
+ }
+
+ public static void setDisplayNameEditable(boolean editable) {
+ displayNameEditable = editable;
+ }
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
index 84f8617..8d1fdb4 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
@@ -988,4 +988,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml
index 5daa03e..71e5652 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml
@@ -988,4 +988,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml
index dd46801..6a29c47 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml
@@ -988,4 +988,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bn.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bn.properties.xml
index d11de08..66a0848 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bn.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bn.properties.xml
@@ -988,4 +988,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml
index aa43d13..61d243d 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml
@@ -988,4 +988,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml
index d07be3d..654fc22 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml
@@ -988,4 +988,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml
index 9143439..2e798cf 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml
@@ -988,4 +988,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml
index 06f8e06..f072851 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml
@@ -993,4 +993,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml
index ff757b1..89a9c87 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml
@@ -988,4 +988,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml
index 17a109f..690c0fd 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml
@@ -986,4 +986,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml
index 0e888d7..cab423b 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml
@@ -980,4 +980,5 @@ target="_blank">Custom Crypt Mechanism</a>
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml
index 493c549..c94adb7 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml
@@ -988,4 +988,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml
index da38cf6..0069c57 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml
@@ -988,4 +988,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml
index aad8d7d..f70cbb1 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml
@@ -988,4 +988,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_he.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_he.properties.xml
index 84f8617..8d1fdb4 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_he.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_he.properties.xml
@@ -988,4 +988,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml
index dd37d52..983a7cd 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml
@@ -976,4 +976,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_in.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_in.properties.xml
index f81c755..5531d74 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_in.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_in.properties.xml
@@ -988,4 +988,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml
index f9b16f7..1aa252a 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml
@@ -989,4 +989,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml
index 26b7c32..95ed780 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml
@@ -988,4 +988,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml
index bf2e2c3..fa8e30e 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml
@@ -988,4 +988,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml
index 48cacd1..dc66c30 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml
@@ -988,4 +988,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml
index 3946c6c..ff73638 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml
@@ -988,4 +988,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml
index ae19071..4fc8df9 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml
@@ -988,4 +988,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml
index ccc7823..9bef3f2 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml
@@ -988,4 +988,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml
index d8a57f6..e8ff8b7 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml
@@ -988,4 +988,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Клонировать]]></entry>
<entry key="messages.btn.reply"><![CDATA[Ответить]]></entry>
<entry key="messages.subject.re"><![CDATA[На:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Отображаемое имя]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml
index 975822a..bb58795 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml
@@ -988,4 +988,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml
index 7ea0dfa..4e575e3 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml
@@ -988,4 +988,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml
index 313eeeb..7f1aa1e 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml
@@ -988,4 +988,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml
index edaaa6b..62b2093 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml
@@ -988,4 +988,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml
index 6e4be28..5e8618c 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml
@@ -988,4 +988,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml
index f7755a5..76aceaf 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml
@@ -988,4 +988,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml
index 2e605d7..c062614 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml
@@ -988,4 +988,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="poll.clone"><![CDATA[Clone]]></entry>
<entry key="messages.btn.reply"><![CDATA[Reply]]></entry>
<entry key="messages.subject.re"><![CDATA[Re:]]></entry>
+ <entry key="user.label.displayName"><![CDATA[Display name]]></entry>
</properties>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.html
index e01e6a3..59ae1b0 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.html
@@ -32,6 +32,9 @@
<label wicket:for="lastname"><wicket:message key="136" /></label><input type="text" wicket:id="lastname" />
</div>
<div class="formelement">
+ <label wicket:for="displayName"><wicket:message key="user.label.displayName" /></label><input type="text" wicket:id="displayName" />
+ </div>
+ <div class="formelement">
<label wicket:for="timeZoneId"><wicket:message key="1143" /></label><select wicket:id="timeZoneId" />
</div>
<div class="formelement">
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java
index f402f53..b2739ff 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java
@@ -19,6 +19,7 @@
package org.apache.openmeetings.web.common;
import static org.apache.openmeetings.db.util.AuthLevelUtil.hasGroupAdminLevel;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.isDisplayNameEditable;
import static org.apache.openmeetings.web.app.Application.getBean;
import static org.apache.openmeetings.web.app.WebSession.AVAILABLE_TIMEZONES;
import static org.apache.openmeetings.web.app.WebSession.getRights;
@@ -96,6 +97,7 @@ public class GeneralUserForm extends Form<User> {
}));
add(new TextField<String>("firstname"));
add(new TextField<String>("lastname"));
+ add(new TextField<String>("displayName").setEnabled(isAdminForm || isDisplayNameEditable()));
add(new DropDownChoice<>("timeZoneId", AVAILABLE_TIMEZONES));
add(new LanguageDropDown("languageId"));
add(new TextField<String>("address.phone"));
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatForm.java
index 257c1bb..4396216 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatForm.java
@@ -21,7 +21,6 @@ package org.apache.openmeetings.web.user.chat;
import static org.apache.openmeetings.core.util.WebSocketHelper.ID_ALL;
import static org.apache.openmeetings.core.util.WebSocketHelper.ID_ROOM_PREFIX;
import static org.apache.openmeetings.core.util.WebSocketHelper.ID_USER_PREFIX;
-import static org.apache.openmeetings.db.util.FormatHelper.getDisplayName;
import static org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
import static org.apache.openmeetings.web.app.Application.getBean;
import static org.apache.openmeetings.web.app.WebSession.getDateFormat;
@@ -108,7 +107,7 @@ public class ChatForm extends Form<Void> {
m.setMessage(txt);
m.setSent(new Date());
m.setFromUser(getBean(UserDao.class).get(getUserId()));
- m.setFromName(getDisplayName(getClient().getUser()));
+ m.setFromName(getClient().getUser().getDisplayName());
if (!process(
() -> getChat().isShowDashboardChat()
, r -> {