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("&nbsp;", " ") + " ";
 			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)