diff --git a/src/components/viewComponents/settingsComponents/cameraStageMappingSettings.vue b/src/components/viewComponents/settingsComponents/cameraStageMappingSettings.vue index 61995262..c67b4b89 100644 --- a/src/components/viewComponents/settingsComponents/cameraStageMappingSettings.vue +++ b/src/components/viewComponents/settingsComponents/cameraStageMappingSettings.vue @@ -9,6 +9,7 @@
+ Download calibration data +
@@ -41,7 +51,8 @@ export default { return { settings: null, recalibrationLinks: {}, - isCalibrating: false + isCalibrating: false, + dataAvailable: false }; }, @@ -61,6 +72,7 @@ export default { methods: { updateSettings: function() { + // Update links axios .get(this.settingsUri) .then(response => { @@ -73,6 +85,44 @@ export default { }); }, + updateCalibrationDataAvailability: function() { + if ("get_calibration" in this.recalibrationLinks) { + axios + .get(this.recalibrationLinks.get_calibration.href) + .then(response => { + console.log("CSM data:"); + console.log(response.data); + if (Object.keys(response.data).length === 0) { + this.dataAvailable = false; + } else { + this.dataAvailable = true; + } + }) + .catch(error => { + this.modalError(error); // Let mixin handle error + }); + } + }, + + getCalibrationData: function() { + axios + .get(this.recalibrationLinks.get_calibration.href) + .then(response => { + if (response.data != {}) { + const data = JSON.stringify(response.data); + const url = window.URL.createObjectURL(new Blob([data])); + const link = document.createElement("a"); + link.href = url; + link.setAttribute("download", "csm_calibration.json"); + document.body.appendChild(link); + link.click(); + } + }) + .catch(error => { + this.modalError(error); // Let mixin handle error + }); + }, + updateRecalibrationLinks: function() { axios .get(this.pluginsUri) // Get a list of plugins @@ -85,6 +135,8 @@ export default { if (foundExtension) { // Get plugin action link this.recalibrationLinks = foundExtension.links; + // Update whether calibration data is available + this.updateCalibrationDataAvailability(); } else { this.recalibrationLinks = {}; }