|
@@ -0,0 +1,77 @@
|
|
|
+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() {
|
|
|
+ return `${TAPi18n.__('card-spent')} ${this.data().spentTime}`;
|
|
|
+ },
|
|
|
+ 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();
|
|
|
+ },
|
|
|
+});
|