From 29f881f621b242facdf8389ac9974a07c0b01c2d Mon Sep 17 00:00:00 2001 From: Hoang Pham Date: Thu, 16 May 2024 17:13:46 +0700 Subject: [PATCH] feat: support excalidraw file Signed-off-by: Hoang Pham --- core/img/filetypes/whiteboard.svg | 1 + core/js/mimetype.js | 3 +++ core/js/mimetypelist.js | 2 ++ lib/private/Repair/RepairMimeTypes.php | 12 ++++++++++++ resources/config/mimetypealiases.dist.json | 1 + resources/config/mimetypemapping.dist.json | 1 + 6 files changed, 20 insertions(+) create mode 100644 core/img/filetypes/whiteboard.svg diff --git a/core/img/filetypes/whiteboard.svg b/core/img/filetypes/whiteboard.svg new file mode 100644 index 0000000000000..a5f1e1d88883b --- /dev/null +++ b/core/img/filetypes/whiteboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/core/js/mimetype.js b/core/js/mimetype.js index 13a7ba6f6e53a..5d3c4cb14789f 100644 --- a/core/js/mimetype.js +++ b/core/js/mimetype.js @@ -77,6 +77,7 @@ OC.MimeType = { while (mimeType in OC.MimeTypeList.aliases) { mimeType = OC.MimeTypeList.aliases[mimeType]; } + if (mimeType in OC.MimeType._mimeTypeIcons) { return OC.MimeType._mimeTypeIcons[mimeType]; } @@ -94,8 +95,10 @@ OC.MimeType = { } } if(OCA.Theming && gotIcon === null) { + console.log(mimeType); path = OC.generateUrl('/apps/theming/img/core/filetypes/'); path += OC.MimeType._getFile(mimeType, OC.MimeTypeList.files); + console.log(path); gotIcon = true; } diff --git a/core/js/mimetypelist.js b/core/js/mimetypelist.js index 7caeaa72f90b4..ee40a20877371 100644 --- a/core/js/mimetypelist.js +++ b/core/js/mimetypelist.js @@ -26,6 +26,7 @@ OC.MimeTypeList={ "application/postscript": "image", "application/rss+xml": "application/xml", "application/vnd.android.package-archive": "package/x-generic", + "application/vnd.excalidraw+json": "whiteboard", "application/vnd.lotus-wordpro": "x-office/document", "application/vnd.garmin.tcx+xml": "location", "application/vnd.google-earth.kml+xml": "location", @@ -141,6 +142,7 @@ OC.MimeTypeList={ "text-code", "text-vcard", "video", + "whiteboard", "x-office-document", "x-office-drawing", "x-office-form", diff --git a/lib/private/Repair/RepairMimeTypes.php b/lib/private/Repair/RepairMimeTypes.php index b8254c890a794..6b067432905d6 100644 --- a/lib/private/Repair/RepairMimeTypes.php +++ b/lib/private/Repair/RepairMimeTypes.php @@ -106,6 +106,14 @@ private function updateMimetypes($updatedMimetypes) { return $count; } + private function introduceExcalidrawType() { + $updatedMimetypes = [ + 'excalidraw' => 'application/vnd.excalidraw+json', + ]; + + return $this->updateMimetypes($updatedMimetypes); + } + private function introduceAsciidocType() { $updatedMimetypes = [ 'adoc' => 'text/asciidoc', @@ -334,5 +342,9 @@ public function run(IOutput $out) { if (version_compare($ocVersionFromBeforeUpdate, '29.0.0.10', '<') && $this->introduceReStructuredTextFormatType()) { $out->info('Fixed ReStructured Text mime type'); } + + if (version_compare($ocVersionFromBeforeUpdate, '29.0.0.10', '<') && $this->introduceExcalidrawType()) { + $out->info('Fixed Excalidraw mime type'); + } } } diff --git a/resources/config/mimetypealiases.dist.json b/resources/config/mimetypealiases.dist.json index 40144878465dc..6fe7db76318e9 100644 --- a/resources/config/mimetypealiases.dist.json +++ b/resources/config/mimetypealiases.dist.json @@ -26,6 +26,7 @@ "application/postscript": "image", "application/rss+xml": "application/xml", "application/vnd.android.package-archive": "package/x-generic", + "application/vnd.excalidraw+json": "whiteboard", "application/vnd.lotus-wordpro": "x-office/document", "application/vnd.garmin.tcx+xml": "location", "application/vnd.google-earth.kml+xml": "location", diff --git a/resources/config/mimetypemapping.dist.json b/resources/config/mimetypemapping.dist.json index 3ff4c3c78ad64..49f2a1ea21f93 100644 --- a/resources/config/mimetypemapping.dist.json +++ b/resources/config/mimetypemapping.dist.json @@ -59,6 +59,7 @@ "eps": ["application/postscript"], "epub": ["application/epub+zip"], "erf": ["image/x-dcraw"], + "excalidraw": ["application/vnd.excalidraw+json"], "exe": ["application/x-ms-dos-executable"], "fb2": ["application/x-fictionbook+xml", "text/plain"], "flac": ["audio/flac"],