summaryrefslogtreecommitdiff
path: root/components/VTable.vue
diff options
context:
space:
mode:
authorSanto Cariotti <santo@dcariotti.me>2022-10-13 22:26:37 +0200
committerSanto Cariotti <santo@dcariotti.me>2022-10-13 22:26:37 +0200
commit739b292fadd9119936862c7ad54363659c515747 (patch)
tree520ef96a8cddef55c88fe98683403149d14e2076 /components/VTable.vue
parent9189cbd7a65ef6b7c8e0c346caa7ad83b966b0c2 (diff)
Extend admin table to all usefull fields
Diffstat (limited to 'components/VTable.vue')
-rw-r--r--components/VTable.vue17
1 files changed, 15 insertions, 2 deletions
diff --git a/components/VTable.vue b/components/VTable.vue
index 723ba7b..8f2f6d2 100644
--- a/components/VTable.vue
+++ b/components/VTable.vue
@@ -15,7 +15,7 @@
class="hover:bg-gray-100" v-for="field in fields"
)
td.px-6.py-4.whitespace-nowrap.text-sm.text-gray-900.truncate(v-for="name in keys")
- div.max-w-100.block.truncate
+ div.block.truncate(:class="{'max-w-100': !['id', 'created', 'updated'].includes(name)}")
span(v-if="isBool(field[name])")
svg(v-if="field[name]" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6 text-green-500")
path(stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5")
@@ -23,9 +23,22 @@
path(stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12")
span(v-else-if="name == 'avatar'")
user-avatar(:data="field")
+ span(v-else-if="['author', 'user', 'resolved'].includes(name)")
+ user-avatar(:data="field[name]" v-if="field[name].username")
+ span(v-else-if="name == 'created' || name == 'updated'")
+ | {{ field[name]|moment("DD/MM/YYYY HH:mm") }}
+ span(v-else-if="name == 'likes'")
+ | {{ field.likes ? field.likes.length : 0 }}
+ span(v-else-if="name == 'model_id'")
+ a.underline.text-green-500(:href="'/models/'+field.model_id" target="_blank")
+ | {{ field[name] }}
span(v-else :title="field[name]") {{ field[name] }}
td.px-6.py-4.whitespace-nowrap.text-sm.text-gray-900
.flex
+ .mr-1(v-if="path")
+ a(:href="path + field.id" target="_blank")
+ svg(xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6")
+ path(stroke-linecap="round" stroke-linejoin="round" d="M13.19 8.688a4.5 4.5 0 011.242 7.244l-4.5 4.5a4.5 4.5 0 01-6.364-6.364l1.757-1.757m13.35-.622l1.757-1.757a4.5 4.5 0 00-6.364-6.364l-4.5 4.5a4.5 4.5 0 001.242 7.244")
.mr-1
svg(xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6 cursor-pointer")
path(stroke-linecap="round" stroke-linejoin="round" d="M16.862 4.487l1.687-1.688a1.875 1.875 0 112.652 2.652L6.832 19.82a4.5 4.5 0 01-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 011.13-1.897L16.863 4.487zm0 0L19.5 7.125")
@@ -39,7 +52,7 @@
import UserAvatar from "@/components/UserAvatar.vue";
export default {
- props: ["keys", "fields"],
+ props: ["keys", "fields", "path"],
components: {
"user-avatar": UserAvatar,
},