From 628f36df246cdfadcc66fd1032a6c5b555c9c690 Mon Sep 17 00:00:00 2001 From: keplyx Date: Fri, 31 Jan 2020 12:14:38 +0100 Subject: [PATCH] Improved planex display --- screens/Websites/PlanexScreen.js | 46 +++++++++++++++++++------------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/screens/Websites/PlanexScreen.js b/screens/Websites/PlanexScreen.js index e01cf8b..521977b 100644 --- a/screens/Websites/PlanexScreen.js +++ b/screens/Websites/PlanexScreen.js @@ -18,22 +18,27 @@ const CUSTOM_CSS_NIGHTMODE = 'https://srv-falcon.etud.insa-toulouse.fr/~amicale_ // // JS + JQuery functions used to remove alpha from events. Copy paste in browser console for quick testing // // Remove alpha from given Jquery node // function removeAlpha(node) { -// console.log(node); // let bg = node.css("background-color"); // if (bg.match("^rgba")) { // let a = bg.slice(5).split(','); -// let newBg ='rgb(' + a[0] + ',' + parseInt(a[1]) + ',' + parseInt(a[2]) + ')'; +// // Fix for tooltips with broken background +// if (parseInt(a[0]) === parseInt(a[1]) && parseInt(a[1]) === parseInt(a[2]) && parseInt(a[2]) === 0) { +// a[0] = a[1] = a[2] = '255'; +// } +// let newBg ='rgb(' + a[0] + ',' + a[1] + ',' + a[2] + ')'; // node.css("background-color", newBg); // } // } // // Observe for planning DOM changes // let observer = new MutationObserver(function(mutations) { // for (let i = 0; i < mutations.length; i++) { -// if (mutations[i]['addedNodes'].length > 0 && $(mutations[i]['addedNodes'][0]).hasClass("fc-event")) +// if (mutations[i]['addedNodes'].length > 0 && +// ($(mutations[i]['addedNodes'][0]).hasClass("fc-event") || $(mutations[i]['addedNodes'][0]).hasClass("tooltiptopicevent"))) // removeAlpha($(mutations[i]['addedNodes'][0])) // } // }); -// observer.observe(document.querySelector(".fc-body"), {attributes: false, childList: true, characterData: false, subtree:true}); +// // observer.observe(document.querySelector(".fc-body"), {attributes: false, childList: true, characterData: false, subtree:true}); +// observer.observe(document.querySelector("body"), {attributes: false, childList: true, characterData: false, subtree:true}); // // Run remove alpha a first time on whole planning. Useful when code injected after planning fully loaded. // $(".fc-event-container .fc-event").each(function(index) { // removeAlpha($(this)); @@ -42,21 +47,28 @@ const CUSTOM_CSS_NIGHTMODE = 'https://srv-falcon.etud.insa-toulouse.fr/~amicale_ // Watch for changes in the calendar and call the remove alpha function const OBSERVE_MUTATIONS_INJECTED = 'function removeAlpha(node) {\n' + - ' console.log(node);\n' + - ' let bg = node.css("background-color");\n' + - ' if (bg.match("^rgba")) {\n' + - ' let a = bg.slice(5).split(\',\');\n' + - ' let newBg =\'rgb(\' + a[0] + \',\' + parseInt(a[1]) + \',\' + parseInt(a[2]) + \')\';\n' + - ' node.css("background-color", newBg);\n' + - ' }\n' + - '}' + + ' let bg = node.css("background-color");\n' + + ' if (bg.match("^rgba")) {\n' + + ' let a = bg.slice(5).split(\',\');\n' + + ' // Fix for tooltips with broken background\n' + + ' if (parseInt(a[0]) === parseInt(a[1]) && parseInt(a[1]) === parseInt(a[2]) && parseInt(a[2]) === 0) {\n' + + ' a[0] = a[1] = a[2] = \'255\';\n' + + ' }\n' + + ' let newBg =\'rgb(\' + a[0] + \',\' + a[1] + \',\' + a[2] + \')\';\n' + + ' node.css("background-color", newBg);\n' + + ' }\n' + + '}\n' + + '// Observe for planning DOM changes\n' + 'let observer = new MutationObserver(function(mutations) {\n' + ' for (let i = 0; i < mutations.length; i++) {\n' + - ' if (mutations[i][\'addedNodes\'].length > 0 && $(mutations[i][\'addedNodes\'][0]).hasClass("fc-event"))\n' + + ' if (mutations[i][\'addedNodes\'].length > 0 &&\n' + + ' ($(mutations[i][\'addedNodes\'][0]).hasClass("fc-event") || $(mutations[i][\'addedNodes\'][0]).hasClass("tooltiptopicevent")))\n' + ' removeAlpha($(mutations[i][\'addedNodes\'][0]))\n' + ' }\n' + '});\n' + - 'observer.observe(document.querySelector(".fc-body"), {attributes: false, childList: true, characterData: false, subtree:true});\n' + + '// observer.observe(document.querySelector(".fc-body"), {attributes: false, childList: true, characterData: false, subtree:true});\n' + + 'observer.observe(document.querySelector("body"), {attributes: false, childList: true, characterData: false, subtree:true});\n' + + '// Run remove alpha a first time on whole planning. Useful when code injected after planning fully loaded.\n' + '$(".fc-event-container .fc-event").each(function(index) {\n' + ' removeAlpha($(this));\n' + '});'; @@ -73,17 +85,13 @@ export default class PlanexScreen extends React.Component { this.customInjectedJS = '$(document).ready(function() {' + OBSERVE_MUTATIONS_INJECTED + - '$("head").append(\'\');' + + '$("head").append(\'\');' + '$("head").append(\'\');'; if (ThemeManager.getNightMode()) this.customInjectedJS += '$("head").append(\'\');'; this.customInjectedJS += - '$(".fc-toolbar .fc-center").append(\'

' + - i18n.t("planexScreen.rotateToLandscape") + '

\');' + - '$(".fc-toolbar .fc-center").append(\'

' + - i18n.t("planexScreen.rotateToPortrait") + '

\');' + 'removeAlpha();' + '});true;'; // Prevent crash on ios