mirror of
https://github.com/wekan/wekan.git
synced 2025-09-22 01:50:48 +02:00
112 lines
2.5 KiB
JavaScript
112 lines
2.5 KiB
JavaScript
import { ReactiveCache } from '/imports/reactiveCache';
|
|
import { CardSearchPagedComponent } from '../../lib/cardSearch';
|
|
import {
|
|
OPERATOR_HAS,
|
|
OPERATOR_SORT,
|
|
OPERATOR_USER,
|
|
ORDER_ASCENDING,
|
|
PREDICATE_DUE_AT,
|
|
} from '../../../config/search-const';
|
|
import { QueryParams } from '../../../config/query-classes';
|
|
|
|
// 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.back();
|
|
},
|
|
|
|
'click .js-due-cards-view-all'() {
|
|
Utils.setDueCardsView('all');
|
|
Popup.back();
|
|
},
|
|
},
|
|
];
|
|
},
|
|
}).register('dueCardsViewChangePopup');
|
|
|
|
class DueCardsComponent extends CardSearchPagedComponent {
|
|
onCreated() {
|
|
super.onCreated();
|
|
|
|
const queryParams = new QueryParams();
|
|
queryParams.addPredicate(OPERATOR_HAS, {
|
|
field: PREDICATE_DUE_AT,
|
|
exists: true,
|
|
});
|
|
// queryParams[OPERATOR_LIMIT] = 5;
|
|
queryParams.addPredicate(OPERATOR_SORT, {
|
|
name: PREDICATE_DUE_AT,
|
|
order: ORDER_ASCENDING,
|
|
});
|
|
|
|
if (Utils.dueCardsView() !== 'all') {
|
|
queryParams.addPredicate(OPERATOR_USER, ReactiveCache.getCurrentUser().username);
|
|
}
|
|
|
|
this.runGlobalSearch(queryParams);
|
|
}
|
|
|
|
dueCardsView() {
|
|
// eslint-disable-next-line no-console
|
|
//console.log('sort:', Utils.dueCardsView());
|
|
return Utils.dueCardsView();
|
|
}
|
|
|
|
sortByBoard() {
|
|
return this.dueCardsView() === 'board';
|
|
}
|
|
|
|
dueCardsList() {
|
|
const results = this.getResults();
|
|
console.log('results:', results);
|
|
const cards = [];
|
|
if (results) {
|
|
results.forEach(card => {
|
|
cards.push(card);
|
|
});
|
|
}
|
|
|
|
cards.sort((a, b) => {
|
|
const x = a.dueAt === null ? new Date('2100-12-31') : a.dueAt;
|
|
const y = b.dueAt === null ? new 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;
|
|
}
|
|
}
|
|
|
|
DueCardsComponent.register('dueCards');
|