|
36 | 36 | for some rows, so normalize before the TYPE_ICONS lookup — |
37 | 37 | same rationale as DelegateEditDialog.loadOnOpen(). --> |
38 | 38 | <template #item.receiver="{ item }"> |
39 | | - <v-icon size="small" class="me-1">{{ TYPE_ICONS[item.receiverType?.toUpperCase()] || 'mdi-account' }}</v-icon> |
| 39 | + <v-tooltip :text="t('delegate.type.' + (item.receiverType || '').toLowerCase())" location="top"> |
| 40 | + <template #activator="{ props: tt }"> |
| 41 | + <v-icon v-bind="tt" size="small" class="me-1">{{ TYPE_ICONS[item.receiverType?.toUpperCase()] || 'mdi-account' }}</v-icon> |
| 42 | + </template> |
| 43 | + </v-tooltip> |
40 | 44 | {{ item.receiver?.name || item.receiver?.id || item.name || '-' }} |
41 | 45 | </template> |
42 | 46 | <!-- Resource column (chantier D5+D8): fuses the former Type and |
43 | 47 | Resource columns. The kind is the leading icon (Account / |
44 | 48 | Group / Domain / File-tree); the text is the resource name |
45 | 49 | (or DN for TREE delegates). Same lowercase-normalize as above. --> |
46 | 50 | <template #item.name="{ item }"> |
47 | | - <v-icon size="small" class="me-1">{{ TYPE_ICONS[item.type?.toUpperCase()] || '' }}</v-icon> |
| 51 | + <v-tooltip :text="t('delegate.type.' + (item.type || '').toLowerCase())" location="top"> |
| 52 | + <template #activator="{ props: tt }"> |
| 53 | + <v-icon v-bind="tt" size="small" class="me-1">{{ TYPE_ICONS[item.type?.toUpperCase()] || '' }}</v-icon> |
| 54 | + </template> |
| 55 | + </v-tooltip> |
48 | 56 | {{ item.name || '-' }} |
49 | 57 | </template> |
50 | 58 | <template #item.canAdmin="{ item }"> |
51 | | - <v-icon v-if="item.canAdmin" color="success" size="small">mdi-check</v-icon> |
| 59 | + <div class="text-center"> |
| 60 | + <v-tooltip v-if="item.canAdmin" :text="t('delegate.adminGranted')" location="top"> |
| 61 | + <template #activator="{ props: tt }"> |
| 62 | + <v-icon v-bind="tt" color="success" size="small">mdi-check</v-icon> |
| 63 | + </template> |
| 64 | + </v-tooltip> |
| 65 | + </div> |
52 | 66 | </template> |
53 | 67 | <template #item.canWrite="{ item }"> |
54 | | - <v-icon v-if="item.canWrite" color="success" size="small">mdi-check</v-icon> |
| 68 | + <div class="text-center"> |
| 69 | + <v-tooltip v-if="item.canWrite" :text="t('delegate.writeGranted')" location="top"> |
| 70 | + <template #activator="{ props: tt }"> |
| 71 | + <v-icon v-bind="tt" color="success" size="small">mdi-check</v-icon> |
| 72 | + </template> |
| 73 | + </v-tooltip> |
| 74 | + </div> |
55 | 75 | </template> |
56 | 76 | <template #item.actions="{ item }"> |
57 | 77 | <v-btn icon size="small" variant="text" @click.stop="openDialog(item.id)"> |
58 | 78 | <v-icon size="small">mdi-pencil</v-icon> |
| 79 | + <v-tooltip activator="parent" :text="t('common.edit')" location="top" /> |
59 | 80 | </v-btn> |
60 | 81 | <v-btn icon size="small" variant="text" color="error" @click.stop="startDelete(item)"> |
61 | 82 | <v-icon size="small">mdi-delete</v-icon> |
@@ -133,8 +154,8 @@ const editDelegateId = ref(null) |
133 | 154 | const headers = computed(() => [ |
134 | 155 | { title: t('delegate.receiver'), key: 'receiver', sortable: true }, |
135 | 156 | { title: t('delegate.resource'), key: 'name', sortable: false }, |
136 | | - { title: t('delegate.admin'), key: 'canAdmin', sortable: false, width: '80px', tooltip: t('delegate.adminHelp') }, |
137 | | - { title: t('delegate.write'), key: 'canWrite', sortable: false, width: '80px', tooltip: t('delegate.writeHelp') }, |
| 157 | + { title: t('delegate.admin'), key: 'canAdmin', sortable: false, width: '80px', align: 'center', tooltip: t('delegate.adminHelp') }, |
| 158 | + { title: t('delegate.write'), key: 'canWrite', sortable: false, width: '80px', align: 'center', tooltip: t('delegate.writeHelp') }, |
138 | 159 | { title: '', key: 'actions', sortable: false, width: '120px', align: 'center' }, |
139 | 160 | ]) |
140 | 161 |
|
|
0 commit comments