Add Features: allowing lists to be sorted by modifiedAt when not in draggable mode

This commit is contained in:
Sam X. Chen 2019-10-10 22:57:40 -04:00
parent e60926f847
commit 77f8b76d4e
7 changed files with 63 additions and 39 deletions

View file

@ -409,6 +409,21 @@ Boards.helpers({
},
lists() {
const enabled = Meteor.user().hasShowDesktopDragHandles();
return enabled ? this.draggableLists() : this.newestLists();
},
newestLists() {
// sorted lists from newest to the oldest, by its creation date or its cards' last modification date
return Lists.find(
{
boardId: this._id,
archived: false,
},
{ sort: { updatedAt: -1 } },
);
},
draggableLists() {
return Lists.find({ boardId: this._id }, { sort: { sort: 1 } });
},

View file

@ -1695,6 +1695,23 @@ if (Meteor.isServer) {
const oldvalue = doc[action] || '';
const activityType = `a-${action}`;
const card = Cards.findOne(doc._id);
const list = card.list();
if (list) {
// change list modifiedAt
const modifiedAt = new Date();
const boardId = list.boardId;
Lists.direct.update(
{
_id: list._id,
},
{
$set: {
modifiedAt,
boardId,
},
},
);
}
const username = Users.findOne(userId).username;
const activity = {
userId,

View file

@ -174,6 +174,21 @@ Swimlanes.helpers({
},
lists() {
const enabled = Meteor.user().hasShowDesktopDragHandles();
return enabled ? this.draggableLists() : this.newestLists();
},
newestLists() {
// sorted lists from newest to the oldest, by its creation date or its cards' last modification date
return Lists.find(
{
boardId: this.boardId,
swimlaneId: { $in: [this._id, ''] },
archived: false,
},
{ sort: { updatedAt: -1 } },
);
},
draggableLists() {
return Lists.find(
{
boardId: this.boardId,