2
0
Эх сурвалжийг харах

Add checklist-item at top

Martin Filser 3 жил өмнө
parent
commit
23595674cf

+ 7 - 0
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)

+ 10 - 1
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,
         });
       }
     }

+ 5 - 0
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];