From 70f9146a964c86071d3c72bc5267e6de7fc895be Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Sun, 20 Feb 2022 00:56:08 -0500 Subject: [PATCH] add remote workspace load (cors req'd) --- src/kiri/init.js | 5 +++++ src/kiri/settings.js | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/kiri/init.js b/src/kiri/init.js index db0c11f0..814abd82 100644 --- a/src/kiri/init.js +++ b/src/kiri/init.js @@ -2507,6 +2507,11 @@ console.log({octoprint:ohost}); } + // load workspace from url + if (SETUP.wrk) { + api.settings.import_url(`${proto}//${SETUP.wrk[0]}`, true); + } + // bind this to UI so main can call it on settings import ui.sync = function() { const current = settings(); diff --git a/src/kiri/settings.js b/src/kiri/settings.js index 002e883a..aacd984c 100644 --- a/src/kiri/settings.js +++ b/src/kiri/settings.js @@ -575,6 +575,15 @@ function settingsImport(data, ask) { } } +function settingsImportUrl(url, ask) { + fetch(url).then(r => r.arrayBuffer()).then(a => { + settingsImport(a, ask); + }).catch(error => { + console.log({workspace_url: url, error: error.message || error}); + api.show.alert('workspace load failed'); + }); +} + function settingsImportZip(data, ask) { let alert = api.show.alert("Importing Workspace"); JSZip.loadAsync(data).then(zip => { @@ -679,6 +688,7 @@ api.settings = { get: getSettings, import: settingsImport, import_zip: settingsImportZip, + import_url: settingsImportUrl, import_prusa: settingsPrusaConvert, dev() { return settings.device }, proc() { return settings.process },