diff --git a/apiserver/plane/settings/common.py b/apiserver/plane/settings/common.py index 67f51f7bf..15d7a21b3 100644 --- a/apiserver/plane/settings/common.py +++ b/apiserver/plane/settings/common.py @@ -376,10 +376,21 @@ ATTACHMENT_MIME_TYPES = [ "video/x-ms-wmv", # Archives "application/zip", + "application/x-rar", "application/x-rar-compressed", - "application/x-zip-compressed", "application/x-tar", "application/gzip", + "application/x-zip", + "application/x-zip-compressed", + "application/x-7z-compressed", + "application/x-compressed", + "application/x-compressed-tar", + "application/x-compressed-tar-gz", + "application/x-compressed-tar-bz2", + "application/x-compressed-tar-zip", + "application/x-compressed-tar-7z", + "application/x-compressed-tar-rar", + "application/x-compressed-tar-zip", # 3D Models "model/gltf-binary", "model/gltf+json", diff --git a/web/core/components/icons/attachment/attachment-icon.tsx b/web/core/components/icons/attachment/attachment-icon.tsx index 61835abab..e21ae8893 100644 --- a/web/core/components/icons/attachment/attachment-icon.tsx +++ b/web/core/components/icons/attachment/attachment-icon.tsx @@ -10,10 +10,12 @@ import { JpgIcon, PdfIcon, PngIcon, + RarIcon, SheetIcon, SvgIcon, TxtIcon, VideoIcon, + ZipIcon, } from "@/components/icons/attachment"; export const getFileIcon = (fileType: string, size: number = 28) => { @@ -52,6 +54,10 @@ export const getFileIcon = (fileType: string, size: number = 28) => { return ; case "mkv": return ; + case "zip": + return ; + case "rar": + return ; default: return ; diff --git a/web/core/components/icons/attachment/index.ts b/web/core/components/icons/attachment/index.ts index f7f1e6ed3..a2c65ceef 100644 --- a/web/core/components/icons/attachment/index.ts +++ b/web/core/components/icons/attachment/index.ts @@ -18,3 +18,5 @@ export * from "./svg-file-icon"; export * from "./tune-icon"; export * from "./txt-file-icon"; export * from "./video-file-icon"; +export * from "./zip-file-icon"; +export * from "./rar-file-icon"; diff --git a/web/core/components/icons/attachment/rar-file-icon.tsx b/web/core/components/icons/attachment/rar-file-icon.tsx new file mode 100644 index 000000000..0c3dd88e1 --- /dev/null +++ b/web/core/components/icons/attachment/rar-file-icon.tsx @@ -0,0 +1,10 @@ +import React from "react"; +import Image from "next/image"; +// image +import RarFileIcon from "@/public/attachment/rar-icon.png"; +// type +import type { ImageIconPros } from "../types"; + +export const RarIcon: React.FC = ({ width, height }) => ( + RarFileIcon +); diff --git a/web/core/components/icons/attachment/zip-file-icon.tsx b/web/core/components/icons/attachment/zip-file-icon.tsx new file mode 100644 index 000000000..8f5d0388b --- /dev/null +++ b/web/core/components/icons/attachment/zip-file-icon.tsx @@ -0,0 +1,10 @@ +import React from "react"; +import Image from "next/image"; +// image +import ZipFileIcon from "@/public/attachment/zip-icon.png"; +// type +import type { ImageIconPros } from "../types"; + +export const ZipIcon: React.FC = ({ width, height }) => ( + ZipFileIcon +); diff --git a/web/core/components/issues/attachment/attachment-list-item.tsx b/web/core/components/issues/attachment/attachment-list-item.tsx index 027369405..0458f4485 100644 --- a/web/core/components/issues/attachment/attachment-list-item.tsx +++ b/web/core/components/issues/attachment/attachment-list-item.tsx @@ -38,7 +38,7 @@ export const IssueAttachmentsListItem: FC = observer( // derived values const attachment = attachmentId ? getAttachmentById(attachmentId) : undefined; const fileName = getFileName(attachment?.attributes.name ?? ""); - const fileExtension = getFileExtension(attachment?.asset_url ?? ""); + const fileExtension = getFileExtension(attachment?.attributes.name ?? ""); const fileIcon = getFileIcon(fileExtension, 18); const fileURL = getFileURL(attachment?.asset_url ?? ""); // hooks diff --git a/web/public/attachment/rar-icon.png b/web/public/attachment/rar-icon.png new file mode 100644 index 000000000..7305455bd Binary files /dev/null and b/web/public/attachment/rar-icon.png differ diff --git a/web/public/attachment/zip-icon.png b/web/public/attachment/zip-icon.png new file mode 100644 index 000000000..0db1da136 Binary files /dev/null and b/web/public/attachment/zip-icon.png differ