koerseadmin/js/services.js

378 lines
11 KiB
JavaScript

'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
});
};
this.togglePublishResultsForChampionship = function (championship) {
console.log('toggling publish results for championship' + championship.idchampionship);
$http.post('server/config.php', {
action: 'togglePublishResultsForChampionship',
idchampionship: championship.idchampionship
}).success(function (data, status, headers, config) {
if (championship.publishresults === 'f') {
championship.publishresults = 't';
} else if (championship.publishresults === 't') {
championship.publishresults = 'f';
}
});
};
});
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);
}
};
this.togglePublishResults = function (race) {
console.log('toggling publish results ' + race.idrace);
$http.post('server/config.php', {
action: 'togglePublishResults',
idrace: race.idrace
}).success(function (data, status, headers, config) {
if (race.publishresults === 'f') {
race.publishresults = 't';
} else if (race.publishresults === 't') {
race.publishresults = 'f';
}
});
};
//load the current config
this.refreshConfig();
});