From b007ab3df179811486270161b725ea8f8e072743 Mon Sep 17 00:00:00 2001 From: Michael Wedl <michael@syslifters.com> Date: Fri, 22 Dec 2023 06:39:41 +0100 Subject: [PATCH 1/2] Rework add finding button --- frontend/src/components/CreateFindingDialog.vue | 4 ++++ .../pages/projects/[projectId]/reporting.vue | 17 ++++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/frontend/src/components/CreateFindingDialog.vue b/frontend/src/components/CreateFindingDialog.vue index 1f1b156c7..5a26ef552 100644 --- a/frontend/src/components/CreateFindingDialog.vue +++ b/frontend/src/components/CreateFindingDialog.vue @@ -163,6 +163,10 @@ function onKeydown(event: KeyboardEvent) { searchInput.value = null; } } + +defineExpose({ + open: () => { dialogVisible.value = true }, +}); </script> <style lang="scss" scoped> diff --git a/frontend/src/pages/projects/[projectId]/reporting.vue b/frontend/src/pages/projects/[projectId]/reporting.vue index 3b595deb9..d69c31204 100644 --- a/frontend/src/pages/projects/[projectId]/reporting.vue +++ b/frontend/src/pages/projects/[projectId]/reporting.vue @@ -29,15 +29,26 @@ <v-list-subheader> <span>Findings</span> + <s-btn-icon + @click="($refs.createFindingDialogRef as any)!.open()" + :disabled="project.readonly" + size="small" + density="compact" + class="ml-2" + > + <v-icon icon="mdi-plus" /> + <s-tooltip activator="parent" location="top">Add Finding (Ctrl+J)</s-tooltip> + </s-btn-icon> <v-spacer /> <s-btn-icon v-if="projectType.finding_ordering.length > 0" @click="toggleOverrideFindingOrder" :disabled="project.readonly" - size="x-small" + size="small" + density="compact" > <v-icon :icon="project.override_finding_order ? 'mdi-sort-variant-off' : 'mdi-sort-variant'" /> - <s-tooltip activator="parent"> + <s-tooltip activator="parent" location="top"> <span v-if="project.override_finding_order">Custom order</span> <span v-else>Default order</span> </s-tooltip> @@ -83,7 +94,7 @@ <div> <v-divider class="mb-1" /> <v-list-item> - <create-finding-dialog :project="project" /> + <create-finding-dialog ref="createFindingDialogRef" :project="project" /> </v-list-item> </div> </v-list> From 5e26478f2c1936864690e8d144b0ee12a1f68320 Mon Sep 17 00:00:00 2001 From: Michael Wedl <michael@syslifters.com> Date: Fri, 22 Dec 2023 09:01:39 +0100 Subject: [PATCH 2/2] Move add note button to top --- frontend/src/components/Btn/Confirm.vue | 1 - frontend/src/layouts/default.vue | 2 +- frontend/src/pages/notes/personal.vue | 26 ++++++++----------- .../src/pages/projects/[projectId]/notes.vue | 22 ++++++++-------- .../pages/projects/[projectId]/reporting.vue | 2 ++ 5 files changed, 25 insertions(+), 28 deletions(-) diff --git a/frontend/src/components/Btn/Confirm.vue b/frontend/src/components/Btn/Confirm.vue index c4c24ea80..55e993ed1 100644 --- a/frontend/src/components/Btn/Confirm.vue +++ b/frontend/src/components/Btn/Confirm.vue @@ -32,7 +32,6 @@ :loading="actionInProgress" :disabled="disabled" :color="($attrs.color as string|undefined) || buttonColor || 'secondary'" - class="ml-1 mr-1" @click="!props.confirm ? performAction() : null" v-bind="{...$attrs, ...tooltipProps, ...dialogProps}" /> diff --git a/frontend/src/layouts/default.vue b/frontend/src/layouts/default.vue index ccedd3e25..c7dcc4545 100644 --- a/frontend/src/layouts/default.vue +++ b/frontend/src/layouts/default.vue @@ -27,7 +27,7 @@ :active="false" > <v-icon icon="mdi-notebook" /> - <s-tooltip activator="parent" location="bottom" text="Notes" /> + <s-tooltip activator="parent" location="bottom" text="Personal Notes" /> </s-btn-icon> <notification-menu-item v-if="auth.loggedIn.value" /> <s-btn-icon href="https://docs.sysreptor.com/" target="_blank"> diff --git a/frontend/src/pages/notes/personal.vue b/frontend/src/pages/notes/personal.vue index e033dbacb..0f39e4637 100644 --- a/frontend/src/pages/notes/personal.vue +++ b/frontend/src/pages/notes/personal.vue @@ -1,21 +1,8 @@ <template> <split-menu v-model="localSettings.notebookInputMenuSize" :content-props="{ class: 'pa-0 h-100' }"> <template #menu> - <v-list density="compact" class="pb-0 h-100 d-flex flex-column"> + <v-list density="compact" class="pt-0 pb-0 h-100 d-flex flex-column"> <div> - <v-list-item-title class="text-h6 pl-2">Personal Notes</v-list-item-title> - </div> - - <notes-sortable-list - :model-value="noteGroups" - @update:model-value="updateNoteOrder" - @update:note="updateNote" - to-prefix="/notes/personal/" - class="flex-grow-1 overflow-y-auto" - /> - - <div> - <v-divider /> <v-list-item> <btn-confirm :action="createNote" @@ -28,7 +15,16 @@ block /> </v-list-item> + <v-divider /> </div> + + <notes-sortable-list + :model-value="noteGroups" + @update:model-value="updateNoteOrder" + @update:note="updateNote" + to-prefix="/notes/personal/" + class="flex-grow-1 overflow-y-auto" + /> </v-list> </template> @@ -47,7 +43,7 @@ const userNotesStore = useUserNotesStore(); useHeadExtended({ titleTemplate: (title?: string|null) => userNotesTitleTemplate(title, route), - breadcrumbs: () => [{ title: 'Notes', to: '/notes/personal/' }], + breadcrumbs: () => [{ title: 'Personal Notes', to: '/notes/personal/' }], }); await useAsyncDataE(async () => await userNotesStore.fetchNotes()); diff --git a/frontend/src/pages/projects/[projectId]/notes.vue b/frontend/src/pages/projects/[projectId]/notes.vue index f64186f01..48c2fa682 100644 --- a/frontend/src/pages/projects/[projectId]/notes.vue +++ b/frontend/src/pages/projects/[projectId]/notes.vue @@ -1,18 +1,8 @@ <template> <split-menu v-model="localSettings.notebookInputMenuSize" :content-props="{ class: 'pa-0 h-100' }"> <template #menu> - <v-list density="compact" class="pb-0 h-100 d-flex flex-column"> - <notes-sortable-list - :model-value="noteGroups" - @update:model-value="updateNoteOrder" - @update:note="updateNote" - :disabled="project.readonly" - :to-prefix="`/projects/${$route.params.projectId}/notes/`" - class="flex-grow-1 overflow-y-auto" - /> - + <v-list density="compact" class="pt-0 pb-0 h-100 d-flex flex-column"> <div> - <v-divider /> <v-list-item> <btn-confirm :action="createNote" @@ -24,9 +14,19 @@ keyboard-shortcut="ctrl+j" size="small" block + class="ma-0" /> </v-list-item> + <v-divider /> </div> + <notes-sortable-list + :model-value="noteGroups" + @update:model-value="updateNoteOrder" + @update:note="updateNote" + :disabled="project.readonly" + :to-prefix="`/projects/${$route.params.projectId}/notes/`" + class="flex-grow-1 overflow-y-auto" + /> </v-list> </template> diff --git a/frontend/src/pages/projects/[projectId]/reporting.vue b/frontend/src/pages/projects/[projectId]/reporting.vue index d69c31204..329a171b8 100644 --- a/frontend/src/pages/projects/[projectId]/reporting.vue +++ b/frontend/src/pages/projects/[projectId]/reporting.vue @@ -33,6 +33,8 @@ @click="($refs.createFindingDialogRef as any)!.open()" :disabled="project.readonly" size="small" + variant="flat" + color="secondary" density="compact" class="ml-2" >