;(function(Draws, _, session){
/**
* @class Games
* @extends Backbone.View
* @requires portalGGA.models.Draws
* @view
*/
portalGGA.views.KenoWatchDrawings= Backbone.View.extend(
/** @lends portalGGA.views.DrawResults.prototype */{
/**
* Rename object, and render on init.
* @author mulleti.satyanrayana@gtech.com
* @param {Object} options
* @param {portalGGA.models.Draws} [options.draws] Draws collection, if not given new one will be created.
* @param {Object} options.betslipLinks Map of betslip links, one per each ESA game name.
*/
events:{
"click .pull-leftdraw" : "_renderPreviousDraw",
"click .pull-rightdraw" : "_renderNextDraw",
"click .latest-draw" : "_renderLatestDraw",
"click .go-button" : "_renderSelectedDraw"
},
constructor: function KenoWatchDrawings( options ){
Backbone.View.apply(this, arguments);
var self= this;
this.kenoanimAPI = false;
$('#kenoNextDraw').attr("disabled",true);
$('#kenoPreviousDraw').attr("disabled",true);
this.populate = options.populate;
window.renaissance = window.renaissance ? window.renaissance : {};
window.renaissance.iKenoAPI = window.renaissance.iKenoAPI ? window.renaissance.iKenoAPI : {};
window.renaissance.iKenoAPI.flashAnimationReady = function flashAnimationReady() {
$('.go-button').attr('disabled',false);
$('#watchLatestDraw').attr("disabled",false);
};
window.renaissance.iKenoAPI.event = function event(eventName,eventData) {
var currentDraw = null;
var prevDraw = null;
var nextDraw = null;
if(eventName == "DRAW_END" || eventName == "DRAW_START"){
$('.go-button').attr('disabled',false);
$('#watchLatestDraw').attr("disabled",false);
if(eventData.nextDraw != undefined)
$('#kenoNextDraw').attr("disabled",false);
else
$('#kenoNextDraw').attr("disabled",true);
if(eventData.prevDraw != undefined)
$('#kenoPreviousDraw').attr("disabled",false);
else
$('#kenoPreviousDraw').attr("disabled",true);
}
};
this.kenodraws = options.draws || new Draws();
_.bindAll(this, "renderAnimation", "_renderResult", "_renderLatestDraw", "_renderPreviousDraw", "_renderNextDraw","_renderSelectedDraw","_renderWatchDraw");
if(this.populate)
this.renderAnimation();
},
/**
* Render all games from collection, bind click.
* @author mulleti.satyanarayana@gtech.com
* @todo: get only opened? fileter latest? to be discussed with ESA guys (twytrebowicz)
* @return {jQuery} #$el
*/
renderAnimation: function renderAnimation(){
var self = this;
self.kenodraws.url = "/api/v1/draw-games/draws";
self.iframe = $("iframe#animFrame");
self.anim = $("iframe#animFrame").get(0).contentWindow.exportRoot;
document.getElementById('kenoBoardAnimation').style.visibility = "visible";
Q.when(self.kenodraws.fetch({
"data": {
"previous-draws": 500,
"game-names": 'KENO',
"status": 'CLOSED',
"size": 1000,
"page": 0
}
})).then(self._renderResult);
},
/**
* Handle the Navigation of the tabs in the history page
* @author hariprasad.pinninti@gtech.com
* @TODO: return something
*/
handleTabNavigation: function handleTabNavigation(){
var self=this;
if(self.kenoanimAPI == false){
this.renderAnimation();
self.kenoanimAPI = true;
}
},
_renderResult : function _renderResult(){
var self = this;
self.dataResult= self.kenodraws.toJSON();
},
_renderLatestDraw : function _renderLatestDraw (event){
event && event.preventDefault();
var self = this;
self.kenodraws.url = "/api/v1/draw-games/draws/page?game-names=KENO&previous-draws=1&status=CLOSED&size=1000&page=0";
self.kenodraws.fetch({
cache: false
}).then(self._renderWatchDraw);
},
_renderWatchDraw : function _renderWatchDraw(){
var self = this;
self.anim =$("iframe#animFrame").get(0).contentWindow.exportRoot;
var closedData =[];
self.kenodraws.each(function composeDrawsData(kenodraw){
var resultData = kenodraw.toJSON();
closedData.push(resultData);
});
closedData = portalGGA.utils._sortByValue(closedData,'id','asc');
var drawDetail = [];
_.each(closedData,function(closedGame,i){
var dataObj = {id:'',results:[]};
dataObj.id = closedGame.id;
dataObj.results = closedGame.results;
drawDetail.push(dataObj);
});
// drawDetail = [{"gameName":"KENO","id":"308","status":"CLOSED","closeTime":1531410900000,"drawTime":1531410900000,"results":[{"primary":["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20"],"secondary":["1"],"prizeTierId":"Regular"}],"prizeTiers":[{"shareCount":0,"totalAmount":0,"name":"Combined","id":"0"}]},{"gameName":"KENO","id":"307","status":"CLOSED","closeTime":1531410600000,"drawTime":1531410600000,"results":[{"primary":["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20"],"secondary":["09"],"prizeTierId":"Regular"}],"prizeTiers":[{"shareCount":0,"totalAmount":0,"name":"Combined","id":"0"}]}];
// code to modify the secondary number to single digit.
/* for(var i=0;i< drawDetail.length; i++){
if(drawDetail[i].results[0].secondary){
var secondaryNo = self._modifyData(drawDetail[i]);
drawDetail[i].results[0].secondary[0] = secondaryNo;
}
}
*/
var detailedObj = {draws: drawDetail };
self.anim.data = detailedObj;
self.anim.drawDataReady(self.anim.data);
},
_modifyData : function _modifyData(obj){
var self =this;
var secondNumber;
// _.each(detailObj,function(obj,i){
var fullResult = obj.results;
if(fullResult[0].secondary[0]){
var secondArr = fullResult[0].secondary[0]
secondNumber= (secondArr >9)? secondArr : secondArr.split("")[1] ;
}
return secondNumber;
},
_renderPreviousDraw : function _renderPreviousDraw(event){
event && event.preventDefault();
var self = this;
self.anim = $("iframe#animFrame").get(0).contentWindow.exportRoot;
self.anim.prevDraw();
},
_renderNextDraw : function _renderNextDraw(event){
event && event.preventDefault();
var self = this;
self.anim = $("iframe#animFrame").get(0).contentWindow.exportRoot;
self.anim.nextDraw();
},
_renderSelectedDraw : function _renderSelectedDraw(event) {
event && event.preventDefault();
var self = this;
self.anim = $("iframe#animFrame").get(0).contentWindow.exportRoot;
var drawNumber = $('.watch-drawings__form-input').val();
var isValid = false;
var resultObj= self.dataResult;
var noOfDraws = $('.select_draw').val();
_.each(resultObj, function(res){
if(drawNumber == res.id)
isValid = true;
});
var endDraw= parseInt(noOfDraws)+parseInt(drawNumber);
if(drawNumber == ""){
$('#error_draw_number').html(" Enter Draw number ");
$('#error_draw_number').show();
}
else{
if(drawNumber != "" && isValid){
$('#error_draw_number').hide();
self.kenodraws = new Draws();
self.kenodraws.url = '/api/v1/draw-games/draws/page?status=CLOSED&game-names=KENO&start-draw='+drawNumber+'&end-draw='+endDraw;
self.kenodraws.fetch(
{cache: false
}).then(self._renderWatchDraw);
}
else
{
$('#error_draw_number').html(" Invalid Draw number ");
$('#error_draw_number').show();
}
}
}
});
}(portalGGA.models.Draws, _, portalGGA.utils.session))