From 6854cb3f4d8219cf1829e32122eb2502a916eae9 Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Sat, 1 Feb 2020 09:05:48 +0100 Subject: initial checkin --- js/details.js | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 js/details.js (limited to 'js/details.js') diff --git a/js/details.js b/js/details.js new file mode 100644 index 0000000..6ee1472 --- /dev/null +++ b/js/details.js @@ -0,0 +1,46 @@ +Event.observe(window,'load',detailsInit); + +function detailsInit() { + + // set current task + var title = document.getElementsByTagName('title')[0]; + title = title.textContent || title.text; //IE uses .text + var arr = /(#)(\d+)/.exec(title); + if( arr != null){ + sessionStorage.setItem('current_task', arr[2]); + + // make sure the page is not in edit mode, 'details' is id of description textarea + if (!document.getElementById('details')) { + Event.observe(document,'keydown',keyboardNavigation); + } + } +} +function keyboardNavigation(e) { + var src = Event.element(e); + if (/input|select|textarea/.test(src.nodeName.toLowerCase())) { + // don't do anything if key is pressed in input, select or textarea + return; + } + if ((useAltForKeyboardNavigation && !e.altKey) || + e.ctrlKey || e.shiftKey) { + return; + } + switch (e.keyCode) { + case 85: // "u" get back to task list + window.location = $('indexlink').href; + Event.stop(e); + break; + case 80: // "p" move to previous task + if ($('prev')) { + window.location = $('prev').href; + Event.stop(e); + } + break; + case 78: // "n" move to next task + if ($('next')) { + window.location = $('next').href; + Event.stop(e); + } + break; + } +} -- cgit v1.2.3-70-g09d2