diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 993963b..b73bf33 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -7,6 +7,7 @@ GnButton, GnCheckbox, GnDescriptionList, + GnDropdown, GnEmptyState, GnFileUpload, GnIconButton, @@ -138,6 +139,21 @@ raw: field })) ); +const secretActionItems = computed(() => { + if (!selected.value) return []; + return [ + { label: "Reveal", icon: "ph ph-eye", onSelect: () => reveal(selected.value) }, + { label: "Versions", icon: "ph ph-clock-counter-clockwise", onSelect: () => loadVersions(selected.value) }, + { label: "Edit fields", icon: "ph ph-list-plus", onSelect: () => toggleEditFields() }, + { + label: `Mark ${selected.value.status === "actual" ? "outdated" : "actual"}`, + icon: "ph ph-arrows-clockwise", + onSelect: () => setStatus(selected.value.status === "actual" ? "outdated" : "actual") + }, + { label: "Archive", icon: "ph ph-archive", onSelect: () => archiveSelected() }, + { label: "Delete", icon: "ph ph-trash", danger: true, onSelect: () => confirmDeleteSecret(selected.value) } + ]; +}); const versionItems = computed(() => versions.value.map((version) => ({ title: `Version ${version.version_number}`, @@ -296,6 +312,10 @@ editing.value = false; } +function toggleEditFields() { + editFields.value = !editFields.value; +} + async function loadSecrets() { loading.value = true; error.value = ""; @@ -626,28 +646,20 @@ {{ selected.status }} - Edit +