can now toggle publishresults in race

This commit is contained in:
Joachim 2018-09-01 10:03:04 +02:00
parent 0a91f03c4c
commit 8eb58be172
5 changed files with 191 additions and 142 deletions

View File

@ -143,6 +143,8 @@ angular.module('bananaraceApp.controllers').controller('PouleCtrl', ['$scope', '
console.log(data);
if(data['ok']==true) {
$scope.racesInPoule = data.races;
console.log('got races: ');
console.log(data.races);
} else {
console.log('getRacesInPoule call returned but wasnt ok: '+data['error']);
}
@ -159,6 +161,10 @@ angular.module('bananaraceApp.controllers').controller('PouleCtrl', ['$scope', '
MainService.toggleActiveRace(race.idrace, tier, poule, idchampionship);
};
$scope.togglePublishResults = function(race) {
MainService.togglePublishResults(race);
};
$scope.getActiveRace = function() {
return MainService.getActiveRace();
};

View File

@ -287,8 +287,7 @@ appServices.service('MainService', function($http, $cookies) {
this.refreshConfig = function () {
$http.post('server/config.php', {
action: 'getConfig'
}).
success(function(data, status, headers, config) {
}).success(function (data, status, headers, config) {
// console.log('refreshConfig successful...');
//refresh activerace
if (data.activeidrace != null) {
@ -304,8 +303,7 @@ appServices.service('MainService', function($http, $cookies) {
activerace = null;
}
// console.log(activerace);
}).
error(function(data, status, headers, config) {
}).error(function (data, status, headers, config) {
console.log('getConfig failed...');
});
};
@ -324,8 +322,7 @@ appServices.service('MainService', function($http, $cookies) {
$http.post('server/config.php', {
action: 'setActiveIdRace',
idrace: idrace
}).
success(function(data, status, headers, config) {
}).success(function (data, status, headers, config) {
//do something?
});
};
@ -346,6 +343,20 @@ appServices.service('MainService', function($http, $cookies) {
}
};
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();
});

View File

@ -5,7 +5,8 @@
<li><a href="#/championship/{{currentChampionship}}/poules">Poules voor {{currentChampionship}}</a></li>
<li class="active">Races in poule/tier {{currentPoule}}/{{currentTier}}</li>
</ol>
</div></div>
</div>
</div>
<div class="row">
<div class="col-md-8">
@ -15,28 +16,47 @@
</div>
<div class="panel-body">
<table class="table table-condensed table-striped">
<tr><th>Team</th><th>Raceid</th><th>Totaaltijd</th><th>Ritten</th><th>Acties</th></tr>
<tr>
<th>Team</th>
<th>Raceid</th>
<th>Totaaltijd</th>
<th>Ritten</th>
<th>Acties</th>
</tr>
<tr ng-repeat="race in racesInPoule">
<td>{{race.name}}</td>
<td>{{race.idrace}}</td>
<td>{{race.totaltime | secondsToString}}</td>
<td>{{race.lapagg}}</td>
<td>
<a class="btn btn-info btn-sm" href="#/championship/{{currentChampionship}}/poule/{{currentTier}}/{{currentPoule}}/race/{{race.idrace}}/measurements">
<a class="btn btn-info btn-sm"
href="#/championship/{{currentChampionship}}/poule/{{currentTier}}/{{currentPoule}}/race/{{race.idrace}}/measurements">
Tijden <span class="badge">{{race.measurementcount}}</span>
</a>
<a class="btn btn-info btn-sm" href="#/championship/{{currentChampionship}}/poule/{{currentTier}}/{{currentPoule}}/race/{{race.idrace}}/drives">
<a class="btn btn-info btn-sm"
href="#/championship/{{currentChampionship}}/poule/{{currentTier}}/{{currentPoule}}/race/{{race.idrace}}/drives">
Ritten <span class="badge">{{race.drivecount}}</span>
</a>
<button type="button" class="btn btn-default btn-sm"
ng-class="{'btn-success' : getActiveRace().idrace == race.idrace, 'btn-warning' : getActiveRace().idrace != race.idrace}"
ng-click="toggleActiveRace(race)" title="Zet deze race actief om metingen te registreren">
ng-click="toggleActiveRace(race)"
title="Zet deze race actief om metingen te registreren">
<span
class="glyphicon"
ng-class="{'glyphicon-play' : getActiveRace().idrace == race.idrace, 'glyphicon-pause' : getActiveRace().idrace != race.idrace}"
ng-class="{'glyphicon-play' : getActiveRace().idrace == race.idrace, 'glyphicon-pause' : getActiveRace().idrace != race.idrace}">
</span>
</button>
<a class="btn btn-danger btn-sm" href="" ng-click="deleteRace(race)"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span></a>
<button type="button" class="btn btn-default btn-sm"
ng-class="{'btn-success' : race.publishresults === 't', 'btn-warning' : race.publishresults === 'f'}"
ng-click="togglePublishResults(race)"
title="Maak de resultaten publiek voor de deelnemers">
<span
class="glyphicon"
ng-class="{'glyphicon-eye-open' : race.publishresults === 't', 'glyphicon-eye-close' : race.publishresults === 'f'}">
</span>
</button>
<a class="btn btn-danger btn-sm" href="" ng-click="deleteRace(race)"><span
class="glyphicon glyphicon-remove" aria-hidden="true"></span></a>
</td>
</tr>
</table>
@ -56,16 +76,24 @@
<div class="panel-heading">Met een team uit de poule...</div>
<div class="panel-body">
<div class="list-group">
<a href="" class="list-group-item list-group-item-sm" ng-repeat="team in teamsInPoule" ng-click="setSelectedTeam(team)" ng-class="{active: selectedTeam==team}">{{team.name}}</a>
<a href="" class="list-group-item list-group-item-sm" ng-repeat="team in teamsInPoule"
ng-click="setSelectedTeam(team)"
ng-class="{active: selectedTeam==team}">{{team.name}}</a>
</div>
<button type="button" class="btn btn-success" ng-click="addRace(newrace);" ng-disabled="selectedTeam == null" title="Maak een nieuwe race aan voor het geselecteerde team.">Maak nieuwe race</button>
<button type="button" class="btn btn-success" ng-click="addRace(newrace);"
ng-disabled="selectedTeam == null"
title="Maak een nieuwe race aan voor het geselecteerde team.">Maak nieuwe race
</button>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">Met alle teams...</div>
<div class="panel-body">
<button type="button" class="btn btn-success" ng-disabled="teamsInPoule.length == 0" ng-click="addRaceForAllteams();" title="Maak nieuwe races aan voor alle bovenstaande teams.">Maak race voor elk team</button>
<button type="button" class="btn btn-success" ng-disabled="teamsInPoule.length == 0"
ng-click="addRaceForAllteams();"
title="Maak nieuwe races aan voor alle bovenstaande teams.">Maak race voor elk team
</button>
</div>
</div>
</div><!-- end row -->

View File

@ -15,6 +15,10 @@
$idrace = $post['idrace'];
$setactiverace = pg_prepare($dbconn, "setactiverace", "update config set activerace = $1");
$setactiverace = pg_execute($dbconn, "setactiverace", array($idrace));
} else if ($action == 'togglePublishResults') {
$idrace = $post['idrace'];
$togglepublishresults = pg_prepare($dbconn, "togglepublishresults", "update race set publishresults = not publishresults where idrace = $1");
$togglepublishresults = pg_execute($dbconn, "togglepublishresults", array($idrace));
} else if ($action == 'getConfig') {
$getconfig = pg_prepare($dbconn, "getconfig", "select activerace activeidrace, tier, poule, idchampionship from config inner join race on activerace = idrace");
$getconfig = pg_execute($dbconn, "getconfig", array());

View File

@ -14,12 +14,12 @@
$poule = $post['poule'];
//fetch the championships
$racefetch = pg_prepare($dbconn, "racefetch", "select team.*, race.idrace, (select string_agg(laps||'', ',') lapagg
$racefetch = pg_prepare($dbconn, "racefetch", "select team.*, race.publishresults, race.idrace, (select string_agg(laps||'', ',') lapagg
from drive where drive.idrace = race.idrace),
(select extract(epoch from max(case when sensortime is null then timestamp else sensortime end)-min(case when sensortime is null then timestamp else sensortime end)) from measurement where valid and idrace = race.idrace) as totaltime,
(select count(*) from measurement where idrace = race.idrace) measurementcount,
(select count(*) from drive where idrace = race.idrace) drivecount from team inner join race using (idteam, idchampionship)
where idchampionship = $1 and tier = $2 and poule = $3");
where idchampionship = $1 and tier = $2 and poule = $3 order by race.idrace");
$racefetch = pg_execute($dbconn, "racefetch", array($idchampionship, $tier, $poule));
//build result object