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 = {};
}