'use strict'; /* Controllers */ var mod = angular.module('bananaraceApp.controllers', ['bananaraceApp.services']); mod.controller('ChampionshipsCtrl', ['$scope', 'ChampionshipService', function($scope, ChampionshipService) { var championships = []; $scope.refreshChampionships = function() { console.log('doing refreshChampionships'); ChampionshipService.getChampionships(). success(function(data, status, headers, config) { console.log('refreshChampionships successful...'); console.log(data); if(data['ok']==true) { $scope.championships = data.championships; } else { } }). error(function(data, status, headers, config) { console.log('refreshChampionships failed...'); }); }; $scope.deleteChampionship = function(championship) { ChampionshipService.deleteChampionship(championship). success(function(data, status, headers, config) { console.log('refreshChampionships successful...'); if(data['ok']==true) { $scope.refreshChampionships(); } else { } }). error(function(data, status, headers, config) { console.log('refreshChampionships failed...'); }); }; $scope.addChampionship = function(newchampionship) { console.log("adding: "+newchampionship); ChampionshipService.addChampionship(newchampionship). success(function(data, status, headers, config) { console.log('addChampionships successful...'); console.log(data); if(data['ok']==true) { $scope.refreshChampionships(); newchampionship.name = ""; } }). error(function(data, status, headers, config) { console.log('addChampionships failed...'); } ); }; //initial refresh championships when building the controller $scope.refreshChampionships(); }]); mod.controller('RaceCtrl', ['$scope', '$routeParams', 'RaceService', function($scope, $routeParams, RaceService) { //fetch all drives for the current race var drives = []; //set route params in scope variables $scope.currentChampionship = $routeParams.idchampionship; $scope.currentTier = $routeParams.tier; $scope.currentPoule = $routeParams.poule; $scope.currentRace = $routeParams.idrace; //possible lapamounts $scope.lapamounts = [1,2,3,4,5]; //initial selection $scope.selectedLapamount = 2; $scope.setSelectedLapamount = function(amount) { $scope.selectedLapamount = amount; } $scope.refreshDrives = function() { console.log('doing refreshRaces'); RaceService.getDrives($scope.currentRace). success(function(data, status, headers, config) { console.log('refreshDrives successful...'); console.log(data); if(data['ok']==true) { $scope.drives = data.drives; } else { } }). error(function(data, status, headers, config) { console.log('refreshDrives failed...'); }); }; $scope.refreshTeam = function() { RaceService.getTeam($scope.currentRace). success(function(data, status, headers, config) { console.log('refreshTeam successful...'); console.log(data); if(data['ok']==true) { $scope.team = data.team; if(data.team.drivers.length > 0) { $scope.selectedDriver = data.team.drivers[0]; } } else { } }). error(function(data, status, headers, config) { console.log('refreshDrivers failed...'); }); }; $scope.setSelectedDriver = function(driver) { $scope.selectedDriver = driver; }; $scope.addDrive = function() { RaceService.addDrive($scope.currentRace, $scope.selectedDriver, $scope.selectedLapamount). success(function(data, status, headers, config) { console.log('addDrive successful...'); console.log(data); if(data['ok']==true) { $scope.refreshDrives(); } else { } }). error(function(data, status, headers, config) { console.log('addDrive failed...'); }); }; $scope.deleteDrive = function(drivenr, idrace) { RaceService.deleteDrive(drivenr, idrace). success(function(data, status, headers, config) { console.log('deleteDrive successful...'); console.log(data); if(data['ok']==true) { $scope.refreshDrives(); } else { } }). error(function(data, status, headers, config) { console.log('deleteDrive failed...'); }); }; $scope.refreshDrives(); $scope.refreshTeam(); }]); mod.controller('ChampionshipCtrl', ['$scope', '$routeParams', 'PouleService', 'TeamService', function($scope, $routeParams, PouleService, TeamService) { //fetch all poules for the given championship var poules = []; //set scope vars $scope.currentChampionship = $routeParams.idchampionship; $scope.refreshPoules = function() { var idchampionship = $routeParams.idchampionship; console.log('doing refreshPoules'); PouleService.getPoules(idchampionship). success(function(data, status, headers, config) { console.log('refreshPoules successful...'); console.log(data); if(data['ok']==true) { $scope.poules = data.poules; } else { } }). error(function(data, status, headers, config) { console.log('refreshChampionships failed...'); }); }; $scope.addPoule = function(newpoule) { PouleService.addPoule(newpoule, $scope.currentChampionship). success(function(data, status, headers, config) { console.log('addPoule successful...'); console.log(data); if(data['ok']==true) { $scope.refreshPoules(); newpoule.tier = ""; newpoule.poule = ""; } }). error(function(data, status, headers, config) { console.log('addPoule failed...'); } );; }; //do initial refresh of poules $scope.refreshPoules(); }]); mod.controller('PouleCtrl', ['$scope', '$routeParams', 'PouleService', 'TeamService', 'MainService', function($scope, $routeParams, PouleService, TeamService, MainService) { $scope.currentChampionship = $routeParams.idchampionship; $scope.currentTier = $routeParams.tier; $scope.currentPoule = $routeParams.poule; $scope.activeIdRace = null; $scope.addTeamToPoule = function(team) { var idchampionship = $routeParams.idchampionship; var tier = $routeParams.tier; var poule = $routeParams.poule; PouleService.addTeam(team, idchampionship, tier, poule). success(function(data, status, headers, config) { console.log('added team to poule...'); if(data['ok']==true) { $scope.refreshTeamsForPoule(); $scope.refreshTeamsAvailableForPoule(); } }). error(function(data, status, headers, config) { console.log('addPoule failed...'); } ); }; $scope.removeTeamFromPoule = function(team) { var idchampionship = $routeParams.idchampionship; var tier = $routeParams.tier; var poule = $routeParams.poule; PouleService.removeTeam(team, idchampionship, tier, poule). success(function(data, status, headers, config) { console.log('added team to poule...'); if(data['ok']==true) { $scope.refreshTeamsForPoule(); $scope.refreshTeamsAvailableForPoule(); } }). error(function(data, status, headers, config) { console.log('addPoule failed...'); } ); }; $scope.refreshTeamsForPoule = function() { var idchampionship = $routeParams.idchampionship; var tier = $routeParams.tier; var poule = $routeParams.poule; console.log('TeamCtrl refreshing team in poule'); TeamService.getTeamsInPoule(idchampionship, tier, poule). success(function(data, status, headers, config) { console.log('getTeamsInPoule successful...'); console.log(data); if(data['ok']==true) { $scope.teamsInPoule = data.teams; //set first to be selected $scope.selectedTeam = data.teams[0]; } else { console.log('call returned but wasnt ok: '+data['error']); } }). error(function(data, status, headers, config) { console.log('getTeamsInPoule failed...'); }); }; $scope.refreshTeamsAvailableForPoule = function() { var idchampionship = $routeParams.idchampionship; var tier = $routeParams.tier; var poule = $routeParams.poule; console.log('TeamCtrl refreshing team in poule'); TeamService.getTeamsAvailableForPoule(idchampionship, tier, poule). success(function(data, status, headers, config) { console.log('refreshTeamsAvailableForPoule successful...'); console.log(data); if(data['ok']==true) { $scope.teamsAvailableForPoule = data.teams; } else { console.log('call returned but wasnt ok: '+data['error']); } }). error(function(data, status, headers, config) { console.log('getTeamsInPoule failed...'); }); }; $scope.setSelectedTeam = function(team) { $scope.selectedTeam = team; console.log('team is selected: '+team); }; $scope.addRace = function() { var idchampionship = $routeParams.idchampionship; var tier = $routeParams.tier; var poule = $routeParams.poule; var selectedTeam = $scope.selectedTeam; PouleService.addRace(idchampionship, tier, poule, selectedTeam.idteam). success(function(data, status, headers, config) { console.log('addRace successful...'); console.log(data); if(data['ok']==true) { $scope.refreshRaces(); } }). error(function(data, status, headers, config) { console.log('addRace failed...'); } );; }; $scope.deleteRace = function(race) { var idchampionship = $routeParams.idchampionship; var tier = $routeParams.tier; var poule = $routeParams.poule; console.log('PouleCtrl deleting race'); PouleService.deleteRace(idchampionship, tier, poule, race.idrace). success(function(data, status, headers, config) { console.log('deleteRace call successful...'); console.log(data); if(data['ok']==true) { $scope.refreshRaces(); } else { console.log('deleteRace call returned but wasnt ok: '+data['error']); } }). error(function(data, status, headers, config) { console.log('deleteRace failed...'); }); }; $scope.refreshRaces = function() { var idchampionship = $routeParams.idchampionship; var tier = $routeParams.tier; var poule = $routeParams.poule; console.log('PouleCtrl refreshing races'); PouleService.getRacesInPoule(idchampionship, tier, poule). success(function(data, status, headers, config) { console.log('getRacesInPoule successful...'); console.log(data); if(data['ok']==true) { $scope.racesInPoule = data.races; } else { console.log('getRacesInPoule call returned but wasnt ok: '+data['error']); } }). error(function(data, status, headers, config) { console.log('getTeamsInPoule failed...'); }); }; $scope.toggleActiveRace = function(race) { var idchampionship = $routeParams.idchampionship; var tier = $routeParams.tier; var poule = $routeParams.poule; MainService.toggleActiveRace(race.idrace, tier, poule, idchampionship); }; $scope.getActiveRace = function() { return MainService.getActiveRace(); }; $scope.addRaceForAllteams = function() { var idchampionship = $routeParams.idchampionship; var tier = $routeParams.tier; var poule = $routeParams.poule; for(var i = 0; i<$scope.teamsInPoule.length; i++) { PouleService.addRace(idchampionship, tier, poule, $scope.teamsInPoule[i].idteam). success(function(data, status, headers, config) { $scope.refreshRaces();; }); // this.addRace = function(idchampionship, tier, poule, idteam) { } }; $scope.$on('activeIdRaceChanged', function(event, message) { //the raceid changed! $scope.activeIdRace = message; }); $scope.refreshTeamsForPoule(); $scope.refreshTeamsAvailableForPoule(); $scope.refreshRaces(); }]); mod.controller('TeamCtrl', ['$scope', '$routeParams', 'TeamService', function($scope, $routeParams, TeamService) { //fetch all poules for the given championship var teams = []; $scope.currentChampionship = $routeParams.idchampionship; $scope.refreshTeams = function() { console.log('doing refreshTeams'); var idchampionship = $routeParams.idchampionship; TeamService.getTeams(idchampionship). success(function(data, status, headers, config) { console.log('refreshTeams successful...'); console.log(data); if(data['ok']==true) { $scope.teams = data.teams; } else { } }). error(function(data, status, headers, config) { console.log('refreshTeams failed...'); }); }; $scope.addTeam = function(newteam) { var idchampionship = $routeParams.idchampionship; console.log('controller adding team... '+idchampionship); TeamService.addTeam(newteam, idchampionship). success(function(data, status, headers, config) { console.log(data); if(data['ok']==true) { $scope.refreshTeams(); newteam.name = ""; } }). error(function(data, status, headers, config) { console.log('addTeam failed...'); } );; }; $scope.deleteTeam = function(team) { var idchampionship = $routeParams.idchampionship; console.log('controller deleting team...'); TeamService.deleteTeam(team, idchampionship). success(function(data, status, headers, config) { console.log(data); if(data['ok']==true) { $scope.refreshTeams(); } }). error(function(data, status, headers, config) { console.log('deleteTeam failed...'); } ); }; $scope.refreshTeams(); }]); mod.controller('DriverCtrl', ['$scope', '$routeParams', 'DriverService', function($scope, $routeParams, DriverService) { //fetch all drivers for the given team var drivers = []; $scope.currentTeam = $routeParams.idteam; $scope.currentChampionship = $routeParams.idchampionship; $scope.refreshDrivers = function() { console.log('doing refreshTeams'); var idchampionship = $routeParams.idchampionship; var idteam = $routeParams.idteam; DriverService.getDrivers(idchampionship, idteam). success(function(data, status, headers, config) { console.log('refreshDrivers successful...'); console.log(data); if(data['ok']==true) { $scope.drivers = data.drivers; } else { } }). error(function(data, status, headers, config) { console.log('refreshTeams failed...'); }); }; $scope.addDriver = function(newdriver) { var idchampionship = $routeParams.idchampionship; var idteam = $routeParams.idteam; console.log('controller adding driver... '+idchampionship+' '+idteam); DriverService.addDriver(newdriver, idchampionship, idteam). success(function(data, status, headers, config) { console.log(data); if(data['ok']==true) { $scope.refreshDrivers(); newdriver.name = ""; } }). error(function(data, status, headers, config) { console.log('addDriver failed...'); } );; }; $scope.deleteDriver = function(driver) { var idchampionship = $routeParams.idchampionship; var idteam = $routeParams.idteam; console.log('controller deleting driver... '); console.log(driver); DriverService.deleteDriver(driver). success(function(data, status, headers, config) { console.log(data); if(data['ok']==true) { $scope.refreshDrivers(); } }). error(function(data, status, headers, config) { console.log('deleteDriver failed...'); } ); }; $scope.refreshDrivers(); }]); mod.controller('NavCtrl', ['$scope', '$location', 'MainService', function ($scope, $location, MainService) { $scope.loggedIn = function() { return LoginService.isLoggedIn(); }; $scope.getActiveCss = function (path) { // console.log('get activecss: '+path+' '+$location.path()); var ok = $location.path().indexOf(path) != -1; return { active: ok }; }; $scope.logout = function() { LoginService.setLoggedIn(false); }; $scope.getActiveRace = function() { return MainService.getActiveRace(); }; }]);