Merge remote-tracking branch 'origin/master' into thomas
This commit is contained in:
commit
caa359cd73
@ -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">
|
||||
|
||||
@ -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'});
|
||||
|
||||
@ -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
187
js/controllers/poule.js
Normal 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
210
js/controllers/race.js
Normal 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
35
js/controllers/viewer.js
Normal 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;
|
||||
}
|
||||
};
|
||||
|
||||
}]);
|
||||
@ -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 -->
|
||||
|
||||
@ -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>
|
||||
|
||||
0
partials/viewer-pouleoverview.html
Normal file
0
partials/viewer-pouleoverview.html
Normal file
7
partials/viewer.html
Normal file
7
partials/viewer.html
Normal 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>
|
||||
@ -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 {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user