Skip to content
Snippets Groups Projects
Select Git revision
  • ed0773a1b9bffb4b761b02504a042daabad076ba
  • master default
2 results

app.js

Blame
  • controller.js 3.94 KiB
    /**
     * Created by jeremyguiselin on 01/12/2017.
     */
    
     (function (angular) {
       "use strict";
    
       /**
        * @ngdoc controller
        * @name FootballDetailsController
        *
        * @description
        * Controller for all the predictions of a football league.
        *
        * @ngInject
        */
       function FootballDetailsController(
         $ionicHistory,
         $scope,
         $http,
         $ionicLoading,
         constantConfig
       ) {
         /**
         Scope variables
         **/
    
         $scope.locale = window.navigator.language.split('-')[0];
         $scope.pictureUrl = constantConfig.imgUrl;
    
         /**
         End Scope variables
         **/
    
         /**
         Static variables
         **/
    
         var self = this;
         var deregistrationCallbackList = [];
    
         /**
         End Static variables
         **/
    
         /**
         Scope functions
         **/
    
         $scope.myGoBack = function() {
           $ionicHistory.goBack();
         };
    
    
         $scope.getPredictionClass = function (prediction, value) {
           var percentages = [
             prediction.prediction_win_first,
             prediction.prediction_win_second,
             prediction.prediction_draw
           ];
           percentages.sort();
           if (percentages.indexOf(value) === 2) {
             return "main-prediction";
           } else if (percentages.indexOf(value) === 1) {
             return "second-prediction";
           }
    
           return '';
         }
    
         $scope.getTick = function (prediction) {
           var percentages = [
             prediction.prediction_win_first,
             prediction.prediction_win_second,
             prediction.prediction_draw
           ];
    
           var ticks = [
             'red-cross',
             'orange-tick',
             'green-tick'
           ];
    
           percentages.sort();
           var predictionWin = null;
           if (prediction.winner) {
             if (prediction.winner === -1) {
               predictionWin = prediction.prediction_draw;
             } else {
               predictionWin = prediction.prediction_win_second;
               if (prediction.first_team.id === prediction.winner) {
                 predictionWin = prediction.prediction_win_first;
               }
             }
             return ticks[percentages.indexOf(predictionWin)];
           }
    
           return null;
         }
    
         $scope.parseDate = function (date) {
           var locale = window.navigator.language.split('-')[0];
           date = date.split(' ')[0].split('-');
    
           if (locale === "fr") {
             return date[2] + '/' + date[1] + '/' + date[0].substr(-2);
           } else {
             return date[1] + '/' + date[2] + '/' + date[0].substr(-2);
           }
         }
    
         /**
         End Scope functions
         **/
    
         /**
         Controller functions
         **/
    
         this.parseScore = function (prediction) {
           if (prediction.score) {
             var score = prediction.score;
             var scores = score.split('-');
             prediction.score = scores;
           }
         }
    
         /**
         End Controller functions
         **/
    
         /**
         Scope events
         **/
    
         $scope.$on('$destroy', function(){
           angular.forEach(deregistrationCallbackList, function(deregistrationCallback){
             deregistrationCallback();
           });
           deregistrationCallbackList = null;
         });
    
    
         $scope.$on("$ionicView.beforeEnter", function(event, data){
           var leagueId = data.stateParams.leagueId;
    
           $ionicLoading.show({
             template: '<ion-spinner icon="ripple" class="spinner-assertive"></ion-spinner>',
             animation: 'fade-in',
             showBackdrop: true,
           });
    
           $http.get(constantConfig.apiUrl + 'predictions/league/' + leagueId).then(function (data) {
             var predictions = [];
             data['data'].forEach(function (prediction) {
               self.parseScore(prediction);
               predictions.push(prediction);
             });
             $scope.predictions = predictions;
             $scope.league = data['data'][0]['league'];
           }).finally(function () {
             $ionicLoading.hide();
           });
         });
    
         /**
         End Scope event
         **/
       }
    
       angular.module('starter')
         .controller('FootballDetailsController', FootballDetailsController);
     })(angular);