cardTime.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. BlazeComponent.extendComponent({
  2. template() {
  3. return 'editCardSpentTime';
  4. },
  5. onCreated() {
  6. this.error = new ReactiveVar('');
  7. this.card = this.data();
  8. },
  9. toggleOvertime() {
  10. this.card.setIsOvertime(!this.card.getIsOvertime());
  11. $('#overtime .materialCheckBox').toggleClass('is-checked');
  12. $('#overtime').toggleClass('is-checked');
  13. },
  14. storeTime(spentTime, isOvertime) {
  15. this.card.setSpentTime(spentTime);
  16. this.card.setIsOvertime(isOvertime);
  17. },
  18. deleteTime() {
  19. this.card.setSpentTime(null);
  20. },
  21. events() {
  22. return [{
  23. //TODO : need checking this portion
  24. 'submit .edit-time'(evt) {
  25. evt.preventDefault();
  26. const spentTime = parseFloat(evt.target.time.value);
  27. const isOvertime = this.card.getIsOvertime();
  28. if (spentTime >= 0) {
  29. this.storeTime(spentTime, isOvertime);
  30. Popup.close();
  31. } else {
  32. this.error.set('invalid-time');
  33. evt.target.time.focus();
  34. }
  35. },
  36. 'click .js-delete-time'(evt) {
  37. evt.preventDefault();
  38. this.deleteTime();
  39. Popup.close();
  40. },
  41. 'click a.js-toggle-overtime': this.toggleOvertime,
  42. }];
  43. },
  44. }).register('editCardSpentTimePopup');
  45. BlazeComponent.extendComponent({
  46. template() {
  47. return 'timeBadge';
  48. },
  49. onCreated() {
  50. const self = this;
  51. self.time = ReactiveVar();
  52. },
  53. showTitle() {
  54. if (this.data().getIsOvertime()) {
  55. return `${TAPi18n.__('overtime')} ${this.data().getSpentTime()} ${TAPi18n.__('hours')}`;
  56. } else {
  57. return `${TAPi18n.__('card-spent')} ${this.data().getSpentTime()} ${TAPi18n.__('hours')}`;
  58. }
  59. },
  60. showTime() {
  61. return this.data().getSpentTime();
  62. },
  63. events() {
  64. return [{
  65. 'click .js-edit-time': Popup.open('editCardSpentTime'),
  66. }];
  67. },
  68. }).register('cardSpentTime');
  69. Template.timeBadge.helpers({
  70. canModifyCard() {
  71. return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly();
  72. },
  73. });