added soft wip limit feature, fixed wipLimit=0 bug (??)

This commit is contained in:
amadilsons 2017-10-31 21:10:36 +00:00
parent 8bf3f300ad
commit fdd1aad80d
5 changed files with 70 additions and 36 deletions

View file

@ -1,4 +1,9 @@
BlazeComponent.extendComponent({
canSeeAddCard() {
const list = Template.currentData();
return !list.getWipLimit('enabled') || list.getWipLimit('soft') || !this.reachedWipLimit();
},
editTitle(evt) {
evt.preventDefault();
const newTitle = this.childComponents('inlinedForm')[0].getValue().trim();
@ -13,18 +18,15 @@ BlazeComponent.extendComponent({
return list.findWatcher(Meteor.userId());
},
isWipLimitEnabled() {
const wipLimit = this.currentData().getWipLimit();
if(!wipLimit) {
return 0;
}
return wipLimit.enabled && wipLimit.value > 0;
},
limitToShowCardsCount() {
return Meteor.user().getLimitToShowCardsCount();
},
reachedWipLimit() {
const list = Template.currentData();
return list.getWipLimit('enabled') && list.getWipLimit('value') <= list.cards().count();
},
showCardsCountForList(count) {
return count > this.limitToShowCardsCount();
},
@ -82,7 +84,7 @@ BlazeComponent.extendComponent({
const list = Template.currentData();
const limit = parseInt(Template.instance().$('.wip-limit-value').val(), 10);
if(limit < list.cards().count()){
if(limit < list.cards().count() && !list.getWipLimit('soft')){
Template.instance().$('.wip-limit-error').click();
} else {
Meteor.call('applyWipLimit', list._id, limit);
@ -90,15 +92,28 @@ BlazeComponent.extendComponent({
}
},
enableSoftLimit() {
const list = Template.currentData();
if(list.getWipLimit('soft') && list.getWipLimit('value') < list.cards().count()){
list.setWipLimit(list.cards().count());
}
Meteor.call('enableSoftLimit', Template.currentData()._id);
},
enableWipLimit() {
const list = Template.currentData();
// Prevent user from using previously stored wipLimit.value if it is less than the current number of cards in the list
if(list.getWipLimit() && !list.getWipLimit('enabled') && list.getWipLimit('value') < list.cards().count()){
if(!list.getWipLimit('enabled') && list.getWipLimit('value') < list.cards().count()){
list.setWipLimit(list.cards().count());
}
Meteor.call('enableWipLimit', list._id);
},
isWipLimitSoft() {
return Template.currentData().getWipLimit('soft');
},
isWipLimitEnabled() {
return Template.currentData().getWipLimit('enabled');
},
@ -112,6 +127,7 @@ BlazeComponent.extendComponent({
'click .js-enable-wip-limit': this.enableWipLimit,
'click .wip-limit-apply': this.applyWipLimit,
'click .wip-limit-error': Popup.open('wipLimitError'),
'click .materialCheckBox': this.enableSoftLimit,
}];
},
}).register('setWipLimitPopup');