Properly sort cards if order is the same

Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
Julius Härtl
2020-04-20 10:01:00 +02:00
parent a445ed672b
commit 141ab46b46
2 changed files with 5 additions and 5 deletions

View File

@@ -109,7 +109,7 @@ class CardMapper extends DeckMapper implements IPermissionMapper {
*/ */
public function find($id) { public function find($id) {
$sql = 'SELECT * FROM `*PREFIX*deck_cards` ' . $sql = 'SELECT * FROM `*PREFIX*deck_cards` ' .
'WHERE `id` = ?'; 'WHERE `id` = ? ORDER BY `order`, `id`';
/** @var Card $card */ /** @var Card $card */
$card = $this->findEntity($sql, [$id]); $card = $this->findEntity($sql, [$id]);
$labels = $this->labelMapper->findAssignedLabelsForCard($card->id); $labels = $this->labelMapper->findAssignedLabelsForCard($card->id);
@@ -120,14 +120,14 @@ class CardMapper extends DeckMapper implements IPermissionMapper {
public function findAll($stackId, $limit = null, $offset = null, $since = -1) { public function findAll($stackId, $limit = null, $offset = null, $since = -1) {
$sql = 'SELECT * FROM `*PREFIX*deck_cards` $sql = 'SELECT * FROM `*PREFIX*deck_cards`
WHERE `stack_id` = ? AND NOT archived AND deleted_at = 0 AND last_modified > ? ORDER BY `order`'; WHERE `stack_id` = ? AND NOT archived AND deleted_at = 0 AND last_modified > ? ORDER BY `order`, `id`';
return $this->findEntities($sql, [$stackId, $since], $limit, $offset); return $this->findEntities($sql, [$stackId, $since], $limit, $offset);
} }
public function findDeleted($boardId, $limit = null, $offset = null) { public function findDeleted($boardId, $limit = null, $offset = null) {
$sql = 'SELECT c.* FROM `*PREFIX*deck_cards` c $sql = 'SELECT c.* FROM `*PREFIX*deck_cards` c
INNER JOIN `*PREFIX*deck_stacks` s ON s.id = c.stack_id INNER JOIN `*PREFIX*deck_stacks` s ON s.id = c.stack_id
WHERE `s`.`board_id` = ? AND NOT c.archived AND NOT c.deleted_at = 0 ORDER BY `c`.`order`'; WHERE `s`.`board_id` = ? AND NOT c.archived AND NOT c.deleted_at = 0 ORDER BY `c`.`order`, `c`.`id`';
return $this->findEntities($sql, [$boardId], $limit, $offset); return $this->findEntities($sql, [$boardId], $limit, $offset);
} }
@@ -138,7 +138,7 @@ class CardMapper extends DeckMapper implements IPermissionMapper {
public function findAllByStack($stackId, $limit = null, $offset = null) { public function findAllByStack($stackId, $limit = null, $offset = null) {
$sql = 'SELECT id FROM `*PREFIX*deck_cards` $sql = 'SELECT id FROM `*PREFIX*deck_cards`
WHERE `stack_id` = ?'; WHERE `stack_id` = ? ORDER BY `order`, `id`';
return $this->findEntities($sql, [$stackId], $limit, $offset); return $this->findEntities($sql, [$stackId], $limit, $offset);
} }

View File

@@ -85,7 +85,7 @@ export default {
return card.title.toLowerCase().includes(getters.getSearchQuery.toLowerCase()) return card.title.toLowerCase().includes(getters.getSearchQuery.toLowerCase())
|| card.description.toLowerCase().includes(getters.getSearchQuery.toLowerCase()) || card.description.toLowerCase().includes(getters.getSearchQuery.toLowerCase())
}) })
.sort((a, b) => a.order - b.order) .sort((a, b) => a.order - b.order || a.createdAt - b.createdAt)
}, },
cardById: state => (id) => { cardById: state => (id) => {
return state.cards.find((card) => card.id === id) return state.cards.find((card) => card.id === id)