Skip to content

Commit fe882eb

Browse files
committed
Internal: Use first resourceFile for resource node to show file size #5600
1 parent fac8dec commit fe882eb

File tree

24 files changed

+414
-303
lines changed

24 files changed

+414
-303
lines changed

assets/vue/components/documents/FormNewDocument.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99

1010
<BaseTinyEditor
1111
v-if="
12-
(item.resourceNode && item.resourceNode.resourceFile && item.resourceNode.resourceFile.text) || item.newDocument
12+
(item.resourceNode && item.resourceNode.firstResourceFile && item.resourceNode.firstResourceFile.text) ||
13+
item.newDocument
1314
"
1415
v-model="item.contentFile"
1516
:title="t('Content')"
Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,38 @@
11
<template>
22
<a
3-
data-fancybox="gallery"
4-
:href="resource.contentUrl"
5-
:data-type="getDataType"
3+
data-fancybox="gallery"
4+
:href="resource.contentUrl"
5+
:data-type="getDataType"
66
>
77
<ResourceIcon :resource-data="resource" />
88
{{ resource.title }}
99
</a>
1010
</template>
1111

1212
<script>
13-
import ResourceIcon from './ResourceIcon.vue';
13+
import ResourceIcon from "./ResourceIcon.vue"
1414
export default {
15-
name: 'ResourceFileLink',
15+
name: "ResourceFileLink",
1616
components: {
17-
ResourceIcon
17+
ResourceIcon,
18+
},
19+
props: {
20+
resource: {
21+
type: Object,
22+
required: true,
23+
},
1824
},
1925
computed: {
2026
getDataType() {
21-
if (this.resource.resourceNode.resourceFile.image) {
22-
return 'image';
27+
if (this.resource.resourceNode.firstResourceFile.image) {
28+
return "image"
2329
}
24-
if (this.resource.resourceNode.resourceFile.video) {
25-
return 'video';
30+
if (this.resource.resourceNode.firstResourceFile.video) {
31+
return "video"
2632
}
2733
28-
return 'iframe';
29-
}
30-
},
31-
props: {
32-
resource: {
33-
type: Object,
34-
required: true,
35-
}
34+
return "iframe"
35+
},
3636
},
37-
};
37+
}
3838
</script>

assets/vue/components/documents/ResourceIcon.vue

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@
44
icon="folder-generic"
55
/>
66
<BaseIcon
7-
v-else-if="resourceData.resourceNode.resourceFile.image"
7+
v-else-if="resourceData.resourceNode.firstResourceFile.image"
88
icon="file-image"
99
/>
1010
<BaseIcon
11-
v-else-if="resourceData.resourceNode.resourceFile.video"
11+
v-else-if="resourceData.resourceNode.firstResourceFile.video"
1212
icon="file-video"
1313
/>
1414
<BaseIcon
15-
v-else-if="resourceData.resourceNode.resourceFile.text"
15+
v-else-if="resourceData.resourceNode.firstResourceFile.text"
1616
icon="file-text"
1717
/>
1818
<BaseIcon
19-
v-else-if="'application/pdf' === resourceData.resourceNode.resourceFile.mimeType"
19+
v-else-if="'application/pdf' === resourceData.resourceNode.firstResourceFile.mimeType"
2020
icon="file-pdf"
2121
/>
2222
<BaseIcon
@@ -30,15 +30,15 @@
3030
</template>
3131

3232
<script setup>
33-
import BaseIcon from "../basecomponents/BaseIcon.vue";
34-
import {useFileUtils} from "../../composables/fileUtils";
33+
import BaseIcon from "../basecomponents/BaseIcon.vue"
34+
import { useFileUtils } from "../../composables/fileUtils"
3535
36-
const {isAudio} = useFileUtils()
36+
const { isAudio } = useFileUtils()
3737
3838
defineProps({
3939
resourceData: {
4040
type: Object,
4141
required: true,
4242
},
43-
});
43+
})
4444
</script>

assets/vue/composables/datatableList.js

Lines changed: 44 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
import { useStore } from 'vuex'
2-
import { inject, ref } from 'vue';
3-
import { useRoute, useRouter } from 'vue-router';
4-
import { isEmpty } from 'lodash'
1+
import { useStore } from "vuex"
2+
import { inject, ref } from "vue"
3+
import { useRoute, useRouter } from "vue-router"
4+
import { isEmpty } from "lodash"
55

6-
import { useCidReq } from './cidReq'
7-
import { useI18n } from 'vue-i18n';
6+
import { useCidReq } from "./cidReq"
7+
import { useI18n } from "vue-i18n"
88
import { useNotification } from "./notification"
99

10-
export function useDatatableList (servicePrefix) {
10+
export function useDatatableList(servicePrefix) {
1111
const moduleName = servicePrefix.toLowerCase()
1212

1313
const store = useStore()
@@ -30,99 +30,101 @@ export function useDatatableList (servicePrefix) {
3030
itemsPerPage: 5,
3131
})
3232

33-
function onUpdateOptions ({ page, itemsPerPage, sortBy, sortDesc }) {
33+
function onUpdateOptions({ page, itemsPerPage, sortBy, sortDesc }) {
3434
page = page || options.value.page
3535

36-
if (!isEmpty(route.query.filetype) && route.query.filetype === 'certificate') {
37-
filters.value.filetype = 'certificate';
36+
if (!isEmpty(route.query.filetype) && route.query.filetype === "certificate") {
37+
filters.value.filetype = "certificate"
3838
} else {
39-
filters.value.filetype = ['file', 'folder'];
39+
filters.value.filetype = ["file", "folder"]
4040
}
4141

4242
let params = { ...filters.value }
4343

4444
if (1 === filters.value.loadNode) {
45-
params['resourceNode.parent'] = route.params.node
45+
params["resourceNode.parent"] = route.params.node
4646
}
4747

4848
if (itemsPerPage > 0) {
4949
params = { ...params, itemsPerPage, page }
5050
}
5151

5252
if (!isEmpty(sortBy)) {
53-
params[`order[${sortBy}]`] = sortDesc ? 'desc' : 'asc'
53+
params[`order[${sortBy}]`] = sortDesc ? "desc" : "asc"
5454
}
5555

5656
let type = route.query.type
5757

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

60-
store.dispatch(`${moduleName}/fetchAll`, params)
61-
.then(() => options.value = { sortBy, sortDesc, itemsPerPage, page })
60+
store
61+
.dispatch(`${moduleName}/fetchAll`, params)
62+
.then(() => (options.value = { sortBy, sortDesc, itemsPerPage, page }))
6263
}
6364

64-
function goToAddItem () {
65-
console.log('addHandler');
65+
function goToAddItem() {
66+
console.log("addHandler")
6667

67-
let folderParams = route.query;
68+
let folderParams = route.query
6869

6970
router.push({
7071
name: `${servicePrefix}Create`,
7172
query: folderParams,
72-
});
73+
})
7374
}
7475

75-
function goToEditItem (item) {
76-
let folderParams = route.query;
77-
folderParams['id'] = item['@id'];
76+
function goToEditItem(item) {
77+
let folderParams = route.query
78+
folderParams["id"] = item["@id"]
7879

79-
if ('folder' === item.filetype || isEmpty(item.filetype)) {
80+
if ("folder" === item.filetype || isEmpty(item.filetype)) {
8081
router.push({
8182
name: `${servicePrefix}Update`,
82-
params: { id: item['@id'] },
83-
query: folderParams
84-
});
83+
params: { id: item["@id"] },
84+
query: folderParams,
85+
})
8586
}
8687

87-
if ('file' === item.filetype) {
88-
folderParams['getFile'] = true;
89-
if (item.resourceNode.resourceFile &&
90-
item.resourceNode.resourceFile.mimeType &&
91-
'text/html' === item.resourceNode.resourceFile.mimeType
88+
if ("file" === item.filetype) {
89+
folderParams["getFile"] = true
90+
if (
91+
item.resourceNode.firstResourceFile &&
92+
item.resourceNode.firstResourceFile.mimeType &&
93+
"text/html" === item.resourceNode.firstResourceFile.mimeType
9294
) {
9395
//folderParams['getFile'] = true;
9496
}
9597

9698
this.$router.push({
9799
name: `${servicePrefix}UpdateFile`,
98-
params: { id: item['@id'] },
99-
query: folderParams
100-
});
100+
params: { id: item["@id"] },
101+
query: folderParams,
102+
})
101103
}
102104
}
103105

104-
function onShowItem (item) {
105-
console.log('listmixin showHandler', item);
106+
function onShowItem(item) {
107+
console.log("listmixin showHandler", item)
106108

107-
let folderParams = route.query;
109+
let folderParams = route.query
108110

109111
if (item) {
110-
folderParams['id'] = item['@id'];
112+
folderParams["id"] = item["@id"]
111113
}
112114

113115
router.push({
114116
name: `${servicePrefix}Show`,
115117
params: folderParams,
116118
query: folderParams,
117-
});
119+
})
118120
}
119121

120-
async function deleteItem (item) {
122+
async function deleteItem(item) {
121123
await store.dispatch(`${moduleName}/del`, item.value)
122124

123-
onUpdateOptions(options.value);
125+
onUpdateOptions(options.value)
124126

125-
notification.showSuccessNotification(t('Deleted'))
127+
notification.showSuccessNotification(t("Deleted"))
126128
}
127129

128130
return {

assets/vue/composables/fileUtils.js

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,28 @@
1-
2-
31
export function useFileUtils() {
4-
52
const isImage = (fileData) => {
6-
return isFile(fileData) && fileData.resourceNode.resourceFile.image
3+
return isFile(fileData) && fileData.resourceNode.firstResourceFile.image
74
}
85

96
const isVideo = (fileData) => {
10-
return isFile(fileData) && fileData.resourceNode.resourceFile.video
7+
return isFile(fileData) && fileData.resourceNode.firstResourceFile.video
118
}
129

1310
const isAudio = (fileData) => {
14-
const mimeType = fileData.resourceNode.resourceFile.mimeType
11+
const mimeType = fileData.resourceNode.firstResourceFile.mimeType
1512
const isAudio = mimeType.split("/")[0].toLowerCase() === "audio"
1613
return isFile(fileData) && isAudio
1714
}
1815

1916
const isHtml = (fileData) => {
2017
if (!isFile(fileData)) {
21-
return false;
18+
return false
2219
}
23-
const mimeType = fileData.resourceNode.resourceFile.mimeType
20+
const mimeType = fileData.resourceNode.firstResourceFile.mimeType
2421
return mimeType.split("/")[1].toLowerCase() === "html"
2522
}
2623

2724
const isFile = (fileData) => {
28-
return fileData.resourceNode && fileData.resourceNode.resourceFile
25+
return fileData.resourceNode && fileData.resourceNode.firstResourceFile
2926
}
3027

3128
return {

assets/vue/mixins/ListMixin.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -257,9 +257,9 @@ export default {
257257
if ("file" === item.filetype) {
258258
folderParams["getFile"] = true
259259
if (
260-
item.resourceNode.resourceFile &&
261-
item.resourceNode.resourceFile.mimeType &&
262-
"text/html" === item.resourceNode.resourceFile.mimeType
260+
item.resourceNode.firstResourceFile &&
261+
item.resourceNode.firstResourceFile.mimeType &&
262+
"text/html" === item.resourceNode.firstResourceFile.mimeType
263263
) {
264264
//folderParams['getFile'] = true;
265265
}

0 commit comments

Comments
 (0)