mirror of
https://github.com/wekan/wekan.git
synced 2025-12-16 23:40:13 +01:00
This is a generalization of what we had for closing a popup by clicking outside of it. It now works for inlinedForms and detailsPane as well.
44 lines
1.3 KiB
JavaScript
44 lines
1.3 KiB
JavaScript
// XXX Switch to Flow-Router?
|
|
var previousRoute;
|
|
|
|
Router.configure({
|
|
loadingTemplate: 'spinner',
|
|
notFoundTemplate: 'notfound',
|
|
layoutTemplate: 'defaultLayout',
|
|
|
|
onBeforeAction: function() {
|
|
var options = this.route.options;
|
|
|
|
var loggedIn = Tracker.nonreactive(function() {
|
|
return !! Meteor.userId();
|
|
});
|
|
|
|
// Redirect logged in users to Boards view when they try to open Login or
|
|
// signup views.
|
|
if (loggedIn && options.redirectLoggedInUsers) {
|
|
return this.redirect('Boards');
|
|
}
|
|
|
|
// Authenticated
|
|
if (! loggedIn && options.authenticated) {
|
|
return this.redirect('atSignIn');
|
|
}
|
|
|
|
// We want to execute our EscapeActions.executeUpTo method any time the
|
|
// route is changed, but not if the stays the same but only the parameters
|
|
// change (eg when a user is navigation from a card A to a card B). Iron-
|
|
// Router onBeforeAction is a reactive context (which is a bad desig choice
|
|
// as explained in
|
|
// https://github.com/meteorhacks/flow-router#routercurrent-is-evil) so we
|
|
// need to use Tracker.nonreactive
|
|
Tracker.nonreactive(function() {
|
|
if (! options.noEscapeActions &&
|
|
! (previousRoute && previousRoute.options.noEscapeActions))
|
|
EscapeActions.executeAll();
|
|
});
|
|
|
|
previousRoute = this.route;
|
|
|
|
this.next();
|
|
}
|
|
});
|