5252 </v-btn >
5353 <span >{{ $t('buttons.delete') }}</span >
5454 </v-tooltip >
55- <!-- file mode -->
56- <template v-if =" fileMode " >
57- <v-tooltip top >
58- <v-btn outline fab small class =" xs white--text" color =" blue" @click =" download(props.item)" slot =" activator" >
59- <v-icon >file_download</v-icon >
60- </v-btn >
61- <span >{{ $t('buttons.download') }}</span >
62- </v-tooltip >
63- <v-tooltip top v-if =" isImage(props.item.type)" >
64- <v-btn outline fab small class =" xs white--text" color =" blue" @click =" showImage(props.item)" slot =" activator" >
65- <v-icon >search</v-icon >
66- </v-btn >
67- <span >{{ $t('buttons.show') }}</span >
68- </v-tooltip >
69- </template >
7055 </td >
7156 <!-- table fields -->
7257 <td v-if =" key != 'meta'" v-for =" (field, key) in props.item" :key =" key" >
7358 <span v-if =" columnTextModes[key] == 'html'" v-html =" field" ></span >
7459 <span v-else-if =" columnTextModes[key] == 'cropped'" class =" cell-nowrap" >{{ field | cropped }}</span >
7560 <span v-else-if =" columnTextModes[key] == 'text'" >{{ field }}</span >
61+ <span v-else-if =" columnTextModes[key] == 'file'" >
62+ <file-details :field =" fileFieldToJSON(field)" ></file-details >
63+ </span >
7664 </td >
7765 </tr >
7866</template >
7967
8068<script >
8169import MessagesMixin from " ../mixins/messages-datatable-row.js" ;
70+ import FileDetails from ' ./FileDetails.vue'
71+
8272export default {
8373 mixins: [MessagesMixin],
74+ components: {
75+ FileDetails
76+ },
8477 props: [
8578 ' props' ,
8679 ' editButton' ,
8780 ' customButtons' ,
8881 ' deleteMode' ,
8982 ' itemElements' ,
90- " fileMode" ,
9183 " columnTextModes"
9284 ],
9385 filters: {
@@ -101,9 +93,12 @@ export default {
10193 rField = field
10294 }
10395 return rField
104- }
96+ },
10597 },
10698 methods: {
99+ fileFieldToJSON (field ) {
100+ return JSON .parse (field)
101+ },
107102 activityClass (isActive ) {
108103 let className = " "
109104 if ([' soft' , ' both' ].includes (this .deleteMode )){
@@ -133,13 +128,7 @@ export default {
133128 suspend (id ) {this .$emit (' suspend' , id)},
134129 restore (id ) {this .$emit (' restore' , id)},
135130 destroy (id ) {this .$emit (' destroy' , id)},
136- editItemElements (name , id ) {this .$emit (' editItemElements' , name, id)},
137- download (item ) {this .$emit (' download' , item)},
138- isImage (mime ) {
139- let supportedMimeTypes = [" image/jpeg" , " image/png" ];
140- return supportedMimeTypes .includes (mime);
141- },
142- showImage (image ) {this .$emit (' showImage' , image)},
131+ editItemElements (name , id ) {this .$emit (' editItemElements' , name, id)}
143132 }
144133};
145134 </script >
0 commit comments