Todoist.com adding right fixed panel for tasks multiselect
// ==UserScript==
// @name Todoist Plus
// @description Todoist.com adding right fixed panel for tasks multiselect
// @author DeTorres
// @version 0.1.2
// @date 2015-08-13
// @namespace https://todoist.com/app
// @match https://todoist.com/app*
// @license MIT License
// ==/UserScript==
var script = document.createElement('script');
script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js';
document.getElementsByTagName('head')[0].appendChild(script);
script.addEventListener('load', function(){
jQuery = unsafeWindow['jQuery'];
jQuery.noConflict();
jQuery(document).ready(function() {
var newStyle = "<style>" +
"#my_panel {height:180px; line-height:30px; position:fixed; width:100px; padding:10px; top:40px; right:25px;text-align:right; border: 1px dotted black; background-color:#f2f2f2; margin:10px 0;} " +
"</style>";
jQuery('html head').append(newStyle);
jQuery("body").prepend("<div id='my_panel'>" +
"Выделить:<br />" +
"<label><span style='color:green'>все (all)</span><input id='my_all_checker' type='checkbox' value='1' /> </label><br />" +
"<label><span>прозрачные</span><input id='my_transparent_checker' type='checkbox' value='1' /></label><br />" +
"<label><span style='color:#64a8d9'>голубые</span> <input id='my_light_blue_checker' type='checkbox' value='1' /></label><br />" +
"<label><span style='color:#0063a6'>синие</span> <input id='my_blue_checker' type='checkbox' value='1' /></label><br />" +
"<label><span style='color:#d24726'>красные</span> <input id='my_red_checker' type='checkbox' value='1' /></label>" +
"</div>");
var getTasksByPriority = function(priority){
var priorities = ["", "priority_1", "priority_2", "priority_3", "priority_4" ];
var tasksSelector = ".items li.task_item";
if(priority){
tasksSelector += "." + priorities[priority];
}
return jQuery(tasksSelector);
}
var selectTasksAndTriggerMousedown = function(tasks){
if( tasks.size() ) {
var shiftClick = jQuery.Event("mousedown");
shiftClick.shiftKey = true;
tasks.toggleClass('selected');
var firstElem = tasks.get(0);
jQuery(firstElem).toggleClass('selected').trigger(shiftClick);
}
return true;
}
jQuery('input#my_transparent_checker').on("click", function() {
selectTasksAndTriggerMousedown( getTasksByPriority(1) );
});
jQuery('input#my_light_blue_checker').on("click", function() {
selectTasksAndTriggerMousedown( getTasksByPriority(2) );
});
jQuery('input#my_blue_checker').on("click", function() {
selectTasksAndTriggerMousedown( getTasksByPriority(3) );
});
jQuery('input#my_red_checker').on("click", function() {
selectTasksAndTriggerMousedown( getTasksByPriority(4) );
});
jQuery('input#my_all_checker').on("click", function() {
selectTasksAndTriggerMousedown( getTasksByPriority(0) );
});
});
}, false);