From c3b4ed6e1fe706195176e011c6004d3a301a9458 Mon Sep 17 00:00:00 2001 From: Thanos Kamber Date: Wed, 30 Aug 2023 22:17:53 +0300 Subject: [PATCH 1/8] Added ability to mark card as done Closes #534 Signed-off-by: Thanos Kamber --- appinfo/routes.php | 2 + docs/API.md | 7 ++ docs/User_documentation_en.md | 31 +++-- docs/resources/gifs/EN_done.gif | Bin 0 -> 89651 bytes lib/Activity/ActivityManager.php | 10 ++ lib/Controller/CardApiController.php | 4 +- lib/Controller/CardController.php | 18 +++ lib/Db/Card.php | 2 + lib/Db/CardMapper.php | 3 + .../Version1011Date20230901010840.php | 60 ++++++++++ lib/Service/CardService.php | 59 +++++++++- src/components/card/CardSidebarTabDetails.vue | 107 +++++++++++++++++- src/components/cards/CardItem.vue | 6 +- src/components/cards/CardMenu.vue | 6 + src/components/cards/badges/Done.vue | 68 +++++++++++ src/services/CardApi.js | 30 +++++ src/store/card.js | 9 ++ tests/unit/Db/CardTest.php | 4 + 18 files changed, 406 insertions(+), 20 deletions(-) create mode 100644 docs/resources/gifs/EN_done.gif create mode 100644 lib/Migration/Version1011Date20230901010840.php create mode 100644 src/components/cards/badges/Done.vue diff --git a/appinfo/routes.php b/appinfo/routes.php index 9105bf8ef..467a3ddc6 100644 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -61,6 +61,8 @@ return [ ['name' => 'card#reorder', 'url' => '/cards/{cardId}/reorder', 'verb' => 'PUT'], ['name' => 'card#archive', 'url' => '/cards/{cardId}/archive', 'verb' => 'PUT'], ['name' => 'card#unarchive', 'url' => '/cards/{cardId}/unarchive', 'verb' => 'PUT'], + ['name' => 'card#done', 'url' => '/cards/{cardId}/done', 'verb' => 'PUT'], + ['name' => 'card#undone', 'url' => '/cards/{cardId}/undone', 'verb' => 'PUT'], ['name' => 'card#assignLabel', 'url' => '/cards/{cardId}/label/{labelId}', 'verb' => 'POST'], ['name' => 'card#removeLabel', 'url' => '/cards/{cardId}/label/{labelId}', 'verb' => 'DELETE'], ['name' => 'card#assignUser', 'url' => '/cards/{cardId}/assign', 'verb' => 'POST'], diff --git a/docs/API.md b/docs/API.md index 5e95da1db..a3e3a8654 100644 --- a/docs/API.md +++ b/docs/API.md @@ -601,6 +601,7 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit "owner":"admin", "order":999, "archived":false, + "done":false, "duedate": "2019-12-24T19:29:30+00:00", "deletedAt":0, "commentsUnread":0, @@ -628,8 +629,11 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit | title | String | The title of the card, maximum length is limited to 255 characters | | description | String | The markdown description of the card | | type | String | Type of the card (for later use) use 'plain' for now | +| owner | String | The user that owns the card | | order | Integer | Order for sorting the stacks | | duedate | timestamp | The ISO-8601 formatted duedate of the card or null | +| archived | bool | Whether the card is archived or not | +| done | bool | Whether the card is marked as done or not | ``` @@ -637,8 +641,11 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit "title": "Test card", "description": "A card description", "type": "plain", + "owner": "admin", "order": 999, "duedate": "2019-12-24T19:29:30+00:00", + "archived": false, + "done": false, } ``` diff --git a/docs/User_documentation_en.md b/docs/User_documentation_en.md index 36f2dbbad..125b14afa 100644 --- a/docs/User_documentation_en.md +++ b/docs/User_documentation_en.md @@ -12,11 +12,12 @@ Overall, Deck is easy to use. You can create boards, add users, share the Deck, 1. [Create my first board](#1-create-my-first-board) 2. [Create stacks and cards](#2-create-stacks-and-cards) 3. [Handle cards options](#3-handle-cards-options) -4. [Archive old tasks](#4-archive-old-tasks) -5. [Manage your board](#5-manage-your-board) -6. [Import boards](#6-import-boards) -7. [Search](#7-search) -8. [New owner for the deck entities](#8-new-owner-for-the-deck-entities) +4. [Mark task as done](#4-mark-as-done) +5. [Archive old tasks](#5-archive-old-tasks) +6. [Manage your board](#6-manage-your-board) +7. [Import boards](#7-import-boards) +8. [Search](#8-search) +9. [New owner for the deck entities](#9-new-owner-for-the-deck-entities) ### 1. Create my first board In this example, we're going to create a board and share it with an other nextcloud user. @@ -53,12 +54,18 @@ And even : ![Gif for puting infos on tasks 2](resources/gifs/EN_put_infos_2.gif) -### 4. Archive old tasks -Once finished or obsolete, a task could be archived. The tasks is not deleted, it's just archived, and you can retrieve it later +### 4. Mark as done +Once a task has been completed, you can mark it as done. This will prevent it from becoming overdue and hide it from the upcoming cards. +You can mark it as not done at any time. -![Gif for puting infos on tasks 2](resources/gifs/EN_archive.gif) +![Gif for marking a card as done](resources/gifs/EN_done.gif) -### 5. Manage your board +### 5. Archive old tasks +Once obsolete, a task could be archived. The task is not deleted, it's just archived, and you can retrieve it later + +![Gif for archiving a task](resources/gifs/EN_archive.gif) + +### 6. Manage your board You can manage the settings of your Deck once you are inside it, by clicking on the small wheel at the top right. Once in this menu, you have access to several things: @@ -72,7 +79,7 @@ The **sharing tab** allows you to add users or even groups to your boards. **Deleted objects** allows you to return previously deleted stacks or cards. The **Timeline** allows you to see everything that happened in your boards. Everything! -### 6. Import boards +### 7. Import boards Importing can be done using the API or the `occ` `deck:import` command. @@ -138,7 +145,7 @@ Example configuration file: } ``` -### 7. Search +### 8. Search Deck provides a global search either through the unified search in the Nextcloud header or with the inline search next to the board controls. This search allows advanced filtering of cards across all board of the logged in user. @@ -161,7 +168,7 @@ Other text tokens will be used to perform a case-insensitive search on the card In addition, quotes can be used to pass a query with spaces, e.g. `"Exact match with spaces"` or `title:"My card"`. -### 8. New owner for the deck entities +### 9. New owner for the deck entities You can transfer ownership of boards, cards, etc to a new user, using `occ` command `deck:transfer-ownership` ```bash diff --git a/docs/resources/gifs/EN_done.gif b/docs/resources/gifs/EN_done.gif new file mode 100644 index 0000000000000000000000000000000000000000..e65cef47e44f39da8d14eca2bb7c7af452920db6 GIT binary patch literal 89651 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%0Dje>e>PsH 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 literal 0 HcmV?d00001 diff --git a/lib/Activity/ActivityManager.php b/lib/Activity/ActivityManager.php index 15d4bd59d..010820c43 100644 --- a/lib/Activity/ActivityManager.php +++ b/lib/Activity/ActivityManager.php @@ -91,6 +91,8 @@ class ActivityManager { public const SUBJECT_CARD_UPDATE_DUEDATE = 'card_update_duedate'; public const SUBJECT_CARD_UPDATE_ARCHIVE = 'card_update_archive'; public const SUBJECT_CARD_UPDATE_UNARCHIVE = 'card_update_unarchive'; + public const SUBJECT_CARD_UPDATE_DONE = 'card_update_done'; + public const SUBJECT_CARD_UPDATE_UNDONE = 'card_update_undone'; public const SUBJECT_CARD_UPDATE_STACKID = 'card_update_stackId'; public const SUBJECT_CARD_USER_ASSIGN = 'card_user_assign'; public const SUBJECT_CARD_USER_UNASSIGN = 'card_user_unassign'; @@ -198,6 +200,12 @@ class ActivityManager { case self::SUBJECT_CARD_UPDATE_UNARCHIVE: $subject = $ownActivity ? $l->t('You have unarchived card {card} in list {stack} on board {board}') : $l->t('{user} has unarchived card {card} in list {stack} on board {board}'); break; + case self::SUBJECT_CARD_UPDATE_DONE: + $subject = $ownActivity ? $l->t('You have marked the card {card} as done in list {stack} on board {board}') : $l->t('{user} has marked card {card} as done in list {stack} on board {board}'); + break; + case self::SUBJECT_CARD_UPDATE_UNDONE: + $subject = $ownActivity ? $l->t('You have marked the card {card} as undone in list {stack} on board {board}') : $l->t('{user} has marked the card {card} as undone in list {stack} on board {board}'); + break; case self::SUBJECT_CARD_UPDATE_DUEDATE: if (!isset($subjectParams['after'])) { $subject = $ownActivity ? $l->t('You have removed the due date of card {card}') : $l->t('{user} has removed the due date of card {card}'); @@ -357,6 +365,8 @@ class ActivityManager { case self::SUBJECT_CARD_DELETE: case self::SUBJECT_CARD_UPDATE_ARCHIVE: case self::SUBJECT_CARD_UPDATE_UNARCHIVE: + case self::SUBJECT_CARD_UPDATE_DONE: + case self::SUBJECT_CARD_UPDATE_UNDONE: case self::SUBJECT_CARD_UPDATE_TITLE: case self::SUBJECT_CARD_UPDATE_DESCRIPTION: case self::SUBJECT_CARD_UPDATE_DUEDATE: diff --git a/lib/Controller/CardApiController.php b/lib/Controller/CardApiController.php index bb1c8a880..d6ee8210c 100644 --- a/lib/Controller/CardApiController.php +++ b/lib/Controller/CardApiController.php @@ -104,8 +104,8 @@ class CardApiController extends ApiController { * * Update a card */ - public function update($title, $type, $owner, $description = '', $order = 0, $duedate = null, $archived = null) { - $card = $this->cardService->update($this->request->getParam('cardId'), $title, $this->request->getParam('stackId'), $type, $owner, $description, $order, $duedate, 0, $archived); + public function update($title, $type, $owner, $description = '', $order = 0, $duedate = null, $archived = null, ?bool $done = null) { + $card = $this->cardService->update($this->request->getParam('cardId'), $title, $this->request->getParam('stackId'), $type, $owner, $description, $order, $duedate, 0, $archived, $done); return new DataResponse($card, HTTP::STATUS_OK); } diff --git a/lib/Controller/CardController.php b/lib/Controller/CardController.php index 2260d0dac..7eebb021e 100644 --- a/lib/Controller/CardController.php +++ b/lib/Controller/CardController.php @@ -143,6 +143,24 @@ class CardController extends Controller { return $this->cardService->unarchive($cardId); } + /** + * @NoAdminRequired + * @param $cardId + * @return \OCP\AppFramework\Db\Entity + */ + public function done(int $cardId) { + return $this->cardService->done($cardId); + } + + /** + * @NoAdminRequired + * @param $cardId + * @return \OCP\AppFramework\Db\Entity + */ + public function undone(int $cardId) { + return $this->cardService->undone($cardId); + } + /** * @NoAdminRequired * @param $cardId diff --git a/lib/Db/Card.php b/lib/Db/Card.php index e36a9fb0c..6e8e261f9 100644 --- a/lib/Db/Card.php +++ b/lib/Db/Card.php @@ -83,6 +83,7 @@ class Card extends RelationalEntity { protected $owner; protected $order; protected $archived = false; + protected $done = false; protected $duedate; protected $notified = false; protected $deletedAt = 0; @@ -106,6 +107,7 @@ class Card extends RelationalEntity { $this->addType('lastModified', 'integer'); $this->addType('createdAt', 'integer'); $this->addType('archived', 'boolean'); + $this->addType('done', 'boolean'); $this->addType('notified', 'boolean'); $this->addType('deletedAt', 'integer'); $this->addType('duedate', 'datetime'); diff --git a/lib/Db/CardMapper.php b/lib/Db/CardMapper.php index 60938002c..37a19dfb2 100644 --- a/lib/Db/CardMapper.php +++ b/lib/Db/CardMapper.php @@ -263,6 +263,7 @@ class CardMapper extends QBMapper implements IPermissionMapper { ->where($qb->expr()->in('s.board_id', $qb->createNamedParameter($boardIds, IQueryBuilder::PARAM_INT_ARRAY))) ->andWhere($qb->expr()->isNotNull('c.duedate')) ->andWhere($qb->expr()->eq('c.archived', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL))) + ->andWhere($qb->expr()->eq('c.done', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL))) ->andWhere($qb->expr()->eq('c.deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT))) ->andWhere($qb->expr()->eq('s.deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT))) ->andWhere($qb->expr()->eq('b.archived', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL))) @@ -284,6 +285,7 @@ class CardMapper extends QBMapper implements IPermissionMapper { ) // Filter out archived/deleted cards and board ->andWhere($qb->expr()->eq('c.archived', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL))) + ->andWhere($qb->expr()->eq('c.done', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL))) ->andWhere($qb->expr()->eq('c.deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT))) ->andWhere($qb->expr()->eq('s.deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT))) ->andWhere($qb->expr()->eq('b.archived', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL))) @@ -298,6 +300,7 @@ class CardMapper extends QBMapper implements IPermissionMapper { ->where($qb->expr()->lt('duedate', $qb->createFunction('NOW()'))) ->andWhere($qb->expr()->eq('notified', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL))) ->andWhere($qb->expr()->eq('archived', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL))) + ->andWhere($qb->expr()->eq('done', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL))) ->andWhere($qb->expr()->eq('deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT))); return $this->findEntities($qb); } diff --git a/lib/Migration/Version1011Date20230901010840.php b/lib/Migration/Version1011Date20230901010840.php new file mode 100644 index 000000000..837aaf72c --- /dev/null +++ b/lib/Migration/Version1011Date20230901010840.php @@ -0,0 +1,60 @@ + + * + * @author Thanos kamber + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +namespace OCA\Deck\Migration; + +use Closure; +use OCP\DB\ISchemaWrapper; +use OCP\Migration\IOutput; +use OCP\Migration\SimpleMigrationStep; + +/** + * Auto-generated migration step: Please modify to your needs! + */ +class Version1011Date20230901010840 extends SimpleMigrationStep { + /** + * @param IOutput $output + * @param Closure $schemaClosure + * @param array $options + * @return null|ISchemaWrapper + */ + public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper { + /** @var ISchemaWrapper $schema */ + $schema = $schemaClosure(); + + $table = $schema->getTable('deck_cards'); + if (!$table->hasColumn('done')) { + $table->addColumn('done', 'boolean', [ + 'default' => false, + 'notnull' => true, + ]); + + return $schema; + } + + return null; + } +} diff --git a/lib/Service/CardService.php b/lib/Service/CardService.php index 45559b87f..1a8e33ed9 100644 --- a/lib/Service/CardService.php +++ b/lib/Service/CardService.php @@ -284,6 +284,9 @@ class CardService { * @param $description * @param $order * @param $duedate + * @param $deletedAt + * @param $archived + * @param $done * @return \OCP\AppFramework\Db\Entity * @throws StatusException * @throws \OCA\Deck\NoPermissionException @@ -291,7 +294,7 @@ class CardService { * @throws \OCP\AppFramework\Db\MultipleObjectsReturnedException * @throws BadRequestException */ - public function update($id, $title, $stackId, $type, $owner, $description = '', $order = 0, $duedate = null, $deletedAt = null, $archived = null) { + public function update($id, $title, $stackId, $type, $owner, $description = '', $order = 0, $duedate = null, $deletedAt = null, $archived = null, ?bool $done = null) { $this->cardServiceValidator->check(compact('id', 'title', 'stackId', 'type', 'owner', 'order')); $this->permissionService->checkPermission($this->cardMapper, $id, Acl::PERMISSION_EDIT); @@ -341,6 +344,9 @@ class CardService { if ($archived !== null) { $card->setArchived($archived); } + if ($done !== null) { + $card->setDone($done); + } // Trigger update events before setting description as it is handled separately @@ -511,6 +517,57 @@ class CardService { return $newCard; } + /** + * @param $id + * @return \OCA\Deck\Db\Card + * @throws StatusException + * @throws \OCA\Deck\NoPermissionException + * @throws \OCP\AppFramework\Db\DoesNotExistException + * @throws \OCP\AppFramework\Db\MultipleObjectsReturnedException + * @throws BadRequestException + */ + public function done(int $id): Card { + $this->permissionService->checkPermission($this->cardMapper, $id, Acl::PERMISSION_EDIT); + if ($this->boardService->isArchived($this->cardMapper, $id)) { + throw new StatusException('Operation not allowed. This board is archived.'); + } + $card = $this->cardMapper->find($id); + $card->setDone(true); + $newCard = $this->cardMapper->update($card); + $this->notificationHelper->markDuedateAsRead($card); + $this->activityManager->triggerEvent(ActivityManager::DECK_OBJECT_CARD, $newCard, ActivityManager::SUBJECT_CARD_UPDATE_DONE); + $this->changeHelper->cardChanged($id, false); + + $this->eventDispatcher->dispatchTyped(new CardUpdatedEvent($card)); + + return $newCard; + } + + /** + * @param $id + * @return \OCA\Deck\Db\Card + * @throws StatusException + * @throws \OCA\Deck\NoPermissionException + * @throws \OCP\AppFramework\Db\DoesNotExistException + * @throws \OCP\AppFramework\Db\MultipleObjectsReturnedException + * @throws BadRequestException + */ + public function undone(int $id): Card { + $this->permissionService->checkPermission($this->cardMapper, $id, Acl::PERMISSION_EDIT); + if ($this->boardService->isArchived($this->cardMapper, $id)) { + throw new StatusException('Operation not allowed. This board is archived.'); + } + $card = $this->cardMapper->find($id); + $card->setDone(false); + $newCard = $this->cardMapper->update($card); + $this->activityManager->triggerEvent(ActivityManager::DECK_OBJECT_CARD, $newCard, ActivityManager::SUBJECT_CARD_UPDATE_UNDONE); + $this->changeHelper->cardChanged($id, false); + + $this->eventDispatcher->dispatchTyped(new CardUpdatedEvent($card)); + + return $newCard; + } + /** * @param $cardId * @param $labelId diff --git a/src/components/card/CardSidebarTabDetails.vue b/src/components/card/CardSidebarTabDetails.vue index b3c4afd6d..3b731e204 100644 --- a/src/components/card/CardSidebarTabDetails.vue +++ b/src/components/card/CardSidebarTabDetails.vue @@ -22,6 +22,31 @@