From 64f568c567b12a40b5ce497605977e8f1081f31e Mon Sep 17 00:00:00 2001 From: Dmitry Peshkov <31134795+DPeshkoff@users.noreply.github.com> Date: Wed, 24 Nov 2021 12:44:33 +0300 Subject: [PATCH] =?UTF-8?q?LDBR-3.17:=20=D0=94=D0=B5=D0=B4=D0=BB=D0=B0?= =?UTF-8?q?=D0=B9=D0=BD=20(#34)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * LDBR-3.17: Вернуть дедлайн, отрисовывать валидность даты в превью. * LDBR-3.17: Добавить возможность отмечать выполненную карточку, изменен дизайн превью дедлайна. * LDBR-3.17: Исправить стиль кодирования. * LDBR-3.17: Изменить название стиля согласно БЭМ'у * LDBR-3.17: Исправить интеграцию с бэкендом. * LDBR-3.17: Добавить ограничения на год, исправить автообновление, автоматически добавлять текущее время. --- src/actions/card.js | 34 ++++---- src/components/Card/Card.hbs | 12 +-- src/components/Card/Card.scss | 17 +++- src/modules/Helpers/isEmptyDeadlineHelper.js | 5 +- src/modules/Validator/Validator.js | 22 +++++ src/popups/Card/CardPopUp.hbs | 9 +- src/popups/Card/CardPopUp.js | 50 ++++++++++-- src/stores/BoardStore/BoardStore.js | 86 +++++++++++++++++++- src/views/BoardView/BoardView.js | 20 +++++ 9 files changed, 216 insertions(+), 39 deletions(-) diff --git a/src/actions/card.js b/src/actions/card.js index 6ed388eb..49decab3 100644 --- a/src/actions/card.js +++ b/src/actions/card.js @@ -15,6 +15,7 @@ export const CardActionTypes = { CARD_DELETE_SHOW: 'card/delete/show', CARD_DELETE_CHOOSE: 'card/delete/choose', CARD_DELETE_HIDE: 'card/delete/hide', + CARD_UPDATE_STATUS: 'card/update/deadline', }; /** @@ -58,39 +59,44 @@ export const cardActions = { /** * Обновляет список карточек - * @param {Number} position позиция на доске - * @param {String} title заголовок - * @param {String} description описание - * @param {Number} cid id карточки - * @param {Number} bid id доски - * @param {Number} clid id списка карточек + * @param {Object} data объект, содержащий поля карточки */ - updateCard(position, title, description, cid, bid, clid) { + updateCard(data) { Dispatcher.dispatch({ actionName: CardActionTypes.CARD_UPDATE_SUBMIT, + data, + }); + }, + + /** + * Обновляет статус дедлайна карточки + * @param {Number} clid id списка карточек + * @param {Number} cid id карточки + */ + updateDeadlineCard(clid, cid) { + Dispatcher.dispatch({ + actionName: CardActionTypes.CARD_UPDATE_STATUS, data: { - card_name: title, - description, - pos: position, - cid, - bid, clid, + cid, }, }); }, + /** * Создает карточку * @param {String} title заголовок * @param {String} description описание + * @param {String} deadline дедлайн */ - createCard(title, description) { + createCard(title, description, deadline) { Dispatcher.dispatch({ actionName: CardActionTypes.CARD_CREATE_SUBMIT, data: { card_name: title, description, - // deadline, + deadline, }, }); }, diff --git a/src/components/Card/Card.hbs b/src/components/Card/Card.hbs index 64422154..dea2b88e 100644 --- a/src/components/Card/Card.hbs +++ b/src/components/Card/Card.hbs @@ -9,12 +9,12 @@
-{{!-- {{#if (IsEmptyDeadlineHelper deadline)}} -
-
-
{{deadline}}
-
- {{/if}} --}} + {{#if (IsEmptyDeadlineHelper deadline)}} +
+
+
{{deadlineDate}}
+
+ {{/if}} {{#if description}}
{{/if}} diff --git a/src/components/Card/Card.scss b/src/components/Card/Card.scss index 04fc4390..fb7ee9cf 100644 --- a/src/components/Card/Card.scss +++ b/src/components/Card/Card.scss @@ -43,7 +43,6 @@ $card-due-date-done: forestgreen; .badge-due-date-wrapper { border: 2px solid; border-radius: 10px; - width: min-content; display: flex; flex-direction: row; padding-right: 5px; @@ -56,9 +55,23 @@ $card-due-date-done: forestgreen; .badge-due-date__text { font-family: 'Montserrat', sans-serif; - font-size: 15px; + font-size: 13px; font-weight: bold; line-height: normal; + color: rgb(255, 255, 255); + padding-top: 3px; + + &-invalid { + background-color: rgb(235, 90, 70); + } + + &-valid { + background-color: rgb(97, 189, 79); + } + + &-completed { + background-color: rgb(107, 148, 99); + } } .badge-due-date-wrapper_overdue { diff --git a/src/modules/Helpers/isEmptyDeadlineHelper.js b/src/modules/Helpers/isEmptyDeadlineHelper.js index 1dd7e59d..00a9affa 100644 --- a/src/modules/Helpers/isEmptyDeadlineHelper.js +++ b/src/modules/Helpers/isEmptyDeadlineHelper.js @@ -4,13 +4,12 @@ * @return {boolean} - результат сравнения * @constructor */ -/* export default function IsEmptyDeadlineHelper(deadline) { +export default function IsEmptyDeadlineHelper(deadline) { if (deadline) { - if (deadline === '0001-01-01T00:00:00Z') { + if (deadline === '0001-01-01T00:00') { return false; } return true; } return false; }; - */ diff --git a/src/modules/Validator/Validator.js b/src/modules/Validator/Validator.js index da7b687c..357f821f 100644 --- a/src/modules/Validator/Validator.js +++ b/src/modules/Validator/Validator.js @@ -137,4 +137,26 @@ export default class Validator { } return null; } + + /** + * Метод, валидирующий дату дедлайна + * @param {String} deadline дедлайн в строковом формате + * @param {boolean} deadlineCheck статус дедлайна (выполнено | не выполнено) + * @return {String} 'invalid' или 'valid' + */ + validateDeadline(deadline, deadlineCheck) { + /* if (!deadline) { + throw new Error('DeadlinePreview: некорректный deadline.'); + } */ + const deadlineDate = new Date(deadline); + const timeNow = new Date(); + + if (deadlineCheck) { + return 'completed'; + } + + return (deadlineDate <= timeNow) ? + 'invalid' : + 'valid'; + } } diff --git a/src/popups/Card/CardPopUp.hbs b/src/popups/Card/CardPopUp.hbs index 5bc7c629..ce6f7892 100644 --- a/src/popups/Card/CardPopUp.hbs +++ b/src/popups/Card/CardPopUp.hbs @@ -24,12 +24,13 @@ autofocus pattern="^[a-zA-Z\d]{1,40}$" autocomplete="off" required {{#if edit}} value="{{description}}" {{/if}}>
-{{!--
+
- -
--}} +
{{#if edit}}