angular.module('bananaraceApp.controllers').controller('RaceCtrl', ['$scope', '$routeParams', 'RaceService', function($scope, $routeParams, RaceService) { //fetch all drives for the current race var drives = []; //contains a row for each drive/lap -> sorted on drivenr $scope.drivesExpanded = null; //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; //start of the lap, if necessary $scope.newMeasurementStarttime = new Date(); //set the starting values for the relative start applet $scope.relativeRaceStartAddMinutes = 0; $scope.relativeRaceStartAddSeconds = 0; $scope.relativeRaceTime = new Date(); $scope.rightnow = new Date(); $scope.relativeRaceStart = $scope.rightnow; $scope.measurementValidityChanged = function(measurement) { console.log('measurement changed: '+measurement.valid); RaceService.updateMeasurement(measurement). success(function(data, status, headers, config) { console.log('updateMeasurement successful...'); if(data['ok']==true) { } else { } }). error(function(data, status, headers, config) { console.log('updateMeasurement failed...'); });; }; $scope.relativeTimestampChanged = function() { var start = $scope.relativeRaceStart; var plusMinutes = $scope.relativeRaceStartAddMinutes; var plusSeconds = $scope.relativeRaceStartAddSeconds; console.log('plus seconds: '+plusSeconds); //using moments to calculate offsets and relative shit var newMoment = moment(start); newMoment.add(plusMinutes, 'minutes').add(plusSeconds, 'seconds'); //set it! $scope.relativeRaceTime = newMoment; console.log('new relative time: '+newMoment); }; $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; //set the expanded version $scope.drivesExpanded = []; for(var drivei = 0; drivei 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.addBatchDrives = function() { //do the adddrive action for all the drivers and the selected lapamount //if only one driver is there: trivial, call addDrive instead if($scope.team.drivers.length==1) { $scope.addDrive(); return; } //more than one driver present! var finalpromise = undefined; var team = $scope.team; for(var i = 0; i