浏览代码

Display the board name in the page title

Fixes #364
Maxime Quandalle 9 年之前
父节点
当前提交
b9d20e04f2
共有 4 个文件被更改,包括 27 次插入0 次删除
  1. 1 0
      .eslintrc
  2. 1 0
      .meteor/packages
  3. 2 0
      .meteor/versions
  4. 23 0
      client/config/router.js

+ 1 - 0
.eslintrc

@@ -78,6 +78,7 @@ globals:
   Avatars: true
   BlazeComponent: false
   BlazeLayout: false
+  DocHead: false
   ESSearchResults: false
   FlowRouter: false
   FS: false

+ 1 - 0
.meteor/packages

@@ -50,6 +50,7 @@ alethes:pages
 arillo:flow-router-helpers
 audit-argument-checks
 kadira:blaze-layout
+kadira:dochead
 kadira:flow-router
 meteorhacks:picker
 meteorhacks:subs-manager

+ 2 - 0
.meteor/versions

@@ -60,7 +60,9 @@ http@1.1.1
 id-map@1.0.4
 idmontie:migrations@1.0.0
 jquery@1.11.4
+jsx@0.1.6
 kadira:blaze-layout@2.2.0
+kadira:dochead@1.1.0
 kadira:flow-router@2.7.0
 kenton:accounts-sandstorm@0.1.6
 launch-screen@1.0.4

+ 23 - 0
client/config/router.js

@@ -88,3 +88,26 @@ _.each(redirections, (newPath, oldPath) => {
     }],
   });
 });
+
+// As it is not possible to use template helpers in the page <head> we create a
+// reactive function whose role is to set any page-specific tag in the <head>
+// 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 <meta> 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(' - '));
+  });
+});