diff --git a/frontend/src/components/misc/Icon.ts b/frontend/src/components/misc/Icon.ts
index 8a5cab738..56a803f9a 100644
--- a/frontend/src/components/misc/Icon.ts
+++ b/frontend/src/components/misc/Icon.ts
@@ -37,6 +37,7 @@ import {
faEyeSlash,
faFile,
faFileImage,
+ faFilePdf,
faFillDrip,
faFilter,
faForward,
@@ -111,6 +112,7 @@ library.add(faSquareCheck)
library.add(faTable)
library.add(faFile)
library.add(faFileImage)
+library.add(faFilePdf)
library.add(faCheckSquare)
library.add(faStrikethrough)
library.add(faCode)
diff --git a/frontend/src/components/tasks/partials/Attachments.vue b/frontend/src/components/tasks/partials/Attachments.vue
index b246adcd0..3f65bd0a8 100644
--- a/frontend/src/components/tasks/partials/Attachments.vue
+++ b/frontend/src/components/tasks/partials/Attachments.vue
@@ -95,7 +95,7 @@
+
+
+
+
+
@@ -180,7 +193,7 @@ import ProgressBar from '@/components/misc/ProgressBar.vue'
import BaseButton from '@/components/base/BaseButton.vue'
import AttachmentService from '@/services/attachment'
-import {canPreview} from '@/models/attachment'
+import {canPreviewImage, canPreviewPdf} from '@/models/attachment'
import type {IAttachment} from '@/modelTypes/IAttachment'
import type {ITask} from '@/modelTypes/ITask'
@@ -365,10 +378,13 @@ async function deleteAttachment() {
}
const attachmentImageBlobUrl = ref(null)
+const attachmentPdfBlobUrl = ref(null)
async function viewOrDownload(attachment: IAttachment) {
- if (canPreview(attachment)) {
+ if (canPreviewImage(attachment)) {
attachmentImageBlobUrl.value = await attachmentService.getBlobUrl(attachment)
+ } else if (canPreviewPdf(attachment)) {
+ attachmentPdfBlobUrl.value = await attachmentService.getBlobUrl(attachment)
} else {
downloadAttachment(attachment)
}
@@ -576,6 +592,15 @@ defineExpose({
block-size: 100%;
}
+.pdf-preview-iframe {
+ inline-size: 100%;
+ max-inline-size: calc(100% - 4rem);
+ block-size: calc(100vh - var(--modal-content-spacing-tablet));
+ border: none;
+ margin: 0 auto;
+ display: block;
+}
+
.is-task-cover {
background: var(--primary);
color: var(--white);
diff --git a/frontend/src/components/tasks/partials/FilePreview.vue b/frontend/src/components/tasks/partials/FilePreview.vue
index 2aa247baf..78f6a422f 100644
--- a/frontend/src/components/tasks/partials/FilePreview.vue
+++ b/frontend/src/components/tasks/partials/FilePreview.vue
@@ -6,6 +6,17 @@
alt="Attachment preview"
>
+
+
+
+
+