diff --git a/app/ui-master/client/main.js b/app/ui-master/client/main.js index 1f46bd92e854..d14224512a95 100644 --- a/app/ui-master/client/main.js +++ b/app/ui-master/client/main.js @@ -5,7 +5,8 @@ import { FlowRouter } from 'meteor/kadira:flow-router'; import { t, getUserPreference } from '../../utils'; import { Session } from 'meteor/session'; import { Template } from 'meteor/templating'; -import { mainReady, Layout, iframeLogin, modal, popover, menu, fireGlobalEvent } from '../../ui-utils'; +import { chatMessages } from '../../ui'; +import { mainReady, Layout, iframeLogin, modal, popover, menu, fireGlobalEvent, RoomManager } from '../../ui-utils'; import { toolbarSearch } from '../../ui-sidenav'; import { settings } from '../../settings'; import { CachedChatSubscription, Roles, ChatSubscription } from '../../models'; @@ -78,8 +79,8 @@ Template.body.onRendered(function() { if (target.id === 'pswp') { return; } - const inputMessage = $('.rc-message-box__textarea'); - if (inputMessage.length === 0) { + const inputMessage = chatMessages[RoomManager.openedRoom] && chatMessages[RoomManager.openedRoom].input; + if (!inputMessage) { return; } inputMessage.focus(); diff --git a/app/ui-message/client/messageBox.html b/app/ui-message/client/messageBox.html index a08b102819e7..6b672023a1ea 100644 --- a/app/ui-message/client/messageBox.html +++ b/app/ui-message/client/messageBox.html @@ -27,7 +27,7 @@ {{else}} {{#if subscribed}} {{> messageBoxAudioMessage rid=_id}} - + {{#if actions}} {{> icon block="rc-input__icon-svg" icon="plus"}} @@ -41,9 +41,9 @@ {{/if}} {{/unless}} - {{#each actions}} - - {{> icon block="rc-message-box__action" icon=icon }} + {{#each action in actions}} + + {{> icon block="rc-message-box__action" icon=action.icon }} {{/each}} diff --git a/app/ui-message/client/messageBox.js b/app/ui-message/client/messageBox.js index 738960ab2bc8..f4610733df61 100644 --- a/app/ui-message/client/messageBox.js +++ b/app/ui-message/client/messageBox.js @@ -381,7 +381,7 @@ Template.messageBox.events({ input.focus(); }); }, - 'click .rc-message-box__action-menu'(event) { + 'click .js-action-menu'(event, instance) { const groups = messageBox.actions.get(); const config = { popoverClass: 'message-box', @@ -409,6 +409,7 @@ Template.messageBox.events({ currentTarget: event.currentTarget.firstElementChild.firstElementChild, data: { rid: this._id, + messageBox: instance.firstNode, }, activeElement: event.currentTarget, }; @@ -416,12 +417,17 @@ Template.messageBox.events({ popover.open(config); }, 'click .js-message-actions .js-message-action'(event, instance) { - this.action.apply(this, [{ - rid: Template.parentData()._id, - messageBox: instance.find('.rc-message-box'), - element: event.currentTarget, - event, - }]); + const { id } = event.currentTarget.dataset; + const actions = messageBox.actions.getById(id); + actions + .filter(({ action }) => !!action) + .forEach(({ action }) => { + action.call(null, { + rid: this._id, + messageBox: instance.firstNode, + event, + }); + }); }, 'click .js-format'(e, t) { applyFormatting.apply(this, [e, t]); diff --git a/app/ui-message/client/startup/messageBoxActions.js b/app/ui-message/client/startup/messageBoxActions.js index 019c5e829d37..2b3a513dc299 100644 --- a/app/ui-message/client/startup/messageBoxActions.js +++ b/app/ui-message/client/startup/messageBoxActions.js @@ -26,7 +26,7 @@ messageBox.actions.add('Add_files_from', 'Computer', { id: 'file-upload', icon: 'computer', condition: () => settings.get('FileUpload_Enabled'), - action({ event }) { + action({ event, messageBox }) { event.preventDefault(); const $input = $(document.createElement('input')); $input.css('display', 'none'); @@ -49,7 +49,7 @@ messageBox.actions.add('Add_files_from', 'Computer', { }; }); - fileUpload(filesToUpload, $('.rc-message-box__textarea.js-input-message')); + fileUpload(filesToUpload, $('.js-input-message', messageBox)); $input.remove(); }); diff --git a/app/ui-sidenav/client/sidebarHeader.js b/app/ui-sidenav/client/sidebarHeader.js index 7ccd972f0fcd..46041f56208f 100644 --- a/app/ui-sidenav/client/sidebarHeader.js +++ b/app/ui-sidenav/client/sidebarHeader.js @@ -42,19 +42,8 @@ const extendedViewOption = (user) => { const showToolbar = new ReactiveVar(false); -const selectorSearch = '.toolbar__search .rc-input__element'; export const toolbarSearch = { shortcut: false, - clear() { - const $inputMessage = $('.js-input-message'); - - if (0 === $inputMessage.length) { - return; - } - - $inputMessage.focus(); - $(selectorSearch).val(''); - }, show(fromShortcut) { menu.open(); showToolbar.set(true); diff --git a/app/ui-sidenav/client/toolbar.js b/app/ui-sidenav/client/toolbar.js index 3643b5b6748c..9998ae91ecda 100644 --- a/app/ui-sidenav/client/toolbar.js +++ b/app/ui-sidenav/client/toolbar.js @@ -185,15 +185,6 @@ Template.toolbar.events({ toolbarSearch.shortcut = false; }, - 'keyup [role="search"] input'(e) { - if (e.which === 27) { - e.preventDefault(); - e.stopPropagation(); - - toolbarSearch.clear(); - } - }, - 'click [role="search"] button, touchend [role="search"] button'(e) { if (hasAtLeastOnePermission(['create-c', 'create-p'])) { // TODO: resolve this name menu/sidebar/sidebav/flex... diff --git a/app/ui-utils/client/lib/popover.js b/app/ui-utils/client/lib/popover.js index 1bd698c7b459..871d0924f4ef 100644 --- a/app/ui-utils/client/lib/popover.js +++ b/app/ui-utils/client/lib/popover.js @@ -160,13 +160,16 @@ Template.popover.events({ }, 'click [data-type="messagebox-action"]'(event, t) { const { id } = event.currentTarget.dataset; - const action = messageBox.actions.getById(id); - if ((action[0] != null ? action[0].action : undefined) != null) { - action[0].action({ rid: t.data.data.rid, ...t.data.data, messageBox: document.querySelector('.rc-message-box'), element: event.currentTarget, event }); - if (id !== 'audio-message') { - popover.close(); - } - } + const actions = messageBox.actions.getById(id); + actions + .filter(({ action }) => !!action) + .forEach(({ action }) => { + action.call(null, { + ...t.data.data, + event, + }); + }); + popover.close(); }, 'click [data-type="message-action"]'(e, t) { const button = MessageAction.getButtonById(e.currentTarget.dataset.id); diff --git a/tests/pageobjects/side-nav.page.js b/tests/pageobjects/side-nav.page.js index 38c7b1c9a14a..315175924b46 100644 --- a/tests/pageobjects/side-nav.page.js +++ b/tests/pageobjects/side-nav.page.js @@ -56,7 +56,7 @@ class SideNav extends Page { openChannel(channelName) { browser.waitForVisible(`.sidebar-item__ellipsis=${ channelName }`, 10000); browser.click(`.sidebar-item__ellipsis=${ channelName }`); - browser.waitForVisible('.rc-message-box__container textarea', 5000); + browser.waitForVisible('.js-input-message', 5000); browser.waitForVisible('.rc-header', 5000); browser.waitUntil(function() { browser.waitForVisible('.rc-header__name', 8000);