summaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
Diffstat (limited to 'client')
-rw-r--r--client/components/lists/list.js2
-rw-r--r--client/components/lists/listBody.js3
-rw-r--r--client/components/lists/listHeader.jade8
-rw-r--r--client/components/lists/listHeader.js54
4 files changed, 28 insertions, 39 deletions
diff --git a/client/components/lists/list.js b/client/components/lists/list.js
index d99fc963..0e913207 100644
--- a/client/components/lists/list.js
+++ b/client/components/lists/list.js
@@ -81,7 +81,7 @@ BlazeComponent.extendComponent({
function userIsMember() {
return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly();
}
-
+
// Disable drag-dropping if the current user is not a board member or is comment only
this.autorun(() => {
$cards.sortable('option', 'disabled', !userIsMember());
diff --git a/client/components/lists/listBody.js b/client/components/lists/listBody.js
index 5ae645a9..22ed9e57 100644
--- a/client/components/lists/listBody.js
+++ b/client/components/lists/listBody.js
@@ -102,7 +102,8 @@ BlazeComponent.extendComponent({
reachedWipLimit() {
const list = Template.currentData();
- return list.wipLimit.enabled && list.wipLimit.value == list.cards().count();
+ if( !list.getWipLimit() ) { return false; }
+ return list.getWipLimit('enabled') && list.getWipLimit('value') === list.cards().count();
},
events() {
diff --git a/client/components/lists/listHeader.jade b/client/components/lists/listHeader.jade
index df395d65..f0c4e5f1 100644
--- a/client/components/lists/listHeader.jade
+++ b/client/components/lists/listHeader.jade
@@ -8,7 +8,7 @@ template(name="listHeader")
= title
if isWipLimitEnabled
span
- | (#{wipLimit.value})
+ | ({{cards.count}}/#{wipLimit.value})
if showCardsCountForList cards.count
= cards.count
span.lowercase
@@ -77,11 +77,11 @@ template(name="setWipLimitPopup")
lable {{_ 'set-wip-limit-value'}}
ul.pop-over-list
li: a.js-enable-wip-limit Enable WIP Limit
- if wipEnabled.get
+ if isWipLimitEnabled
i.fa.fa-check
- if wipEnabled.get
+ if isWipLimitEnabled
p
- input.wip-limit-value(type="number" value="#{wipLimit.value}" min="1" max="99" onkeydown="return false")
+ input.wip-limit-value(type="number" value="{{ wipLimitValue }}" min="1" max="99" onkeydown="return false")
input.wip-limit-apply(type="submit" value="{{_ 'apply'}}")
input.wip-limit-error
diff --git a/client/components/lists/listHeader.js b/client/components/lists/listHeader.js
index 94b70f2b..361f69cf 100644
--- a/client/components/lists/listHeader.js
+++ b/client/components/lists/listHeader.js
@@ -8,16 +8,19 @@ BlazeComponent.extendComponent({
}
},
- isWipLimitEnabled() {
- const limit = this.currentData().wipLimit
- return limit.enabled && limit.value > 0;
- },
-
isWatching() {
const list = this.currentData();
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();
},
@@ -43,12 +46,7 @@ BlazeComponent.extendComponent({
Template.listActionPopup.helpers({
isWipLimitEnabled() {
- const prevState = Template.parentData(4).stack[0].dataContext.wipEnableState;
- // If user was already inside setWipLimitPopup, return previous state. Popup stack not reacting to database mutations
- if(typeof prevState !== "undefined") {
- return prevState;
- }
- return Template.currentData().wipLimit.enabled;
+ return Template.currentData().getWipLimit('enabled');
},
isWatching() {
@@ -80,43 +78,33 @@ Template.listActionPopup.events({
});
BlazeComponent.extendComponent({
- onCreated() {
- const prevState = Template.parentData(4).stack[0].dataContext.wipEnableState;
- // Check if the user as already opened this popup before and retrieve previous state
- // This check is necessary due to the fact that database mutations inside popups are not reactive inside the popup stack.
- //The use of ReactiveVar is due to the same reason.
- if(typeof prevState !== "undefined") {
- this.wipEnabled = new ReactiveVar(prevState)
- } else {
- this.wipEnabled = new ReactiveVar(Template.currentData().wipLimit.enabled);
- }
- },
-
- onDestroyed() {
- // Save current wipEnabled state in the first element of the popup stack to maintain UI coherence if user returns to popup
- Template.parentData(4).stack[0].dataContext.wipEnableState = this.wipEnabled.get();
- },
-
applyWipLimit() {
const list = Template.currentData();
- const limit = Template.instance().$('.wip-limit-value').val();
+ const limit = parseInt(Template.instance().$('.wip-limit-value').val(), 10);
if(limit < list.cards().count()){
Template.instance().$('.wip-limit-error').click();
} else {
- list.setWipLimit(limit);
+ Meteor.call('applyWipLimit', list._id, limit);
+ Popup.back();
}
},
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.wipLimit.enabled && list.wipLimit.value < list.cards().count()){
+ if(list.getWipLimit() && !list.wipLimit.enabled && list.wipLimit.value < list.cards().count()){
list.setWipLimit(list.cards().count());
}
+ Meteor.call('enableWipLimit', Template.currentData()._id);
+ },
+
+ isWipLimitEnabled() {
+ return Template.currentData().getWipLimit('enabled');
+ },
- this.wipEnabled.set(!this.wipEnabled.get()); //If wipLimit.enabled is not yet definied, the negation of "undefined" is "true"
- list.toggleWipLimit(this.wipEnabled.get());
+ wipLimitValue(){
+ return Template.currentData().getWipLimit('value');
},
events() {