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 @@