mirror of
https://github.com/wekan/wekan.git
synced 2025-09-22 01:50:48 +02:00

This new draft saving system is currently only implemented for the card description and comment. We need better a component inheritance/composition model to support this for all editable fields. Fixes #186
86 lines
2.2 KiB
JavaScript
86 lines
2.2 KiB
JavaScript
let previousPath;
|
|
FlowRouter.triggers.exit([({path}) => {
|
|
previousPath = path;
|
|
}]);
|
|
|
|
FlowRouter.route('/', {
|
|
name: 'home',
|
|
triggersEnter: [AccountsTemplates.ensureSignedIn],
|
|
action: function() {
|
|
EscapeActions.executeAll();
|
|
Filter.reset();
|
|
|
|
Session.set('currentBoard', null);
|
|
Session.set('currentCard', null);
|
|
|
|
BlazeLayout.render('defaultLayout', { content: 'boardList' });
|
|
}
|
|
});
|
|
|
|
FlowRouter.route('/b/:id/:slug', {
|
|
name: 'board',
|
|
action: function(params) {
|
|
let currentBoard = params.id;
|
|
// If we close a card, we'll execute again this route action but we don't
|
|
// want to excape every current actions (filters, etc.)
|
|
if (Session.get('currentBoard') !== currentBoard) {
|
|
EscapeActions.executeAll();
|
|
}
|
|
|
|
Session.set('currentBoard', currentBoard);
|
|
Session.set('currentCard', null);
|
|
|
|
BlazeLayout.render('defaultLayout', { content: 'board' });
|
|
}
|
|
});
|
|
|
|
FlowRouter.route('/b/:boardId/:slug/:cardId', {
|
|
name: 'card',
|
|
action: function(params) {
|
|
EscapeActions.executeUpTo('inlinedForm');
|
|
Session.set('currentBoard', params.boardId);
|
|
Session.set('currentCard', params.cardId);
|
|
|
|
BlazeLayout.render('defaultLayout', { content: 'board' });
|
|
}
|
|
});
|
|
|
|
FlowRouter.route('/shortcuts', {
|
|
name: 'shortcuts',
|
|
action: function(params) {
|
|
const shortcutsTemplate = 'keyboardShortcuts';
|
|
|
|
EscapeActions.executeUpTo('popup-close');
|
|
|
|
if (previousPath) {
|
|
Modal.open(shortcutsTemplate, {
|
|
onCloseGoTo: previousPath
|
|
});
|
|
} else {
|
|
// XXX There is currently no way to escape this page on Sandstorm
|
|
BlazeLayout.render('defaultLayout', { content: shortcutsTemplate });
|
|
}
|
|
}
|
|
});
|
|
|
|
FlowRouter.notFound = {
|
|
action: function() {
|
|
BlazeLayout.render('defaultLayout', { content: 'notFound' });
|
|
}
|
|
}
|
|
|
|
// We maintain a list of redirections to ensure that we don't break old URLs
|
|
// when we change our routing scheme.
|
|
var redirections = {
|
|
'/boards': '/',
|
|
'/boards/:id/:slug': '/b/:id/:slug',
|
|
'/boards/:id/:slug/:cardId': '/b/:id/:slug/:cardId'
|
|
};
|
|
|
|
_.each(redirections, function(newPath, oldPath) {
|
|
FlowRouter.route(oldPath, {
|
|
triggersEnter: [function(context, redirect) {
|
|
redirect(FlowRouter.path(newPath, context.params));
|
|
}]
|
|
});
|
|
});
|