NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Meckano Ultra Fast
// @namespace https://app.meckano.co.il
// @version 0.2
// @description Meckano script to improve UX and support mouseless use
// @author Sela Oren
// @match https://app.meckano.co.il/*
// @grant none
// @license MIT
// ==/UserScript==
(function() {
"use strict";
const ENTER = "13";
const isHourValidFromElement = element => {
const splittedHour = element.val().split(":");
return !isNaN(+splittedHour[0]) && !isNaN(+splittedHour[1]);
};
$(document).keypress(event => {
const keycode = event.keyCode || event.which;
if (keycode == ENTER) {
if ($(".inline-confirm").length === 1) {
$(".inline-confirm").click();
// move to the next screen
$("#tab-tasks-reports").click();
$("#li-project-report").click();
}
}
});
$(document).on("click", ".insert-row", () => {
$(".checkin-str").keypress(event => {
const jTargetElement = $(event.target);
if (isHourValidFromElement(jTargetElement)) {
$(".checkout-str").select();
}
});
});
// tasks report
$(document).on("click", ".report-entry.checkin", () => {
$(".report-entry.checkin").keypress(event => {
const jTargetElement = $(event.target);
if (isHourValidFromElement(jTargetElement)) {
$(jTargetElement)
.parent()
.parent()
.find(".report-entry.checkout")
.select();
}
});
$(".report-entry.checkout").keypress(event => {
const keycode = event.keyCode || event.which;
if (keycode == ENTER) {
$(event.target)
.parent()
.parent()
.find(".inline-confirm")
.click();
}
});
});
})();