diff --git a/assets/vue/components/basecomponents/ChamiloIcons.js b/assets/vue/components/basecomponents/ChamiloIcons.js
index 90d3061020..77a2a27f6c 100644
--- a/assets/vue/components/basecomponents/ChamiloIcons.js
+++ b/assets/vue/components/basecomponents/ChamiloIcons.js
@@ -55,6 +55,7 @@ export const chamiloIconToClass = {
"file-generic": "mdi mdi-file",
"file-image": "mdi mdi-file-image",
"file-video": "mdi mdi-file-video",
+ "file-audio": "mdi mdi-file-music",
"file-pdf": "mdi mdi-file-pdf-box",
"file-text": "mdi mdi-file-document",
"file-add": "mdi mdi-file-plus",
diff --git a/assets/vue/components/documents/DocumentEntry.vue b/assets/vue/components/documents/DocumentEntry.vue
index 87095e6e93..c6745d6638 100644
--- a/assets/vue/components/documents/DocumentEntry.vue
+++ b/assets/vue/components/documents/DocumentEntry.vue
@@ -39,7 +39,7 @@ const props = defineProps({
})
const cidQuery = useCidReq()
-const {isFile: utilsIsFile, isImage, isVideo} = useFileUtils()
+const {isFile: utilsIsFile, isImage, isVideo, isAudio} = useFileUtils()
const dataType = computed(() => {
if (!utilsIsFile(props.data)) {
@@ -52,6 +52,9 @@ const dataType = computed(() => {
if (isVideo(props.data)) {
return 'video'
}
+ if (isAudio(props.data)) {
+ return 'video'
+ }
return 'iframe';
})
diff --git a/assets/vue/components/documents/ResourceIcon.vue b/assets/vue/components/documents/ResourceIcon.vue
index 334eac1dc8..9689b4e142 100644
--- a/assets/vue/components/documents/ResourceIcon.vue
+++ b/assets/vue/components/documents/ResourceIcon.vue
@@ -19,6 +19,10 @@
v-else-if="'application/pdf' === resourceData.resourceNode.resourceFile.mimeType"
icon="file-pdf"
/>
+
import BaseIcon from "../basecomponents/BaseIcon.vue";
+import {useFileUtils} from "../../composables/fileUtils";
+
+const {isAudio} = useFileUtils()
defineProps({
resourceData: {
diff --git a/assets/vue/composables/fileUtils.js b/assets/vue/composables/fileUtils.js
index 18405cbd34..4128e7226d 100644
--- a/assets/vue/composables/fileUtils.js
+++ b/assets/vue/composables/fileUtils.js
@@ -10,6 +10,12 @@ export function useFileUtils() {
return isFile(fileData) && fileData.resourceNode.resourceFile.video
}
+ const isAudio = (fileData) => {
+ const mimeType = fileData.resourceNode.resourceFile.mimeType
+ const isAudio = mimeType.split("/")[0].toLowerCase() === "audio"
+ return isFile(fileData) && isAudio
+ }
+
const isFile = (fileData) => {
return fileData.resourceNode && fileData.resourceNode.resourceFile
}
@@ -18,5 +24,6 @@ export function useFileUtils() {
isFile,
isImage,
isVideo,
+ isAudio,
}
}