Added progress bar to checklist

- Relates #1847
This commit is contained in:
Martin Filser 2022-01-15 15:48:55 +01:00
parent 61dd3180a4
commit ac1f540763
4 changed files with 32 additions and 0 deletions

View file

@ -43,6 +43,8 @@ template(name="checklistDetail")
h2.title
+viewer
= checklist.title
.checklist-progress-bar
.checklist-progress(style="width:{{finishedPercent}}%") {{finishedPercent}}%
+checklistItems(checklist = checklist)
template(name="checklistDeletePopup")

View file

@ -77,6 +77,12 @@ BlazeComponent.extendComponent({
!Meteor.user().isWorker()
);
},
/** returns the finished percent of the checklist */
finishedPercent() {
const ret = this.data().checklist.finishedPercent();
return ret;
},
}).register('checklistDetail');
BlazeComponent.extendComponent({

View file

@ -20,6 +20,17 @@ textarea.js-add-checklist-item, textarea.js-edit-checklist-item
display: flex
justify-content: space-between
.checklist-progress-bar
width: 90%
height: 20px
.checklist-progress
color: #fff !important
background-color: #2196F3 !important
padding: 0.01em 16px
border-radius: 16px
height: 100%
.checklist-title
.checkbox
float: left

View file

@ -102,6 +102,19 @@ Checklists.helpers({
isFinished: true,
}).count();
},
/** returns the finished percent of the checklist */
finishedPercent() {
const checklistItems = ChecklistItems.find({ checklistId: this._id });
const count = checklistItems.count();
const checklistItemsFinished = checklistItems.fetch().filter(checklistItem => checklistItem.isFinished);
let ret = 0;
if (count > 0) {
ret = Math.round(checklistItemsFinished.length / count * 100);
}
return ret;
},
isFinished() {
return 0 !== this.itemCount() && this.itemCount() === this.finishedCount();
},