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 2017/12/24 15:51:44 UTC
openmeetings git commit: [OPENMEETINGS-1781] display name is saved
for invited guest
Repository: openmeetings
Updated Branches:
refs/heads/4.0.x a5592180b -> 29d1804bb
[OPENMEETINGS-1781] display name is saved for invited guest
Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/29d1804b
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/29d1804b
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/29d1804b
Branch: refs/heads/4.0.x
Commit: 29d1804bb6e376ef63f8774876866de77c43a062
Parents: a559218
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Sun Dec 24 22:51:34 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Sun Dec 24 22:51:34 2017 +0700
----------------------------------------------------------------------
.../openmeetings/core/util/WebSocketHelper.java | 11 ++++-------
.../db/entity/basic/ChatMessage.java | 12 ++++++++++++
.../openmeetings/db/util/FormatHelper.java | 19 ++++++++++++++++++-
.../openmeetings/web/user/chat/ChatForm.java | 9 ++++++++-
.../openmeetings/web/user/chat/chat-base.js | 2 +-
5 files changed, 43 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/29d1804b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
----------------------------------------------------------------------
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 f0ea547..8d91e67 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,8 +19,8 @@
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 static org.apache.wicket.util.string.Strings.escapeMarkup;
import java.io.IOException;
import java.util.Arrays;
@@ -64,16 +64,12 @@ public class WebSocketHelper {
public static final String ID_ROOM_PREFIX = ID_TAB_PREFIX + "r";
public static final String ID_USER_PREFIX = ID_TAB_PREFIX + "u";
- private static String getName(User u) {
- return escapeMarkup(String.format("%s %s", u.getFirstname(), u.getLastname())).toString();
- }
-
private static JSONObject setScope(JSONObject o, ChatMessage m, long curUserId) {
String scope, scopeName = null;
if (m.getToUser() != null) {
User u = curUserId == m.getToUser().getId() ? m.getFromUser() : m.getToUser();
scope = ID_USER_PREFIX + u.getId();
- scopeName = getName(u);
+ scopeName = getDisplayName(u);
} else if (m.getToRoom() != null) {
scope = ID_ROOM_PREFIX + m.getToRoom().getId();
o.put("needModeration", m.isNeedModeration());
@@ -93,7 +89,8 @@ public class WebSocketHelper {
smsg = smsg == null ? smsg : " " + smsg.replaceAll(" ", " ") + " ";
JSONObject from = new JSONObject()
.put("id", m.getFromUser().getId())
- .put("name", getName(m.getFromUser()));
+ .put("displayName", m.getFromName())
+ .put("name", getDisplayName(m.getFromUser()));
if (uFmt != null) {
uFmt.accept(from, m.getFromUser());
}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/29d1804b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/ChatMessage.java
----------------------------------------------------------------------
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/ChatMessage.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/ChatMessage.java
index 8ad7870..13d6824 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/ChatMessage.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/ChatMessage.java
@@ -96,6 +96,10 @@ public class ChatMessage implements IDataProviderEntity {
@Element(name = "needModeration", data = true, required = false)
private boolean needModeration;
+ @Column(name = "from_name")
+ @Element(name = "from_name", data = true, required = false)
+ private String fromName; // this is required for users with no first/last name specified
+
@Override
public Long getId() {
return id;
@@ -153,4 +157,12 @@ public class ChatMessage implements IDataProviderEntity {
public void setNeedModeration(boolean needModeration) {
this.needModeration = needModeration;
}
+
+ public String getFromName() {
+ return fromName;
+ }
+
+ public void setFromName(String fromName) {
+ this.fromName = fromName;
+ }
}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/29d1804b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/FormatHelper.java
----------------------------------------------------------------------
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 420a4ea..4787c2b 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,11 +21,13 @@ 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;
import org.apache.commons.lang3.time.FastDateFormat;
import org.apache.openmeetings.db.entity.user.User;
+import org.apache.wicket.util.string.Strings;
public class FormatHelper {
/**
@@ -72,11 +74,26 @@ 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) {
String email = u.getAddress() == null ? "" : u.getAddress().getEmail();
- if (u.getFirstname() == null && u.getLastname() == null) {
+ if (Strings.isEmpty(u.getFirstname()) && Strings.isEmpty(u.getLastname())) {
user = email;
} else {
user = String.format("\"%s %s\" <%s>", u.getFirstname(), u.getLastname(), email);
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/29d1804b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatForm.java
----------------------------------------------------------------------
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 0500aae..de5ffa6 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,6 +21,7 @@ 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.Application.isUserInRoom;
@@ -39,6 +40,7 @@ import org.apache.openmeetings.db.dao.basic.ChatDao;
import org.apache.openmeetings.db.dao.room.RoomDao;
import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.db.entity.basic.ChatMessage;
+import org.apache.openmeetings.db.entity.basic.Client;
import org.apache.openmeetings.db.entity.room.Room;
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.web.common.MainPanel;
@@ -106,6 +108,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()));
if (!process(
() -> getChat().isShowDashboardChat()
, r -> {
@@ -142,8 +145,12 @@ public class ChatForm extends Form<Void> {
});
}
+ private Client getClient() {
+ return findParent(MainPanel.class).getClient();
+ }
+
private String getUid() {
- return findParent(MainPanel.class).getClient().getUid();
+ return getClient().getUid();
}
public String getScope() {
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/29d1804b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat-base.js
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat-base.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat-base.js
index eb75249..3779f43 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat-base.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat-base.js
@@ -201,7 +201,7 @@ var Chat = function() {
let area = $('#' + cm.scope);
msg = OmUtil.tmpl('#chat-msg-template', msgIdPrefix + cm.id)
msg.find('.user-row').css('background-image', 'url(' + (!!cm.from.img ? cm.from.img : './profile/' + cm.from.id + '?anticache=' + Date.now()) + ')');
- msg.find('.from').addClass(align).data('user-id', cm.from.id).html(cm.from.name);
+ msg.find('.from').addClass(align).data('user-id', cm.from.id).html(cm.from.name || cm.from.displayName);
msg.find('.msg').addClass(align).html(emoticon.emoticonize(!!cm.message ? cm.message : ""));
msg.find('.time').addClass(alignIco).html(cm.time).attr('title', cm.sent);
const icons = msg.find('.icons').addClass(align)