This is an automated email from the ASF dual-hosted git repository. solomax pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/master by this push: new 05fdc4a [OPENMEETINGS-2000] more work on user settings 05fdc4a is described below commit 05fdc4a889c47c34d51dde2f5abe99441a1968aa Author: Maxim Solodovnik <solomax...@gmail.com> AuthorDate: Mon Jan 18 08:57:38 2021 +0700 [OPENMEETINGS-2000] more work on user settings --- openmeetings-web/src/main/front/chat/src/chat.js | 27 +++++++--- openmeetings-web/src/main/front/room/src/index.js | 1 + .../src/main/front/room/src/user-settings.js | 63 ++++++++++++++++++++++ .../apache/openmeetings/web/room/RoomPanel.html | 12 +++++ .../openmeetings/web/room/menu/ActionsSubMenu.java | 2 +- .../src/main/webapp/css/raw-general.css | 4 -- 6 files changed, 96 insertions(+), 13 deletions(-) diff --git a/openmeetings-web/src/main/front/chat/src/chat.js b/openmeetings-web/src/main/front/chat/src/chat.js index 99ea213..7486543 100644 --- a/openmeetings-web/src/main/front/chat/src/chat.js +++ b/openmeetings-web/src/main/front/chat/src/chat.js @@ -37,17 +37,20 @@ function _load() { muted: false , sendOn: DEF_SEND }; + Settings.save(s) } muted = s.chat.muted === true; sendOn = s.chat.sendOn === SEND_ENTER ? SEND_ENTER : SEND_CTRL; return s; } -function _updateAudioBtn(btn) { +function _updateAudioBtn() { + const btn = $('#chat .audio'); 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; +function _updateSendBtn() { + const btn = $('#chat .send-btn') + , ctrl = sendOn === SEND_CTRL; if (ctrl) { btn.addClass('send-ctrl'); editor.off('keydown', _sendOnEnter).keydown('Ctrl+return', _sendOnEnter); @@ -89,19 +92,19 @@ function initToolbar() { const sbtn = $('#chat .send-btn'); { //scope _load(); - _updateAudioBtn(a); - _updateSendBtn(sbtn) + _updateAudioBtn(); + _updateSendBtn() } a.off().click(function() { const s = _load(); muted = s.chat.muted = !s.chat.muted; - _updateAudioBtn(a); + _updateAudioBtn(); 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); + _updateSendBtn(); Settings.save(s); }); $('#chat #hyperlink').parent().find('button').off().click(function() { @@ -518,7 +521,10 @@ $(function() { }); module.exports = { - reinit: _reinit + SEND_ENTER: SEND_ENTER + , SEND_CTRL: SEND_CTRL + + , reinit: _reinit , removeTab: _removeTab , addTab: _addTab , addMessage: _addMessage @@ -532,6 +538,11 @@ module.exports = { , toggle: _toggle , setRoomMode: _setRoomMode , clean: _clean + , reload: () => { + _load(); + _updateAudioBtn(); + _updateSendBtn(); + } , validate: function() { return !!editor && editor.text().trim().length > 0; } diff --git a/openmeetings-web/src/main/front/room/src/index.js b/openmeetings-web/src/main/front/room/src/index.js index fc210b9..a3b511f 100644 --- a/openmeetings-web/src/main/front/room/src/index.js +++ b/openmeetings-web/src/main/front/room/src/index.js @@ -18,4 +18,5 @@ Object.assign(window, { , Sharer: require('./sharer') , Room: require('./room') , Activities: require('./activities') + , UserSettings: require('./user-settings') }); diff --git a/openmeetings-web/src/main/front/room/src/user-settings.js b/openmeetings-web/src/main/front/room/src/user-settings.js new file mode 100644 index 0000000..372deed --- /dev/null +++ b/openmeetings-web/src/main/front/room/src/user-settings.js @@ -0,0 +1,63 @@ +/* Licensed under the Apache License, Version 2.0 (the "License") http://www.apache.org/licenses/LICENSE-2.0 */ + +function __initMuteOthers() { + let s = VideoSettings.load(); + $('#muteOthersAsk') + .prop('checked', s.video.confirmMuteOthers) + .off().click(function() { + s = VideoSettings.load(); + s.video.confirmMuteOthers = !$('#muteOthersAsk').prop('checked'); + VideoSettings.save(); + }); +} +function __initChat() { + let s = Settings.load(); + $('#chatNotify') + .prop('checked', s.chat.muted) + .off().click(function() { + s = Settings.load(); + s.chat.muted = !$('#chatNotify').prop('checked'); + Settings.save(s); + Chat.reload(); + }); + $('#sendOnCtrlEnter') + .prop('checked', s.chat.sendOn === Chat.SEND_CTRL) + .off().click(function() { + s = Settings.load(); + s.chat.sendOn = $('#sendOnCtrlEnter').prop('checked') ? Chat.SEND_CTRL : Chat.SEND_ENTER; + Settings.save(s); + Chat.reload(); + }); +} +function __initVideo() { + let s = VideoSettings.load() + , resolutions = $('#video-settings .cam-resolution').clone(); + if (typeof(s.fixed) === 'undefined') { + s.fixed = { + enabled: false + , width: 120 + , height: 90 + }; + VideoSettings.save() + } + $('#video-sizes-container').html('') + .append(resolutions); + $('#sendOnCtrlEnter') + .prop('checked', s.fixed.enabled) + .off().click(function() { + s = Settings.load(); + s.chat.sendOn = $('#sendOnCtrlEnter').prop('checked') ? Chat.SEND_CTRL : Chat.SEND_ENTER; + Settings.save(s); + Chat.reload(); + }); +} +function _open() { + __initMuteOthers(); + __initChat(); + __initVideo(); + $('#room-local-settings').modal('show'); +} + +module.exports = { + open: _open +}; diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html index 6cc6111..1b12ee5 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html @@ -81,6 +81,18 @@ <input type="checkbox" class="custom-control-input" id="chatNotify"> <label class="custom-control-label" for="chatNotify"><wicket:message key="sound.enable"/></label> </div> + <div class="custom-control custom-checkbox col-10"> + <input type="checkbox" class="custom-control-input" id="sendOnCtrlEnter"> + <label class="custom-control-label" for="sendOnCtrlEnter"><wicket:message key="send.on.ctrl.enter"/></label> + </div> + </div> + <h5 class="mt-2">Video</h5> <!-- FIXME TODO localize --> + <div class="row justify-content-end"> + <div class="custom-control custom-checkbox col-10"> + <input type="checkbox" class="custom-control-input" id="fixedVideoPod"> + <label class="custom-control-label" for="fixedVideoPod">Fixed video pod size</label> + </div> + <div id="video-sizes-container col-10"></div> </div> </div> </div> diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ActionsSubMenu.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ActionsSubMenu.java index c35c099..8ec7507 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ActionsSubMenu.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ActionsSubMenu.java @@ -153,7 +153,7 @@ public class ActionsSubMenu implements Serializable { attributes.getAjaxCallListeners().add(new IAjaxCallListener() { @Override public CharSequence getPrecondition(Component component) { - return "$('#room-local-settings').modal('show'); return false;"; + return "UserSettings.open(); return false;"; } }); } diff --git a/openmeetings-web/src/main/webapp/css/raw-general.css b/openmeetings-web/src/main/webapp/css/raw-general.css index 1140cc8..e05380f 100644 --- a/openmeetings-web/src/main/webapp/css/raw-general.css +++ b/openmeetings-web/src/main/webapp/css/raw-general.css @@ -735,10 +735,6 @@ select.messages.selector { .abstractWizard input[type=checkbox], .abstractWizard input[type=radio] { width: auto; } -.invitation .message { - width: 280px; - height: 70px; -} .img-upload .btn.btn-file { width: 120px; padding: 0;