From 7dc4319dc79ea4486e8feaae237044f4d609eeec Mon Sep 17 00:00:00 2001 From: Ramesh Mane <101566080+rameshmane7218@users.noreply.github.com> Date: Thu, 13 Jun 2024 14:27:22 +0530 Subject: [PATCH] Nc Refactor: Kanban view (#8689) * fix(nc-gui): update kanban view stack ui * feat(nc-gui): add collapse all stack option * fix(nc-gui): add empty stack placeholder * fix(nc-gui): add loading state support for ncSwitch * fix(nc-gui): swap edit card and stacked by toolbar menu * fix(nc-gui): update stacked by toolbar menu * fix(nc-gui): update kanban view height * fix(nc-gui): add stack bg color * feat(nc-gui): add support to hide empty stack * fix(nc-gui): stack loader issue * fix(nc-gui): checkbox alignment in kanban view * fix(nc-gui): update stack drag handler and hide it if user does not have permission * fix(nc-gui): stack title overflow issue * fix(nc-gui): allow inline rename stack * fix(nc-gui): advance color picker tab warnings * fix(nc-gui): rename stack option issues * fix(nc-gui): small changes * fix(nc-gui): review changes * feat(nc-gui): add new stack support * fix(nc-gui): small changes * fix(nc-gui): add loading state for rename & add new stack * fix(nc-gui): reduce width of stack * fix(nc-gui): make ncSwitch placement prop optional * fix(nc-gui): some review changes * fix(nc-gui): remove only from test * fix(nc-gui): add error handling part in kanban stack update * fix(nc-gui): update localstate while updating kanban stack meta * fix(nc-gui): some review changes * fix(nc-gui): add expand all stack option * fix(nc-gui): add condition to append new stack obj * fix(nc-gui): update card field label style * fix(nc-gui): remove top & bottom padding from stack * fix(nc-gui): drag stack test update * fix(nc-gui): console warning issues * text(nc-gui): update kanban view test * fix(nc-gui): remove last added empty row from stack if it is not saved * fix(nc-gui): duplicate column insert issue on rename stack * fix(nc-gui): update field menu * fix(nc-gui): add new stack duplicate issue * feat(nc-gui): add expand record option in context menu of gallery * fix(nc-gui): delete record fail issue #3111 * fix(nc-gui): hide grouping field by default in kanban view * chore(nc-gui): lint * fix(nc-gui): ui review changes * fix(nc-gui): select option focus issue in edit state * fix(nc-gui): add bottom border for stack * fix(nc-gui): ui review changes * fix(nc-gui): update color picker btn text from select option * fix(nc-gui): delete default value stack #8212 * fix(nc-gui): stack data offset an drag card issue * chore(nc-gui): lint --- packages/nc-gui/assets/nc-icons/drag.svg | 20 + .../nc-gui/assets/nc-icons/maximize-all.svg | 5 + packages/nc-gui/assets/nc-icons/maximize.svg | 14 +- .../nc-gui/assets/nc-icons/minimize-all.svg | 5 + packages/nc-gui/assets/nc-icons/minimize.svg | 10 + packages/nc-gui/assets/style.scss | 17 + packages/nc-gui/components/cell/Checkbox.vue | 6 +- .../nc-gui/components/cell/DatePicker.vue | 1 + .../nc-gui/components/cell/DateTimePicker.vue | 2 +- packages/nc-gui/components/cell/Json.vue | 2 +- .../nc-gui/components/cell/ReadOnlyUser.vue | 4 +- .../nc-gui/components/cell/TimePicker.vue | 1 + .../nc-gui/components/cell/YearPicker.vue | 6 +- .../components/general/AdvanceColorPicker.vue | 12 +- .../components/general/TruncateText.vue | 20 +- packages/nc-gui/components/nc/Button.vue | 2 +- packages/nc-gui/components/nc/Switch.vue | 34 +- .../nc-gui/components/smartsheet/Gallery.vue | 44 +- .../nc-gui/components/smartsheet/Kanban.vue | 998 ++++++++++++------ .../nc-gui/components/smartsheet/Toolbar.vue | 4 +- .../smartsheet/column/EditOrAdd.vue | 1 - .../smartsheet/column/SelectOptions.vue | 396 ++++--- .../smartsheet/expanded-form/index.vue | 3 + .../components/smartsheet/header/Cell.vue | 3 - .../smartsheet/kanban/EditOrAddStack.vue | 59 ++ .../smartsheet/toolbar/FieldsMenu.vue | 8 +- .../smartsheet/toolbar/StackedBy.vue | 155 ++- packages/nc-gui/composables/useAttachment.ts | 6 +- .../composables/useColumnCreateStore.ts | 9 +- .../nc-gui/composables/useKanbanViewStore.ts | 35 +- packages/nc-gui/lang/en.json | 19 +- packages/nc-gui/utils/iconUtils.ts | 11 + packages/nc-gui/utils/parseUtils.ts | 6 +- packages/nocodb/src/helpers/getAst.ts | 9 +- packages/nocodb/src/models/View.ts | 2 +- .../pages/Dashboard/Kanban/index.ts | 86 +- .../tests/db/views/viewKanban.spec.ts | 3 +- 37 files changed, 1429 insertions(+), 589 deletions(-) create mode 100644 packages/nc-gui/assets/nc-icons/drag.svg create mode 100644 packages/nc-gui/assets/nc-icons/maximize-all.svg create mode 100644 packages/nc-gui/assets/nc-icons/minimize-all.svg create mode 100644 packages/nc-gui/assets/nc-icons/minimize.svg create mode 100644 packages/nc-gui/components/smartsheet/kanban/EditOrAddStack.vue diff --git a/packages/nc-gui/assets/nc-icons/drag.svg b/packages/nc-gui/assets/nc-icons/drag.svg new file mode 100644 index 0000000000..c7d048f261 --- /dev/null +++ b/packages/nc-gui/assets/nc-icons/drag.svg @@ -0,0 +1,20 @@ + + + + + + + + \ No newline at end of file diff --git a/packages/nc-gui/assets/nc-icons/maximize-all.svg b/packages/nc-gui/assets/nc-icons/maximize-all.svg new file mode 100644 index 0000000000..990f6ab478 --- /dev/null +++ b/packages/nc-gui/assets/nc-icons/maximize-all.svg @@ -0,0 +1,5 @@ + + + \ No newline at end of file diff --git a/packages/nc-gui/assets/nc-icons/maximize.svg b/packages/nc-gui/assets/nc-icons/maximize.svg index 5ebeb1d312..54d389776b 100644 --- a/packages/nc-gui/assets/nc-icons/maximize.svg +++ b/packages/nc-gui/assets/nc-icons/maximize.svg @@ -1,6 +1,8 @@ - - - - - - + + + + + + \ No newline at end of file diff --git a/packages/nc-gui/assets/nc-icons/minimize-all.svg b/packages/nc-gui/assets/nc-icons/minimize-all.svg new file mode 100644 index 0000000000..5f648c170b --- /dev/null +++ b/packages/nc-gui/assets/nc-icons/minimize-all.svg @@ -0,0 +1,5 @@ + + + \ No newline at end of file diff --git a/packages/nc-gui/assets/nc-icons/minimize.svg b/packages/nc-gui/assets/nc-icons/minimize.svg new file mode 100644 index 0000000000..1cc18a87e1 --- /dev/null +++ b/packages/nc-gui/assets/nc-icons/minimize.svg @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/packages/nc-gui/assets/style.scss b/packages/nc-gui/assets/style.scss index 072fc9217e..f1cc42ee0d 100644 --- a/packages/nc-gui/assets/style.scss +++ b/packages/nc-gui/assets/style.scss @@ -249,6 +249,23 @@ a { @apply !rounded-md; } } + +.nc-select-shadow { + &.ant-select { + &:not(.ant-select-disabled):not(:hover):not(.ant-select-focused) .ant-select-selector, + &:not(.ant-select-disabled):hover.ant-select-disabled .ant-select-selector { + @apply shadow-default; + } + + &:hover:not(.ant-select-focused):not(.ant-select-disabled) .ant-select-selector { + @apply border-gray-300 shadow-hover; + } + &.ant-select-disabled .ant-select-selector { + box-shadow: none; + } + } +} + // select dropdown border style .ant-select-dropdown { @apply border-1 border-gray-200 rounded-lg; diff --git a/packages/nc-gui/components/cell/Checkbox.vue b/packages/nc-gui/components/cell/Checkbox.vue index 52480dbdf6..569ea6248e 100644 --- a/packages/nc-gui/components/cell/Checkbox.vue +++ b/packages/nc-gui/components/cell/Checkbox.vue @@ -25,6 +25,8 @@ const isEditColumnMenu = inject(EditColumnInj, ref(false)) const isGallery = inject(IsGalleryInj, ref(false)) +const isKanban = inject(IsKanbanInj, ref(false)) + const readOnly = inject(ReadonlyInj) const isExpandedFormOpen = inject(IsExpandedFormOpenInj, ref(false)) @@ -110,8 +112,8 @@ useSelectedCellKeyupListener(active, (e) => {
diff --git a/packages/nc-gui/components/cell/DateTimePicker.vue b/packages/nc-gui/components/cell/DateTimePicker.vue index 03f8f796de..b7e98b446e 100644 --- a/packages/nc-gui/components/cell/DateTimePicker.vue +++ b/packages/nc-gui/components/cell/DateTimePicker.vue @@ -428,7 +428,7 @@ const cellValue = computed( diff --git a/packages/nc-gui/components/cell/ReadOnlyUser.vue b/packages/nc-gui/components/cell/ReadOnlyUser.vue index 29896ca7b2..8cc79c1320 100644 --- a/packages/nc-gui/components/cell/ReadOnlyUser.vue +++ b/packages/nc-gui/components/cell/ReadOnlyUser.vue @@ -1,6 +1,8 @@