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, } }