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 <[email protected]>
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;