From 23595674cf3b557ad068947a21d348ccfa4dd7f4 Mon Sep 17 00:00:00 2001 From: Martin Filser Date: Sun, 15 May 2022 16:50:32 +0200 Subject: [PATCH] Add checklist-item at top --- client/components/cards/checklists.jade | 7 +++++++ client/components/cards/checklists.js | 11 ++++++++++- models/checklists.js | 5 +++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/client/components/cards/checklists.jade b/client/components/cards/checklists.jade index 6fb4881c4..d41035e7a 100644 --- a/client/components/cards/checklists.jade +++ b/client/components/cards/checklists.jade @@ -92,6 +92,13 @@ template(name="editChecklistItemForm") | {{_ 'convertChecklistItemToCardPopup-title'}} template(name="checklistItems") + if checklist.items.count + if canModifyCard + +inlinedForm(autoclose=false classNames="js-add-checklist-item" checklist = checklist position="top") + +addChecklistItemForm(checklist=checklist showNewlineBecomesNewChecklistItem=true) + else + a.add-checklist-item.js-open-inlined-form(title="{{_ 'add-checklist-item'}}") + i.fa.fa-plus .checklist-items.js-checklist-items each item in checklist.items +inlinedForm(classNames="js-edit-checklist-item" item = item checklist = checklist) diff --git a/client/components/cards/checklists.js b/client/components/cards/checklists.js index 1a581860f..c5be6a1a8 100644 --- a/client/components/cards/checklists.js +++ b/client/components/cards/checklists.js @@ -132,13 +132,22 @@ BlazeComponent.extendComponent({ let checklistItems = [title]; if (newlineBecomesNewChecklistItem.checked) { checklistItems = title.split('\n').map(_value => _value.trim()); + if (this.currentData().position === 'top') { + checklistItems = checklistItems.reverse(); + } } for (let checklistItem of checklistItems) { + let sortIndex; + if (this.currentData().position === 'top') { + sortIndex = Utils.calculateIndexData(null, checklist.firstItem()).base; + } else { + sortIndex = Utils.calculateIndexData(checklist.lastItem(), null).base; + } ChecklistItems.insert({ title: checklistItem, checklistId: checklist._id, cardId: checklist.cardId, - sort: Utils.calculateIndexData(checklist.lastItem()).base, + sort: sortIndex, }); } } diff --git a/models/checklists.js b/models/checklists.js index 302becdb9..38fe15e13 100644 --- a/models/checklists.js +++ b/models/checklists.js @@ -91,6 +91,11 @@ Checklists.helpers({ { sort: ['sort'] }, ); }, + firstItem() { + const allItems = this.items().fetch(); + const ret = _.first(allItems); + return ret; + }, lastItem() { const allItems = this.items().fetch(); const ret = allItems[allItems.length - 1];