diff --git a/src/components/mixins/webcam.ts b/src/components/mixins/webcam.ts index 5f8870f12..0508a3b8d 100644 --- a/src/components/mixins/webcam.ts +++ b/src/components/mixins/webcam.ts @@ -1,4 +1,3 @@ -import Vue from 'vue' import Component from 'vue-class-component' import { mdiAlbum, @@ -10,9 +9,23 @@ import { mdiRaspberryPi, mdiWebcam, } from '@mdi/js' +import { Mixins } from 'vue-property-decorator' +import BaseMixin from '@/components/mixins/base' @Component -export default class WebcamMixin extends Vue { +export default class WebcamMixin extends Mixins(BaseMixin) { + convertUrl(baseUrl: string, printerUrl: string | null) { + let url = new URL(baseUrl, this.hostUrl.toString()) + + // use printerURL if it exists + if (printerUrl !== null) url = new URL(baseUrl, printerUrl) + + // overwrite url to baseUrl, if it is an absolute URL + if (baseUrl.startsWith('http') || baseUrl.startsWith('://')) url = new URL(baseUrl) + + return decodeURIComponent(url.toString()) + } + convertWebcamIcon(iconName: string): string { switch (iconName) { case 'mdiAlbum': diff --git a/src/components/panels/FarmPrinterPanel.vue b/src/components/panels/FarmPrinterPanel.vue index 377782f9e..00125b2c4 100644 --- a/src/components/panels/FarmPrinterPanel.vue +++ b/src/components/panels/FarmPrinterPanel.vue @@ -50,7 +50,7 @@ 'service' in currentWebcam " class="webcamContainer"> - + - + @@ -30,6 +30,7 @@ import WebcamWrapperItem from '@/components/webcams/WebcamWrapperItem.vue' export default class WebcamWrapper extends Mixins(BaseMixin) { @Prop({ type: Object, required: true }) webcam!: GuiWebcamStateWebcam @Prop({ type: Boolean, default: true }) showFps!: Boolean + @Prop({ type: String, default: null }) printerUrl!: string | null get webcams(): GuiWebcamStateWebcam[] { return this.$store.getters['gui/webcams/getWebcams'] diff --git a/src/components/webcams/WebcamWrapperItem.vue b/src/components/webcams/WebcamWrapperItem.vue index ec944e4e4..baee260c6 100644 --- a/src/components/webcams/WebcamWrapperItem.vue +++ b/src/components/webcams/WebcamWrapperItem.vue @@ -1,31 +1,31 @@