diff --git a/client/components/cards/checklists.jade b/client/components/cards/checklists.jade index 74d2f0d01..5958f4cf5 100644 --- a/client/components/cards/checklists.jade +++ b/client/components/cards/checklists.jade @@ -73,6 +73,12 @@ template(name="addChecklistItemForm") .material-toggle-switch(title="{{_ 'newlineBecomesNewChecklistItem'}}") input.toggle-switch(type="checkbox" id="toggleNewlineBecomesNewChecklistItem") label.toggle-label(for="toggleNewlineBecomesNewChecklistItem") + | {{_ 'newLineNewItem'}} + if $eq position 'top' + .material-toggle-switch(title="{{_ 'newlineBecomesNewChecklistItemOriginOrder'}}") + input.toggle-switch(type="checkbox" id="toggleNewlineBecomesNewChecklistItemOriginOrder") + label.toggle-label(for="toggleNewlineBecomesNewChecklistItemOriginOrder") + | {{_ 'originOrder'}} template(name="editChecklistItemForm") a.fa.fa-copy(title="{{_ 'copy-text-to-clipboard'}}") @@ -96,7 +102,7 @@ template(name="checklistItems") if checklist.items.length if canModifyCard +inlinedForm(autoclose=false classNames="js-add-checklist-item" checklist = checklist position="top") - +addChecklistItemForm(checklist=checklist showNewlineBecomesNewChecklistItem=true) + +addChecklistItemForm(checklist=checklist showNewlineBecomesNewChecklistItem=true position="top") else a.add-checklist-item.js-open-inlined-form(title="{{_ 'add-checklist-item'}}") i.fa.fa-plus diff --git a/client/components/cards/checklists.js b/client/components/cards/checklists.js index f6f543571..403874abb 100644 --- a/client/components/cards/checklists.js +++ b/client/components/cards/checklists.js @@ -119,6 +119,7 @@ BlazeComponent.extendComponent({ event.preventDefault(); const textarea = this.find('textarea.js-add-checklist-item'); const newlineBecomesNewChecklistItem = this.find('input#toggleNewlineBecomesNewChecklistItem'); + const newlineBecomesNewChecklistItemOriginOrder = this.find('input#toggleNewlineBecomesNewChecklistItemOriginOrder'); const title = textarea.value.trim(); const checklist = this.currentData().checklist; @@ -127,22 +128,28 @@ BlazeComponent.extendComponent({ if (newlineBecomesNewChecklistItem.checked) { checklistItems = title.split('\n').map(_value => _value.trim()); if (this.currentData().position === 'top') { - checklistItems = checklistItems.reverse(); + if (newlineBecomesNewChecklistItemOriginOrder.checked === false) { + checklistItems = checklistItems.reverse(); + } } } + let addIndex; + let sortIndex; + if (this.currentData().position === 'top') { + sortIndex = Utils.calculateIndexData(null, checklist.firstItem()).base; + addIndex = -1; + } else { + sortIndex = Utils.calculateIndexData(checklist.lastItem(), null).base; + addIndex = 1; + } 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: sortIndex, }); + sortIndex += addIndex; } } // We keep the form opened, empty it. diff --git a/imports/i18n/data/en.i18n.json b/imports/i18n/data/en.i18n.json index 1fb8d8dc3..10fc42d2a 100644 --- a/imports/i18n/data/en.i18n.json +++ b/imports/i18n/data/en.i18n.json @@ -1196,6 +1196,9 @@ "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", "newlineBecomesNewChecklistItem": "Newline becomes new checklist item", + "newLineNewItem": "newline = new item", + "newlineBecomesNewChecklistItemOriginOrder": "Newline becomes new checklist item, origin order", + "originOrder": "origin order", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists",