From 7bd4a4028b0a140be2dce4be12b3b1fd70bacd24 Mon Sep 17 00:00:00 2001 From: yflory Date: Tue, 27 Aug 2019 15:31:22 +0200 Subject: [PATCH] Fix fileHost again... --- www/code/inner.js | 4 +++- www/common/common-ui-elements.js | 4 ++-- www/common/cryptpad-common.js | 3 ++- www/common/diffMarked.js | 5 +++-- www/common/onlyoffice/inner.js | 3 ++- www/common/sframe-app-framework.js | 2 +- www/common/sframe-common-codemirror.js | 16 ---------------- www/filepicker/inner.js | 4 +++- www/filepicker/main.js | 1 + www/pad/inner.js | 5 ++++- www/slide/inner.js | 4 +++- 11 files changed, 24 insertions(+), 27 deletions(-) diff --git a/www/code/inner.js b/www/code/inner.js index b061e36fa..7f043a9c9 100644 --- a/www/code/inner.js +++ b/www/code/inner.js @@ -272,6 +272,7 @@ define([ var andThen2 = function (editor, CodeMirror, framework, isPresentMode) { var common = framework._.sfCommon; + var privateData = common.getMetadataMgr().getPrivateData(); var previewPane = mkPreviewPane(editor, CodeMirror, framework, isPresentMode); var markdownTb = mkMarkdownTb(editor, framework); @@ -349,7 +350,8 @@ define([ onUploaded: function (ev, data) { var parsed = Hash.parsePadUrl(data.url); var secret = Hash.getSecrets('file', parsed.hash, data.password); - var src = Hash.getBlobPathFromHex(secret.channel); + var fileHost = privateData.fileHost || privateData.origin; + var src = fileHost + Hash.getBlobPathFromHex(secret.channel); var key = Hash.encodeBase64(secret.keys.cryptKey); var mt = ''; editor.replaceSelection(mt); diff --git a/www/common/common-ui-elements.js b/www/common/common-ui-elements.js index fb2580a20..d57eea7a5 100644 --- a/www/common/common-ui-elements.js +++ b/www/common/common-ui-elements.js @@ -1544,7 +1544,7 @@ define([ if (secret.keys && secret.channel) { var hexFileName = secret.channel; var cryptKey = Hash.encodeBase64(secret.keys && secret.keys.cryptKey); - var src = Hash.getBlobPathFromHex(hexFileName); + var src = origin + Hash.getBlobPathFromHex(hexFileName); common.getFileSize(hexFileName, function (e, data) { if (e || !data) { displayDefault(); @@ -1553,7 +1553,7 @@ define([ if (typeof data !== "number") { return void displayDefault(); } if (Util.bytesToMegabytes(data) > 0.5) { return void displayDefault(); } var $img = $('').appendTo($container); - $img.attr('src', origin + src); + $img.attr('src', src); $img.attr('data-crypto-key', 'cryptpad:' + cryptKey); UIElements.displayMediatagImage(common, $img, function (err, $image, img) { if (err) { return void console.error(err); } diff --git a/www/common/cryptpad-common.js b/www/common/cryptpad-common.js index c18ba7411..7af410e9f 100644 --- a/www/common/cryptpad-common.js +++ b/www/common/cryptpad-common.js @@ -572,13 +572,14 @@ define([ }; common.useFile = function (Crypt, cb, optsPut) { + var fileHost = Config.fileHost || window.location.origin; var data = common.fromFileData; var parsed = Hash.parsePadUrl(data.href); var parsed2 = Hash.parsePadUrl(window.location.href); var hash = parsed.hash; var name = data.title; var secret = Hash.getSecrets('file', hash, data.password); - var src = Hash.getBlobPathFromHex(secret.channel); + var src = fileHost + Hash.getBlobPathFromHex(secret.channel); var key = secret.keys && secret.keys.cryptKey; var u8; diff --git a/www/common/diffMarked.js b/www/common/diffMarked.js index 3798c0609..07044f5e2 100644 --- a/www/common/diffMarked.js +++ b/www/common/diffMarked.js @@ -1,5 +1,6 @@ define([ 'jquery', + '/api/config', '/bower_components/marked/marked.min.js', '/common/common-hash.js', '/common/common-util.js', @@ -10,7 +11,7 @@ define([ '/bower_components/diff-dom/diffDOM.js', '/bower_components/tweetnacl/nacl-fast.min.js', 'css!/common/highlight/styles/github.css' -],function ($, Marked, Hash, Util, h, MediaTag, Highlight, Messages) { +],function ($, ApiConfig, Marked, Hash, Util, h, MediaTag, Highlight, Messages) { var DiffMd = {}; var DiffDOM = window.diffDOM; @@ -157,7 +158,7 @@ define([ console.log('DEPRECATED: mediatag using markdown syntax!'); var parsed = Hash.parsePadUrl(href); var secret = Hash.getSecrets('file', parsed.hash); - var src = Hash.getBlobPathFromHex(secret.channel); + var src = (ApiConfig.fileHost || '') +Hash.getBlobPathFromHex(secret.channel); var key = Hash.encodeBase64(secret.keys.cryptKey); var mt = ''; if (mediaMap[src]) { diff --git a/www/common/onlyoffice/inner.js b/www/common/onlyoffice/inner.js index 31436321d..037090c6f 100644 --- a/www/common/onlyoffice/inner.js +++ b/www/common/onlyoffice/inner.js @@ -748,7 +748,8 @@ define([ var secret = Hash.getSecrets('file', parsed.hash); if (!secret || !secret.channel) { return; } var hexFileName = secret.channel; - var src = Hash.getBlobPathFromHex(hexFileName); + var fileHost = privateData.fileHost || privateData.origin; + var src = fileHost + Hash.getBlobPathFromHex(hexFileName); var key = secret.keys && secret.keys.cryptKey; var xhr = new XMLHttpRequest(); xhr.open('GET', src, true); diff --git a/www/common/sframe-app-framework.js b/www/common/sframe-app-framework.js index e5a992343..d4df1abbe 100644 --- a/www/common/sframe-app-framework.js +++ b/www/common/sframe-app-framework.js @@ -465,7 +465,7 @@ define([ if (data.type !== 'file') { console.log('unhandled embed type ' + data.type); return; } var privateDat = cpNfInner.metadataMgr.getPrivateData(); var origin = privateDat.fileHost || privateDat.origin; - var src = data.src = origin + data.src; + var src = data.src = data.src.slice(0,1) === '/' ? data.src : origin + data.src; mediaTagEmbedder($(''), data); } diff --git a/www/common/sframe-common-codemirror.js b/www/common/sframe-common-codemirror.js index f8e60aabe..60940b470 100644 --- a/www/common/sframe-common-codemirror.js +++ b/www/common/sframe-common-codemirror.js @@ -377,22 +377,6 @@ define([ return { content: canonicalize(editor.getValue()) }; }; - exp.mkFileManager = function (framework) { - var fmConfig = { - dropArea: $('.CodeMirror'), - body: $('body'), - onUploaded: function (ev, data) { - var parsed = Hash.parsePadUrl(data.url); - var secret = Hash.getSecrets('file', parsed.hash, data.password); - var src = Hash.getBlobPathFromHex(secret.channel); - var key = Hash.encodeBase64(secret.keys.cryptKey); - var mt = ''; - editor.replaceSelection(mt); - } - }; - framework._.sfCommon.createFileManager(fmConfig); - }; - exp.mkIndentSettings = function (metadataMgr) { var setIndentation = function (units, useTabs, fontSize, spellcheck) { if (typeof(units) !== 'number') { return; } diff --git a/www/filepicker/inner.js b/www/filepicker/inner.js index 0ca8bddcc..aba736916 100644 --- a/www/filepicker/inner.js +++ b/www/filepicker/inner.js @@ -29,6 +29,7 @@ define([ var andThen = function (common) { var metadataMgr = common.getMetadataMgr(); + var privateData = metadataMgr.getPrivateData(); var $body = $('body'); var sframeChan = common.getSframeChannel(); var filters = metadataMgr.getPrivateData().types; @@ -41,7 +42,8 @@ define([ hideFileDialog(); if (parsed.type === 'file') { var secret = Hash.getSecrets('file', parsed.hash, data.password); - var src = Hash.getBlobPathFromHex(secret.channel); + var fileHost = privateData.fileHost || privateData.origin; + var src = fileHost + Hash.getBlobPathFromHex(secret.channel); var key = Hash.encodeBase64(secret.keys.cryptKey); sframeChan.event("EV_FILE_PICKED", { type: parsed.type, diff --git a/www/filepicker/main.js b/www/filepicker/main.js index f3b85d7b5..d6017c2dd 100644 --- a/www/filepicker/main.js +++ b/www/filepicker/main.js @@ -83,6 +83,7 @@ define([ }).nThen(function (/*waitFor*/) { metaObj.doc = {}; var additionalPriv = { + fileHost: ApiConfig.fileHost, accountName: Utils.LocalStore.getAccountName(), origin: window.location.origin, pathname: window.location.pathname, diff --git a/www/pad/inner.js b/www/pad/inner.js index f201b8720..b3e687228 100644 --- a/www/pad/inner.js +++ b/www/pad/inner.js @@ -457,6 +457,8 @@ define([ framework._.sfCommon.addShortcuts(ifrWindow); + var privateData = framework._.sfCommon.getMetadataMgr().getPrivateData(); + var documentBody = ifrWindow.document.body; var observer = new MutationObserver(function (muts) { @@ -702,7 +704,8 @@ define([ onUploaded: function (ev, data) { var parsed = Hash.parsePadUrl(data.url); var secret = Hash.getSecrets('file', parsed.hash, data.password); - var src = Hash.getBlobPathFromHex(secret.channel); + var fileHost = privateData.fileHost || privateData.origin; + var src = fileHost + Hash.getBlobPathFromHex(secret.channel); var key = Hash.encodeBase64(secret.keys.cryptKey); var mt = ''; // MEDIATAG diff --git a/www/slide/inner.js b/www/slide/inner.js index b5171d94f..6d97bf8e5 100644 --- a/www/slide/inner.js +++ b/www/slide/inner.js @@ -438,6 +438,7 @@ define([ var andThen2 = function (editor, CodeMirror, framework, isPresentMode) { var common = framework._.sfCommon; + var privateData = common.getMetadataMgr().getPrivateData(); var $contentContainer = $('#cp-app-slide-editor'); var $modal = $('#cp-app-slide-modal'); @@ -515,7 +516,8 @@ define([ onUploaded: function (ev, data) { var parsed = Hash.parsePadUrl(data.url); var secret = Hash.getSecrets('file', parsed.hash, data.password); - var src = Hash.getBlobPathFromHex(secret.channel); + var fileHost = privateData.fileHost || privateData.origin; + var src = fileHost + Hash.getBlobPathFromHex(secret.channel); var key = Hash.encodeBase64(secret.keys.cryptKey); var mt = ''; editor.replaceSelection(mt);