sportsbet-mobile
Version:
Sportsbet mobile
85 lines (69 loc) • 1.92 kB
text/typescript
interface Templates {
sportsEventRow: Template;
}
Template.sportsEventRow.helpers({
category: function() {
return Betting.Category.db.findOne({_id: Session.get('opened-category') || '9RxN2FsAYXgRBetik'});
},
selections: function() {
var market = Betting.Market.db.findOne({event: this, live: false});
if (!market) {
return;
}
return market.selections.fetch();
},
bettingEnabled: function() {
var event = <Betting.Event>this;
if (!event.live && !event.active) {
return false;
}
return true;
},
showLiveBadge: function() {
var event = <Betting.Event>this;
if (event.live && (Betting.nonLiveStatuses.indexOf(event.matchStatus) === -1)) {
return true;
}
return false;
},
marketsCount: function() {
var event = <Betting.Event>this;
if (event.live && event.active) {
return event.liveMarketCount;
}
return event.marketCount;
},
listMarket: function() {
var event = <Betting.Event>this;
var isLive = event.live && event.active;
if (!event) {
return;
}
var listMarkets = event.listMarkets({live: isLive, limit: 1});
if (_.isEmpty(listMarkets)) {
return;
}
var market: Betting.Market = listMarkets.fetch()[0];
if (!market) {
return;
}
var templateHandle = (market.live ? 'live' : 'prelive') + '_' + (+market.details.subType || market.details.typeId);
return <any>{
name: market.name,
markets: [market],
template: Betting.getMarketTpl(templateHandle),
handle: templateHandle
};
}
});
Template.sportsEventRow.events({
'click .selection': function(e: MeteorTemplateEvent) {
e.preventDefault();
e.stopPropagation();
Betting.toggleBet(this);
},
'click .odds, click .score, click h3, click .crumb, click .all-markets-button': function(e: MeteorTemplateEvent) {
e.preventDefault();
Pages.go('/sports/' + (this.live ? 'live' : 'pre-live') + '/' + this.makeSeoString() + '/event/' + this._id);
}
});