From 215a1b4f84eb01775354253e0c3cbdb0e1b4ef44 Mon Sep 17 00:00:00 2001 From: David Kaltschmidt Date: Fri, 29 May 2015 15:47:51 +0200 Subject: [PATCH] set and unset window title for details fixes #42 --- client/app/scripts/components/node-details.js | 17 ++++++++++++++++ client/app/scripts/utils/title-utils.js | 20 +++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 client/app/scripts/utils/title-utils.js diff --git a/client/app/scripts/components/node-details.js b/client/app/scripts/components/node-details.js index 36dc8152f..099290317 100644 --- a/client/app/scripts/components/node-details.js +++ b/client/app/scripts/components/node-details.js @@ -2,6 +2,7 @@ const React = require('react'); const NodeDetailsTable = require('./node-details-table'); const NodeColorMixin = require('../mixins/node-color-mixin'); +const TitleUtils = require('../utils/title-utils'); const NodeDetails = React.createClass({ @@ -9,6 +10,14 @@ const NodeDetails = React.createClass({ NodeColorMixin ], + componentDidMount: function() { + this.updateTitle(); + }, + + componentWillUnmount: function() { + TitleUtils.resetTitle(); + }, + render: function() { const node = this.props.details; @@ -36,6 +45,14 @@ const NodeDetails = React.createClass({ ); + }, + + componentDidUpdate: function() { + this.updateTitle(); + }, + + updateTitle: function() { + TitleUtils.setTitle(this.props.details && this.props.details.label_major); } }); diff --git a/client/app/scripts/utils/title-utils.js b/client/app/scripts/utils/title-utils.js new file mode 100644 index 000000000..b2db1680f --- /dev/null +++ b/client/app/scripts/utils/title-utils.js @@ -0,0 +1,20 @@ + +const PREFIX = 'Weave Scope'; +const SEPARATOR = ' - '; + +function setDocumentTitle(title) { + if (title) { + document.title = [PREFIX, title].join(SEPARATOR); + } else { + document.title = PREFIX; + } +} + +function resetDocumentTitle() { + setDocumentTitle(null); +} + +module.exports = { + resetTitle: resetDocumentTitle, + setTitle: setDocumentTitle +};