Улучшаем веб версию MaxDone (в Chrome)

Обсуждаются конкретные инструменты и приемы их использования
Правила форума
Создание новых веток приветствуется и поощряется, однако, посмотрите основные правила.
Ответить
Аватара пользователя
Fedor Bobin
Сообщения: 1
Зарегистрирован: Пн авг 06, 2018 12:36 pm
x 2
Контактная информация:

Улучшаем веб версию MaxDone (в Chrome)

Сообщение Fedor Bobin » Пт авг 31, 2018 10:38 am

Исправляем некоторые неудобства MaxDone c помощью инжекта скриптов.

Для применения нижеприведенных скриптов надо (рассказываю про Хром:
  1. Поставить плагин https://chrome.google.com/webstore/deta ... jija?hl=en
  • Справа сверху нажать синенький квадратик cjs
  • Вставить содержимое скрипта, нажать Save (если хочется несколько фич - добавлять скрипт в конец)


1. Повторяющиеся задачи видны в списке "На неделю" и "Позже"
Проблема: повторящиеся задачи не имеют (обычно) смысла до момента наступления. Например, Провести ежедневный обзор в списке на неделю не нужен, нужен только в списке на сегодня. Но максдан отображает такие задачи, а они замыливают глаз.
Скрипт:

Код: Выделить всё

var hideRepeatableTasks = function(){
    var now = new Date();
    var currentDay = now.getDate();
    var currentMonth = 1 + now.getMonth();
    var currentYear = 1900 + now.getYear();
    
    $("div.taskRow.listItem.clearFloat:not(.done)").each(function(){
        var when = $(this).find("div.date").text();
        var needHide = false;
        if (when){
            if (when === 'завтра'){
                needHide = true;
            }
            if (when.indexOf('/')>1){
                var day = parseInt(when.substring(0,2));
                var month = parseInt(when.substring(3,5));
                var year = parseInt(when.substring(6,10));
                if (year > currentYear){
                    needHide = true;
                }
                if (year === currentYear){
                    if (month > currentMonth){
                        needHide = true;
                    }
                    if (month === currentMonth){
                        if (day > currentDay){
                            needHide = true
                        }
                    }
                }
            }
        }
        if (needHide){
            $(this).hide();
        }
    });
}

setInterval(hideRepeatableTasks, 1000);


2. Количество заведенных задач в списке целей
Проблема: При еженедельном обзоре. Некоторые цели могут уже быть обработаны и в них добавлены задачи на выполнение. Другие - после последней недели остались без задач. В мобильной версии видно, сколько задач у каждой цели в списке. Добавляем тоже самое к веб-версии.

Код: Выделить всё

var updateGoals = function () {
    $("div.goal-row").each(function (index) {
        var taskCountDiv = $(this).find("div.taskCount");
        if (taskCountDiv.length === 0) {
            $(this).append("<div class='taskCount'></div>");
            taskCountDiv = $(this).find("div.taskCount")
        }

        var goalId = this.getAttribute("goalid");
        var getTasksForGoalUrl = "https://maxdone.micromiles.co/services/v1/private-goals/" + goalId + "/tasks";
        $.getJSON(getTasksForGoalUrl, function (data) {
            var today = 0;
            var week = 0;
            var later = 0;

            for (var task of data) {
                if (!task.done) {
                    if (task.taskType === "TODAY") {
                        today++;
                    }
                    if (task.taskType === "WEEK") {
                        week++;
                    }
                    if (task.taskType === "LATER") {
                        later++;
                    }
                }
            }

            taskCountDiv.text("(" + today + "/" + week + "/" + later + ")")
        });
    });
};

updateGoals();

setInterval(updateGoals, 3000);
2 x

Ответить