| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 | 
							- const subManager = new SubsManager();
 
- BlazeComponent.extendComponent({
 
-   dueCardsView() {
 
-     // eslint-disable-next-line no-console
 
-     // console.log('sort:', Utils.dueCardsView());
 
-     return Utils.dueCardsView();
 
-   },
 
-   events() {
 
-     return [
 
-       {
 
-         'click .js-due-cards-view-change': Popup.open('dueCardsViewChange'),
 
-       },
 
-     ];
 
-   },
 
- }).register('dueCardsHeaderBar');
 
- Template.dueCards.helpers({
 
-   userId() {
 
-     return Meteor.userId();
 
-   },
 
- });
 
- BlazeComponent.extendComponent({
 
-   events() {
 
-     return [
 
-       {
 
-         'click .js-due-cards-view-me'() {
 
-           Utils.setDueCardsView('me');
 
-           Popup.close();
 
-         },
 
-         'click .js-due-cards-view-all'() {
 
-           Utils.setDueCardsView('all');
 
-           Popup.close();
 
-         },
 
-       },
 
-     ];
 
-   },
 
- }).register('dueCardsViewChangePopup');
 
- BlazeComponent.extendComponent({
 
-   onCreated() {
 
-     this.isPageReady = new ReactiveVar(false);
 
-     this.autorun(() => {
 
-       const handle = subManager.subscribe(
 
-         'dueCards',
 
-         Utils.dueCardsView() === 'all',
 
-       );
 
-       Tracker.nonreactive(() => {
 
-         Tracker.autorun(() => {
 
-           this.isPageReady.set(handle.ready());
 
-         });
 
-       });
 
-     });
 
-     Meteor.subscribe('setting');
 
-   },
 
-   dueCardsView() {
 
-     // eslint-disable-next-line no-console
 
-     console.log('sort:', Utils.dueCardsView());
 
-     return Utils.dueCardsView();
 
-   },
 
-   sortByBoard() {
 
-     return this.dueCardsView() === 'board';
 
-   },
 
-   dueCardsList() {
 
-     const allUsers = Utils.dueCardsView() === 'all';
 
-     const user = Meteor.user();
 
-     const archivedBoards = [];
 
-     Boards.find({ archived: true }).forEach(board => {
 
-       archivedBoards.push(board._id);
 
-     });
 
-     const permiitedBoards = [];
 
-     let selector = {
 
-       archived: false,
 
-     };
 
-     // for every user including admin allow her to see cards only from public boards
 
-     // or those where she is a member
 
-     //if (!user.isAdmin) {
 
-     selector.$or = [
 
-       { permission: 'public' },
 
-       { members: { $elemMatch: { userId: user._id, isActive: true } } },
 
-     ];
 
-     //}
 
-     Boards.find(selector).forEach(board => {
 
-       permiitedBoards.push(board._id);
 
-     });
 
-     const archivedSwimlanes = [];
 
-     Swimlanes.find({ archived: true }).forEach(swimlane => {
 
-       archivedSwimlanes.push(swimlane._id);
 
-     });
 
-     const archivedLists = [];
 
-     Lists.find({ archived: true }).forEach(list => {
 
-       archivedLists.push(list._id);
 
-     });
 
-     selector = {
 
-       archived: false,
 
-       boardId: {
 
-         $nin: archivedBoards,
 
-         $in: permiitedBoards,
 
-       },
 
-       swimlaneId: { $nin: archivedSwimlanes },
 
-       listId: { $nin: archivedLists },
 
-       dueAt: { $ne: null },
 
-       endAt: null,
 
-     };
 
-     if (!allUsers) {
 
-       selector.$or = [{ members: user._id }, { assignees: user._id }];
 
-     }
 
-     const cards = [];
 
-     // eslint-disable-next-line no-console
 
-     // console.log('cards selector:', selector);
 
-     Cards.find(selector).forEach(card => {
 
-       cards.push(card);
 
-       // eslint-disable-next-line no-console
 
-       // console.log(
 
-       //   'board:',
 
-       //   card.board(),
 
-       //   'swimlane:',
 
-       //   card.swimlane(),
 
-       //   'list:',
 
-       //   card.list(),
 
-       // );
 
-     });
 
-     cards.sort((a, b) => {
 
-       const x = a.dueAt === null ? Date('2100-12-31') : a.dueAt;
 
-       const y = b.dueAt === null ? Date('2100-12-31') : b.dueAt;
 
-       if (x > y) return 1;
 
-       else if (x < y) return -1;
 
-       return 0;
 
-     });
 
-     // eslint-disable-next-line no-console
 
-     // console.log('cards:', cards);
 
-     return cards;
 
-   },
 
- }).register('dueCards');
 
 
  |