Skip to content

Commit

Permalink
make flow download code separate utility instead of polyfill
Browse files Browse the repository at this point in the history
  • Loading branch information
HiroyasuNishiyama committed Feb 11, 2021
1 parent 3740c21 commit 3ec37e2
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 34 deletions.
27 changes: 0 additions & 27 deletions packages/node_modules/@node-red/editor-client/src/js/polyfills.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,32 +52,5 @@
Set.prototype = _Set.prototype;
Set.prototype.constructor = Set;
}

if (window.navigator.msSaveBlob) {
// IE does not support data uri scheme for downloading data
window.addEventListener("click", function (ev) {
var tgt = ev.target;
if ((tgt.tagName === "A") &&
tgt.hasAttribute("download") &&
tgt.hasAttribute("href")) {
// partial support of data uri downloading
var filename = tgt.getAttribute("download");
var dataUri = tgt.getAttribute("href");
var match = /^data:([^,]+),(.*)/.exec(dataUri);
if (match) {
ev.preventDefault();
var enc = match[1];
var data = decodeURIComponent(match[2]);
var blob = new Blob([data], {
type: enc,
});
navigator.msSaveBlob(blob, filename);
}
else {
console.log("download not supported:", tgt);
}
}
});
}
}
})();
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,27 @@ RED.clipboard = (function() {

var pendingImportConfig;


function downloadData(file, data) {
if (window.navigator.msSaveBlob) {
// IE11 workaround
// IE does not support data uri scheme for downloading data
var blob = new Blob([data], {
type: "data:text/plain;charset=utf-8"
});
navigator.msSaveBlob(blob, file);
}
else {
var element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(data));
element.setAttribute('download', file);
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
}
}

function setupDialogs() {
dialog = $('<div id="red-ui-clipboard-dialog" class="hide"><form class="dialog-form form-horizontal"></form></div>')
.appendTo("#red-ui-editor")
Expand All @@ -56,13 +77,8 @@ RED.clipboard = (function() {
class: "primary",
text: RED._("clipboard.download"),
click: function() {
var element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent($("#red-ui-clipboard-dialog-export-text").val()));
element.setAttribute('download', "flows.json");
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
var data = $("#red-ui-clipboard-dialog-export-text").val();
downloadData("flows.json", data);
$( this ).dialog( "close" );
}
},
Expand Down

0 comments on commit 3ec37e2

Please sign in to comment.