Loading openflexure_microscope/api/static/src/components/modalComponents/calibrationModal.vue +5 −5 Original line number Diff line number Diff line Loading @@ -92,9 +92,9 @@ <p>Once you're ready, click auto-calibrate.</p> <cameraStageMappingSettings <CSMCalibrationSettings :show-extra-settings="false" ></cameraStageMappingSettings> ></CSMCalibrationSettings> </div> </div> Loading Loading @@ -148,8 +148,8 @@ <script> import axios from "axios"; import cameraCalibrationSettings from "../viewComponents/settingsComponents/cameraCalibrationSettings.vue"; import cameraStageMappingSettings from "../viewComponents/settingsComponents/cameraStageMappingSettings.vue"; import cameraCalibrationSettings from "../viewComponents/settingsComponents/cameraSettingsComponents/cameraCalibrationSettings.vue"; import CSMCalibrationSettings from "../viewComponents/settingsComponents/CSMSettingsComponents/CSMCalibrationSettings.vue"; import miniStreamDisplay from "../viewComponents/miniStreamDisplay.vue"; export default { Loading @@ -157,7 +157,7 @@ export default { components: { cameraCalibrationSettings, cameraStageMappingSettings, CSMCalibrationSettings, miniStreamDisplay }, Loading openflexure_microscope/api/static/src/components/viewComponents/settingsComponents/CSMSettings.vue 0 → 100644 +156 −0 Original line number Diff line number Diff line <template> <div id="CSMSettings"> <CSMCalibrationSettings /> <div id="mini-stream"> <miniStreamDisplay /> </div> </div> </template> <script> import axios from "axios"; import CSMCalibrationSettings from "./CSMSettingsComponents/CSMCalibrationSettings.vue"; import miniStreamDisplay from "../miniStreamDisplay.vue"; // Export main app export default { name: "CSMSettings", components: { CSMCalibrationSettings, miniStreamDisplay }, props: { showExtraSettings: { type: Boolean, required: false, default: true } }, data: function() { return { settings: null, recalibrationLinks: {}, isCalibrating: false, dataAvailable: false }; }, computed: { settingsUri: function() { return `${this.$store.getters.baseUri}/api/v2/instrument/settings`; }, pluginsUri: function() { return `${this.$store.getters.baseUri}/api/v2/extensions`; } }, mounted() { this.updateSettings(); this.updateRecalibrationLinks(); }, methods: { updateSettings: function() { // Update links axios .get(this.settingsUri) .then(response => { this.settings = response.data.extensions["org.openflexure.camera_stage_mapping"]; }) .catch(error => { this.modalError(error); // Let mixin handle error this.settings = {}; }); }, 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 .then(response => { var plugins = response.data; var foundExtension = plugins.find( e => e.title === "org.openflexure.camera_stage_mapping" ); // if camera-stage mapping extension is enabled if (foundExtension) { // Get plugin action link this.recalibrationLinks = foundExtension.links; // Update whether calibration data is available this.updateCalibrationDataAvailability(); } else { this.recalibrationLinks = {}; } }) .catch(error => { this.modalError(error); // Let mixin handle error }); }, onRecalibrateResponse: function() { this.modalNotify("Finished stage-to-camera calibration."); // Update local settings this.updateSettings(); }, onRecalibrateError: function(error) { this.modalError(error); // Let mixin handle error } } }; </script> <style lang="less"> .center-spinner { margin-left: auto; margin-right: auto; } #mini-stream { width: 500px; text-align: center; margin-left: auto; margin-right: auto; margin-top: 50px; } </style> openflexure_microscope/api/static/src/components/viewComponents/settingsComponents/cameraStageMappingSettings.vue→openflexure_microscope/api/static/src/components/viewComponents/settingsComponents/CSMSettingsComponents/CSMCalibrationSettings.vue +4 −10 Original line number Diff line number Diff line <template> <div id="cameraStageMappingSettings"> <div id="CSMCalibrationSettings"> <form @submit.prevent="applyConfigRequest"> <!--Show auto calibrate if default plugin is enabled--> <div v-if="'calibrate_xy' in recalibrationLinks" class="uk-margin-small"> Loading Loading @@ -27,25 +27,19 @@ Download calibration data </button> </form> <div id="mini-stream"> <miniStreamDisplay /> </div> </div> </template> <script> import axios from "axios"; import taskSubmitter from "../../genericComponents/taskSubmitter"; import miniStreamDisplay from "../miniStreamDisplay.vue"; import taskSubmitter from "../../../genericComponents/taskSubmitter"; // Export main app export default { name: "CameraStageMappingSettings", name: "CSMCalibrationSettings", components: { taskSubmitter, miniStreamDisplay taskSubmitter }, props: { Loading openflexure_microscope/api/static/src/components/viewComponents/settingsComponents/cameraSettings.vue +1 −1 Original line number Diff line number Diff line Loading @@ -68,7 +68,7 @@ <script> import axios from "axios"; import cameraCalibrationSettings from "./cameraCalibrationSettings.vue"; import cameraCalibrationSettings from "./cameraSettingsComponents/cameraCalibrationSettings.vue"; import miniStreamDisplay from "../miniStreamDisplay.vue"; // Export main app Loading openflexure_microscope/api/static/src/components/viewComponents/settingsComponents/cameraCalibrationSettings.vue→openflexure_microscope/api/static/src/components/viewComponents/settingsComponents/cameraSettingsComponents/cameraCalibrationSettings.vue +1 −1 Original line number Diff line number Diff line Loading @@ -40,7 +40,7 @@ <script> import axios from "axios"; import taskSubmitter from "../../genericComponents/taskSubmitter"; import taskSubmitter from "../../../genericComponents/taskSubmitter"; // Export main app export default { Loading Loading
openflexure_microscope/api/static/src/components/modalComponents/calibrationModal.vue +5 −5 Original line number Diff line number Diff line Loading @@ -92,9 +92,9 @@ <p>Once you're ready, click auto-calibrate.</p> <cameraStageMappingSettings <CSMCalibrationSettings :show-extra-settings="false" ></cameraStageMappingSettings> ></CSMCalibrationSettings> </div> </div> Loading Loading @@ -148,8 +148,8 @@ <script> import axios from "axios"; import cameraCalibrationSettings from "../viewComponents/settingsComponents/cameraCalibrationSettings.vue"; import cameraStageMappingSettings from "../viewComponents/settingsComponents/cameraStageMappingSettings.vue"; import cameraCalibrationSettings from "../viewComponents/settingsComponents/cameraSettingsComponents/cameraCalibrationSettings.vue"; import CSMCalibrationSettings from "../viewComponents/settingsComponents/CSMSettingsComponents/CSMCalibrationSettings.vue"; import miniStreamDisplay from "../viewComponents/miniStreamDisplay.vue"; export default { Loading @@ -157,7 +157,7 @@ export default { components: { cameraCalibrationSettings, cameraStageMappingSettings, CSMCalibrationSettings, miniStreamDisplay }, Loading
openflexure_microscope/api/static/src/components/viewComponents/settingsComponents/CSMSettings.vue 0 → 100644 +156 −0 Original line number Diff line number Diff line <template> <div id="CSMSettings"> <CSMCalibrationSettings /> <div id="mini-stream"> <miniStreamDisplay /> </div> </div> </template> <script> import axios from "axios"; import CSMCalibrationSettings from "./CSMSettingsComponents/CSMCalibrationSettings.vue"; import miniStreamDisplay from "../miniStreamDisplay.vue"; // Export main app export default { name: "CSMSettings", components: { CSMCalibrationSettings, miniStreamDisplay }, props: { showExtraSettings: { type: Boolean, required: false, default: true } }, data: function() { return { settings: null, recalibrationLinks: {}, isCalibrating: false, dataAvailable: false }; }, computed: { settingsUri: function() { return `${this.$store.getters.baseUri}/api/v2/instrument/settings`; }, pluginsUri: function() { return `${this.$store.getters.baseUri}/api/v2/extensions`; } }, mounted() { this.updateSettings(); this.updateRecalibrationLinks(); }, methods: { updateSettings: function() { // Update links axios .get(this.settingsUri) .then(response => { this.settings = response.data.extensions["org.openflexure.camera_stage_mapping"]; }) .catch(error => { this.modalError(error); // Let mixin handle error this.settings = {}; }); }, 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 .then(response => { var plugins = response.data; var foundExtension = plugins.find( e => e.title === "org.openflexure.camera_stage_mapping" ); // if camera-stage mapping extension is enabled if (foundExtension) { // Get plugin action link this.recalibrationLinks = foundExtension.links; // Update whether calibration data is available this.updateCalibrationDataAvailability(); } else { this.recalibrationLinks = {}; } }) .catch(error => { this.modalError(error); // Let mixin handle error }); }, onRecalibrateResponse: function() { this.modalNotify("Finished stage-to-camera calibration."); // Update local settings this.updateSettings(); }, onRecalibrateError: function(error) { this.modalError(error); // Let mixin handle error } } }; </script> <style lang="less"> .center-spinner { margin-left: auto; margin-right: auto; } #mini-stream { width: 500px; text-align: center; margin-left: auto; margin-right: auto; margin-top: 50px; } </style>
openflexure_microscope/api/static/src/components/viewComponents/settingsComponents/cameraStageMappingSettings.vue→openflexure_microscope/api/static/src/components/viewComponents/settingsComponents/CSMSettingsComponents/CSMCalibrationSettings.vue +4 −10 Original line number Diff line number Diff line <template> <div id="cameraStageMappingSettings"> <div id="CSMCalibrationSettings"> <form @submit.prevent="applyConfigRequest"> <!--Show auto calibrate if default plugin is enabled--> <div v-if="'calibrate_xy' in recalibrationLinks" class="uk-margin-small"> Loading Loading @@ -27,25 +27,19 @@ Download calibration data </button> </form> <div id="mini-stream"> <miniStreamDisplay /> </div> </div> </template> <script> import axios from "axios"; import taskSubmitter from "../../genericComponents/taskSubmitter"; import miniStreamDisplay from "../miniStreamDisplay.vue"; import taskSubmitter from "../../../genericComponents/taskSubmitter"; // Export main app export default { name: "CameraStageMappingSettings", name: "CSMCalibrationSettings", components: { taskSubmitter, miniStreamDisplay taskSubmitter }, props: { Loading
openflexure_microscope/api/static/src/components/viewComponents/settingsComponents/cameraSettings.vue +1 −1 Original line number Diff line number Diff line Loading @@ -68,7 +68,7 @@ <script> import axios from "axios"; import cameraCalibrationSettings from "./cameraCalibrationSettings.vue"; import cameraCalibrationSettings from "./cameraSettingsComponents/cameraCalibrationSettings.vue"; import miniStreamDisplay from "../miniStreamDisplay.vue"; // Export main app Loading
openflexure_microscope/api/static/src/components/viewComponents/settingsComponents/cameraCalibrationSettings.vue→openflexure_microscope/api/static/src/components/viewComponents/settingsComponents/cameraSettingsComponents/cameraCalibrationSettings.vue +1 −1 Original line number Diff line number Diff line Loading @@ -40,7 +40,7 @@ <script> import axios from "axios"; import taskSubmitter from "../../genericComponents/taskSubmitter"; import taskSubmitter from "../../../genericComponents/taskSubmitter"; // Export main app export default { Loading