cardTime.js 2.1 KB

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