From 31cfb8266ffaf9fbd3deba900d107bfd4b96aa69 Mon Sep 17 00:00:00 2001 From: Azri Kahar <42867097+azrikahar@users.noreply.github.com> Date: Mon, 28 Mar 2022 23:23:00 +0800 Subject: [PATCH] Bookmark improvements (#12031) * add icon & color to bookmarks * update current bookmark title on edit * clean up edit bookmark dialog on cancel * remove unused bookmark-edit component * interaction improvements * sort based on scope and alphabetically * prevent hover when locked & use tooltip * Reduce size of right hand icon in bookmark Co-authored-by: rijkvanzanten --- .../20220308A-add-bookmark-icon-and-color.ts | 15 ++ .../database/system-data/fields/presets.yaml | 6 + app/src/composables/use-preset/use-preset.ts | 5 + app/src/lang/translations/en-US.yaml | 9 +- .../components/navigation-bookmark.vue | 137 +++++++++++++----- app/src/modules/content/routes/collection.vue | 22 +-- .../modules/settings/routes/presets/item.vue | 25 ++++ app/src/stores/presets.ts | 11 +- .../components/bookmark-add/bookmark-add.vue | 58 ++++++-- .../bookmark-edit/bookmark-edit.vue | 72 --------- .../private/components/bookmark-edit/index.ts | 4 - packages/shared/src/types/presets.ts | 2 + 12 files changed, 222 insertions(+), 144 deletions(-) create mode 100644 api/src/database/migrations/20220308A-add-bookmark-icon-and-color.ts delete mode 100644 app/src/views/private/components/bookmark-edit/bookmark-edit.vue delete mode 100644 app/src/views/private/components/bookmark-edit/index.ts diff --git a/api/src/database/migrations/20220308A-add-bookmark-icon-and-color.ts b/api/src/database/migrations/20220308A-add-bookmark-icon-and-color.ts new file mode 100644 index 0000000000..6e60960fcc --- /dev/null +++ b/api/src/database/migrations/20220308A-add-bookmark-icon-and-color.ts @@ -0,0 +1,15 @@ +import { Knex } from 'knex'; + +export async function up(knex: Knex): Promise { + await knex.schema.alterTable('directus_presets', (table) => { + table.string('icon', 30).notNullable().defaultTo('bookmark_outline'); + table.string('color').nullable(); + }); +} + +export async function down(knex: Knex): Promise { + await knex.schema.alterTable('directus_presets', (table) => { + table.dropColumn('icon'); + table.dropColumn('color'); + }); +} diff --git a/api/src/database/system-data/fields/presets.yaml b/api/src/database/system-data/fields/presets.yaml index c79b3f03ec..f955b9910a 100644 --- a/api/src/database/system-data/fields/presets.yaml +++ b/api/src/database/system-data/fields/presets.yaml @@ -33,6 +33,12 @@ fields: - field: bookmark width: half + - field: icon + width: half + + - field: color + width: half + - field: search width: half diff --git a/app/src/composables/use-preset/use-preset.ts b/app/src/composables/use-preset/use-preset.ts index 104e3c075f..824bd4c798 100644 --- a/app/src/composables/use-preset/use-preset.ts +++ b/app/src/composables/use-preset/use-preset.ts @@ -90,6 +90,11 @@ export function usePreset( initLocalPreset(); }); + // update current bookmark title when it is edited in navigation-bookmark + presetsStore.$subscribe(() => { + initLocalPreset(); + }); + const layoutOptions = computed>({ get() { return localPreset.value.layout_options?.[layout.value] || null; diff --git a/app/src/lang/translations/en-US.yaml b/app/src/lang/translations/en-US.yaml index 6e49fc9d84..f56df7b1dc 100644 --- a/app/src/lang/translations/en-US.yaml +++ b/app/src/lang/translations/en-US.yaml @@ -92,11 +92,13 @@ delete_folder: Delete Folder prefix: Prefix suffix: Suffix reset_bookmark: Reset Bookmark -rename_bookmark: Rename Bookmark update_bookmark: Update Bookmark delete_bookmark: Delete Bookmark delete_bookmark_copy: >- Are you sure you want to delete the "{bookmark}" bookmark? This action cannot be undone. +delete_personal_bookmark: Delete Personal Bookmark +delete_role_bookmark: Delete Role Bookmark +delete_global_bookmark: Delete Global Bookmark logoutReason: SIGN_OUT: Signed out SESSION_EXPIRED: Session expired @@ -569,6 +571,11 @@ value_hashed: Value Securely Hashed bookmark_name: Bookmark name... create_bookmark: Create Bookmark edit_bookmark: Edit Bookmark +edit_personal_bookmark: Edit Personal Bookmark +edit_role_bookmark: Edit Role Bookmark +edit_global_bookmark: Edit Global Bookmark +cannot_edit_role_bookmarks: Can't Edit Role Bookmarks +cannot_edit_global_bookmarks: Can't Edit Global Bookmarks bookmarks: Bookmarks presets: Presets unexpected_error: Unexpected Error diff --git a/app/src/modules/content/components/navigation-bookmark.vue b/app/src/modules/content/components/navigation-bookmark.vue index dc936d8b69..12634ecc71 100644 --- a/app/src/modules/content/components/navigation-bookmark.vue +++ b/app/src/modules/content/components/navigation-bookmark.vue @@ -1,46 +1,64 @@