; (function( _, session) { /** * @class Change password form * @requiresDOM .notificationsContainer * @requires portalGGA.utils.globalErrorNotifier * @author Siva.Nanduri@gtechg2.com * @author Tomek.Wytrebowicz@gtech.com * @author Michal.Kunikowski@gtech.com * @extends {Backbone.View} * @view */ portalGGA.views.HotCold = Backbone.View.extend( /** @lends portalGGA.views.ForgotPassword.prototype */ { events: { 'submit #submitPeriod': 'getHotColdNumbers' }, /** * [constructor description] * @param {Object} [options] (see {@link Backbone.View.constructor}) * @param {portalGGA.models.player.ForgottenPassword} [options.forgottenPassword] If none given, `new portalGGA.models.player.ForgottenPassword` will be used. * @param {portalGGA.models.player.SecurityQuestions} [options.securityQuestions] If none given, `new portalGGA.models.player.SecurityQuestions` will be used. * @param {Object} [options.dictionary] Dictionary to map back-end security questions' names. */ constructor: function HotCold(options) { Backbone.View.apply(this, arguments); var self=this; this.hotColdNumbers= new portalGGA.models.HotColdNumbers(); this.options = options; _.bindAll(this,"_populateHotColdNumbers"); self.getHotColdNumbers(); }, getHotColdNumbers: function getHotColdNumbers(){ var self =this; $('.hot-cold__tile').on('click', function() { $('.hot-cold__tile.selected').removeClass('selected'); $(this).addClass('selected').fadeTo('fast', 1 ); $('.hot-cold__tile').not(this).fadeTo('fast', 0.5 ); }); $('#submitPeriod').on('click', function() { var selectedPeriod = $('#hot-cold').val(); var gameName = $('.hot-cold__tile.selected h2').text(); if(gameName){ self.hotColdNumbers.url = "/api/v1/draw-games/statistics/"+gameName; var hotCold = $.when(self.hotColdNumbers.fetch( { } )); hotCold.then(self._populateHotColdNumbers,this); var selectedValue = selectedPeriod+" "+gameName +" "+"Value: " +"["+selectedPeriod +"]"; ga('send', 'event', 'Player Tools Page', 'Hot and Cold Numbers', gameName); ga('send', 'event', 'Player Tools Page', 'Generate',selectedValue); $('.hot-cold__error').removeClass('show'); $('.hot-cold__error').addClass('hide'); } else{ $('.hot-cold__error').removeClass('hide'); $('.hot-cold__error').addClass('show'); } }); }, _populateHotColdNumbers: function _populateHotColdNumbers(){ var self= this; var selectedPeriod = $('#hot-cold').val(); var hotColdNumber = self.hotColdNumbers; var hcSelectedPeriod = {}; if(self.hotColdNumbers.models.length>0){ $('#hotColdNoResult').addClass('hide'); $('#hotColdNoResult').removeClass('show'); var periodFound = self._checkPeriod(self.hotColdNumbers.models,selectedPeriod ); if(periodFound ){ _.each(self.hotColdNumbers.models, function(hcNum){ var hcNumPeriod = hcNum.toJSON(); if(selectedPeriod == hcNumPeriod.period){ hcSelectedPeriod = hcNumPeriod; $('#hotColdTemplate').html(hotcoldTemplate({hcNumbers : hcSelectedPeriod })); return; } }); } else { $('#hotColdNoResult').addClass('show'); $('#hotColdNoResult').removeClass('hide'); $('#hotColdTemplate').html(""); } } else{ $('#hotColdNoResult').addClass('show'); $('#hotColdNoResult').removeClass('hide'); $('#hotColdTemplate').html(""); } }, _checkPeriod: function _checkPeriod(jsonObj,selectedPeriod){ var self = this; var exists = false; _.each(jsonObj, function(obj){ var periodArray = obj.toJSON(); if (periodArray.period == selectedPeriod) { exists = true; } }); return exists; } }); }(_, portalGGA.utils.session))