Add an API to show a count in the document title

This commit is contained in:
Toby Zerner 2015-08-04 19:04:17 +09:30
parent d5296e9aa5
commit 145b0fb1dc
3 changed files with 25 additions and 1 deletions

View File

@ -184,6 +184,7 @@ export default class DiscussionPage extends mixin(Component, evented) {
this.discussion = discussion;
app.setTitle(discussion.title());
app.setTitleCount(0);
// When the API responds with a discussion, it will also include a number of
// posts. Some of these posts are included because they are on the first

View File

@ -96,6 +96,7 @@ export default class IndexPage extends Component {
};
app.setTitle('');
app.setTitleCount(0);
// Work out the difference between the height of this hero and that of the
// previous hero. Maintain the same scroll position relative to the bottom

View File

@ -107,6 +107,9 @@ export default class App {
* @private
*/
this.requestError = null;
this.title = '';
this.titleCount = 0;
}
/**
@ -139,10 +142,29 @@ export default class App {
* Set the <title> of the page.
*
* @param {String} title
* @param {Boolean} [separator] Whether or not to separate the given title and
* the forum's title.
* @public
*/
setTitle(title) {
document.title = (title ? title + ' - ' : '') + this.forum.attribute('title');
this.title = title;
this.updateTitle();
}
/**
* Set a number to display in the <title> of the page.
*
* @param {Integer} count
*/
setTitleCount(count) {
this.titleCount = count;
this.updateTitle();
}
updateTitle() {
document.title = (this.titleCount ? `(${this.titleCount}) ` : '') +
(this.title ? this.title + ' - ' : '') +
this.forum.attribute('title');
}
/**