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 },