From 1c827be0569c535a451ddd4690c9e0acdb79c079 Mon Sep 17 00:00:00 2001 From: Josh Bird Date: Wed, 28 Feb 2018 14:41:26 -0500 Subject: [PATCH 1/2] Add html rendering --- mfr/server/static/js/mfr.js | 75 +++++++++++++++++++++++++++---------- 1 file changed, 55 insertions(+), 20 deletions(-) diff --git a/mfr/server/static/js/mfr.js b/mfr/server/static/js/mfr.js index 317e7d39f..093f6599c 100644 --- a/mfr/server/static/js/mfr.js +++ b/mfr/server/static/js/mfr.js @@ -75,26 +75,61 @@ self.spinner = _createSpinner(url, imgName); self.init = function () { - self.pymParent = new pym.Parent(self.id, self.url, self.config); - self.pymParent.iframe.setAttribute('allowfullscreen', ''); - self.pymParent.iframe.setAttribute('webkitallowfullscreen', ''); - self.pymParent.iframe.setAttribute('scrolling', 'yes'); - self.pymParent.iframe.setAttribute('sandbox', 'allow-scripts allow-popups allow-same-origin'); - - self.pymParent.el.appendChild(self.spinner); - $(self.pymParent.iframe).on('load', function () { - self.pymParent.el.removeChild(self.spinner); - }); - - self.pymParent.onMessage('embed', function(message) { - _addClass(self.pymParent.el, 'embed-responsive'); - _addClass(self.pymParent.el, message); - _addClass(self.pymParent.iframe, 'embed-responsive-item'); - }); - - self.pymParent.onMessage('location', function(message) { - window.location = message; - }); + + const wb_url = window.contextVars.waterbutlerURL; + const node_id = window.contextVars.node.id; + const provider = window.contextVars.file.provider; + const file_id = window.contextVars.file.id; + const file_name = window.contextVars.file.name; + + const wb_file_url = `${wb_url}/v1/resources/${node_id}/providers/${provider}/${file_id}`; + + const handlers = { + + default: function() { + + self.pymParent = new pym.Parent(self.id, self.url, self.config); + self.pymParent.iframe.setAttribute('allowfullscreen', ''); + self.pymParent.iframe.setAttribute('webkitallowfullscreen', ''); + self.pymParent.iframe.setAttribute('scrolling', 'yes'); + self.pymParent.iframe.setAttribute('sandbox', 'allow-scripts allow-popups allow-same-origin'); + + self.pymParent.el.appendChild(self.spinner); + $(self.pymParent.iframe).on('load', function () { + self.pymParent.el.removeChild(self.spinner); + }); + + self.pymParent.onMessage('embed', function(message) { + _addClass(self.pymParent.el, 'embed-responsive'); + _addClass(self.pymParent.el, message); + _addClass(self.pymParent.iframe, 'embed-responsive-item'); + }); + + self.pymParent.onMessage('location', function(message) { + window.location = message; + }); + }, + + html: function() { + var xhr = new XMLHttpRequest() + xhr.open('GET', uri, true); + xhr.withCredentials = true; + xhr.onreadystatechange = function() { + if (xhr.readyState === 4 && xhr.status === 200) { + const frame = document.createElement("iframe"); + frame.id = "mfrframe"; + document.getElementById("mfrIframe").appendChild(frame); + document.getElementById("mfrframe").src = "data:text/html;charset=utf-8," + escape(xhr.responseText); + document.getElementById("mfrframe").sandbox = 'allow-forms allow-scripts' + } + } + xhr.send() + } + } + + if (!(self.file_ext in handlers)) self.file_ext = "default"; + handlers[self.file_ext](); + }; self.init(); From 137bfa3090d024afd3c15d175d7dc75c069c1fbc Mon Sep 17 00:00:00 2001 From: Josh Bird Date: Wed, 28 Feb 2018 14:48:23 -0500 Subject: [PATCH 2/2] Fix wrong url --- mfr/server/static/js/mfr.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mfr/server/static/js/mfr.js b/mfr/server/static/js/mfr.js index 093f6599c..d7e9e8863 100644 --- a/mfr/server/static/js/mfr.js +++ b/mfr/server/static/js/mfr.js @@ -112,7 +112,7 @@ html: function() { var xhr = new XMLHttpRequest() - xhr.open('GET', uri, true); + xhr.open('GET', wb_file_url, true); xhr.withCredentials = true; xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) {