mirror of
https://github.com/Sebclem/hassio-nextcloud-backup.git
synced 2024-11-10 03:22:58 +01:00
🔨 Add addon auto stop and security menu
This commit is contained in:
parent
c0c648ae2e
commit
ad9f4e46e6
@ -31,7 +31,6 @@ import { watch } from "vue";
|
|||||||
|
|
||||||
defineProps<{ loading: boolean }>();
|
defineProps<{ loading: boolean }>();
|
||||||
const backupConfigStore = useBackupConfigStore();
|
const backupConfigStore = useBackupConfigStore();
|
||||||
|
|
||||||
const { data, addons, invertedAddons } = storeToRefs(backupConfigStore);
|
const { data, addons, invertedAddons } = storeToRefs(backupConfigStore);
|
||||||
watch(invertedAddons, () => {
|
watch(invertedAddons, () => {
|
||||||
data.value.exclude.addon = [];
|
data.value.exclude.addon = [];
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
<v-row dense>
|
<v-row dense>
|
||||||
<v-col>
|
<v-col>
|
||||||
<v-switch
|
<v-switch
|
||||||
label="Auto clean Home Assistant Backups"
|
label="Auto clean Home Assistant backups"
|
||||||
v-model="data.autoClean.homeAssistant.enabled"
|
v-model="data.autoClean.homeAssistant.enabled"
|
||||||
hide-details="auto"
|
hide-details="auto"
|
||||||
density="compact"
|
density="compact"
|
||||||
@ -42,7 +42,7 @@
|
|||||||
<v-row dense>
|
<v-row dense>
|
||||||
<v-col>
|
<v-col>
|
||||||
<v-switch
|
<v-switch
|
||||||
label="Auto clean Cloud Backups"
|
label="Auto clean Cloud backups"
|
||||||
v-model="data.autoClean.webdav.enabled"
|
v-model="data.autoClean.webdav.enabled"
|
||||||
hide-details="auto"
|
hide-details="auto"
|
||||||
density="compact"
|
density="compact"
|
||||||
|
@ -0,0 +1,34 @@
|
|||||||
|
<template>
|
||||||
|
<v-card variant="elevated" elevation="7" height="100%">
|
||||||
|
<v-card-title class="text-center text-white bg-light-blue-darken-4">
|
||||||
|
Auto Stop Addon
|
||||||
|
</v-card-title>
|
||||||
|
<v-card-text class="text-white px-2 py-1">
|
||||||
|
<div v-if="loading" class="d-flex justify-center">
|
||||||
|
<v-progress-circular indeterminate color="orange"></v-progress-circular>
|
||||||
|
</div>
|
||||||
|
<v-checkbox
|
||||||
|
v-else
|
||||||
|
v-for="addon in addons"
|
||||||
|
v-model="data.autoStopAddon"
|
||||||
|
:key="addon.slug"
|
||||||
|
:label="addon.name"
|
||||||
|
:value="addon.slug"
|
||||||
|
:loading="loading"
|
||||||
|
hide-details="auto"
|
||||||
|
color="orange"
|
||||||
|
density="compact"
|
||||||
|
>
|
||||||
|
</v-checkbox>
|
||||||
|
</v-card-text>
|
||||||
|
</v-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { useBackupConfigStore } from "@/stores/backupConfig";
|
||||||
|
import { storeToRefs } from "pinia";
|
||||||
|
|
||||||
|
defineProps<{ loading: boolean }>();
|
||||||
|
const backupConfigStore = useBackupConfigStore();
|
||||||
|
const { data, addons } = storeToRefs(backupConfigStore);
|
||||||
|
</script>
|
@ -0,0 +1,56 @@
|
|||||||
|
<template>
|
||||||
|
<v-card variant="elevated" elevation="7">
|
||||||
|
<v-card-title class="bg-light-blue-darken-4 text-center">
|
||||||
|
Security
|
||||||
|
</v-card-title>
|
||||||
|
<v-card-text>
|
||||||
|
<v-row justify="center" v-if="loading">
|
||||||
|
<v-col class="d-flex justify-center">
|
||||||
|
<v-progress-circular
|
||||||
|
indeterminate
|
||||||
|
color="orange"
|
||||||
|
></v-progress-circular>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
<template v-if="!loading">
|
||||||
|
<v-row class="mt-1">
|
||||||
|
<v-col>
|
||||||
|
<v-switch
|
||||||
|
label="Password protected backup"
|
||||||
|
v-model="data.password.enabled"
|
||||||
|
hide-details="auto"
|
||||||
|
density="compact"
|
||||||
|
inset
|
||||||
|
:loading="loading"
|
||||||
|
color="orange"
|
||||||
|
></v-switch>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
<v-fade-transition>
|
||||||
|
<v-row dense v-if="data.password.enabled">
|
||||||
|
<v-col>
|
||||||
|
<div class="text-subtitle-1 text-medium-emphasis">Password</div>
|
||||||
|
<v-text-field
|
||||||
|
v-model="data.password.value"
|
||||||
|
hide-details="auto"
|
||||||
|
density="compact"
|
||||||
|
variant="outlined"
|
||||||
|
color="orange"
|
||||||
|
type="password"
|
||||||
|
></v-text-field>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
</v-fade-transition>
|
||||||
|
</template>
|
||||||
|
</v-card-text>
|
||||||
|
</v-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { useBackupConfigStore } from "@/stores/backupConfig";
|
||||||
|
import { storeToRefs } from "pinia";
|
||||||
|
|
||||||
|
defineProps<{ loading: boolean }>();
|
||||||
|
const backupConfigStore = useBackupConfigStore();
|
||||||
|
const { data } = storeToRefs(backupConfigStore);
|
||||||
|
</script>
|
@ -55,6 +55,17 @@
|
|||||||
<BackupConfigAutoClean :loading="loading"></BackupConfigAutoClean>
|
<BackupConfigAutoClean :loading="loading"></BackupConfigAutoClean>
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
|
<v-row dense>
|
||||||
|
<v-col>
|
||||||
|
<BackupConfigAutoStop :loading="loading"></BackupConfigAutoStop>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
<v-divider class="my-4"></v-divider>
|
||||||
|
<v-row class="mb-10">
|
||||||
|
<v-col>
|
||||||
|
<BackupConfigSecurity :loading="loading"></BackupConfigSecurity>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
</v-form>
|
</v-form>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
@ -68,6 +79,8 @@ import BackupConfigAddon from "./BackupConfig/BackupConfigAddon.vue";
|
|||||||
import BackupConfigAutoBackup from "./BackupConfig/BackupConfigAutoBackup.vue";
|
import BackupConfigAutoBackup from "./BackupConfig/BackupConfigAutoBackup.vue";
|
||||||
import BackupConfigFolder from "./BackupConfig/BackupConfigFolder.vue";
|
import BackupConfigFolder from "./BackupConfig/BackupConfigFolder.vue";
|
||||||
import BackupConfigAutoClean from "./BackupConfig/BackupConfigAutoClean.vue";
|
import BackupConfigAutoClean from "./BackupConfig/BackupConfigAutoClean.vue";
|
||||||
|
import BackupConfigSecurity from "./BackupConfig/BackupConfigSecurity.vue";
|
||||||
|
import BackupConfigAutoStop from "./BackupConfig/BackupConfigAutoStop.vue";
|
||||||
|
|
||||||
const backupConfigStore = useBackupConfigStore();
|
const backupConfigStore = useBackupConfigStore();
|
||||||
const { data } = storeToRefs(backupConfigStore);
|
const { data } = storeToRefs(backupConfigStore);
|
||||||
|
@ -33,5 +33,9 @@ function cleanupConfig(config: BackupConfig) {
|
|||||||
if (!config.autoClean.webdav.enabled) {
|
if (!config.autoClean.webdav.enabled) {
|
||||||
config.autoClean.webdav.nbrToKeep = undefined;
|
config.autoClean.webdav.nbrToKeep = undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!config.password.enabled){
|
||||||
|
config.password.value = undefined;
|
||||||
|
}
|
||||||
return config;
|
return config;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user