| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- <template>
- <div>
- <DefaultHeaderPage>
- <template #after>
- <q-btn
- color="primary"
- padding="8px 8px"
- :label="$t('common.actions.add')"
- icon="mdi-plus"
- class="q-mt-md"
- @click="onAddItem"
- />
- </template>
- </DefaultHeaderPage>
- <div>
- <DefaultTable
- ref="tableRef"
- :columns="columns"
- :api-call="getUsers"
- :delete-function="deleteUser"
- :show-columns-select="false"
- :title="
- $t('common.terms.list') +
- ' ' +
- $t('common.ui.table.of') +
- ' ' +
- $t('user.plural')
- "
- >
- <template #body-cell-actions="{ row }">
- <q-btn
- outline
- style="width: 36px"
- class="q-ml-auto q-mr-sm"
- @click.prevent.stop="onRowClick(row)"
- >
- <q-icon name="mdi-file-edit-outline" />
- </q-btn>
- </template>
- </DefaultTable>
- </div>
- </div>
- </template>
- <script setup>
- import { defineAsyncComponent, useTemplateRef } from "vue";
- import { useQuasar } from "quasar";
- import { useI18n } from "vue-i18n";
- import { permissionStore } from "src/stores/permission";
- import { getUsers, deleteUser } from "src/api/user";
- import DefaultTable from "src/components/defaults/DefaultTable.vue";
- import DefaultHeaderPage from "src/components/layout/DefaultHeaderPage.vue";
- const AddEditUserDialog = defineAsyncComponent(
- () => import("src/pages/users/components/AddEditUserDialog.vue"),
- );
- const permission_store = permissionStore();
- const $q = useQuasar();
- const { t } = useI18n();
- const tableRef = useTemplateRef("tableRef");
- const columns = [
- {
- name: "name",
- label: t("common.terms.name"),
- field: "name",
- align: "left",
- required: true,
- sortable: true,
- },
- {
- name: "email",
- label: "Email",
- field: "email",
- align: "left",
- sortable: true,
- },
- {
- name: "actions",
- label: t("common.terms.actions"),
- align: "left",
- required: true,
- },
- ];
- const onRowClick = (row) => {
- if (permission_store.getAccess("config.user", "view") === false) {
- $q.notify({
- type: "negative",
- message: t("validation.permissions.view"),
- });
- return;
- }
- $q.dialog({
- component: AddEditUserDialog,
- componentProps: {
- user: row,
- title: () => t("common.actions.edit") + " " + t("user.singular"),
- },
- }).onOk(async (success) => {
- if (success) {
- tableRef.value.refresh();
- }
- });
- };
- const onAddItem = () => {
- if (permission_store.getAccess("config.user", "add") === false) {
- $q.notify({
- type: "negative",
- message: t("validation.permissions.add"),
- });
- return;
- }
- $q.dialog({
- component: AddEditUserDialog,
- componentProps: {
- title: () => t("common.actions.add") + " " + t("user.singular"),
- },
- }).onOk(async (success) => {
- if (success) {
- tableRef.value.refresh();
- }
- });
- };
- </script>
|