Vue.component("User", { template: `

Sind Sie sicher, dass Sie die Login-Informationen an {{ selectedUserForMail.email }} senden möchten?

`, data: () => ({ window: window, showSendMailModal: false, selectedUserForMail: null, isSendingMail: false, }), computed: { canManageUsers() { return window['TT_CONFIG']['CAN_MANAGE_USERS'] === true; }, UserTableConfig() { const 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"}], }, ]; if (this.canManageUsers) { headers.push({text: "Aktionen", key: "actions", class: "text-center", sortable: false, priority: 21, filter: false}); } return { key: "UserTable", tableHeader: "Benutzer", defaultPageSize: 25, headers: headers }; } }, methods: { openSendMailModal(user) { this.selectedUserForMail = user; this.showSendMailModal = true; }, async sendLoginEmail() { if (!this.selectedUserForMail) return; this.isSendingMail = true; try { const response = await axios.get(window.TT_CONFIG.SEND_LOGIN_EMAIL_URL + '?id=' + this.selectedUserForMail.id); if (response.data.success) { window.notify('success', response.data.message); } else { window.notify('error', response.data.message || 'E-Mail konnte nicht gesendet werden.'); } } catch (error) { window.notify('error', 'Ein Fehler ist aufgetreten.'); console.error(error); } this.isSendingMail = false; this.showSendMailModal = false; this.selectedUserForMail = null; } } });