'use strict'; /* Services */ var appServices = angular.module('bananaraceApp.services', []); appServices.service('ChampionshipService', function($http) { this.getChampionships = function() { console.log('service.getChampionships called'); return $http.post('server/getchampionships.php', {}); }; this.deleteChampionship = function(championship) { return $http.post('server/deletechampionship.php', { idchampionship: championship.idchampionship }); }; this.addChampionship = function(newchampionship) { return $http.post('server/addchampionship.php', { name: newchampionship.name }); }; }); appServices.service('PouleService', function($http) { this.getPoules = function(idchampionship) { return $http.post('server/getpoules.php', { idchampionship: idchampionship }); }; this.addPoule = function(newpoule, idchampionship) { return $http.post('server/addpoule.php', { tier: newpoule.tier, poule: newpoule.poule, idchampionship: idchampionship }); }; this.deletePoule = function(tier, poule, idchampionship) { return $http.post('server/deletepoule.php', { tier: tier, poule: poule, idchampionship: idchampionship }); }; this.addTeam = function(team, idchampionship, tier, poule) { return $http.post('server/addteamtopoule.php', { idteam: team.idteam, tier: tier, poule: poule, idchampionship: idchampionship }); }; this.removeTeam = function(team, idchampionship, tier, poule) { return $http.post('server/removeteamfrompoule.php', { idteam: team.idteam, tier: tier, poule: poule, idchampionship: idchampionship }); }; this.getRacesInPoule = function(idchampionship, tier, poule) { return $http.post('server/getracesinpoule.php', { tier: tier, poule: poule, idchampionship: idchampionship }); }; this.addRace = function(idchampionship, tier, poule, idteam) { return $http.post('server/addracetopoule.php', { tier: tier, poule: poule, idchampionship: idchampionship, idteam: idteam }); }; this.deleteRace = function(idchampionship, tier, poule, idrace) { return $http.post('server/deleterace.php', { tier: tier, poule: poule, idchampionship: idchampionship, idrace: idrace }); }; }); appServices.service('TeamService', function($http) { this.getTeams = function(idchampionship) { return $http.post('server/getteams.php', { idchampionship: idchampionship }); }; this.getTeamsInPoule = function(idchampionship, tier, poule) { return $http.post('server/getteams.php', { idchampionship: idchampionship, tier: tier, poule: poule }); }; this.deleteTeam = function(team, idchampionship) { return $http.post('server/deleteteam.php', { idteam: team.idteam, idchampionship: idchampionship }); }; /** * Filters: teams that are from the given championship and haven't been used in another poule... */ this.getTeamsAvailableForPoule = function(idchampionship, tier, poule) { return $http.post('server/getteams.php', { idchampionship: idchampionship, tier: tier, poule: poule, available: true }); }; this.addTeam = function(newteam, idchampionship) { console.log('adding team'); return $http.post('server/addteam.php', { name: newteam.name, idchampionship: idchampionship }); }; }); appServices.service('RaceService', function($http) { this.getDrives = function(idrace) { return $http.post('server/getdrives.php', { idrace: idrace }); }; this.getTeam = function(idrace) { return $http.post('server/getraceteam.php', { idrace: idrace }); }; this.addDrive = function(race, driver, laps) { console.log('raceservice.adddrive got called: '+race+' '+driver.iddriver+' '+laps); return $http.post('server/adddrive.php', { idrace: race, iddriver: driver.iddriver, laps: laps }); }; this.deleteDrive = function(drivenr, idrace) { return $http.post('server/deletedrive.php', { drivenr: drivenr, idrace: idrace }); }; this.addMeasurementNow = function(idrace) { return $http.post('server/addmeasurement.php', { type: 'now', idrace: idrace }); }; this.addMeasurementRelative = function(idrace, timestamp) { return $http.post('server/addmeasurement.php', { type: 'relative', idrace: idrace, timestamp: timestamp }); }; this.getMeasurements = function(idrace) { return $http.post('server/getmeasurements.php', { idrace: idrace }); }; this.updateMeasurement = function(measurement) { return $http.post('server/updatemeasurement.php', { idmeasurement: measurement.idmeasurement, valid: measurement.valid }); }; this.deleteMeasurement = function(measurement) { console.log('deleting measurement'); console.log(measurement); return $http.post('server/deletemeasurement.php', { idmeasurement: measurement.idmeasurement }); }; }); appServices.service('DriverService', function($http) { this.getDrivers = function(idchampionship, idteam) { return $http.post('server/getdrivers.php', { idchampionship: idchampionship, idteam: idteam }); }; this.addDriver = function(newdriver, idchampionship, idteam) { console.log('adding driver'); return $http.post('server/adddriver.php', { idchampionship: idchampionship, name: newdriver.name, idteam: idteam }); }; this.deleteDriver = function(driver) { console.log('removing driver'); return $http.post('server/deletedriver.php', { iddriver: driver.iddriver }); }; }); appServices.service('DriveService', function($http) { this.getComments = function(idrace, drivenr) { console.log('getting comments for: ' + idrace + ' ' + drivenr); return $http.post('server/getcomments.php', { idrace: idrace, drivenr: drivenr }); }; this.addComment = function(idrace, drivenr, comment, penaltyseconds) { return $http.post('server/addcomment.php', { idrace: idrace, drivenr: drivenr, comment: comment, penaltyseconds: penaltyseconds }); }; this.deleteComment = function(idcomment) { return $http.post('server/deletecomment.php', { idcomment: idcomment }); }; this.deleteDriver = function(driver) { console.log('removing driver'); return $http.post('server/deletedriver.php', { iddriver: driver.iddriver }); }; }); appServices.service('OverviewService', function($http) { this.getData = function(idchampionship) { return $http.post('server/getoverviewofchampionship.php', { idchampionship: idchampionship }); }; }); appServices.service('ViewerService', function($http) { this.getTeamsForPoule = function(idchampionship, tier, poule) { return $http.post('server/getteamsforpoule.php', { tier: tier, poule: poule, idchampionship: idchampionship }); }; }); appServices.service('MainService', function($http, $cookies) { var activerace = null; this.refreshConfig = function() { $http.post('server/config.php', { action: 'getConfig' }). success(function(data, status, headers, config) { // console.log('refreshConfig successful...'); //refresh activerace if (data.activeidrace != null) { // console.log('setting the activerace...'); activerace = { idrace: data.activeidrace, tier: data.tier, poule: data.poule, idchampionship: data.idchampionship }; } else { // console.log('idrace was null, setting activerace to null'); activerace = null; } console.log(activerace); }). error(function(data, status, headers, config) { console.log('getConfig failed...'); }); }; this.setActiveRace = function(idrace, tier, poule, idchampionship) { if (idrace == null) { activerace = null; } else { activerace = { idrace: idrace, tier: tier, poule: poule, idchampionship: idchampionship }; } $http.post('server/config.php', { action: 'setActiveIdRace', idrace: idrace }). success(function(data, status, headers, config) { //do something? }); }; this.getActiveRace = function() { return activerace; }; this.toggleActiveRace = function(idrace, tier, poule, idchampionship) { console.log('toggling active race' + idrace); //if the race is not the same as the currently active on: switch it if (activerace == null || activerace.idrace != idrace) { this.setActiveRace(idrace, tier, poule, idchampionship); } else { //well, it's the same: we're disabling the activeness of the race activerace = null; this.setActiveRace(null, null, null, null); } }; //load the current config this.refreshConfig(); });