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/07/26 11:57:07 UTC

[openmeetings] branch 4.0.x updated: [OPENMEETINGS-1891] 'chat.send.on.enter' setting is added

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 132c6ce  [OPENMEETINGS-1891] 'chat.send.on.enter' setting is added
132c6ce is described below

commit 132c6ce95fd7ecc719be728df0cb09d9cc5f3f1d
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Thu Jul 26 18:56:55 2018 +0700

    [OPENMEETINGS-1891] 'chat.send.on.enter' setting is added
---
 .../apache/openmeetings/db/dao/basic/ConfigurationDao.java   | 10 ++++++++++
 .../apache/openmeetings/installation/ImportInitvalues.java   |  3 +++
 .../org/apache/openmeetings/util/OpenmeetingsVariables.java  | 10 ++++++++++
 .../java/org/apache/openmeetings/web/user/chat/Chat.java     |  7 +++++--
 .../java/org/apache/openmeetings/web/user/chat/chat-base.js  | 12 +++++++-----
 5 files changed, 35 insertions(+), 7 deletions(-)

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 dbb51c4..92e1052 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
@@ -21,6 +21,7 @@ package org.apache.openmeetings.db.dao.basic;
 import static org.apache.commons.lang3.math.NumberUtils.toInt;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_APPLICATION_BASE_URL;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_APPLICATION_NAME;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_CHAT_SEND_ON_ENTER;
 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;
@@ -73,6 +74,7 @@ import static org.apache.openmeetings.util.OpenmeetingsVariables.setApplicationN
 import static org.apache.openmeetings.util.OpenmeetingsVariables.setAudioBitrate;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.setAudioRate;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.setBaseUrl;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.setChatSenndOnEnter;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.setCryptClassName;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.setDefaultGroup;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.setDefaultLang;
@@ -384,6 +386,9 @@ public class ConfigurationDao implements IDataProviderDao<Configuration> {
 			case CONFIG_LNAME_MIN_LENGTH:
 				reloadLnameMinLength();
 				break;
+			case CONFIG_CHAT_SEND_ON_ENTER:
+				reloadChatSendOnEnter();
+				break;
 		}
 		return entity;
 	}
@@ -479,6 +484,10 @@ public class ConfigurationDao implements IDataProviderDao<Configuration> {
 		setMinLnameLength(getInt(CONFIG_LNAME_MIN_LENGTH, USER_LOGIN_MINIMUM_LENGTH));
 	}
 
+	private void reloadChatSendOnEnter() {
+		setChatSenndOnEnter(getBool(CONFIG_CHAT_SEND_ON_ENTER, false));
+	}
+
 	public void reinit() {
 		reloadMaxUpload();
 		reloadCrypt();
@@ -498,6 +507,7 @@ public class ConfigurationDao implements IDataProviderDao<Configuration> {
 		reloadSipContext();
 		reloadFnameMinLength();
 		reloadLnameMinLength();
+		reloadChatSendOnEnter();
 	}
 
 	private JSONObject reloadRoomSettings() {
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 06b4cc4..e182ae2 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
@@ -23,6 +23,7 @@ import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_APPLICAT
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_APPLICATION_NAME;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_APPOINTMENT_REMINDER_MINUTES;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_CALENDAR_ROOM_CAPACITY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_CHAT_SEND_ON_ENTER;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_CRYPT;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DASHBOARD_RSS_FEED1;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DASHBOARD_RSS_FEED2;
@@ -345,6 +346,8 @@ public class ImportInitvalues {
 				"Number of chars needed in a user first name", "4.0.4");
 		addCfg(list, CONFIG_LNAME_MIN_LENGTH, String.valueOf(USER_LOGIN_MINIMUM_LENGTH), Configuration.Type.number,
 				"Number of chars needed in a user last name", "4.0.4");
+		addCfg(list, CONFIG_CHAT_SEND_ON_ENTER, String.valueOf(false), Configuration.Type.bool,
+				"Controls if chat message will be set on Enter (default: send on Ctrl+Enter)", "4.0.5");
 		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 1ee6639..2d0a0ad 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
@@ -96,6 +96,7 @@ public class OpenmeetingsVariables {
 	public static final String CONFIG_REST_ALLOW_ORIGIN = "rest.allow.origin";
 	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 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:;";
@@ -141,6 +142,7 @@ public class OpenmeetingsVariables {
 	private static String sipContext = DEFAULT_SIP_CONTEXT;
 	private static int minFnameLength = USER_LOGIN_MINIMUM_LENGTH;
 	private static int minLnameLength = USER_LOGIN_MINIMUM_LENGTH;
+	private static boolean chatSendOnEnter = false;
 
 	private OpenmeetingsVariables() {}
 
@@ -323,4 +325,12 @@ public class OpenmeetingsVariables {
 	public static void setMinLnameLength(int length) {
 		minLnameLength = length;
 	}
+
+	public static boolean getChatSenndOnEnter() {
+		return chatSendOnEnter;
+	}
+
+	public static void setChatSenndOnEnter(boolean sendOnEnter) {
+		chatSendOnEnter = sendOnEnter;
+	}
 }
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.java
index a510f49..adfa93f 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.java
@@ -45,6 +45,7 @@ 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.util.OpenmeetingsVariables;
 import org.apache.openmeetings.web.app.ClientManager;
 import org.apache.openmeetings.web.common.MainPanel;
 import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
@@ -132,8 +133,10 @@ public class Chat extends Panel {
 
 	public CharSequence getReinit() {
 		StringBuilder sb = new StringBuilder("Chat.reinit(")
-				.append('\'').append(getString("1494")).append('\'')
-				.append(',').append('\'').append(getString("406")).append('\'')
+				.append(new JSONObject()
+						.put("all", getString("1494"))
+						.put("room", getString("406"))
+						.put("sendOnEnter", OpenmeetingsVariables.getChatSenndOnEnter()).toString())
 				.append("); ");
 		return processGlobal(sb);
 	}
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 8c9e556..b1685e9 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
@@ -15,7 +15,7 @@ var Chat = function() {
 		;
 	let p, pp, ctrl, icon, tabs, openedHeight = "345px", openedWidth = "300px", allPrefix = "All"
 		, roomPrefix = "Room ", typingTimer, audio, roomMode = false, globalWidth = 600
-		, editor = $('#chatMessage .wysiwyg-editor'), muted = false, sendOn = SEND_CTRL;
+		, editor = $('#chatMessage .wysiwyg-editor'), muted = false, sendOn, DEF_SEND;
 		;
 
 	try {
@@ -31,7 +31,7 @@ var Chat = function() {
 		if (typeof(s.chat) === 'undefined') {
 			s.chat = {
 				muted: false
-				, sendOn: SEND_CTRL
+				, sendOn: DEF_SEND
 			};
 		}
 		muted = s.chat.muted === true;
@@ -115,9 +115,11 @@ var Chat = function() {
 	function isInited() {
 		return !!$("#chatTabs").data("ui-tabs");
 	}
-	function _reinit(_allPrefix, _roomPrefix) {
-		allPrefix = _allPrefix;
-		roomPrefix = _roomPrefix;
+	function _reinit(opts) {
+		allPrefix = opts.all;
+		roomPrefix = opts.room;
+		DEF_SEND = opts.sendOnEnter === true ? SEND_ENTER : SEND_CTRL;
+		sendOn = DEF_SEND;
 		p = $('#chatPanel');
 		clearTimeout(p.data('timeout'));
 		pp = $('#chatPanel, #chatPopup');