cygnal/src/components/PermissionsSwitches.vue

153 lines
4.9 KiB
Vue

<template>
<v-list subheader three-line>
<v-subheader>Permissions</v-subheader>
<v-list-tile
@click.prevent="hasPlaySoundPermission = !hasPlaySoundPermission"
>
<v-list-tile-action>
<v-checkbox
v-model="hasPlaySoundPermission"
></v-checkbox>
</v-list-tile-action>
<v-list-tile-content
>
<v-list-tile-title>
{{ $t('permissions.playSound') }}
</v-list-tile-title>
</v-list-tile-content>
</v-list-tile>
<v-list-tile
@click.prevent="hasVibratePermission = !hasVibratePermission"
>
<v-list-tile-action>
<v-checkbox
v-model="hasVibratePermission"
></v-checkbox>
</v-list-tile-action>
<v-list-tile-content
>
<v-list-tile-title>
{{ $t('permissions.vibrate') }}
</v-list-tile-title>
</v-list-tile-content>
</v-list-tile>
<v-list-tile
@click.prevent="hasGeolocationPermission = !hasGeolocationPermission"
>
<v-list-tile-action>
<v-checkbox
v-model="hasGeolocationPermission"
></v-checkbox>
</v-list-tile-action>
<v-list-tile-content>
<v-list-tile-title>
{{ $t('permissions.geolocation') }}
</v-list-tile-title>
<v-list-tile-sub-title>
{{ $t('permissions.geolocationDescription') }}
</v-list-tile-sub-title>
</v-list-tile-content>
</v-list-tile>
<v-list-tile
@click.prevent="hasPreventSuspendPermission = !hasPreventSuspendPermission"
>
<v-list-tile-action>
<v-checkbox
v-model="hasPreventSuspendPermission"
></v-checkbox>
</v-list-tile-action>
<v-list-tile-content>
<v-list-tile-title>
{{ $t('permissions.preventSuspend') }}
</v-list-tile-title>
<v-list-tile-sub-title>
{{ $t('permissions.preventSuspendDescription') }}
</v-list-tile-sub-title>
</v-list-tile-content>
</v-list-tile>
<v-list-tile
@click.prevent="hasPermanentNotificationPermission = (
!hasPermanentNotificationPermission
)"
>
<v-list-tile-action>
<v-checkbox
v-model="hasPermanentNotificationPermission"
></v-checkbox>
</v-list-tile-action>
<v-list-tile-content>
<v-list-tile-title>
{{ $t('permissions.permanentNotification') }}
</v-list-tile-title>
<v-list-tile-sub-title>
{{ $t('permissions.permanentNotificationDescription') }}
</v-list-tile-sub-title>
</v-list-tile-content>
</v-list-tile>
</v-list>
</template>
<script>
// TODO: Disable list items if function is not supported
export default {
computed: {
hasGeolocationPermission: {
get() {
return this.$store.state.settings.hasGeolocationPermission;
},
set(value) {
this.$store.dispatch('setSetting', { setting: 'hasGeolocationPermission', value });
},
},
hasPermanentNotificationPermission: {
get() {
return this.$store.state.settings.hasPermanentNotificationPermission;
},
set(value) {
this.$store.dispatch('setSetting', { setting: 'hasPermanentNotificationPermission', value });
},
},
hasPlaySoundPermission: {
get() {
return this.$store.state.settings.hasPlaySoundPermission;
},
set(value) {
this.$store.dispatch('setSetting', { setting: 'hasPlaySoundPermission', value });
},
},
hasPreventSuspendPermission: {
get() {
return this.$store.state.settings.hasPreventSuspendPermission;
},
set(value) {
this.$store.dispatch('setSetting', { setting: 'hasPreventSuspendPermission', value });
},
},
hasVibratePermission: {
get() {
return this.$store.state.settings.hasVibratePermission;
},
set(value) {
this.$store.dispatch('setSetting', { setting: 'hasVibratePermission', value });
},
},
},
};
</script>
<style>
.switch .v-label {
color: rgba(0,0,0,.87);
}
</style>