sportsbet-mobile
Version:
Sportsbet mobile
81 lines (64 loc) • 1.77 kB
text/typescript
///<reference path=".#ts/client.d.ts" />
interface Templates {
numbers: Template;
}
Template.numbers.helpers({
numbers: function(){
var lotteryInstance = (<Lotteries.LotteryInstance>this);
var numbers = [];
for(var i = lotteryInstance.numberRange.min; i <= lotteryInstance.numberRange.max; i++){
numbers.push(i);
}
return numbers;
},
numbersLeft: function(){
return (<Lotteries.LotteryInstance>this).numberAmount - Session.get('numbersPicked').length;
},
tooManyNumbers: function(){
return Session.get('numbersPicked').length > (<Lotteries.LotteryInstance>this).numberAmount;
},
error: function(){
return Session.get('ticketError');
},
success: function(){
return Session.get('ticketSuccess');
},
submitName: function(){
return Session.get('submitName');
},
numbersPicked: function(){
return Session.get('numbersPicked');
}
});
Template.numbers.events({
'change input[type="checkbox"]': function(e){
var numbersPicked = Session.get('numbersPicked');
if(e.target.checked) {
numbersPicked.push(parseInt(e.target.id.substr(13)));
}
else {
numbersPicked.splice(numbersPicked.indexOf(parseInt(e.target.id.substr(13))), 1);
}
Session.set('numbersPicked', numbersPicked);
},
'click .button-random-numbers': function(){
var numbers = chance.unique(
chance.natural,
this.numberAmount,
{
min: this.numberRange.min,
max: this.numberRange.max
}
).sort(function (a, b) {
return a - b
});
$('.numbers input').prop( "checked", false);
_.each(numbers, function(num) {
$('.numbers input[name="numbers['+num+']"]').prop( "checked", true);
});
Session.set('numbersPicked', numbers);
}
});
Template.numbers.created = function () {
Session.set('numbersPicked', []);
};