Chamilo is a learning management system focused on ease of use and accessibility
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
chamilo-lms/assets/vue/composables/fileUtils.js

43 lines
1.2 KiB

export function useFileUtils() {
const isFile = (fileData) => {
return fileData.resourceNode && fileData.resourceNode.firstResourceFile
}
const isImage = (fileData) => {
return isFile(fileData) && fileData.resourceNode.firstResourceFile.image
}
const isVideo = (fileData) => {
return isFile(fileData) && fileData.resourceNode.firstResourceFile.video
}
const isAudio = (fileData) => {
const mimeType = fileData.resourceNode.firstResourceFile.mimeType
const isAudio = mimeType.split("/")[0].toLowerCase() === "audio"
return isFile(fileData) && isAudio
}
const isHtml = (fileData) => {
if (!isFile(fileData)) {
return false
}
const mimeType = fileData.resourceNode.firstResourceFile.mimeType
return mimeType.split("/")[1].toLowerCase() === "html"
}
const isPreviewable = (fileData) => {
const mimeType = fileData.resourceNode.firstResourceFile.mimeType.toLowerCase()
return (
isImage(fileData) || isVideo(fileData) || isAudio(fileData) || isHtml(fileData) || mimeType === "application/pdf"
)
}
return {
isFile,
isImage,
isVideo,
isAudio,
isHtml,
isPreviewable,
}
}