Files
thetool/public/js/pages/User/User.js
2025-03-17 08:56:54 +00:00

64 lines
4.3 KiB
JavaScript

Vue.component("User", {
template: `
<tt-card>
<tt-table :data="window['TT_CONFIG']['USERS']" :config="UserTableConfig">
<template v-slot:top-buttons>
<tt-button @click="window.location = window['TT_CONFIG']['ADD_URL']"
additional-class="btn-primary"
text="Vorbestellkampagne hinzuf\xfcgen"
icon="fas fa-plus"/>
</template>
<template v-slot:actions="{ row: user }">
<div class="d-flex justify-content-center" style="gap: 4px">
<tt-button @click="window.location = window['TT_CONFIG']['EDIT_URL'] + '?id=' + user.id"
additional-class="btn-outline-primary"
sm
icon="far fa-edit"
title="Bearbeiten"/>
<tt-button @click="window.location = window['TT_CONFIG']['IMPERSONATE_URL'] + '?username=' + user.username"
additional-class="btn-outline-secondary"
sm
title="Impersonate"
icon="far fa-user-secret"/>
</div>
</template>
</tt-table>
</tt-card>
`, data: () => ({
window: window, UserTableConfig: {
key: "UserTable",
tableHeader: "Benutzer",
defaultPageSize: 25,
headers: [{text: "Username", key: "username", class: "text-center", sortable: false, priority: 20},
{text: "Name", key: "name", class: "text-center", sortable: false, priority: 18},
{text: "Firma", key: "address", class: "text-center", priority: 19},
{text: "E-Mail", key: "email", priority: 14},
{text: "Tel. Nr.", key: "mobile", priority: 17, filter: false, sortable: false},
{
text: "2FA", key: "twofactor", class: "text-center", priority: 16, filter: 'iconSelect', sortable: false,
filterOptions: [{value: "N/A", text: "N/A", icon: "fa fa-exclamation-triangle text-danger"},
{value: "Mail", text: "Mail", icon: "fa-light fa-envelope text-primary"},
{value: "SMS", text: "SMS", icon: "fa-light fa-mobile-retro text-info"}]
},
{
text: "Admin", key: "isAdmin", class: "text-center", priority: 13, filter: 'iconSelect', sortable: false,
filterOptions: [{value: true, text: "Ist Admin", icon: "fa-regular fa-circle-check text-success"},
{value: false, text: "Ist kein Admin", icon: "fa-regular fa-circle-xmark text-danger"}]
},
{
text: "Techniker", key: "isTechnician", class: "text-center", priority: 12, filter: 'iconSelect', sortable: false,
filterOptions: [{value: true, text: "Ist Techniker", icon: "fa-regular fa-circle-check text-success"},
{value: false, text: "Ist kein Techniker", icon: "fa-regular fa-circle-xmark text-danger"}],
},
{
text: "Aktiv", key: "isActive", class: "text-center", priority: 12, filter: 'iconSelect', sortable: false,
filterOptions: [{value: "1", text: "Ist Aktiv", icon: "fa-regular fa-circle-check text-success"},
{value: "0", text: "Ist nicht aktiv", icon: "fa-regular fa-circle-xmark text-danger"}],
},
{text: "Aktionen", key: "actions", class: "text-center", sortable: false, priority: 21, filter: false}]
}
})
});