From a3df6dc4d92171b14f9264a77f93306ed41960a7 Mon Sep 17 00:00:00 2001 From: Anatoly Kopyl Date: Tue, 14 Apr 2020 19:35:52 +0300 Subject: [PATCH 1/5] =?UTF-8?q?=D0=A1=D0=B4=D0=B2=D0=B8=D0=BD=D1=83=D0=BB?= =?UTF-8?q?=20=D1=83=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5?= =?UTF-8?q?=20=D0=B2=D0=BF=D1=80=D0=B0=D0=B2=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controls.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/controls.js b/controls.js index 4f454db..2ff203e 100644 --- a/controls.js +++ b/controls.js @@ -13,6 +13,7 @@ function addControls() { if (actionsArea && actionsArea.lastChild.className != "mute_message") { var sender_id = message.parentElement.parentElement.parentElement["dataset"].peer + actionsArea.style['margin-right'] = "-30px"; actionsArea.innerHTML += muteBtnHTML(sender_id); var muteBtn = actionsArea.getElementsByClassName("mute_message")[0]; muteBtn.style.display = "none"; @@ -59,6 +60,7 @@ var controlsInterval = setInterval(function () { if (actionsArea && actionsArea.lastChild.className != "mute_message") { var sender_id = message.parentElement.parentElement.parentElement.dataset.peer; + actionsArea.style['margin-right'] = "-30px"; actionsArea.innerHTML += muteBtnHTML(sender_id); var muteBtn = actionsArea.getElementsByClassName("mute_message")[0]; muteBtn.style.display = "none"; From e0466c829cf8b21585d2e2991c420a263903676f Mon Sep 17 00:00:00 2001 From: Anatoly Kopyl Date: Tue, 14 Apr 2020 19:38:43 +0300 Subject: [PATCH 2/5] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=20=D0=BF=D0=BE=D0=B4=D1=81=D0=B2=D0=B5=D0=B4=D0=BA=D1=83=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D1=83=D0=B4=D0=B0=D0=BB=D1=8F=D0=B5=D0=BC=D1=8B?= =?UTF-8?q?=D0=B9=20id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- popup.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/popup.js b/popup.js index 83d47a9..b7cea65 100644 --- a/popup.js +++ b/popup.js @@ -43,3 +43,12 @@ idToHideDisplay.addEventListener('click', function() { console.log('Cleared idToHide'); }); }); + + +idToHideDisplay.addEventListener('mouseenter', function(event) { + event.target.style.color = "red"; +}); + +idToHideDisplay.addEventListener('mouseleave', function(event) { + event.target.style.color = "black"; +}); From 732c0a8dabcb30b73a84996140f577e021fea45b Mon Sep 17 00:00:00 2001 From: Anatoly Kopyl Date: Wed, 15 Apr 2020 00:35:35 +0300 Subject: [PATCH 3/5] =?UTF-8?q?=D0=98=D0=B7=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=D1=81=D1=8F=20=D0=BE=D1=82=20=D0=B4=D1=83=D0=B1=D0=BB=D0=B8?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controls.js | 83 ++++++++++++++++--------------------------------- hide_element.js | 64 ++++++++++++++++++++------------------ 2 files changed, 60 insertions(+), 87 deletions(-) diff --git a/controls.js b/controls.js index 2ff203e..c9ff031 100644 --- a/controls.js +++ b/controls.js @@ -1,15 +1,15 @@ -function muteBtnHTML(id) { - return ` - 🔇 - Заглушить - ` -} +{ + function muteBtnHTML(id) { + return ` + 🔇 + Заглушить + ` + } -function addControls() { - if (event.target.className == 'im-mess--check fl_l') { - var message = event.target.parentElement; - - var actionsArea = message.getElementsByClassName("im-mess--actions")[0]; + function addControls(event, msg) { + let message = msg || event.target.parentElement; + + let actionsArea = message.getElementsByClassName("im-mess--actions")[0]; if (actionsArea && actionsArea.lastChild.className != "mute_message") { var sender_id = message.parentElement.parentElement.parentElement["dataset"].peer @@ -41,55 +41,26 @@ function addControls() { }); } } -} -var chatBody = document.getElementsByClassName("_im_peer_history im-page-chat-contain")[0]; + let chatBody = document.getElementsByClassName("_im_peer_history im-page-chat-contain")[0]; -chatBody.addEventListener('DOMNodeInserted', addControls); + chatBody.addEventListener('DOMNodeInserted', function(event) { + if (event.target.className == 'im-mess--check fl_l') { + addControls(event); + } + }); -// Try to add controls until successful. Needed for page refresh. -var controlsInterval = setInterval(function () { - var chatBody = document.getElementsByClassName("_im_peer_history im-page-chat-contain")[0]; + // Try to add controls until successful. Needed for page refresh. + let controlsInterval = setInterval(function () { + chatBody = document.getElementsByClassName("_im_peer_history im-page-chat-contain")[0]; - for (var item of chatBody.children) { - if (item.className.includes('im-mess-stack _im_mess_stack')) { - var messages = item.children[1].children[1].getElementsByClassName('im-mess im_in _im_mess'); - for (var message of messages) { - var actionsArea = message.getElementsByClassName("im-mess--actions")[0]; - - if (actionsArea && actionsArea.lastChild.className != "mute_message") { - var sender_id = message.parentElement.parentElement.parentElement.dataset.peer; - - actionsArea.style['margin-right'] = "-30px"; - actionsArea.innerHTML += muteBtnHTML(sender_id); - var muteBtn = actionsArea.getElementsByClassName("mute_message")[0]; - muteBtn.style.display = "none"; - - actionsArea.parentElement.addEventListener("mouseenter", function( event ) { - event.target.getElementsByClassName("mute_message")[0].style.display = "inline-block"; - }); - - actionsArea.parentElement.addEventListener("mouseleave", function( event ) { - event.target.getElementsByClassName("mute_message")[0].style.display = "none"; - }); - - muteBtn.addEventListener("click", function(event) { - var clicked_id = event.target.id.substr(4); // get id of sender from element id - - chrome.storage.sync.set({idToHide: clicked_id}, function() { - for (var item of chatBody.children) { - if (item.dataset.peer == clicked_id) { - item.style.display = "none"; - } - } - - console.log('idToHide: ' + clicked_id); - }); - }); - } else if (actionsArea.lastChild.className == "mute_message") { - clearInterval(controlsInterval); + for (let item of chatBody.children) { + if (item.className.includes('im-mess-stack _im_mess_stack')) { + let messages = item.children[1].children[1].getElementsByClassName('im-mess im_in _im_mess'); + for (let message of messages) { + addControls(null, message); } } } - } -}, 200); + }, 200); +} diff --git a/hide_element.js b/hide_element.js index 43f8dd6..be29970 100644 --- a/hide_element.js +++ b/hide_element.js @@ -1,37 +1,39 @@ -var idToHide; +{ + let idToHide; -var chatBody = document.getElementsByClassName("_im_peer_history im-page-chat-contain")[0]; + let chatBody = document.getElementsByClassName("_im_peer_history im-page-chat-contain")[0]; -chatBody.addEventListener('DOMNodeInserted', function(event) { - if (event.target.className == 'im-mess-stack _im_mess_stack ') { - chrome.storage.sync.get('idToHide', function(data) { - idToHide = data.idToHide; - }); + chatBody.addEventListener('DOMNodeInserted', function(event) { + if (event.target.className == 'im-mess-stack _im_mess_stack ') { + chrome.storage.sync.get('idToHide', function(data) { + idToHide = data.idToHide; + }); - chrome.storage.sync.get('isExtensionOn', function(data) { - if (data.isExtensionOn) { - if (event.target.dataset.peer == idToHide) { - event.target.style.display = "none"; + chrome.storage.sync.get('isExtensionOn', function(data) { + if (data.isExtensionOn) { + if (event.target.dataset.peer == idToHide) { + event.target.style.display = "none"; + } + } + }); + } + }); + + chrome.storage.sync.get('idToHide', function(data) { + idToHide = data.idToHide; + }); + + // Try to hide until successful. Needed for page refresh. + let hideInterval = setInterval(function () { + chatBody = document.getElementsByClassName("_im_peer_history im-page-chat-contain")[0]; + for (let item of chatBody.children) { + if (item.dataset.peer == idToHide) { + if (item.style.display != "none") { + item.style.display = "none"; + } else { + clearInterval(hideInterval); } } - }); - } -}); - -chrome.storage.sync.get('idToHide', function(data) { - idToHide = data.idToHide; -}); - -// Try to hide until successful. Needed for page refresh. -var hideInterval = setInterval(function () { - var chatBody = document.getElementsByClassName("_im_peer_history im-page-chat-contain")[0]; - for (var item of chatBody.children) { - if (item.dataset.peer == idToHide) { - if (item.style.display != "none") { - item.style.display = "none"; - } else { - clearInterval(hideInterval); - } } - } -}, 200); + }, 200); +} From 164dab21998df2a80ec69a684ce8fcec452282c9 Mon Sep 17 00:00:00 2001 From: Anatoly Kopyl Date: Wed, 15 Apr 2020 12:49:00 +0300 Subject: [PATCH 4/5] Minor fix --- controls.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/controls.js b/controls.js index c9ff031..f3d39b3 100644 --- a/controls.js +++ b/controls.js @@ -6,9 +6,7 @@ ` } - function addControls(event, msg) { - let message = msg || event.target.parentElement; - + function addControls(event, message = event.target.parentElement) { let actionsArea = message.getElementsByClassName("im-mess--actions")[0]; if (actionsArea && actionsArea.lastChild.className != "mute_message") { var sender_id = message.parentElement.parentElement.parentElement["dataset"].peer @@ -54,11 +52,13 @@ let controlsInterval = setInterval(function () { chatBody = document.getElementsByClassName("_im_peer_history im-page-chat-contain")[0]; - for (let item of chatBody.children) { - if (item.className.includes('im-mess-stack _im_mess_stack')) { - let messages = item.children[1].children[1].getElementsByClassName('im-mess im_in _im_mess'); - for (let message of messages) { - addControls(null, message); + if (chatBody) { + for (let item of chatBody.children) { + if (item.className.includes('im-mess-stack _im_mess_stack')) { + let messages = item.children[1].children[1].getElementsByClassName('im-mess im_in _im_mess'); + for (let message of messages) { + addControls(null, message); + } } } } From c1506634de06518d40cde2079a40e116e0b8c584 Mon Sep 17 00:00:00 2001 From: Anatoly Kopyl Date: Fri, 17 Apr 2020 22:32:04 +0300 Subject: [PATCH 5/5] =?UTF-8?q?=D0=9F=D0=BE=D0=B4=D0=BE=D0=B3=D0=BD=D0=B0?= =?UTF-8?q?=D0=BB=20=D1=82=D1=83=D0=BB=D1=82=D0=B8=D0=BF=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=B4=20=D1=81=D1=82=D0=B8=D0=BB=D1=8C=20=D0=92=D0=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controls.css | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/controls.css b/controls.css index 699d601..55f8b62 100644 --- a/controls.css +++ b/controls.css @@ -1,16 +1,18 @@ .mute_message .mutetooltip { visibility: hidden; - width: 120px; - background-color: #555; + width: auto; + background-color: rgba(0, 0, 0, 0.7); color: #fff; text-align: center; - padding: 5px 0; - border-radius: 6px; + font-size: 1em; + padding: 4px 7px 5px; + line-height: 1.154; + border-radius: 3px; /* Position the tooltip text */ position: absolute; z-index: 1; - bottom: 125%; + bottom: 130%; left: 50%; margin-left: -60px; @@ -24,11 +26,11 @@ content: ""; position: absolute; top: 100%; - left: 50%; + left: 80%; margin-left: -5px; border-width: 5px; border-style: solid; - border-color: #555 transparent transparent transparent; + border-color: rgba(0, 0, 0, 0.7) transparent transparent transparent; } /* Show the tooltip text when you mouse over the tooltip container */