From a741e26ccbceb8c5c87c1c300d200637af3d4db9 Mon Sep 17 00:00:00 2001 From: Maksim Eltyshev Date: Mon, 9 Jan 2023 12:17:06 +0100 Subject: [PATCH] feat: Labels reordering Closes #289 --- .../components/BoardActions/BoardActions.jsx | 3 + .../src/components/BoardActions/Filters.jsx | 3 + client/src/components/Card/ActionsPopup.jsx | 3 + client/src/components/Card/Card.jsx | 3 + client/src/components/CardModal/CardModal.jsx | 5 ++ client/src/components/LabelsStep/Item.jsx | 76 +++++++++++-------- .../components/LabelsStep/Item.module.scss | 9 +-- .../src/components/LabelsStep/LabelsStep.jsx | 69 +++++++++++++---- .../LabelsStep/LabelsStep.module.scss | 5 ++ client/src/constants/DroppableTypes.js | 2 + client/src/constants/EntryActionTypes.js | 1 + .../src/containers/BoardActionsContainer.js | 1 + client/src/containers/CardContainer.js | 1 + client/src/containers/CardModalContainer.js | 1 + client/src/entry-actions/labels.js | 9 +++ client/src/models/Board.js | 4 + client/src/models/Label.js | 1 + client/src/sagas/core/services/labels.js | 19 ++++- client/src/sagas/core/watchers/labels.js | 3 + client/src/selectors/boards.js | 11 ++- client/src/selectors/core.js | 17 +++++ client/src/selectors/index.js | 2 + client/src/selectors/labels.js | 25 ++++++ server/api/controllers/labels/create.js | 6 +- server/api/controllers/labels/update.js | 6 +- server/api/helpers/boards/get-labels.js | 16 +++- server/api/helpers/labels/create-one.js | 28 +++++++ server/api/helpers/labels/get-many.js | 2 +- server/api/helpers/labels/update-one.js | 40 ++++++++++ server/api/models/Label.js | 4 + ...220713145452_add_position_to_task_table.js | 45 +---------- .../20230108213138_labels_reordering.js | 5 ++ server/utils/migrations.js | 49 ++++++++++++ 33 files changed, 370 insertions(+), 104 deletions(-) create mode 100644 client/src/selectors/labels.js create mode 100644 server/db/migrations/20230108213138_labels_reordering.js create mode 100644 server/utils/migrations.js diff --git a/client/src/components/BoardActions/BoardActions.jsx b/client/src/components/BoardActions/BoardActions.jsx index d0cf2ee4..0f1d552f 100644 --- a/client/src/components/BoardActions/BoardActions.jsx +++ b/client/src/components/BoardActions/BoardActions.jsx @@ -25,6 +25,7 @@ const BoardActions = React.memo( onLabelFromFilterRemove, onLabelCreate, onLabelUpdate, + onLabelMove, onLabelDelete, }) => { return ( @@ -54,6 +55,7 @@ const BoardActions = React.memo( onLabelRemove={onLabelFromFilterRemove} onLabelCreate={onLabelCreate} onLabelUpdate={onLabelUpdate} + onLabelMove={onLabelMove} onLabelDelete={onLabelDelete} /> @@ -82,6 +84,7 @@ BoardActions.propTypes = { onLabelFromFilterRemove: PropTypes.func.isRequired, onLabelCreate: PropTypes.func.isRequired, onLabelUpdate: PropTypes.func.isRequired, + onLabelMove: PropTypes.func.isRequired, onLabelDelete: PropTypes.func.isRequired, }; diff --git a/client/src/components/BoardActions/Filters.jsx b/client/src/components/BoardActions/Filters.jsx index 6e30946d..c1bd7cc0 100644 --- a/client/src/components/BoardActions/Filters.jsx +++ b/client/src/components/BoardActions/Filters.jsx @@ -22,6 +22,7 @@ const Filters = React.memo( onLabelRemove, onLabelCreate, onLabelUpdate, + onLabelMove, onLabelDelete, }) => { const [t] = useTranslation(); @@ -80,6 +81,7 @@ const Filters = React.memo( onDeselect={onLabelRemove} onCreate={onLabelCreate} onUpdate={onLabelUpdate} + onMove={onLabelMove} onDelete={onLabelDelete} >