Repository: openmeetings Updated Branches: refs/heads/master 4140b5028 -> 8ecd1353b
[OPENMEETINGS-1775] send on enter/ctrl+enter is implemented Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/8ecd1353 Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/8ecd1353 Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/8ecd1353 Branch: refs/heads/master Commit: 8ecd1353b38c8576bf575f86f4f2a489898d60c0 Parents: 4140b50 Author: Maxim Solodovnik <[email protected]> Authored: Tue Dec 26 18:45:28 2017 +0700 Committer: Maxim Solodovnik <[email protected]> Committed: Tue Dec 26 18:45:50 2017 +0700 ---------------------------------------------------------------------- .../openmeetings/web/user/chat/ChatToolbar.html | 2 +- .../openmeetings/web/user/chat/chat-base.js | 50 ++++++++++++++++---- 2 files changed, 41 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8ecd1353/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.html ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.html index 38e972e..8e5da6c 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.html +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.html @@ -79,7 +79,7 @@ <li><a class="chat-btn chat-tool-icon btn btn-default save" wicket:message="title:197" wicket:id="save"></a></li> <li><a class="chat-btn chat-tool-icon btn btn-default delete" wicket:message="title:442" wicket:id="delete"></a></li> <li><a class="chat-btn chat-tool-icon btn btn-default audio" wicket:message="data-sound-enabled:sound.mute,data-sound-muted:sound.enable"> </a></li> - <li><a class="chat-btn chat-tool-icon btn btn-default send-ctrl" wicket:message="data-send-enter:send.on.enter,data-send-ctrl:send.on.ctrl.enter"><b>↵</b></a></li> + <li><a class="chat-btn chat-tool-icon btn btn-default send-btn" wicket:message="data-send-enter:send.on.enter,data-send-ctrl:send.on.ctrl.enter"><b>↵</b></a></li> </ul> </div> </div> http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8ecd1353/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 dd12af3..adb6660 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 @@ -11,10 +11,11 @@ var Chat = function() { , iconOpenRoom = 'ui-icon-caret-1-' + (Settings.isRtl ? 'e' : 'w') , iconClose = 'ui-icon-caret-1-s' , iconCloseRoom = 'ui-icon-caret-1-' + (Settings.isRtl ? 'w' : 'e') + , SEND_ENTER = 'enter', SEND_CTRL = 'ctrl' ; let p, pp, ctrl, icon, tabs, openedHeight = "345px", openedWidth = "300px", allPrefix = "All" , roomPrefix = "Room ", typingTimer, audio, roomMode = false, globalWidth = 600 - , editor = $('#chatMessage .wysiwyg-editor') + , editor = $('#chatMessage .wysiwyg-editor'), muted = false, sendOn = SEND_CTRL; ; try { @@ -28,14 +29,32 @@ var Chat = function() { function _load() { const s = Settings.load(); if (typeof(s.chat) === 'undefined') { - s.chat = {}; + s.chat = { + muted: false + , sendOn: SEND_CTRL + }; } + muted = s.chat.muted === true; + sendOn = s.chat.sendOn === SEND_ENTER ? SEND_ENTER : SEND_CTRL; return s; } - function _updateBtn(s, a) { - const muted = s.chat.muted === true; - a.removeClass('sound' + (muted ? '' : '-mute')).addClass('sound' + (muted ? '-mute' : '')) - .attr('title', a.data(muted ? 'sound-enabled' : 'sound-muted')); + function _updateAudioBtn(btn) { + btn.removeClass('sound' + (muted ? '' : '-mute')).addClass('sound' + (muted ? '-mute' : '')) + .attr('title', btn.data(muted ? 'sound-enabled' : 'sound-muted')); + } + function _updateSendBtn(btn) { + const ctrl = sendOn === SEND_CTRL; + if (ctrl) { + btn.addClass('send-ctrl'); + editor.off('keydown', _sendOnEnter).keydown('Ctrl+return', _sendOnEnter); + } else { + btn.removeClass('send-ctrl'); + editor.off('keydown', _sendOnEnter).keydown('return', _sendOnEnter); + } + btn.attr('title', btn.data(ctrl ? 'send-ctrl' : 'send-enter')); + } + function _sendOnEnter() { + $('#chat .send').trigger('click'); } function doneTyping () { typingTimer = null; @@ -61,12 +80,23 @@ var Chat = function() { } } const a = $('#chat .audio'); - _updateBtn(_load(), a); + const sbtn = $('#chat .send-btn'); + { //scope + _load(); + _updateAudioBtn(a); + _updateSendBtn(sbtn) + } $('#chat .chat-btn').hover(function(){ $(this).addClass('ui-state-hover') }, function(){ $(this).removeClass('ui-state-hover') }); a.off().click(function() { const s = _load(); - s.chat.muted = !s.chat.muted; - _updateBtn(s, a); + muted = s.chat.muted = !s.chat.muted; + _updateAudioBtn(a); + Settings.save(s); + }); + sbtn.off().click(function() { + const s = _load(); + sendOn = s.chat.sendOn = s.chat.sendOn !== SEND_CTRL ? SEND_CTRL : SEND_ENTER; + _updateSendBtn(sbtn); Settings.save(s); }); $('#chat #hyperlink').parent().find('button').off().click(function() { @@ -182,7 +212,7 @@ var Chat = function() { if (isClosed()) { ctrl.addClass('ui-state-highlight'); const s = _load(); - if (p.is(':visible') && s.chat.muted !== true) { + if (p.is(':visible') && !muted) { const playPromise = audio.play(); // In browsers that donât yet support this functionality,
