Make Google Tasks Great Again

Shows the embedded Google Tasks page on an own page

От 10.03.2020. Виж последната версия.

// ==UserScript==
// @name         Make Google Tasks Great Again
// @author       CennoxX
// @contact      [email protected]
// @namespace    https://greasyfork.org/users/21515
// @description  Shows the embedded Google Tasks page on an own page
// @version      0.8.2
// @match        https://tasks.google.com/*
// @match        https://calendar.google.com/calendar/r?opentasks=1
// @run-at       document-start
// @grant        GM.addStyle
// @license      MIT
// @noframes
// ==/UserScript==
/* jshint esversion: 6 */
(function() {
    'use strict';
    //redirect to correct page
    if (document.URL == "https://calendar.google.com/calendar/r?opentasks=1"){
        window.location.replace("https://tasks.google.com/embed/?origin=https://mail.google.com");
    }
    document.onreadystatechange = function () {
        switch (document.readyState){
            case "interactive":
                GM.addStyle("body{display:inherit!important}");//display body
                GM.addStyle(".CTxcDf, .oXBvod, .Sze5Fc{width:100%}");//full width for add task and done tasks
                GM.addStyle(".G4zhSc{width:35%}");//left column width 35 %
                GM.addStyle(".llhEMd{width:65%;left:auto}");//right column width 65%, not till the left border of the page
                GM.addStyle(".Nm5pwe{width:236px}");//set width of option box for tasks
                GM.addStyle(".pVs2We textarea{height:350px!important}");//make textarea for tasks bigger
                GM.addStyle(".G69P1e .mUbCce:nth-child(1){transform: rotate(180deg);}");//set arrow of keymap in other direction
                GM.addStyle(".FmmzFc .mUbCce, .gv11ue .mUbCce:nth-child(4),.G69P1e .mUbCce:nth-child(3){display:none;}");//hide close buttons
                var oldTitle = "";
                var mainLoop = setInterval(function(){
                    var tasks = document.querySelectorAll(".llhEMd.iWO5td");
                    var lastTask = tasks.length-1;
                    //set check button instead of arrow button
                    tasks[lastTask].querySelector(".gv11ue .sm8sCf").innerHTML="";
                    //hide task if another one is opened
                    for (var i = 0; i<lastTask;i++){
                        //don't hide if the page is already hidden or last page is a popup
                        if (!tasks[i].style.display && (i != lastTask-1 || tasks[i+1].getAttribute("isfullscreen")=="true")){
                            tasks[i].style.display="none";
                            var lastBack = tasks[lastTask].querySelector(".gv11ue .mUbCce:nth-child(1)");
                            if (!lastBack.onmouseup){
                                //click the first back button to remove all hidden tasks
                                lastBack.onmouseup=()=>{
                                    document.querySelector(".gv11ue .mUbCce:nth-child(1)").click();
                                };
                            }
                        }
                    }
                    //show current task list as document title
                    if (document.title != oldTitle && (oldTitle = document.title)){
                        Array.from(document.querySelectorAll(".B6U1Oc")).forEach((item)=>{
                            if(item.offsetWidth){
                                document.title=item.innerText+" · Tasks";
                            }
                        });
                    }
                }, 50);
                break;
            case "complete"://fallback
                init();
                break;
        }
    };
    var init = function(){
        //hide error message
        GM.addStyle("#af-error-container{display:none}");
        GM.addStyle("body{background:inherit}");
        var div = document.querySelector("div");
        if ( div && div.getAttribute("id") == "af-error-container"){
            document.title="Tasks";//hide error in title
            window.location.replace("https://tasks.google.com/embed/?origin=https://mail.google.com");//redirect to correct page
        }
    };
    init();
})();