diff --git a/www/admin/inner.js b/www/admin/inner.js index 103796555..9f5be5895 100644 --- a/www/admin/inner.js +++ b/www/admin/inner.js @@ -45,7 +45,6 @@ define([ Flatpickr ) { - document.title = Messages.adminPage; var APP = { 'instanceStatus': {} }; diff --git a/www/calendar/inner.html b/www/calendar/inner.html index c6a007329..79d2d6b34 100644 --- a/www/calendar/inner.html +++ b/www/calendar/inner.html @@ -1,7 +1,6 @@ - diff --git a/www/calendar/inner.js b/www/calendar/inner.js index 3d5362f5a..60a7d587c 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -54,7 +54,6 @@ define([ Share, Access, Properties ) { - document.title = Messages.calendar; var SaveAs = window.saveAs; var APP = window.APP = { calendars: {} diff --git a/www/code/inner.js b/www/code/inner.js index bcece0c6c..7a1daa741 100644 --- a/www/code/inner.js +++ b/www/code/inner.js @@ -62,9 +62,6 @@ define([ Messages, CMeditor) { - Messages.application = "Application"; // XXX - Messages.cryptpad_title = "CryptPad"; // XXX - document.title = Messages.type.code + " " + Messages.application + " - " + Messages.cryptpad_title; window.CodeMirror = CMeditor; var MEDIA_TAG_MODES = Object.freeze([ diff --git a/www/common/drive-ui.js b/www/common/drive-ui.js index 933e879f9..336d72ca5 100644 --- a/www/common/drive-ui.js +++ b/www/common/drive-ui.js @@ -2695,7 +2695,7 @@ define([ gridIcon, listIcon ])); - $button.attr('aria-label', 'View Mode Button'); + $button.attr('aria-label', 'View Mode Button'); // XXX missing key? var $gridIcon = $(gridIcon); var $listIcon = $(listIcon); var showMode = function (mode) { diff --git a/www/common/onlyoffice/inner.js b/www/common/onlyoffice/inner.js index 0f5b65edb..a5d93e629 100644 --- a/www/common/onlyoffice/inner.js +++ b/www/common/onlyoffice/inner.js @@ -662,23 +662,17 @@ define([ var loadInitDocument = function (type, useNewDefault) { var newText; - Messages.application = "Application"; // XXX - Messages.cryptpad_title = "CryptPad"; // XXX switch (type) { case 'sheet' : - document.title = Messages.type.sheet + " " + Messages.application + " - " + Messages.cryptpad_title; newText = EmptyCell(useNewDefault); break; case 'doc': - document.title = Messages.type.doc + " " + Messages.application + " - " + Messages.cryptpad_title; newText = EmptyDoc(); break; case 'presentation': - document.title = Messages.type.presentation + " " + Messages.application + " - " + Messages.cryptpad_title; newText = EmptySlide(); break; default: - document.title = Messages.application + " - " + Messages.cryptpad_title; newText = ''; } return new Blob([newText], {type: 'text/plain'}); diff --git a/www/common/sframe-common-outer.js b/www/common/sframe-common-outer.js index 70486ce84..afd65b888 100644 --- a/www/common/sframe-common-outer.js +++ b/www/common/sframe-common-outer.js @@ -73,7 +73,6 @@ define([ ApiConfig.httpSafeOrigin + (pathname || window.location.pathname) + 'inner.html?' + requireConfig.urlArgs + '#' + encodeURIComponent(JSON.stringify(req))); $i.attr('allowfullscreen', 'true'); - // $i.attr('title', 'iframe'); // XXX to be fixed $('iframe-placeholder').after($i).remove(); // This is a cheap trick to avoid loading sframe-channel in parallel with the @@ -1230,6 +1229,8 @@ define([ }; addCommonRpc(sframeChan, isSafe); + var SecureModal = {}; + var currentTitle; var currentTabTitle; var titleSuffix = (Utils.Util.find(Utils, ['Instance','name','default']) || '').trim(); @@ -1237,12 +1238,16 @@ define([ titleSuffix = window.location.hostname; } var setDocumentTitle = function () { + var newTitle; if (!currentTabTitle) { - document.title = currentTitle || 'CryptPad'; - return; + newTitle = currentTitle || 'CryptPad'; + } else { + var title = currentTabTitle.replace(/\{title\}/g, currentTitle || 'CryptPad'); + newTitle = title + ' - ' + titleSuffix; } - var title = currentTabTitle.replace(/\{title\}/g, currentTitle || 'CryptPad'); - document.title = title + ' - ' + titleSuffix; + document.title = newTitle; + sframeChan.event('EV_IFRAME_TITLE', newTitle); + if (SecureModal.modal) { SecureModal.modal.setTitle(newTitle); } }; var setPadTitle = function (data, cb) { @@ -1513,7 +1518,6 @@ define([ }); // Secure modal - var SecureModal = {}; // Create or display the iframe and modal var getPropChannels = function () { var channels = {}; @@ -1558,8 +1562,12 @@ define([ if (!cfg.hidden) { SecureModal.modal.refresh(cfg, function () { SecureModal.$iframe.show(); + setDocumentTitle(); }); } else { + SecureModal.modal.refresh(cfg, function () { + setDocumentTitle(); + }); SecureModal.$iframe.hide(); return; } diff --git a/www/common/sframe-common.js b/www/common/sframe-common.js index 35f51ef03..6f989ed57 100644 --- a/www/common/sframe-common.js +++ b/www/common/sframe-common.js @@ -995,6 +995,10 @@ define([ UI.alert(Messages.chrome68); }); + ctx.sframeChan.on('EV_IFRAME_TITLE', function (title) { + document.title = title; + }); + funcs.isPadStored(function (err, val) { if (err || !val) { return; } UIElements.displayCrowdfunding(funcs); diff --git a/www/contacts/inner.html b/www/contacts/inner.html index 4ab34d03c..9a3d42352 100644 --- a/www/contacts/inner.html +++ b/www/contacts/inner.html @@ -1,7 +1,6 @@ - diff --git a/www/contacts/inner.js b/www/contacts/inner.js index 2f3b3592a..7abb480cd 100644 --- a/www/contacts/inner.js +++ b/www/contacts/inner.js @@ -24,7 +24,6 @@ define([ UI ) { - document.title = Messages.contacts_title; var APP = {}; var common; diff --git a/www/diagram/inner.js b/www/diagram/inner.js index 615c0fd27..3b05c261e 100644 --- a/www/diagram/inner.js +++ b/www/diagram/inner.js @@ -12,9 +12,6 @@ define([ Messages, pako, X2JS) { - Messages.application = "Application"; // XXX - Messages.cryptpad_title = "CryptPad"; // XXX - document.title = Messages.type.diagram + " " + Messages.application + " - " + Messages.cryptpad_title; const Nacl = window.nacl; // As described here: https://drawio-app.com/extracting-the-xml-from-mxfiles/ diff --git a/www/drive/inner.js b/www/drive/inner.js index cb40ff110..91ee3c3c1 100644 --- a/www/drive/inner.js +++ b/www/drive/inner.js @@ -31,7 +31,6 @@ define([ AppConfig, Messages) { - document.title = Messages.settings_cat_drive; var APP = {}; var SHARED_FOLDER_NAME = Messages.fm_sharedFolderName; diff --git a/www/form/inner.js b/www/form/inner.js index 1a8d87cdf..67ec6edf4 100644 --- a/www/form/inner.js +++ b/www/form/inner.js @@ -75,9 +75,6 @@ define([ Sortable ) { - Messages.application = "Application"; // XXX - Messages.cryptpad_title = "CryptPad"; // XXX - document.title = Messages.type.form + " " + Messages.application + " - " + Messages.cryptpad_title; var APP = window.APP = { blocks: {} }; diff --git a/www/kanban/inner.js b/www/kanban/inner.js index 589fdc0fd..ed056f371 100644 --- a/www/kanban/inner.js +++ b/www/kanban/inner.js @@ -52,9 +52,6 @@ define([ jKanban, Export) { - Messages.application = "Application"; // XXX - Messages.cryptpad_title = "CryptPad"; // XXX - document.title = Messages.type.kanban + " " + Messages.application + " - " + Messages.cryptpad_title; var verbose = function (x) { console.log(x); }; verbose = function () {}; // comment out to enable verbose logging var onRedraw = Util.mkEvent(); diff --git a/www/pad/inner.js b/www/pad/inner.js index 9f223094f..39216c281 100644 --- a/www/pad/inner.js +++ b/www/pad/inner.js @@ -75,9 +75,6 @@ define([ AppConfig, Test */ ) { - Messages.application = "Application"; // XXX - Messages.cryptpad_title = "CryptPad"; // XXX - document.title = Messages.type.pad + " " + Messages.application + " - " + Messages.cryptpad_title; var DiffDom = window.diffDOM; var slice = function(coll) { diff --git a/www/profile/inner.html b/www/profile/inner.html index 5b44dc1ae..a8f1196ec 100644 --- a/www/profile/inner.html +++ b/www/profile/inner.html @@ -1,7 +1,6 @@ - diff --git a/www/profile/inner.js b/www/profile/inner.js index 3f4f6117c..3336f6eb2 100644 --- a/www/profile/inner.js +++ b/www/profile/inner.js @@ -49,7 +49,6 @@ define([ CodeMirror ) { - document.title = Messages.profileButton; var APP = window.APP = { _onRefresh: [] }; diff --git a/www/secureiframe/main.js b/www/secureiframe/main.js index b5d717753..071d9138b 100644 --- a/www/secureiframe/main.js +++ b/www/secureiframe/main.js @@ -187,8 +187,12 @@ define([ sframeChan.event('EV_REFRESH', data); cb(); }; + var setTitle = function (title) { + sframeChan.event('EV_IFRAME_TITLE', title); + }; return { - refresh: refresh + refresh: refresh, + setTitle: setTitle }; }; return { diff --git a/www/settings/inner.html b/www/settings/inner.html index 85cdf199c..a8c1929ad 100644 --- a/www/settings/inner.html +++ b/www/settings/inner.html @@ -1,7 +1,6 @@ - diff --git a/www/settings/inner.js b/www/settings/inner.js index 690175748..9b304a2dd 100644 --- a/www/settings/inner.js +++ b/www/settings/inner.js @@ -41,7 +41,6 @@ define([ Constants, Login ) { - document.title = Messages.settings_title; var saveAs = window.saveAs; var APP = window.APP = {}; diff --git a/www/slide/inner.js b/www/slide/inner.js index 542f71fde..0b8476651 100644 --- a/www/slide/inner.js +++ b/www/slide/inner.js @@ -59,9 +59,6 @@ define([ Messages, CMeditor) { - Messages.application = "Application"; // XXX - Messages.cryptpad_title = "CryptPad"; // XXX - document.title = Messages.type.slide + " " + Messages.application + " - " + Messages.cryptpad_title; window.CodeMirror = CMeditor; var SLIDE_BACKCOLOR_ID = "cp-app-slide-toolbar-backcolor"; diff --git a/www/teams/inner.js b/www/teams/inner.js index b51c149f9..eb010e305 100644 --- a/www/teams/inner.js +++ b/www/teams/inner.js @@ -48,7 +48,6 @@ define([ Backup, Messages) { - document.title = Messages.type.teams; var APP = { teams: {} };