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 9bfa350  [OPENMEETINGS-2165] some issues in chat
9bfa350 is described below

commit 9bfa3502cf9c1fec896b47aee9da78619fa926d9
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Mon Mar 9 23:32:49 2020 +0700

    [OPENMEETINGS-2165] some issues in chat
---
 .../apache/openmeetings/web/user/chat/Chat.html    |  7 +--
 .../apache/openmeetings/web/user/chat/raw-chat.js  | 54 ++++++++++++++--------
 openmeetings-web/src/main/webapp/css/raw-chat.css  |  4 ++
 3 files changed, 42 insertions(+), 23 deletions(-)

diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.html
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.html
index 074eb91..67f4d5c 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.html
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.html
@@ -50,9 +50,10 @@
                </div>
                <div id="chat-accept-template" class='tick om-icon clickable' 
wicket:message="title:1190"
                        onclick='const e=$(this);chatActivity("accept", 
e.data("roomid"), e.data("msgid")); e.parent().remove();'></div>
-               <span id="chat-close-block" class='ui-icon ui-icon-close' 
wicket:message="title:85"
-                       role='presentation'></span>
-
+               <button id="chat-close-block" class="btn btn-sm 
btn-outline-secondary close-chat" wicket:message="title:85">
+                       <i class="fas fa-times"></i>
+                       <span class="sr-only"><wicket:message key="85"/></span>
+               </button>
                <div id="chat-msg-area-template" class="messageArea bg-white 
tab-pane h-100" role="tabpanel">
                        <div class="clear icons actions short">
                                <div class='user clickable' 
wicket:message="title:1167"><i class="fas fa-address-card"></i></div>
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 40818e4..1c01e14 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
@@ -126,7 +126,25 @@ var Chat = function() {
                return p.hasClass('closed');
        }
        function activateTab(id) {
-               $('#' + id).tab('show');
+               if (isClosed()) {
+                       tabs.find('.nav.nav-tabs .nav-link').each(function() {
+                               const self = $(this)
+                                       , tabId = self.attr('aria-controls')
+                                       , tab = $('#' + tabId);
+
+                               if (tabId === id) {
+                                       self.addClass('active');
+                                       tab.addClass('active');
+                                       self.attr('aria-selected', true);
+                               } else {
+                                       self.removeClass('active');
+                                       tab.removeClass('active');
+                                       self.attr('aria-selected', false);
+                               }
+                       });
+               } else {
+                       $('#chatTabs li a[aria-controls="' + id + 
'"]').tab('show');
+               }
        }
        function _reinit(opts) {
                userId = opts.userId;
@@ -141,21 +159,17 @@ var Chat = function() {
                icon = $('#chatPopup .control.block i.fas');
                editor = $('#chatMessage .wysiwyg-editor');
                icon.removeClass(function(index, className) {
-                       return (className.match (/(^|\s)ui-icon-caret-\S+/g) || 
[]).join(' ');
+                       return (className.match (/(^|\s)fa-angle-\S+/g) || 
[]).join(' ');
                });
                initToolbar();
                tabs = $("#chatTabs");
-               /*FIXME TODO.tabs({
-                       activate: function(event, ui) {
-                               const ct = ui.newPanel[0].id;
-                               _scrollDown($('#' + ct));
-                               $('#activeChatTab').val(ct).trigger('change');
-                       }
-               });*/
-               // close icon: removing the tab on click
-               tabs.delegate("span.ui-icon-close", "click", function() {
-                       const panelId = 
$(this).closest("li").remove().attr("aria-controls");
-                       $("#" + panelId).remove();
+               tabs.off().on('shown.bs.tab', function (e) {
+                       _scrollDown($('#' + $(e.target).attr('aria-controls')));
+               });
+               tabs.delegate(".btn.close-chat", "click", function() {
+                       const panelId = 
$(this).closest("a").attr("aria-controls");
+                       _removeTab(panelId);
+                       $('#chatTabs li:last-child a').tab('show');
                });
                if (roomMode) {
                        icon.addClass(isClosed() ? iconOpenRoom : 
iconCloseRoom);
@@ -195,7 +209,7 @@ var Chat = function() {
                inited = true;
        }
        function _removeTab(id) {
-               $('#chatTabs li 
a[aria-controls="chatTab-all"]').parent().remove();
+               $('#chatTabs li a[aria-controls="' + id + 
'"]').parent().remove();
                $('#' + id).remove();
        }
        function _addTab(id, label) {
@@ -208,12 +222,12 @@ var Chat = function() {
                if (!label) {
                        label = id === "chatTab-all" ? allPrefix : roomPrefix + 
id.substr(9);
                }
-               const li = $('<li class="nav-item">')
-                       .append($('<a class="nav-link" data-toggle="tab" 
role="tab">')
-                               .attr('aria-controls', id)
-                               .attr('href', '#' + id).text(label));
-               if (id.indexOf("chatTab-r") !== 0) {
-                       li.append(OmUtil.tmpl('#chat-close-block'));
+               const link = $('<a class="nav-link" data-toggle="tab" 
role="tab">')
+                       .attr('aria-controls', id)
+                       .attr('href', '#' + id).text(label)
+                       , li = $('<li class="nav-item">').append(link);
+               if (id.indexOf("chatTab-u") === 0) {
+                       link.append(OmUtil.tmpl('#chat-close-block'));
                }
                tabs.find('.nav.nav-tabs').append(li);
                
tabs.find('.tab-content').append(OmUtil.tmpl('#chat-msg-area-template', id));
diff --git a/openmeetings-web/src/main/webapp/css/raw-chat.css 
b/openmeetings-web/src/main/webapp/css/raw-chat.css
index 23325c6..3822977 100644
--- a/openmeetings-web/src/main/webapp/css/raw-chat.css
+++ b/openmeetings-web/src/main/webapp/css/raw-chat.css
@@ -28,6 +28,10 @@
 #chat #chatTabs .nav.nav-tabs .nav-item .nav-link {
        padding: 1px 0.9rem;
 }
+#chat #chatTabs .nav.nav-tabs .nav-item .nav-link .close-chat {
+       padding: 2px;
+       line-height:.5em
+}
 #chat #chatTabs.ui-tabs .ui-tabs-nav li .ui-icon.ui-icon-close {
        float: left;
 }

Reply via email to