Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion assets/vue/components/documents/FormNewDocument.vue
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@

<BaseTinyEditor
v-if="
(item.resourceNode && item.resourceNode.resourceFile && item.resourceNode.resourceFile.text) || item.newDocument
(item.resourceNode && item.resourceNode.firstResourceFile && item.resourceNode.firstResourceFile.text) ||
item.newDocument
"
v-model="item.contentFile"
:title="t('Content')"
Expand Down
38 changes: 19 additions & 19 deletions assets/vue/components/documents/ResourceFileLink.vue
Original file line number Diff line number Diff line change
@@ -1,38 +1,38 @@
<template>
<a
data-fancybox="gallery"
:href="resource.contentUrl"
:data-type="getDataType"
data-fancybox="gallery"
:href="resource.contentUrl"
:data-type="getDataType"
>
<ResourceIcon :resource-data="resource" />
{{ resource.title }}
</a>
</template>

<script>
import ResourceIcon from './ResourceIcon.vue';
import ResourceIcon from "./ResourceIcon.vue"
export default {
name: 'ResourceFileLink',
name: "ResourceFileLink",
components: {
ResourceIcon
ResourceIcon,
},
props: {
resource: {
type: Object,
required: true,
},
},
computed: {
getDataType() {
if (this.resource.resourceNode.resourceFile.image) {
return 'image';
if (this.resource.resourceNode.firstResourceFile.image) {
return "image"
}
if (this.resource.resourceNode.resourceFile.video) {
return 'video';
if (this.resource.resourceNode.firstResourceFile.video) {
return "video"
}

return 'iframe';
}
},
props: {
resource: {
type: Object,
required: true,
}
return "iframe"
},
},
};
}
</script>
16 changes: 8 additions & 8 deletions assets/vue/components/documents/ResourceIcon.vue
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,19 @@
icon="folder-generic"
/>
<BaseIcon
v-else-if="resourceData.resourceNode.resourceFile.image"
v-else-if="resourceData.resourceNode.firstResourceFile.image"
icon="file-image"
/>
<BaseIcon
v-else-if="resourceData.resourceNode.resourceFile.video"
v-else-if="resourceData.resourceNode.firstResourceFile.video"
icon="file-video"
/>
<BaseIcon
v-else-if="resourceData.resourceNode.resourceFile.text"
v-else-if="resourceData.resourceNode.firstResourceFile.text"
icon="file-text"
/>
<BaseIcon
v-else-if="'application/pdf' === resourceData.resourceNode.resourceFile.mimeType"
v-else-if="'application/pdf' === resourceData.resourceNode.firstResourceFile.mimeType"
icon="file-pdf"
/>
<BaseIcon
Expand All @@ -30,15 +30,15 @@
</template>

<script setup>
import BaseIcon from "../basecomponents/BaseIcon.vue";
import {useFileUtils} from "../../composables/fileUtils";
import BaseIcon from "../basecomponents/BaseIcon.vue"
import { useFileUtils } from "../../composables/fileUtils"

const {isAudio} = useFileUtils()
const { isAudio } = useFileUtils()

defineProps({
resourceData: {
type: Object,
required: true,
},
});
})
</script>
86 changes: 44 additions & 42 deletions assets/vue/composables/datatableList.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { useStore } from 'vuex'
import { inject, ref } from 'vue';
import { useRoute, useRouter } from 'vue-router';
import { isEmpty } from 'lodash'
import { useStore } from "vuex"
import { inject, ref } from "vue"
import { useRoute, useRouter } from "vue-router"
import { isEmpty } from "lodash"

import { useCidReq } from './cidReq'
import { useI18n } from 'vue-i18n';
import { useCidReq } from "./cidReq"
import { useI18n } from "vue-i18n"
import { useNotification } from "./notification"

export function useDatatableList (servicePrefix) {
export function useDatatableList(servicePrefix) {
const moduleName = servicePrefix.toLowerCase()

const store = useStore()
Expand All @@ -30,99 +30,101 @@ export function useDatatableList (servicePrefix) {
itemsPerPage: 5,
})

function onUpdateOptions ({ page, itemsPerPage, sortBy, sortDesc }) {
function onUpdateOptions({ page, itemsPerPage, sortBy, sortDesc }) {
page = page || options.value.page

if (!isEmpty(route.query.filetype) && route.query.filetype === 'certificate') {
filters.value.filetype = 'certificate';
if (!isEmpty(route.query.filetype) && route.query.filetype === "certificate") {
filters.value.filetype = "certificate"
} else {
filters.value.filetype = ['file', 'folder'];
filters.value.filetype = ["file", "folder"]
}

let params = { ...filters.value }

if (1 === filters.value.loadNode) {
params['resourceNode.parent'] = route.params.node
params["resourceNode.parent"] = route.params.node
}

if (itemsPerPage > 0) {
params = { ...params, itemsPerPage, page }
}

if (!isEmpty(sortBy)) {
params[`order[${sortBy}]`] = sortDesc ? 'desc' : 'asc'
params[`order[${sortBy}]`] = sortDesc ? "desc" : "asc"
}

let type = route.query.type

params = { ...params, cid, sid, gid, type, page }

store.dispatch(`${moduleName}/fetchAll`, params)
.then(() => options.value = { sortBy, sortDesc, itemsPerPage, page })
store
.dispatch(`${moduleName}/fetchAll`, params)
.then(() => (options.value = { sortBy, sortDesc, itemsPerPage, page }))
}

function goToAddItem () {
console.log('addHandler');
function goToAddItem() {
console.log("addHandler")

let folderParams = route.query;
let folderParams = route.query

router.push({
name: `${servicePrefix}Create`,
query: folderParams,
});
})
}

function goToEditItem (item) {
let folderParams = route.query;
folderParams['id'] = item['@id'];
function goToEditItem(item) {
let folderParams = route.query
folderParams["id"] = item["@id"]

if ('folder' === item.filetype || isEmpty(item.filetype)) {
if ("folder" === item.filetype || isEmpty(item.filetype)) {
router.push({
name: `${servicePrefix}Update`,
params: { id: item['@id'] },
query: folderParams
});
params: { id: item["@id"] },
query: folderParams,
})
}

if ('file' === item.filetype) {
folderParams['getFile'] = true;
if (item.resourceNode.resourceFile &&
item.resourceNode.resourceFile.mimeType &&
'text/html' === item.resourceNode.resourceFile.mimeType
if ("file" === item.filetype) {
folderParams["getFile"] = true
if (
item.resourceNode.firstResourceFile &&
item.resourceNode.firstResourceFile.mimeType &&
"text/html" === item.resourceNode.firstResourceFile.mimeType
) {
//folderParams['getFile'] = true;
}

this.$router.push({
name: `${servicePrefix}UpdateFile`,
params: { id: item['@id'] },
query: folderParams
});
params: { id: item["@id"] },
query: folderParams,
})
}
}

function onShowItem (item) {
console.log('listmixin showHandler', item);
function onShowItem(item) {
console.log("listmixin showHandler", item)

let folderParams = route.query;
let folderParams = route.query

if (item) {
folderParams['id'] = item['@id'];
folderParams["id"] = item["@id"]
}

router.push({
name: `${servicePrefix}Show`,
params: folderParams,
query: folderParams,
});
})
}

async function deleteItem (item) {
async function deleteItem(item) {
await store.dispatch(`${moduleName}/del`, item.value)

onUpdateOptions(options.value);
onUpdateOptions(options.value)

notification.showSuccessNotification(t('Deleted'))
notification.showSuccessNotification(t("Deleted"))
}

return {
Expand Down
15 changes: 6 additions & 9 deletions assets/vue/composables/fileUtils.js
Original file line number Diff line number Diff line change
@@ -1,31 +1,28 @@


export function useFileUtils() {

const isImage = (fileData) => {
return isFile(fileData) && fileData.resourceNode.resourceFile.image
return isFile(fileData) && fileData.resourceNode.firstResourceFile.image
}

const isVideo = (fileData) => {
return isFile(fileData) && fileData.resourceNode.resourceFile.video
return isFile(fileData) && fileData.resourceNode.firstResourceFile.video
}

const isAudio = (fileData) => {
const mimeType = fileData.resourceNode.resourceFile.mimeType
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;
return false
}
const mimeType = fileData.resourceNode.resourceFile.mimeType
const mimeType = fileData.resourceNode.firstResourceFile.mimeType
return mimeType.split("/")[1].toLowerCase() === "html"
}

const isFile = (fileData) => {
return fileData.resourceNode && fileData.resourceNode.resourceFile
return fileData.resourceNode && fileData.resourceNode.firstResourceFile
}

return {
Expand Down
6 changes: 3 additions & 3 deletions assets/vue/mixins/ListMixin.js
Original file line number Diff line number Diff line change
Expand Up @@ -257,9 +257,9 @@ export default {
if ("file" === item.filetype) {
folderParams["getFile"] = true
if (
item.resourceNode.resourceFile &&
item.resourceNode.resourceFile.mimeType &&
"text/html" === item.resourceNode.resourceFile.mimeType
item.resourceNode.firstResourceFile &&
item.resourceNode.firstResourceFile.mimeType &&
"text/html" === item.resourceNode.firstResourceFile.mimeType
) {
//folderParams['getFile'] = true;
}
Expand Down
Loading