Remove dependency on Mousetrap

This commit is contained in:
Frederic Guillot
2016-12-30 20:14:36 -05:00
parent e1344e3e44
commit ff79ec72c1
20 changed files with 348 additions and 202 deletions

View File

@@ -2,14 +2,14 @@ KB.component('image-slideshow', function (containerElement, options) {
var currentImage;
function onKeyDown(e) {
switch (e.keyCode) {
case 27:
switch (KB.utils.getKey(e)) {
case 'Escape':
destroySlide();
break;
case 39:
case 'ArrowRight':
renderNextSlide();
break;
case 37:
case 'ArrowLeft':
renderPreviousSlide();
break;
}

View File

@@ -1,4 +1,105 @@
// Open board selector: "b"
KB.onKey(98, function () {
KB.trigger('board.selector.open');
});
KB.keyboardShortcuts = function () {
function goToLink (selector) {
var element = KB.find(selector);
if (element !== null) {
window.location = element.attr('href');
}
}
function submitForm() {
var forms = $("form");
if (forms.length == 1) {
forms.submit();
} else if (forms.length > 1) {
if (document.activeElement.tagName === 'INPUT' || document.activeElement.tagName === 'TEXTAREA') {
$(document.activeElement).parents("form").submit();
} else if (_KB.get("Popover").isOpen()) {
$("#popover-container form").submit();
}
}
}
KB.onKey('?', function () {
_KB.get("Popover").open($("body").data("keyboard-shortcut-url"));
});
KB.onKey('Escape', function () {
if (! KB.exists('#suggest-menu')) {
_KB.get("Popover").close();
_KB.get("Dropdown").close();
}
});
KB.onKey('Meta+Enter', submitForm, true);
KB.onKey('Control+Enter', submitForm, true);
KB.onKey('b', function () {
KB.trigger('board.selector.open');
});
if (KB.exists('#board')) {
KB.onKey('c', function () {
_KB.get('BoardHorizontalScrolling').toggle();
});
KB.onKey('s', function () {
_KB.get('BoardCollapsedMode').toggle();
});
KB.onKey('n', function () {
_KB.get("Popover").open($("#board").data("task-creation-url"));
});
}
if (KB.exists('#task-view')) {
KB.onKey('e', function () {
_KB.get("Popover").open(KB.find('#task-view').data('editUrl'));
});
KB.onKey('c', function () {
_KB.get("Popover").open(KB.find('#task-view').data('commentUrl'));
});
KB.onKey('s', function () {
_KB.get("Popover").open(KB.find('#task-view').data('subtaskUrl'));
});
KB.onKey('l', function () {
_KB.get("Popover").open(KB.find('#task-view').data('internalLinkUrl'));
});
}
KB.onKey('f', function () {
KB.focus('#form-search');
});
KB.onKey('r', function () {
var reset = $(".filter-reset").data("filter");
var input = $("#form-search");
input.val(reset);
$("form.search").submit();
});
KB.onKey('v+o', function () {
goToLink('a.view-overview');
});
KB.onKey('v+b', function () {
goToLink('a.view-board');
});
KB.onKey('v+c', function () {
goToLink('a.view-calendar');
});
KB.onKey('v+l', function () {
goToLink('a.view-listing');
});
KB.onKey('v+g', function () {
goToLink('a.view-gantt');
});
};

View File

@@ -2,22 +2,22 @@ KB.component('select-dropdown-autocomplete', function(containerElement, options)
var componentElement, inputElement, inputHiddenElement;
function onKeyDown(e) {
switch (e.keyCode) {
case 27:
switch (KB.utils.getKey(e)) {
case 'Escape':
inputElement.value = '';
destroyDropdownMenu();
break;
case 38:
case 'ArrowUp':
e.preventDefault();
e.stopImmediatePropagation();
moveUp();
break;
case 40:
case 'ArrowDown':
e.preventDefault();
e.stopImmediatePropagation();
moveDown();
break;
case 13:
case 'Enter':
e.preventDefault();
e.stopImmediatePropagation();
insertSelectedItem();

View File

@@ -1,21 +1,21 @@
KB.component('suggest-menu', function(containerElement, options) {
function onKeyDown(e) {
switch (e.keyCode) {
case 27:
switch (KB.utils.getKey(e)) {
case 'Escape':
destroy();
break;
case 38:
case 'ArrowUp':
e.preventDefault();
e.stopImmediatePropagation();
moveUp();
break;
case 40:
case 'ArrowDown':
e.preventDefault();
e.stopImmediatePropagation();
moveDown();
break;
case 13:
case 'Enter':
e.preventDefault();
e.stopImmediatePropagation();
insertSelectedItem();