2020-10-16 06:45:40 +00:00
|
|
|
<template>
|
|
|
|
<div>
|
2020-11-24 17:42:43 +00:00
|
|
|
<q-page padding class="fit row justify-center content-center items-center q-gutter-sm">
|
2020-11-06 00:17:04 +00:00
|
|
|
<q-card class="col-12">
|
2020-11-24 17:42:43 +00:00
|
|
|
<q-card-section class="fit row justify-start content-center items-center">
|
2020-11-06 00:17:04 +00:00
|
|
|
<div class="col-12 text-center text-h6">Benutzereinstellungen</div>
|
|
|
|
</q-card-section>
|
2020-11-12 21:48:19 +00:00
|
|
|
<MainUserSettings :user="currentUser" @update:user="updateUser" />
|
2020-11-06 00:17:04 +00:00
|
|
|
</q-card>
|
|
|
|
<div class="col-12 text-left text-h6">Aktive Sessions:</div>
|
2021-02-03 01:12:38 +00:00
|
|
|
<Session
|
|
|
|
v-for="(session, index) in sessions"
|
|
|
|
:key="'session' + index"
|
|
|
|
v-model="sessions[index]"
|
|
|
|
@delete="removeSession(session)"
|
|
|
|
/>
|
2020-10-16 06:45:40 +00:00
|
|
|
</q-page>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script lang="ts">
|
2021-02-02 21:32:23 +00:00
|
|
|
import { defineComponent, onBeforeMount, ref } from 'vue';
|
2021-02-03 01:12:38 +00:00
|
|
|
import Session from '../components/settings/Sessions.vue';
|
2020-11-06 00:17:04 +00:00
|
|
|
import MainUserSettings from '../components/settings/MainUserSettings.vue';
|
2021-02-02 21:32:23 +00:00
|
|
|
import { useMainStore } from 'src/store';
|
|
|
|
import { useSessionStore } from '../store';
|
|
|
|
import { useUserStore } from '../store';
|
2020-10-29 00:39:06 +00:00
|
|
|
|
2020-10-16 06:45:40 +00:00
|
|
|
export default defineComponent({
|
|
|
|
// name: 'PageName'
|
2021-02-03 01:12:38 +00:00
|
|
|
components: { Session, MainUserSettings },
|
2021-01-30 07:38:44 +00:00
|
|
|
setup() {
|
2021-02-02 21:32:23 +00:00
|
|
|
const mainStore = useMainStore();
|
|
|
|
const sessionStore = useSessionStore();
|
|
|
|
const userStore = useUserStore();
|
2020-10-29 00:39:06 +00:00
|
|
|
|
2021-02-02 21:32:23 +00:00
|
|
|
onBeforeMount(() => sessionStore.getSessions().then((s) => (sessions.value = s)));
|
|
|
|
const currentUser = ref(mainStore.currentUser);
|
|
|
|
const sessions = ref([] as FG.Session[]);
|
2020-10-16 11:54:01 +00:00
|
|
|
|
2021-02-02 21:32:23 +00:00
|
|
|
async function updateUser(value: FG.User) {
|
|
|
|
await userStore.updateUser(value);
|
2020-11-12 21:48:19 +00:00
|
|
|
}
|
2020-10-16 11:54:01 +00:00
|
|
|
|
2021-02-03 01:12:38 +00:00
|
|
|
function removeSession(s: FG.Session) {
|
|
|
|
sessions.value = sessions.value.filter((ss) => ss.token !== s.token);
|
|
|
|
}
|
|
|
|
|
2020-10-16 11:07:31 +00:00
|
|
|
return {
|
2020-11-06 00:17:04 +00:00
|
|
|
currentUser,
|
2020-11-12 21:48:19 +00:00
|
|
|
sessions,
|
2021-03-18 16:23:57 +00:00
|
|
|
updateUser,
|
2021-02-03 01:12:38 +00:00
|
|
|
removeSession,
|
2020-10-16 11:07:31 +00:00
|
|
|
};
|
2021-03-18 16:23:57 +00:00
|
|
|
},
|
2020-10-16 06:45:40 +00:00
|
|
|
});
|
|
|
|
</script>
|