From 27ecc12cfefa2131151c17f75c2e209c63d2362e Mon Sep 17 00:00:00 2001 From: GeorgiyX <34867130+GeorgiyX@users.noreply.github.com> Date: Thu, 16 Dec 2021 13:35:43 +0300 Subject: [PATCH] =?UTF-8?q?LDBR-4.12:=20=D0=A2=D0=B5=D0=B3=D0=B8=20(#45)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * LDBR-4.12: Добавить actions * LDBR-4.12: Добавить верстку TagPopUp * LDBR-4.12: Добавить верстку TagsListPopUp * LDBR-4.12: Добавить callback'и * LDBR-4.12: Добавить код в CardPopUp и BoardView * LDBR-4.12: Внести правки для тестового запуска * LDBR-4.12: Отображение окон и правки по стилям * LDBR-4.12: Добавить все операции с тегами и offline заглушки * LDBR-4.12: Удалить параметр * LDBR-4.12: Добавить bid в запрос создания тега * LDBR-4.12: Внести правки после итеграции с беком * LDBR-4.12: Валидация названия тега * LDBR-4.12: Убрать порт из запросов --- src/actions/tags.js | 153 +++++++++ src/components/Card/Card.hbs | 2 +- src/constants/constants.js | 2 + src/modules/Network/Network.js | 63 ++++ src/modules/Validator/Validator.js | 12 + src/popups/Card/CardPopUp.hbs | 44 ++- src/popups/Card/CardPopUp.js | 28 ++ src/popups/Card/CardPopUp.scss | 23 ++ src/popups/Tag/TagPopUp.hbs | 46 +++ src/popups/Tag/TagPopUp.js | 153 +++++++++ src/popups/Tag/TagPopUp.scss | 76 +++++ src/popups/TagsList/TagsListPopUp.hbs | 38 +++ src/popups/TagsList/TagsListPopUp.js | 144 +++++++++ src/popups/TagsList/TagsListPopUp.scss | 62 ++++ src/stores/BoardStore/BoardStore.js | 427 ++++++++++++++++++++++++- src/styles/scss/CardPopup.scss | 7 +- src/styles/scss/Common.scss | 10 +- src/styles/scss/Constants.scss | 2 + src/styles/scss/PopUp.scss | 8 + src/views/BoardView/BoardView.hbs | 4 + src/views/BoardView/BoardView.js | 19 ++ webpack.config.js | 4 +- 22 files changed, 1300 insertions(+), 27 deletions(-) create mode 100644 src/actions/tags.js create mode 100644 src/popups/Tag/TagPopUp.hbs create mode 100644 src/popups/Tag/TagPopUp.js create mode 100644 src/popups/Tag/TagPopUp.scss create mode 100644 src/popups/TagsList/TagsListPopUp.hbs create mode 100644 src/popups/TagsList/TagsListPopUp.js create mode 100644 src/popups/TagsList/TagsListPopUp.scss diff --git a/src/actions/tags.js b/src/actions/tags.js new file mode 100644 index 00000000..58a753e4 --- /dev/null +++ b/src/actions/tags.js @@ -0,0 +1,153 @@ +'use strict'; + +// Modules +import Dispatcher from '../modules/Dispatcher/Dispatcher.js'; + +/** + * Константа, содержащая в себе типы действий для работы с тегами. + */ +export const TagsActionTypes = { + /* Список тегов (в случае карточки и в случае доски) */ + SHOW_LIST_POPUP_BOARD: 'tags/list-popup/show/board', + SHOW_LIST_POPUP_CARD: 'tags/list-popup/show/card', + HIDE_LIST_POPUP: 'tags/list-popup/hide', + + /* Окно редактирования/создания тега */ + SHOW_TAG_POPUP_EDIT: 'tags/tag-popup/edit/show', + SHOW_TAG_POPUP_CREATE: 'tags/tag-popup/create/show', + HIDE_TAG_POPUP: 'tags/tag-popup/hide', + CREATE_TAG: 'tags/create', + DELETE_TAG: 'tags/delete', + UPDATE_TAG: 'tags/update', + PICK_COLOR: 'tags/pick-color', + + /* Переключение тега у карточки */ + TOGGLE_TAG: 'tags/toggle', + EDIT_TAG_NAME: 'tags/editname', +}; + +/** + * Класс, содержащий в себе действия для работы с тегами. + */ +export const tagsActions = { + + /** + * Отображает окно со списком тегов, при нажатии на кнопку тегов на доске + */ + showTagListPopUpBoard() { + Dispatcher.dispatch({ + actionName: TagsActionTypes.SHOW_LIST_POPUP_BOARD, + }); + }, + + /** + * Отображает окно со списком тегов, при нажатии на кнопку добавить тег на карточке + */ + showTagListPopUpCard() { + Dispatcher.dispatch({ + actionName: TagsActionTypes.SHOW_LIST_POPUP_CARD, + }); + }, + + /** + * Скрывает окно со списком тегов + */ + hideTagListPopUp() { + Dispatcher.dispatch({ + actionName: TagsActionTypes.HIDE_LIST_POPUP, + }); + }, + + /** + * Отображает окно редактирования тега + * @param {Number} tgid id тега + */ + showTagEditPopUp(tgid) { + Dispatcher.dispatch({ + actionName: TagsActionTypes.SHOW_TAG_POPUP_EDIT, + data: {tgid}, + }); + }, + + /** + * Отображает окно создания тега + */ + showTagCreatePopUp() { + Dispatcher.dispatch({ + actionName: TagsActionTypes.SHOW_TAG_POPUP_CREATE, + }); + }, + + /** + * Скрывает окно тега + */ + hideTagPopUp() { + Dispatcher.dispatch({ + actionName: TagsActionTypes.HIDE_TAG_POPUP, + }); + }, + + /** + * Создает тег + * @param {String} tagName название тега + */ + createTag(tagName) { + Dispatcher.dispatch({ + actionName: TagsActionTypes.CREATE_TAG, + data: { + tag_name: tagName, + }, + }); + }, + + /** + * Удаляет тег + */ + deleteTag() { + Dispatcher.dispatch({ + actionName: TagsActionTypes.DELETE_TAG, + }); + }, + + /** + * Обновляет тег + */ + updateTag() { + Dispatcher.dispatch({ + actionName: TagsActionTypes.UPDATE_TAG, + }); + }, + + /** + * Переключает тег у карточки + * @param {Number} tgid id тега + */ + toggleTag(tgid) { + Dispatcher.dispatch({ + actionName: TagsActionTypes.TOGGLE_TAG, + data: {tgid}, + }); + }, + + /** + * Выбирает цвет для текущего, редактируемого тега + * @param {Number} clrid id цвета + */ + pickColor(clrid) { + Dispatcher.dispatch({ + actionName: TagsActionTypes.PICK_COLOR, + data: {clrid}, + }); + }, + + /** + * Обновляет в сторе редактируемое имя тега + * @param {String} tagName название тега + */ + editTagName(tagName) { + Dispatcher.dispatch({ + actionName: TagsActionTypes.EDIT_TAG_NAME, + data: {tag_name: tagName}, + }); + }, +}; diff --git a/src/components/Card/Card.hbs b/src/components/Card/Card.hbs index 43e9331f..e861f219 100644 --- a/src/components/Card/Card.hbs +++ b/src/components/Card/Card.hbs @@ -1,7 +1,7 @@