release v2.0.0 #4
|
@ -174,7 +174,7 @@ export default defineComponent({
|
||||||
})[0];
|
})[0];
|
||||||
});
|
});
|
||||||
|
|
||||||
const avatar = ref<string>('');
|
const avatar = ref([]);
|
||||||
function onAvatarRejected() {
|
function onAvatarRejected() {
|
||||||
Notify.create({
|
Notify.create({
|
||||||
group: false,
|
group: false,
|
||||||
|
@ -184,7 +184,7 @@ export default defineComponent({
|
||||||
progress: true,
|
progress: true,
|
||||||
actions: [{ icon: 'mdi-close', color: 'white' }],
|
actions: [{ icon: 'mdi-close', color: 'white' }],
|
||||||
});
|
});
|
||||||
avatar.value = '';
|
avatar.value = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
const allRoles = computed(() =>
|
const allRoles = computed(() =>
|
||||||
|
@ -208,7 +208,7 @@ export default defineComponent({
|
||||||
}
|
}
|
||||||
|
|
||||||
emit('update:user', changed);
|
emit('update:user', changed);
|
||||||
if (avatar.value != '')
|
if (avatar.value && avatar.value.length > 0)
|
||||||
store
|
store
|
||||||
.dispatch('user/uploadAvatar', {
|
.dispatch('user/uploadAvatar', {
|
||||||
user: changed,
|
user: changed,
|
||||||
|
@ -219,6 +219,7 @@ export default defineComponent({
|
||||||
onAvatarRejected();
|
onAvatarRejected();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
function reset() {
|
function reset() {
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<q-card class="col-12">
|
<q-card class="col-12">
|
||||||
<q-form @submit="save" @reset="reset">
|
<q-form
|
||||||
<q-card-section
|
@submit="save"
|
||||||
class="fit row justify-start content-center items-center"
|
@reset="reset"
|
||||||
>
|
>
|
||||||
|
<q-card-section class="fit row justify-start content-center items-center">
|
||||||
<span class="col-xs-12 col-sm-6 text-center text-h6">
|
<span class="col-xs-12 col-sm-6 text-center text-h6">
|
||||||
Rollen und Berechtigungen
|
Rollen und Berechtigungen
|
||||||
</span>
|
</span>
|
||||||
|
@ -46,10 +47,24 @@
|
||||||
/>
|
/>
|
||||||
</q-scroll-area>
|
</q-scroll-area>
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-card-actions v-if="role" align="right">
|
<q-card-actions
|
||||||
<q-btn label="Löschen" color="negative" @click="remove" />
|
v-if="role"
|
||||||
<q-btn label="Reset" type="reset" />
|
align="right"
|
||||||
<q-btn color="primary" type="submit" label="Speichern" />
|
>
|
||||||
|
<q-btn
|
||||||
|
label="Löschen"
|
||||||
|
color="negative"
|
||||||
|
@click="remove"
|
||||||
|
/>
|
||||||
|
<q-btn
|
||||||
|
label="Reset"
|
||||||
|
type="reset"
|
||||||
|
/>
|
||||||
|
<q-btn
|
||||||
|
color="primary"
|
||||||
|
type="submit"
|
||||||
|
label="Speichern"
|
||||||
|
/>
|
||||||
</q-card-actions>
|
</q-card-actions>
|
||||||
</q-form>
|
</q-form>
|
||||||
</q-card>
|
</q-card>
|
||||||
|
@ -61,7 +76,7 @@ import {
|
||||||
computed,
|
computed,
|
||||||
defineComponent,
|
defineComponent,
|
||||||
ref,
|
ref,
|
||||||
onBeforeMount
|
onBeforeMount,
|
||||||
} from '@vue/composition-api';
|
} from '@vue/composition-api';
|
||||||
import { Store } from 'vuex';
|
import { Store } from 'vuex';
|
||||||
import { StateInterface } from 'src/store';
|
import { StateInterface } from 'src/store';
|
||||||
|
@ -72,10 +87,10 @@ export default defineComponent({
|
||||||
const store = <Store<StateInterface>>root.$store;
|
const store = <Store<StateInterface>>root.$store;
|
||||||
|
|
||||||
onBeforeMount(() => {
|
onBeforeMount(() => {
|
||||||
store.dispatch('user/getRoles').catch(error => {
|
store.dispatch('user/getRoles').catch((error) => {
|
||||||
console.warn(error);
|
console.warn(error);
|
||||||
});
|
});
|
||||||
store.dispatch('user/getPermissions').catch(error => {
|
store.dispatch('user/getPermissions').catch((error) => {
|
||||||
console.warn(error);
|
console.warn(error);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -83,10 +98,10 @@ export default defineComponent({
|
||||||
const role = ref<FG.Role | null>(null);
|
const role = ref<FG.Role | null>(null);
|
||||||
const roles = computed(() => store.state.user.roles);
|
const roles = computed(() => store.state.user.roles);
|
||||||
const permissions = computed(() =>
|
const permissions = computed(() =>
|
||||||
store.state.user.permissions.map(perm => {
|
store.state.user.permissions.map((perm) => {
|
||||||
return {
|
return {
|
||||||
value: perm,
|
value: perm,
|
||||||
label: perm
|
label: perm,
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
@ -116,14 +131,19 @@ export default defineComponent({
|
||||||
role.value = {
|
role.value = {
|
||||||
id: rl.id,
|
id: rl.id,
|
||||||
name: rl.name,
|
name: rl.name,
|
||||||
permissions: Array.from(rl.permissions)
|
permissions: Array.from(rl.permissions),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
function save() {
|
function save() {
|
||||||
if (role.value) {
|
if (role.value) {
|
||||||
if (role.value.id === -1)
|
if (role.value.id === -1)
|
||||||
void store.dispatch('user/newRole', role.value);
|
void store
|
||||||
|
.dispatch('user/newRole', role.value)
|
||||||
|
.then((createdRole: FG.Role) => {
|
||||||
|
console.log(createdRole);
|
||||||
|
role.value = createdRole;
|
||||||
|
});
|
||||||
else {
|
else {
|
||||||
if (newRoleName.value !== '') role.value.name = newRoleName.value;
|
if (newRoleName.value !== '') role.value.name = newRoleName.value;
|
||||||
console.log(role.value);
|
console.log(role.value);
|
||||||
|
@ -135,7 +155,7 @@ export default defineComponent({
|
||||||
function reset() {
|
function reset() {
|
||||||
if (role.value && role.value.id !== -1) {
|
if (role.value && role.value.id !== -1) {
|
||||||
const original = roles.value.find(
|
const original = roles.value.find(
|
||||||
value => value.name === role.value?.name
|
(value) => value.name === role.value?.name
|
||||||
);
|
);
|
||||||
if (original) updateRole(original);
|
if (original) updateRole(original);
|
||||||
} else {
|
} else {
|
||||||
|
@ -151,7 +171,7 @@ export default defineComponent({
|
||||||
store
|
store
|
||||||
.dispatch('user/deleteRole', role.value)
|
.dispatch('user/deleteRole', role.value)
|
||||||
.then(() => (role.value = null))
|
.then(() => (role.value = null))
|
||||||
.catch(error => console.warn(error));
|
.catch((error) => console.warn(error));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -167,8 +187,8 @@ export default defineComponent({
|
||||||
reset,
|
reset,
|
||||||
removeRole,
|
removeRole,
|
||||||
remove,
|
remove,
|
||||||
newRoleName
|
newRoleName,
|
||||||
};
|
};
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -54,9 +54,12 @@ const mutations: MutationTree<UserStateInterface> = {
|
||||||
setRoles(state, data: FG.Role[]) {
|
setRoles(state, data: FG.Role[]) {
|
||||||
state.roles = data;
|
state.roles = data;
|
||||||
},
|
},
|
||||||
|
addRole(state, data: FG.Role) {
|
||||||
|
state.roles.push(data);
|
||||||
|
},
|
||||||
updateRole(state, data: FG.Role) {
|
updateRole(state, data: FG.Role) {
|
||||||
const idx = state.roles.findIndex(role => role.id === data.id);
|
const idx = state.roles.findIndex(role => role.id === data.id);
|
||||||
if (idx != undefined || idx != null) {
|
if (idx >= 0) {
|
||||||
state.roles[idx].name = data.name;
|
state.roles[idx].name = data.name;
|
||||||
state.roles[idx].permissions = data.permissions;
|
state.roles[idx].permissions = data.permissions;
|
||||||
}
|
}
|
||||||
|
@ -184,11 +187,14 @@ const actions: ActionTree<UserStateInterface, StateInterface> = {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
newRole({ commit, dispatch }, data: FG.Role) {
|
newRole({ commit }, data: FG.Role) {
|
||||||
commit('setLoading');
|
commit('setLoading');
|
||||||
axios
|
return axios
|
||||||
.post('/roles', data)
|
.post('/roles', data)
|
||||||
.then(() => dispatch('getRoles', true))
|
.then((response: AxiosResponse<FG.Role>) => {
|
||||||
|
commit('addRole', response.data);
|
||||||
|
return Promise.resolve(response.data);
|
||||||
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
commit('setLoading', false);
|
commit('setLoading', false);
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue