diff --git a/client/src/components/viewers/controls/FileControlsFullscreen.vue b/client/src/components/viewers/controls/FileControlsFullscreen.vue new file mode 100644 index 00000000000..6c464dab89f --- /dev/null +++ b/client/src/components/viewers/controls/FileControlsFullscreen.vue @@ -0,0 +1,14 @@ + + + + + + + diff --git a/client/src/components/viewers/index.ts b/client/src/components/viewers/index.ts index a38b3657d65..4851d83affc 100644 --- a/client/src/components/viewers/index.ts +++ b/client/src/components/viewers/index.ts @@ -2,9 +2,18 @@ import FileControls from '@/components/viewers/controls/FileControls.vue'; import FileControlsButton from '@/components/viewers/controls/FileControlsButton.vue'; +import FileControlsFullscreen from '@/components/viewers/controls/FileControlsFullscreen.vue'; import FileControlsGroup from '@/components/viewers/controls/FileControlsGroup.vue'; import FileControlsInput from '@/components/viewers/controls/FileControlsInput.vue'; import FileControlsPagination from '@/components/viewers/controls/FileControlsPagination.vue'; import FileControlsZoom from '@/components/viewers/controls/FileControlsZoom.vue'; -export { FileControls, FileControlsButton, FileControlsGroup, FileControlsInput, FileControlsPagination, FileControlsZoom }; +export { + FileControls, + FileControlsButton, + FileControlsFullscreen, + FileControlsGroup, + FileControlsInput, + FileControlsPagination, + FileControlsZoom, +}; diff --git a/client/src/views/viewers/AudioViewer.vue b/client/src/views/viewers/AudioViewer.vue index 5f5a7906042..78c3ae832a8 100644 --- a/client/src/views/viewers/AudioViewer.vue +++ b/client/src/views/viewers/AudioViewer.vue @@ -17,19 +17,20 @@ /> - + + - --> + @@ -38,6 +39,7 @@ import { onMounted, ref } from 'vue'; import { FileViewerWrapper } from '@/views/viewers'; import { FileContentInfo } from '@/views/viewers/utils'; +import { FileControls, FileControlsFullscreen } from '@/components/viewers'; const props = defineProps<{ contentInfo: FileContentInfo; @@ -95,6 +97,10 @@ function updateMediaData(event: Event): void { // return pause; // } // } + +function toggleFullScreen(): void { + audioElement.value?.requestFullscreen(); +} diff --git a/client/src/views/viewers/DocumentViewer.vue b/client/src/views/viewers/DocumentViewer.vue index 894dadc390a..48c822dbd65 100644 --- a/client/src/views/viewers/DocumentViewer.vue +++ b/client/src/views/viewers/DocumentViewer.vue @@ -5,11 +5,17 @@ + @@ -17,6 +23,7 @@ import { ref, onMounted } from 'vue'; import { FileViewerWrapper } from '@/views/viewers'; import { FileContentInfo } from '@/views/viewers/utils'; +import { FileControls, FileControlsFullscreen } from '@/components/viewers'; import mammoth from 'mammoth'; import { MsSpinner } from 'megashark-lib'; @@ -26,6 +33,7 @@ const props = defineProps<{ const loading = ref(true); const htmlContent = ref(''); +const document = ref(); onMounted(async () => { loading.value = true; @@ -33,6 +41,10 @@ onMounted(async () => { htmlContent.value = result.value; loading.value = false; }); + +function toggleFullScreen(): void { + document.value?.requestFullscreen(); +} diff --git a/client/src/views/viewers/ImageViewer.vue b/client/src/views/viewers/ImageViewer.vue index 72f9766c327..ad245f35714 100644 --- a/client/src/views/viewers/ImageViewer.vue +++ b/client/src/views/viewers/ImageViewer.vue @@ -5,6 +5,7 @@ @@ -14,6 +15,7 @@ @change="onChange" ref="zoomControl" /> + @@ -21,7 +23,7 @@