From 6dc7404f23796784c212e6db1b4fca22c7a1ac82 Mon Sep 17 00:00:00 2001 From: Maxime Quandalle Date: Mon, 28 Dec 2015 22:59:39 +0100 Subject: Share the router configuration between the client and the server --- client/config/router.js | 125 ------------------------------------------------ 1 file changed, 125 deletions(-) delete mode 100644 client/config/router.js (limited to 'client/config/router.js') diff --git a/client/config/router.js b/client/config/router.js deleted file mode 100644 index ddd69db4..00000000 --- a/client/config/router.js +++ /dev/null @@ -1,125 +0,0 @@ -let previousPath; -FlowRouter.triggers.exit([({path}) => { - previousPath = path; -}]); - -FlowRouter.route('/', { - name: 'home', - triggersEnter: [AccountsTemplates.ensureSignedIn], - action() { - Session.set('currentBoard', null); - Session.set('currentCard', null); - - Filter.reset(); - EscapeActions.executeAll(); - - BlazeLayout.render('defaultLayout', { - headerBar: 'boardListHeaderBar', - content: 'boardList', - }); - }, -}); - -FlowRouter.route('/b/:id/:slug', { - name: 'board', - action(params) { - const currentBoard = params.id; - const previousBoard = Session.get('currentBoard'); - Session.set('currentBoard', currentBoard); - Session.set('currentCard', null); - - // 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 (previousBoard !== currentBoard) { - EscapeActions.executeAll(); - } else { - EscapeActions.executeUpTo('popup-close'); - } - - BlazeLayout.render('defaultLayout', { - headerBar: 'boardHeaderBar', - content: 'board', - }); - }, -}); - -FlowRouter.route('/b/:boardId/:slug/:cardId', { - name: 'card', - action(params) { - EscapeActions.executeUpTo('inlinedForm'); - - Session.set('currentBoard', params.boardId); - Session.set('currentCard', params.cardId); - - BlazeLayout.render('defaultLayout', { - headerBar: 'boardHeaderBar', - content: 'board', - }); - }, -}); - -FlowRouter.route('/shortcuts', { - name: 'shortcuts', - action() { - const shortcutsTemplate = 'keyboardShortcuts'; - - EscapeActions.executeUpTo('popup-close'); - - if (previousPath) { - Modal.open(shortcutsTemplate, { - header: 'shortcutsModalTitle', - onCloseGoTo: previousPath, - }); - } else { - BlazeLayout.render('defaultLayout', { - headerBar: 'shortcutsHeaderBar', - content: shortcutsTemplate, - }); - } - }, -}); - -FlowRouter.notFound = { - action() { - 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. -const redirections = { - '/boards': '/', - '/boards/:id/:slug': '/b/:id/:slug', - '/boards/:id/:slug/:cardId': '/b/:id/:slug/:cardId', -}; - -_.each(redirections, (newPath, oldPath) => { - FlowRouter.route(oldPath, { - triggersEnter: [(context, redirect) => { - redirect(FlowRouter.path(newPath, context.params)); - }], - }); -}); - -// As it is not possible to use template helpers in the page we create a -// reactive function whose role is to set any page-specific tag in the -// using the `kadira:dochead` package. Currently we only use it to display the -// board title if we are in a board page (see #364) but we may want to support -// some tags in the future. -const appTitle = 'Wekan'; - -// XXX The `Meteor.startup` should not be necessary -- we don't need to wait for -// the complete DOM to be ready to call `DocHead.setTitle`. But the problem is -// that the global variable `Boards` is undefined when this file loads so we -// wait a bit until hopefully all files are loaded. This will be fixed in a -// clean way once Meteor will support ES6 modules -- hopefully in Meteor 1.3. -Meteor.startup(() => { - Tracker.autorun(() => { - const currentBoard = Boards.findOne(Session.get('currentBoard')); - const titleStack = [appTitle]; - if (currentBoard) { - titleStack.push(currentBoard.title); - } - DocHead.setTitle(titleStack.reverse().join(' - ')); - }); -}); -- cgit v1.2.3-1-g7c22