Merge remote-tracking branch 'origin/master' into thomas

This commit is contained in:
Thomas 2015-09-16 22:31:47 +02:00
commit caa359cd73
11 changed files with 491 additions and 399 deletions

View File

@ -52,8 +52,11 @@
<script src="js/controllers/main.js"></script>
<script src="js/controllers/championships.js"></script>
<script src="js/controllers/championship.js"></script>
<script src="js/controllers/viewer.js"></script>
<script src="js/controllers/overview.js"></script>
<script src="js/controllers/poule.js"></script>
<script src="js/controllers/teams.js"></script>
<script src="js/controllers/race.js"></script>
<script src="js/controllers/drivers.js"></script>
<!-- remove me -->
<script src="js/controllers.js"></script>
@ -77,6 +80,7 @@
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li ng-class="getActiveCss('/championships');"><a href="#/championships">Kampioenschappen</a></li>
<li ng-class="getActiveCss('/viewer');"><a href="#/viewer">Resultaten</a></li>
</ul>
<ul class="nav navbar-nav navbar-right" style="margin-right:20px">

View File

@ -32,6 +32,9 @@ config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/championship/:idchampionship/teams', {templateUrl: 'partials/championship-teams.html', controller: 'TeamCtrl'});
$routeProvider.when('/championship/:idchampionship/team/:idteam/drivers', {templateUrl: 'partials/championship-team-drivers.html', controller: 'DriverCtrl'});
$routeProvider.when('/viewer', {templateUrl: 'partials/viewer.html', controller: 'ViewerCtrl'});
$routeProvider.when('/viewer/poule/:tier/:poule/overview', {templateUrl: 'partials/viewer-pouleoverview.html', controller: 'ViewerCtrl'});
$routeProvider.when('/login', {templateUrl: 'partials/login.html', controller: 'LoginCtrl'});
$routeProvider.when('/register', {templateUrl: 'partials/register.html', controller: 'RegisterCtrl'});
// $routeProvider.when('/member', {templateUrl: 'partials/member.html', controller: 'MemberCtrl'});

View File

@ -5,391 +5,11 @@
var mod = angular.module('bananaraceApp.controllers');
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;
//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;
} else {
}
}).
error(function(data, status, headers, config) {
console.log('refreshDrives failed...');
});
};
$scope.refreshMeasurements = function() {
console.log('doing refreshMeasurements');
RaceService.getMeasurements($scope.currentRace).
success(function(data, status, headers, config) {
console.log('refreshMeasurements successful...');
console.log(data);
if(data['ok']==true) {
$scope.measurements = data.measurements;
} else {
}
}).
error(function(data, status, headers, config) {
console.log('refreshMeasurements 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.addMeasurementNow = function() {
RaceService.addMeasurementNow($scope.currentRace).
success(function(data, status, headers, config) {
console.log('addMeasurementNow successful...');
console.log(data);
if(data['ok']==true) {
$scope.refreshMeasurements();
} else {
}
}).
error(function(data, status, headers, config) {
console.log('addMeasurementNow failed...');
});
};
$scope.addMeasurementRelative = function() {
RaceService.addMeasurementRelative($scope.currentRace, $scope.relativeRaceTime).
success(function(data, status, headers, config) {
console.log('addMeasurementRelative successful...');
console.log(data);
if(data['ok']==true) {
$scope.refreshMeasurements();
} else {
}
}).
error(function(data, status, headers, config) {
console.log('addMeasurementRelative failed...');
});
};
$scope.deleteMeasurement = function(idmeasurement) {
RaceService.deleteMeasurement(idmeasurement).
success(function(data, status, headers, config) {
console.log('deleteMeasurement successful...');
console.log(data);
if(data['ok']==true) {
$scope.refreshMeasurements();
} else {
}
}).
error(function(data, status, headers, config) {
console.log('deleteMeasurement failed...');
});
};
$scope.refreshMeasurements();
$scope.refreshDrives();
$scope.refreshTeam();
}]);
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();
}]);
@ -418,8 +38,18 @@ mod.controller('NavCtrl', ['$scope', '$location', 'MainService', function ($scop
};
$scope.getActiveCss = function (path) {
if(path=='/championships' && $location.path().indexOf('/championship')==0) {
return {
active:true
};
}
// console.log('getActiveCss called with path: '+path);
// console.log($location.path());
// console.log('get activecss: '+path+' '+$location.path());
var ok = $location.path().indexOf(path) != -1;
var ok = $location.path().indexOf(path) == 0;
return {
active: ok
};

187
js/controllers/poule.js Normal file
View File

@ -0,0 +1,187 @@
angular.module('bananaraceApp.controllers').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();
}]);

210
js/controllers/race.js Normal file
View File

@ -0,0 +1,210 @@
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<data.drives.length; drivei++) {
var laps = data.drives[drivei].laps;
for(var i = 0; i<laps; i++) {
var lapdrive = {
lap: (i+1),
drivenr:data.drives[drivei].drivenr,
drivername:data.drives[drivei].drivername
};
$scope.drivesExpanded.push(lapdrive);
}
}
} else {
}
}).
error(function(data, status, headers, config) {
console.log('refreshDrives failed...');
});
};
$scope.refreshMeasurements = function() {
console.log('doing refreshMeasurements');
RaceService.getMeasurements($scope.currentRace).
success(function(data, status, headers, config) {
console.log('refreshMeasurements successful...');
console.log(data);
if(data['ok']==true) {
$scope.measurements = data.measurements;
} else {
}
}).
error(function(data, status, headers, config) {
console.log('refreshMeasurements 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.addMeasurementNow = function() {
RaceService.addMeasurementNow($scope.currentRace).
success(function(data, status, headers, config) {
console.log('addMeasurementNow successful...');
console.log(data);
if(data['ok']==true) {
$scope.refreshMeasurements();
} else {
}
}).
error(function(data, status, headers, config) {
console.log('addMeasurementNow failed...');
});
};
$scope.addMeasurementRelative = function() {
RaceService.addMeasurementRelative($scope.currentRace, $scope.relativeRaceTime).
success(function(data, status, headers, config) {
console.log('addMeasurementRelative successful...');
console.log(data);
if(data['ok']==true) {
$scope.refreshMeasurements();
} else {
}
}).
error(function(data, status, headers, config) {
console.log('addMeasurementRelative failed...');
});
};
$scope.deleteMeasurement = function(idmeasurement) {
RaceService.deleteMeasurement(idmeasurement).
success(function(data, status, headers, config) {
console.log('deleteMeasurement successful...');
console.log(data);
if(data['ok']==true) {
$scope.refreshMeasurements();
} else {
}
}).
error(function(data, status, headers, config) {
console.log('deleteMeasurement failed...');
});
};
$scope.refreshMeasurements();
$scope.refreshDrives();
$scope.refreshTeam();
}]);

35
js/controllers/viewer.js Normal file
View File

@ -0,0 +1,35 @@
angular.module('bananaraceApp.controllers').controller('ViewerCtrl', ['$scope', '$routeParams', 'TeamService', function($scope, $routeParams, TeamService) {
//store all the teams
$scope.teamsInPoule = [];
$scope.currentTeamInPouleIndex = -1;
$scope.refreshTeamsForPoule = function() {
var idchampionship = $routeParams.idchampionship;
var tier = $routeParams.tier;
var poule = $routeParams.poule;
ViewerService.getTeamInPoule(idchampionship, tier, poule).
success(function(data, status, headers, config) {
console.log('getTeamsInPoule successful...');
console.log(data);
if(data['ok']==true) {
$scope.teamsInPoule = data.teams;
} else {
console.log('call returned but wasnt ok: '+data['error']);
}
}).
error(function(data, status, headers, config) {
console.log('getTeamsInPoule failed...');
});
};
$scope.goToNextTeamInPoule = function() {
if($scope.teamsInPoule.length>0) {
//set up everything for the next team
$scope.currentTeamInPouleIndex = (($scope.currentTeamInPouleIndex+1)%$scope.teamsInPoule.length);
} else {
$scope.currentTeamInPouleIndex = -1;
}
};
}]);

View File

@ -62,6 +62,7 @@
</div>
</div>
<button type="button" class="btn btn-default" ng-click="addDrive();" ng-disabled="selectedDriver == null">Voeg rit toe</button>
<button type="button" class="btn btn-default" ng-click="addBatchDrives(1,1);" ng-disabled="selectedDriver == null">Voeg 1/1/.. toe</button>
</div>
</div>
</div><!-- end row -->

View File

@ -7,25 +7,40 @@
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Metingen</h3>
<h3 class="panel-title">Metingen
<span ng-show="drivesExpanded.length+1>measurements.length && drivesExpanded.length>0" class="label label-warning pull-right">Meting ontbrekend <span class="badge">{{drivesExpanded.length+1 - measurements.length}}</span></span>
<span ng-show="drivesExpanded.length+1==measurements.length && drivesExpanded.length>0" class="glyphicon glyphicon-ok label-success label pull-right"> </span>
<span ng-show="drivesExpanded.length==0" class="glyphicon glyphicon-exclamation-sign label-danger label pull-right"> Geen ritten aanwezig</span>
<span ng-show="drivesExpanded.length+1<measurements.length && drivesExpanded.length>0" class="glyphicon glyphicon-exclamation-sign label-warning label pull-right"> Teveel metingen</span>
</h3>
</div>
<div class="panel-body">
<table class="table">
<tr><th>id</th><th>Timestamp</th><th>Geldig</th><th>Manueel</th><th>Sensor</th><th>Sensortijd</th><th>Acties</th></tr>
<tr ng-repeat="measurement in measurements | orderBy:'timestamp'">
<td>{{measurement.idmeasurement}}</td>
<td>{{measurement.timestamp}}</td>
<td><input type="checkbox" ng-model="measurement.valid" ng-change="measurementValidityChanged(measurement)" ng-true-value="'t'" ng-false-value="'f'"/></td>
<td><span class="glyphicon" ng-class="{'glyphicon-ok':measurement.manual=='t', 'glyphicon-remove':measurement.manual=='f'}" aria-hidden="true"></span></td>
<td>{{measurement.sensor}}</td>
<td>{{measurement.sensortime}}</td>
<td>
<button type="button" class="btn btn-danger btn-sm" ng-click="deleteMeasurement(measurement);">
<span class="glyphicon glyphicon-remove" aria-hidden="true" title="Verwijder"> </span>
</button>
</td>
</tr>
</table>
<div class="row">
<div class="col-xs-12">
<table class="table">
<tr><th>id</th><th>Timestamp</th><th>Geldig</th><th>Manueel</th><th>Sensor</th><th>Sensortijd</th><th>Acties</th><th>Geassocieerde ritten</th></tr>
<tr ng-repeat="measurement in measurements | orderBy:'timestamp'">
<td>{{measurement.idmeasurement}}</td>
<td><h5><span class="label label-default">{{measurement.timestamp}}</span></h5></td>
<td><input type="checkbox" ng-model="measurement.valid" ng-change="measurementValidityChanged(measurement)" ng-true-value="'t'" ng-false-value="'f'"/></td>
<td><span class="glyphicon" ng-class="{'glyphicon-ok':measurement.manual=='t', 'glyphicon-remove':measurement.manual=='f'}" aria-hidden="true"></span></td>
<td>{{measurement.sensor}}</td>
<td><h5><span class="label label-default">{{measurement.sensortime}}</span></h5></td>
<td>
<button type="button" class="btn btn-danger btn-sm" ng-click="deleteMeasurement(measurement);">
<span class="glyphicon glyphicon-remove" aria-hidden="true" title="Verwijder"> </span>
</button>
</td>
<td>
<div ng-show="$index==0"><small>Start!</small></div>
<div ng-show="$index>0 && $index<=drivesExpanded.length">
<small>Ronde {{drivesExpanded[$index-1].lap}} door {{drivesExpanded[$index-1].drivername}}</small>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>

View File

7
partials/viewer.html Normal file
View File

@ -0,0 +1,7 @@
<!-- we need a couple of viewer screens:
- 1) current poule: overview of races and times
-->
<div id="currentpouleview">
<!-- this cycles through the teams in the poule: show all times and shit -->
</div>

View File

@ -15,7 +15,7 @@
$addteam= pg_prepare($dbconn, "addteam", "insert into team (name, idchampionship) values ($1, $2) returning idteam");
$addteam= pg_execute($dbconn, "addteam", array($teamname, $idchampionship));
if($addpoule===FALSE) {
if($addteam===FALSE) {
$result['ok'] = false;
$result['error'] = 'insert team failed: '.pg_last_error($dbconn);
} else {