diff options
author | Lauri Ojansivu <x@xet7.org> | 2017-11-21 10:03:02 +0200 |
---|---|---|
committer | Lauri Ojansivu <x@xet7.org> | 2017-11-21 10:03:02 +0200 |
commit | e162fe3c0fc425efe925dd15f55771f9a3ee60f3 (patch) | |
tree | b2015f2a7b8d099aa554027e482c8f9676a960d3 /client/components/cards/cardTime.js | |
parent | f3e7646cfa065ceea0cf1aaff1f5adbde457a32a (diff) | |
parent | 6dba4ccd4d0c8d7443e7d9c39ddafed2b8f1b6ca (diff) | |
download | wekan-e162fe3c0fc425efe925dd15f55771f9a3ee60f3.tar.gz wekan-e162fe3c0fc425efe925dd15f55771f9a3ee60f3.tar.bz2 wekan-e162fe3c0fc425efe925dd15f55771f9a3ee60f3.zip |
Merge branch 'card-spent-time' of https://github.com/thuanpq/wekan into thuanpq-card-spent-time
Diffstat (limited to 'client/components/cards/cardTime.js')
-rw-r--r-- | client/components/cards/cardTime.js | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/client/components/cards/cardTime.js b/client/components/cards/cardTime.js new file mode 100644 index 00000000..eadcc88e --- /dev/null +++ b/client/components/cards/cardTime.js @@ -0,0 +1,81 @@ +BlazeComponent.extendComponent({ + template() { + return 'editCardSpentTime'; + }, + onCreated() { + this.error = new ReactiveVar(''); + this.card = this.data(); + }, + toggleOvertime() { + this.card.isOvertime = !this.card.isOvertime; + $('#overtime .materialCheckBox').toggleClass('is-checked'); + + $('#overtime').toggleClass('is-checked'); + }, + storeTime(spentTime, isOvertime) { + this.card.setSpentTime(spentTime); + this.card.setOvertime(isOvertime); + }, + deleteTime() { + this.card.unsetSpentTime(); + }, + events() { + return [{ + //TODO : need checking this portion + 'submit .edit-time'(evt) { + evt.preventDefault(); + + const spentTime = parseFloat(evt.target.time.value); + const isOvertime = this.card.isOvertime; + + if (spentTime >= 0) { + this.storeTime(spentTime, isOvertime); + Popup.close(); + } else { + this.error.set('invalid-time'); + evt.target.time.focus(); + } + }, + 'click .js-delete-time'(evt) { + evt.preventDefault(); + this.deleteTime(); + Popup.close(); + }, + 'click a.js-toggle-overtime': this.toggleOvertime, + }]; + }, +}).register('editCardSpentTimePopup'); + +BlazeComponent.extendComponent({ + template() { + return 'timeBadge'; + }, + onCreated() { + const self = this; + self.time = ReactiveVar(); + }, + showTitle() { + if (this.data().isOvertime) { + return `${TAPi18n.__('overtime')} ${this.data().spentTime} ${TAPi18n.__('hours')}`; + } else { + return `${TAPi18n.__('card-spent')} ${this.data().spentTime} ${TAPi18n.__('hours')}`; + } + }, + showTime() { + return this.data().spentTime; + }, + isOvertime() { + return this.data().isOvertime; + }, + events() { + return [{ + 'click .js-edit-time': Popup.open('editCardSpentTime'), + }]; + }, +}).register('cardSpentTime'); + +Template.timeBadge.helpers({ + canModifyCard() { + return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly(); + }, +}); |