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);