add device name in settings

This commit is contained in:
2025-06-17 17:02:14 +02:00
parent e33fa804fa
commit 70b25ed17b
2 changed files with 54 additions and 3 deletions

View File

@ -36,6 +36,25 @@
{{ t('notifications.requestPermission') }} {{ t('notifications.requestPermission') }}
</UiButton> </UiButton>
</div> </div>
<div class="p-2">{{ t('deviceName.label') }}</div>
<div>
<UiInput
v-model="deviceName"
:placeholder="t('deviceName.label')"
>
<template #append>
<UiButton
class="btn-primary"
@click="onUpdateDeviceNameAsync"
:tooltip="t('save')"
:rules="vaultDeviceNameSchema"
>
<Icon name="mdi:content-save-outline" />
</UiButton>
</template>
</UiInput>
</div>
</div> </div>
</template> </template>
@ -76,6 +95,23 @@ const onSetVaultNameAsync = async () => {
} }
const { requestNotificationPermissionAsync } = useNotificationStore() const { requestNotificationPermissionAsync } = useNotificationStore()
const { deviceName } = storeToRefs(useDeviceStore())
const { updateDeviceNameAsync, readDeviceNameAsync } = useDeviceStore()
onMounted(async () => {
await readDeviceNameAsync()
})
const onUpdateDeviceNameAsync = async () => {
const check = vaultDeviceNameSchema.safeParse(deviceName.value)
if (!check.success) return
try {
await updateDeviceNameAsync({ name: deviceName.value })
add({ text: t('deviceName.update.success'), type: 'success' })
} catch (error) {
add({ text: t('deviceName.update.error'), type: 'error' })
}
}
</script> </script>
<i18n lang="yaml"> <i18n lang="yaml">
@ -91,6 +127,11 @@ de:
update: update:
success: Vaultname erfolgreich aktualisiert success: Vaultname erfolgreich aktualisiert
error: Vaultname konnte nicht aktualisiert werden error: Vaultname konnte nicht aktualisiert werden
deviceName:
label: Gerätename
update:
success: Gerätename wurde erfolgreich aktualisiert
error: Gerätename konnte nich aktualisiert werden
en: en:
language: Language language: Language
design: Design design: Design
@ -103,4 +144,9 @@ en:
update: update:
success: Vault Name successfully updated success: Vault Name successfully updated
error: Vault name could not be updated error: Vault name could not be updated
deviceName:
label: Device name
update:
success: Device name has been successfully updated
error: Device name could not be updated
</i18n> </i18n>

View File

@ -44,9 +44,13 @@ export const useDeviceStore = defineStore('vaultInstanceStore', () => {
return deviceId ? (await readDeviceNameAsync(deviceId)) || false : false return deviceId ? (await readDeviceNameAsync(deviceId)) || false : false
} }
const readDeviceNameAsync = async (id: string) => { const readDeviceNameAsync = async (id?: string) => {
const { readDeviceNameAsync } = useVaultSettingsStore() const { readDeviceNameAsync } = useVaultSettingsStore()
deviceName.value = (await readDeviceNameAsync(id))?.value ?? '' const _id = id ?? deviceId.value
console.log('readDeviceNameAsync id', _id)
if (!_id) return
deviceName.value = (await readDeviceNameAsync(_id))?.value ?? ''
return deviceName.value return deviceName.value
} }
@ -87,8 +91,9 @@ export const useDeviceStore = defineStore('vaultInstanceStore', () => {
} }
return { return {
addDeviceNameAsync, addDeviceNameAsync,
hostname,
deviceId, deviceId,
deviceName,
hostname,
isKnownDeviceAsync, isKnownDeviceAsync,
readDeviceNameAsync, readDeviceNameAsync,
setDeviceIdAsync, setDeviceIdAsync,