sportsbet-mobile
Version:
Sportsbet mobile
128 lines (104 loc) • 3.15 kB
text/typescript
///<reference path=".#ts/client.d.ts" />
interface Templates {
lotteries: Template;
}
Template.lotteries.helpers({
lotteries: function () {
var selector = <any>{};
var options = <any>{};
selector = _.extend(selector, Session.get('lotteryFilter'));
if(Session.get('showHistory')){
selector.drawDate = {$lt: new Date()};
options.limit = 50;
options.sort = {drawn: -1};
}
else{
options.sort = {drawDate: 1};
}
return Lotteries.LotteryInstance.db.find(selector, options);
},
usableTickets: function () {
return Session.get('usableTickets');
},
showHistory: function () {
return Session.get('showHistory');
},
showLocked: function() {
var filter = Session.get('lotteryFilter');
if (!filter) {
return;
}
return filter.locked;
},
showAll: function() {
var filter = Session.get('lotteryFilter');
if (!filter || !filter.locked) {
return true;
}
return false;
}
});
Template.lotteries.events({
'click .filterAll': function () {
Session.set('lotteryFilter', {});
},
'click .filterLocked': function () {
Session.set('lotteryFilter', {locked: true});
},
//'click .filterLotto': function () {
// Session.set('lotteryFilter', {type: {$in: [Lotteries.LotteryType.LOTTO_AUTO, Lotteries.LotteryType.LOTTO_AUTO_FILL, Lotteries.LotteryType.LOTTO_MANUAL]}});
//},
//'click .filterRaffle': function () {
// Session.set('lotteryFilter', {type: {$in: [Lotteries.LotteryType.RAFFLE_AUTO, Lotteries.LotteryType.RAFFLE_MANUAL]}});
//}
});
Template.lotteries.rendered = function() {
//var lottery = Lotteries.LotteryInstance.db.find({});
this.autorun(() => {
if (!Session.get('fillLottery')) {
return;
}
if (Users.Profile.active()) {
var lotteryIds = Lotteries.LotteryInstance.db.find().fetch().map(function (l) {
return l._id
});
if (lotteryIds) {
var instance = Lotteries.LotteryInstance.db.findOne({_id: lotteryIds[0]});
if (instance) {
var ticket = instance.tickets.fetch({numbers: {$exists: false}})[0];
if (ticket) {
Session.set('opened-modal', 'fillTicketModal');
Modals.open('fillTicketModal', ticket);
}
}
}
}
});
}
Template.lotteries.onCreated(function(){
Meteor.setInterval(function(){
counterApi.dep.changed();
}, 1000);
this.autorun(() => {
var selector = <any>{active: true, drawDate: {$gt: new Date()}};
var options = <any>{sort: {drawDate: 1}};
if(Session.get('showHistory')){
delete selector.active;
selector.drawDate = {$lt: new Date()};
options.limit = 50;
}
selector = _.extend(selector, Session.get('lotteryFilter'));
this.subscribe('Lotteries.LotteryInstance', selector, options);
this.subscribe('Lotteries.Ticket', {lotteryInstance: {$exists: false}});
var usableTicketCount = Lotteries.Ticket.db.find({lotteryInstance: {$exists: false}}).count();
Session.set('usableTickets', usableTicketCount);
if (Users.Profile.active()) {
var lotteryIds = Lotteries.LotteryInstance.db.find().fetch().map(function (l) {
return l._id
});
if (lotteryIds) {
this.subscribe('Lotteries.Ticket', {lotteryInstance: {$in: lotteryIds}});
}
}
});
});