diff --git a/src/public/javascripts/dialogs/export.js b/src/public/javascripts/dialogs/export.js index 3e8eb396a..fc8b392be 100644 --- a/src/public/javascripts/dialogs/export.js +++ b/src/public/javascripts/dialogs/export.js @@ -74,7 +74,7 @@ $form.on('submit', () => { function exportBranch(branchId, type, format, version) { taskId = utils.randomString(10); - const url = utils.getHost() + `/api/notes/${branchId}/export/${type}/${format}/${version}/${taskId}`; + const url = utils.getUrlForDownload(`api/notes/${branchId}/export/${type}/${format}/${version}/${taskId}`); utils.download(url); } diff --git a/src/public/javascripts/dialogs/note_revisions.js b/src/public/javascripts/dialogs/note_revisions.js index 952ec04d4..8656bfe9b 100644 --- a/src/public/javascripts/dialogs/note_revisions.js +++ b/src/public/javascripts/dialogs/note_revisions.js @@ -102,7 +102,9 @@ async function setContentPane() { const $downloadButton = $(''); $downloadButton.on('click', () => { - utils.download(utils.getHost() + `/api/notes/${revisionItem.noteId}/revisions/${revisionItem.noteRevisionId}/download`); + const url = utils.getUrlForDownload(`api/notes/${revisionItem.noteId}/revisions/${revisionItem.noteRevisionId}/download`); + + utils.download(url); }); $titleButtons.append($downloadButton); diff --git a/src/public/javascripts/services/note_detail_book.js b/src/public/javascripts/services/note_detail_book.js index c4445323d..09ed86bf5 100644 --- a/src/public/javascripts/services/note_detail_book.js +++ b/src/public/javascripts/services/note_detail_book.js @@ -185,8 +185,7 @@ class NoteDetailBook { } else if (type === 'file') { function getFileUrl() { - // electron needs absolute URL so we extract current host, port, protocol - return utils.getHost() + "/api/notes/" + note.noteId + "/download"; + return utils.getUrlForDownload("api/notes/" + note.noteId + "/download"); } const $downloadButton = $(''); diff --git a/src/public/javascripts/services/note_detail_file.js b/src/public/javascripts/services/note_detail_file.js index 9724ac376..0a3dea656 100644 --- a/src/public/javascripts/services/note_detail_file.js +++ b/src/public/javascripts/services/note_detail_file.js @@ -87,8 +87,7 @@ class NoteDetailFile { } getFileUrl() { - // electron needs absolute URL so we extract current host, port, protocol - return utils.getHost() + "/api/notes/" + this.ctx.note.noteId + "/download"; + return utils.getUrlForDownload("api/notes/" + this.ctx.note.noteId + "/download"); } show() {} diff --git a/src/public/javascripts/services/note_detail_image.js b/src/public/javascripts/services/note_detail_image.js index d0baaaa2f..f877dce48 100644 --- a/src/public/javascripts/services/note_detail_image.js +++ b/src/public/javascripts/services/note_detail_image.js @@ -98,8 +98,7 @@ class NoteDetailImage { } getFileUrl() { - // electron needs absolute URL so we extract current host, port, protocol - return utils.getHost() + `/api/notes/${this.ctx.note.noteId}/download`; + return utils.getUrlForDownload(`api/notes/${this.ctx.note.noteId}/download`); } show() {} diff --git a/src/public/javascripts/services/utils.js b/src/public/javascripts/services/utils.js index 8d252f666..f5f3aafbd 100644 --- a/src/public/javascripts/services/utils.js +++ b/src/public/javascripts/services/utils.js @@ -214,6 +214,20 @@ async function clearBrowserCache() { } } +/** + * @param url - should be without initial slash!!! + */ +function getUrlForDownload(url) { + if (isElectron()) { + // electron needs absolute URL so we extract current host, port, protocol + return getHost() + '/' + url; + } + else { + // web server can be deployed on subdomain so we need to use relative path + return url; + } +} + export default { reloadApp, parseDate, @@ -230,7 +244,6 @@ export default { escapeHtml, stopWatch, formatLabel, - getHost, download, toObject, randomString, @@ -245,5 +258,6 @@ export default { getMimeTypeClass, closeActiveDialog, isHtmlEmpty, - clearBrowserCache + clearBrowserCache, + getUrlForDownload }; \ No newline at end of file diff --git a/src/public/javascripts/setup.js b/src/public/javascripts/setup.js index 45a633dc4..e7cf7c7e1 100644 --- a/src/public/javascripts/setup.js +++ b/src/public/javascripts/setup.js @@ -76,12 +76,12 @@ function SetupModel() { } // not using server.js because it loads too many dependencies - $.post('/api/setup/new-document', { + $.post('api/setup/new-document', { username: username, password: password1, theme: theme }).then(() => { - window.location.replace("/"); + window.location.replace("./"); }); } else if (this.setupType() === 'sync-from-server') { @@ -128,10 +128,10 @@ function SetupModel() { } async function checkOutstandingSyncs() { - const { stats, initialized } = await $.get('/api/sync/stats'); + const { stats, initialized } = await $.get('api/sync/stats'); if (initialized) { - window.location.replace("/"); + window.location.replace("./"); } const totalOutstandingSyncs = stats.outstandingPushes + stats.outstandingPulls; diff --git a/src/views/setup.ejs b/src/views/setup.ejs index 709bf618d..0a2454290 100644 --- a/src/views/setup.ejs +++ b/src/views/setup.ejs @@ -138,7 +138,6 @@