dueCards.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. import { CardSearchPagedComponent } from '../../lib/cardSearch';
  2. const subManager = new SubsManager();
  3. BlazeComponent.extendComponent({
  4. dueCardsView() {
  5. // eslint-disable-next-line no-console
  6. // console.log('sort:', Utils.dueCardsView());
  7. return Utils.dueCardsView();
  8. },
  9. events() {
  10. return [
  11. {
  12. 'click .js-due-cards-view-change': Popup.open('dueCardsViewChange'),
  13. },
  14. ];
  15. },
  16. }).register('dueCardsHeaderBar');
  17. Template.dueCards.helpers({
  18. userId() {
  19. return Meteor.userId();
  20. },
  21. });
  22. BlazeComponent.extendComponent({
  23. events() {
  24. return [
  25. {
  26. 'click .js-due-cards-view-me'() {
  27. Utils.setDueCardsView('me');
  28. Popup.close();
  29. },
  30. 'click .js-due-cards-view-all'() {
  31. Utils.setDueCardsView('all');
  32. Popup.close();
  33. },
  34. },
  35. ];
  36. },
  37. }).register('dueCardsViewChangePopup');
  38. class DueCardsComponent extends CardSearchPagedComponent {
  39. onCreated() {
  40. super.onCreated();
  41. const queryParams = {
  42. has: [{ field: 'dueAt', exists: true }],
  43. limit: 5,
  44. skip: 0,
  45. sort: { name: 'dueAt', order: 'des' },
  46. };
  47. if (Utils.dueCardsView() !== 'all') {
  48. queryParams.users = [Meteor.user().username];
  49. }
  50. this.runGlobalSearch(queryParams);
  51. }
  52. dueCardsView() {
  53. // eslint-disable-next-line no-console
  54. //console.log('sort:', Utils.dueCardsView());
  55. return Utils.dueCardsView();
  56. }
  57. sortByBoard() {
  58. return this.dueCardsView() === 'board';
  59. }
  60. dueCardsList() {
  61. const results = this.getResults();
  62. console.log('results:', results);
  63. const cards = [];
  64. if (results) {
  65. results.forEach(card => {
  66. cards.push(card);
  67. });
  68. }
  69. cards.sort((a, b) => {
  70. const x = a.dueAt === null ? Date('2100-12-31') : a.dueAt;
  71. const y = b.dueAt === null ? Date('2100-12-31') : b.dueAt;
  72. if (x > y) return 1;
  73. else if (x < y) return -1;
  74. return 0;
  75. });
  76. // eslint-disable-next-line no-console
  77. console.log('cards:', cards);
  78. return cards;
  79. }
  80. }
  81. DueCardsComponent.register('dueCards');