mirror of
https://github.com/wekan/wekan.git
synced 2025-12-20 01:10:12 +01:00
The idea is that by displaying card details in a sidebar stuck on the right of the screen, the mouse had to travel too much before interacting with it. I also don’t want to use the Trello solution (modal) on big screens, because I like the ability to interact with the selected card and with the board at the same time (like in a e-mail client). The solution introduced in this commit consist of opening the card detail in a column next to the minicard list. This commit also fix right sidebar members and labels drag and drop.
50 lines
1.4 KiB
JavaScript
50 lines
1.4 KiB
JavaScript
// XXX Pressing `?` should display a list of all shortcuts available.
|
|
//
|
|
// XXX There is no reason to define these shortcuts globally, they should be
|
|
// attached to a template (most of them will go in the `board` template).
|
|
|
|
// Pressing `Escape` should close the last opened “element” and only the last
|
|
// one -- curently we handle popups and the card detailed view of the sidebar.
|
|
Mousetrap.bind('esc', function() {
|
|
if (currentlyOpenedForm.get() !== null) {
|
|
currentlyOpenedForm.get().close();
|
|
|
|
} else if (Popup.isOpen()) {
|
|
Popup.back();
|
|
|
|
// XXX We should have a higher level API
|
|
} else if (Session.get('currentCard')) {
|
|
Utils.goBoardId(Session.get('currentBoard'));
|
|
}
|
|
});
|
|
|
|
Mousetrap.bind('w', function() {
|
|
Sidebar.toogle();
|
|
});
|
|
|
|
Mousetrap.bind('q', function() {
|
|
var currentBoardId = Session.get('currentBoard');
|
|
var currentUserId = Meteor.userId();
|
|
if (currentBoardId && currentUserId) {
|
|
Filter.members.toogle(currentUserId);
|
|
}
|
|
});
|
|
|
|
Mousetrap.bind('x', function() {
|
|
if (Filter.isActive()) {
|
|
Filter.reset();
|
|
}
|
|
});
|
|
|
|
Mousetrap.bind(['down', 'up'], function(evt, key) {
|
|
if (! Session.get('currentCard')) {
|
|
return;
|
|
}
|
|
|
|
var nextFunc = (key === 'down' ? 'next' : 'prev');
|
|
var nextCard = $('.js-minicard.is-selected')[nextFunc]('.js-minicard').get(0);
|
|
if (nextCard) {
|
|
var nextCardId = Blaze.getData(nextCard)._id;
|
|
Utils.goCardId(nextCardId);
|
|
}
|
|
});
|