Улучшаем веб версию MaxDone (в Chrome)
Добавлено: Пт авг 31, 2018 10:38 am
Исправляем некоторые неудобства MaxDone c помощью инжекта скриптов.
Для применения нижеприведенных скриптов надо (рассказываю про Хром:
1. Повторяющиеся задачи видны в списке "На неделю" и "Позже"
Проблема: повторящиеся задачи не имеют (обычно) смысла до момента наступления. Например, Провести ежедневный обзор в списке на неделю не нужен, нужен только в списке на сегодня. Но максдан отображает такие задачи, а они замыливают глаз.
Скрипт:
2. Количество заведенных задач в списке целей
Проблема: При еженедельном обзоре. Некоторые цели могут уже быть обработаны и в них добавлены задачи на выполнение. Другие - после последней недели остались без задач. В мобильной версии видно, сколько задач у каждой цели в списке. Добавляем тоже самое к веб-версии.
Для применения нижеприведенных скриптов надо (рассказываю про Хром:
- Поставить плагин https://chrome.google.com/webstore/deta ... jija?hl=en
- Зайти на сайт https://maxdone.micromiles.co
- Справа сверху нажать синенький квадратик 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);