page-title.js 702 B

1234567891011121314151617181920212223242526272829303132333435
  1. export class PageTitle {
  2. init(indexTitle, forumName) {
  3. this._indexTitle = indexTitle;
  4. this._forumName = forumName;
  5. }
  6. set(title) {
  7. if (!title) {
  8. document.title = this._indexTitle || this._forumName;
  9. return;
  10. }
  11. if (typeof title === 'string') {
  12. title = {title: title};
  13. }
  14. let finalTitle = title.title;
  15. if (title.page) {
  16. let pageLabel = interpolate(gettext('page: %(page)s'), {
  17. page: title.page
  18. }, true);
  19. finalTitle += ' (' + pageLabel + ')';
  20. }
  21. if (title.parent) {
  22. finalTitle += ' | ' + title.parent;
  23. }
  24. document.title = finalTitle + ' | ' + this._forumName;
  25. }
  26. }
  27. export default new PageTitle();