mirror of
https://github.com/YunoHost-Apps/kanboard_ynh.git
synced 2024-09-03 19:36:17 +02:00
103 lines
2.6 KiB
JavaScript
103 lines
2.6 KiB
JavaScript
function Search(app) {
|
|
this.app = app;
|
|
this.keyboardShortcuts();
|
|
}
|
|
|
|
Search.prototype.focus = function() {
|
|
// Place cursor at the end when focusing on the search box
|
|
$(document).on("focus", "#form-search", function() {
|
|
if ($("#form-search")[0].setSelectionRange) {
|
|
$('#form-search')[0].setSelectionRange($('#form-search').val().length, $('#form-search').val().length);
|
|
}
|
|
});
|
|
};
|
|
|
|
Search.prototype.listen = function() {
|
|
var self = this;
|
|
|
|
// Filter helper for search
|
|
$(document).on("click", ".filter-helper", function (e) {
|
|
e.preventDefault();
|
|
|
|
var filter = $(this).data("filter");
|
|
var appendFilter = $(this).data("append-filter");
|
|
|
|
if (appendFilter) {
|
|
filter = $("#form-search").val() + " " + appendFilter;
|
|
}
|
|
|
|
$("#form-search").val(filter);
|
|
|
|
if ($('#board').length) {
|
|
self.app.board.reloadFilters(filter);
|
|
}
|
|
else {
|
|
$("form.search").submit();
|
|
}
|
|
});
|
|
};
|
|
|
|
Search.prototype.keyboardShortcuts = function() {
|
|
var self = this;
|
|
|
|
// Switch view mode for projects: go to the board
|
|
Mousetrap.bind("v b", function(e) {
|
|
var link = $(".view-board");
|
|
|
|
if (link.length) {
|
|
window.location = link.attr('href');
|
|
}
|
|
});
|
|
|
|
// Switch view mode for projects: go to the calendar
|
|
Mousetrap.bind("v c", function(e) {
|
|
var link = $(".view-calendar");
|
|
|
|
if (link.length) {
|
|
window.location = link.attr('href');
|
|
}
|
|
});
|
|
|
|
// Switch view mode for projects: go to the listing
|
|
Mousetrap.bind("v l", function(e) {
|
|
var link = $(".view-listing");
|
|
|
|
if (link.length) {
|
|
window.location = link.attr('href');
|
|
}
|
|
});
|
|
|
|
// Switch view mode for projects: go to the gantt chart
|
|
Mousetrap.bind("v g", function(e) {
|
|
var link = $(".view-gantt");
|
|
|
|
if (link.length) {
|
|
window.location = link.attr('href');
|
|
}
|
|
});
|
|
|
|
// Focus to the search field
|
|
Mousetrap.bind("f", function(e) {
|
|
e.preventDefault();
|
|
var input = document.getElementById("form-search");
|
|
|
|
if (input) {
|
|
input.focus();
|
|
}
|
|
});
|
|
|
|
// Reset to the search field
|
|
Mousetrap.bind("r", function(e) {
|
|
e.preventDefault();
|
|
var reset = $(".filter-reset").data("filter");
|
|
|
|
$("#form-search").val(reset);
|
|
|
|
if ($('#board').length) {
|
|
self.app.board.reloadFilters(reset);
|
|
}
|
|
else {
|
|
$("form.search").submit();
|
|
}
|
|
});
|
|
};
|