cardTime.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  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. {
  24. //TODO : need checking this portion
  25. 'submit .edit-time'(evt) {
  26. evt.preventDefault();
  27. const spentTime = parseFloat(evt.target.time.value);
  28. const isOvertime = this.card.getIsOvertime();
  29. if (spentTime >= 0) {
  30. this.storeTime(spentTime, isOvertime);
  31. Popup.close();
  32. } else {
  33. this.error.set('invalid-time');
  34. evt.target.time.focus();
  35. }
  36. },
  37. 'click .js-delete-time'(evt) {
  38. evt.preventDefault();
  39. this.deleteTime();
  40. Popup.close();
  41. },
  42. 'click a.js-toggle-overtime': this.toggleOvertime,
  43. },
  44. ];
  45. },
  46. }).register('editCardSpentTimePopup');
  47. BlazeComponent.extendComponent({
  48. template() {
  49. return 'timeBadge';
  50. },
  51. onCreated() {
  52. const self = this;
  53. self.time = ReactiveVar();
  54. },
  55. showTitle() {
  56. if (this.data().getIsOvertime()) {
  57. return `${TAPi18n.__(
  58. 'overtime',
  59. )} ${this.data().getSpentTime()} ${TAPi18n.__('hours')}`;
  60. } else {
  61. return `${TAPi18n.__(
  62. 'card-spent',
  63. )} ${this.data().getSpentTime()} ${TAPi18n.__('hours')}`;
  64. }
  65. },
  66. showTime() {
  67. return this.data().getSpentTime();
  68. },
  69. events() {
  70. return [
  71. {
  72. 'click .js-edit-time': Popup.open('editCardSpentTime'),
  73. },
  74. ];
  75. },
  76. }).register('cardSpentTime');
  77. Template.timeBadge.helpers({
  78. canModifyCard() {
  79. return (
  80. Meteor.user() &&
  81. Meteor.user().isBoardMember() &&
  82. !Meteor.user().isCommentOnly()
  83. );
  84. },
  85. });