From e074fbdbfcac3aeb842f25fc589992ef236ef94c Mon Sep 17 00:00:00 2001 From: cancall Date: Thu, 5 Nov 2020 23:49:47 +0000 Subject: [PATCH] feature chat panel expand --- .../web/app/Application.properties.xml | 1 + .../openmeetings/web/user/chat/ChatPanel.html | 2 +- .../openmeetings/web/user/chat/raw-chat.js | 52 +++++++++++++++++-- .../src/main/webapp/css/raw-chat.css | 8 ++- 4 files changed, 58 insertions(+), 5 deletions(-) diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml index 4244d20851..94d26ab8eb 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml @@ -827,6 +827,7 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details please check openmeetings.log and contact OpenMeetings developers]]> + diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.html index 1a577c486a..ca94cb1cde 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.html +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.html @@ -21,7 +21,7 @@
-
+
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/raw-chat.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/raw-chat.js index 81fe2e0662..ae9debc0be 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/raw-chat.js +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/raw-chat.js @@ -119,8 +119,11 @@ var Chat = function() { function isClosed() { return p.hasClass('closed'); } + function isWide() { + return p.hasClass('wide'); + } function activateTab(id) { - if (isClosed()) { + if (isClosed() || isWide()) { tabs.find('.nav.nav-tabs .nav-link').each(function() { const self = $(this) , tabId = self.attr('aria-controls') @@ -353,11 +356,51 @@ var Chat = function() { } }); } + function _setOpenedw() { + __setCssWidth(innerWidth); + p.addClass('wide').css({'height': '', 'width': ''}); + p.resizable({ + handles: (Settings.isRtl ? 'e' : 'w') + , minWidth: 120 + , stop: function(event, ui) { + p.css({'left': '', 'width': '', 'height': ''}); + openedWidth = ui.size.width + 'px'; + __setCssWidth(openedWidth); + } + }); + } function _removeResize() { if (p.resizable('instance') !== undefined) { p.resizable('destroy'); } } + function _openw(handler) { + if (!isClosed() && !isWide()) { + //ctrl.removeClass('bg-warning'); + let opts; + if (roomMode) { + opts = {width: innerWidth}; + } else { + opts = {height: openedHeight}; + p.resizable("option", "disabled", false); + } + p.removeClass('closed').animate(opts, 1000, function() { + __hideActions(); + p.removeClass('closed'); + p.css({'height': '', 'width': ''}); + if (typeof(handler) === 'function') { + handler(); + } + ctrl.attr('title', ctrl.data('ttl-undock')); + if (roomMode) { + _setOpenedw(); + } else { + __setCssHeight(openedHeight); + } + _setAreaHeight(); + }); + } + } function _open(handler) { if (isClosed()) { ctrl.removeClass('bg-warning'); @@ -375,7 +418,7 @@ var Chat = function() { if (typeof(handler) === 'function') { handler(); } - ctrl.attr('title', ctrl.data('ttl-undock')); + ctrl.attr('title', ctrl.data('ttl-exdock')); if (roomMode) { _setOpened(); } else { @@ -396,6 +439,7 @@ var Chat = function() { } p.animate(opts, 1000, function() { p.addClass('closed').css({'height': '', 'width': ''}); + p.removeClass('wide'); if (roomMode) { __setCssWidth(closedSizePx); _removeResize(); @@ -412,8 +456,10 @@ var Chat = function() { function _toggle() { if (isClosed()) { _open(); - } else { + } else if (isWide()) { _close(); + } else { + _openw(); } } function _editorAppend(emoticon) { diff --git a/openmeetings-web/src/main/webapp/css/raw-chat.css b/openmeetings-web/src/main/webapp/css/raw-chat.css index 5f7f483b71..ba24f46605 100644 --- a/openmeetings-web/src/main/webapp/css/raw-chat.css +++ b/openmeetings-web/src/main/webapp/css/raw-chat.css @@ -47,11 +47,17 @@ content: "\f106"; } .main.room #chatPanel #chatPopup .control.block i::before { - content: "\f105"; + content: "\f104\f104"; } .main.room #chatPanel.closed #chatPopup .control.block i::before { content: "\f104"; } +.main.room #chatPanel.wide #chatPopup .control.block i::before { + content: "\f105"; +} +.main.room #chatPanel.opened #chatPopup .control.block i::before { + content: "\f104"; +} #chat .messageArea .msg-row.need-moderation { background-color: var(--warning); }