summaryrefslogtreecommitdiffstats
path: root/webapp/src/components/PermissionModuleRoleList.vue
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/src/components/PermissionModuleRoleList.vue')
-rw-r--r--webapp/src/components/PermissionModuleRoleList.vue45
1 files changed, 26 insertions, 19 deletions
diff --git a/webapp/src/components/PermissionModuleRoleList.vue b/webapp/src/components/PermissionModuleRoleList.vue
index 67fbb9f..9f9ac73 100644
--- a/webapp/src/components/PermissionModuleRoleList.vue
+++ b/webapp/src/components/PermissionModuleRoleList.vue
@@ -20,17 +20,17 @@
<template>
<div>
<v-card>
- <data-table :value="selectedRoles" @input="$store.commit('permissions/setSelectedRoles', $event)" :headers="headers" :items="roles">
- <div slot="action" slot-scope="row" style="text-align: right" v-if="canEdit">
- <v-btn flat icon color="primary" @click.stop="$store.commit('permissions/editRole', row.item.id)"><v-icon>edit</v-icon></v-btn>
+ <data-table v-model="selectedRoles" :headers="headers" :items="roles" @dblclick="editRole($event)">
+ <div slot="action" slot-scope="row" style="text-align: right">
+ <v-btn flat icon color="primary" @click.stop="editRole(row.item)"><v-icon>edit</v-icon></v-btn>
</div>
</data-table>
</v-card>
- <div class="text-xs-right" v-if="canEdit">
- <v-btn color="error" flat @click="$store.commit('permissions/setDialog', true )" :disabled="selectedRoles.length === 0">
+ <div class="text-xs-right">
+ <v-btn color="error" flat @click="deleteRole" :disabled="selectedRoles.length === 0">
<v-icon left>remove_circle_outline</v-icon>{{ $tc('delete-role', selectedRoles.length, [selectedRoles.length]) }}
</v-btn>
- <v-btn color="success" flat @click="$store.commit('permissions/editRole', 0)">
+ <v-btn color="success" flat @click="createRole">
<v-icon left>add_circle_outline</v-icon>{{ $t('create-role') }}
</v-btn>
</div>
@@ -38,7 +38,7 @@
</template>
<script>
-import { mapState } from 'vuex'
+import { mapState, mapMutations } from 'vuex'
import DataTable from '@/components/DataTable'
export default {
@@ -48,24 +48,31 @@ export default {
},
data () {
return {
- headers: [
+ selectedRoles: []
+ }
+ },
+ computed: {
+ headers () {
+ return [
{ text: this.$t('id'), key: 'id' },
{ text: this.$t('name'), key: 'name' },
{ text: this.$t('description'), key: 'descr' },
{ sortable: false, key: 'action', width: '60px' }
- ],
- canEdit: false
- }
- },
- computed: {
- ...mapState('permissions', ['selectedRoles', 'roles'])
+ ]
+ },
+ ...mapState('permissions', ['roles'])
},
methods: {
- },
- created () {
- this.$http.get('/api/permissions/permissions.editrole').then(response => {
- this.canEdit = response.data
- })
+ ...mapMutations('permissions', ['setDialog']),
+ createRole () {
+ this.setDialog({ show: true, type: 'edit', info: {} })
+ },
+ deleteRole () {
+ this.setDialog({ show: true, type: 'delete', info: this.selectedRoles })
+ },
+ editRole (role) {
+ this.setDialog({ show: true, type: 'edit', info: role })
+ }
}
}
</script>