;(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))