From 1b8465702966cf326cac4c914bbf7ddbcb7c1e9b Mon Sep 17 00:00:00 2001 From: Joachim Nielandt Date: Mon, 14 Sep 2015 23:33:56 +0200 Subject: [PATCH] added comments --- js/app.js | 1 + js/controllers.js | 66 +++++++++++++++++++ js/services.js | 21 ++++++ .../championship-poule-race-comments.html | 50 ++++++++++++++ partials/championship-poule-race-drives.html | 3 + partials/championship-poule-races.html | 3 +- server/addcomment.php | 31 +++++++++ server/deletecomment.php | 30 +++++++++ server/getcomments.php | 34 ++++++++++ server/getracesinpoule.php | 2 +- 10 files changed, 239 insertions(+), 2 deletions(-) create mode 100644 partials/championship-poule-race-comments.html create mode 100644 server/addcomment.php create mode 100644 server/deletecomment.php create mode 100644 server/getcomments.php diff --git a/js/app.js b/js/app.js index 971ff58..0470ca6 100644 --- a/js/app.js +++ b/js/app.js @@ -26,6 +26,7 @@ config(['$routeProvider', function($routeProvider) { $routeProvider.when('/championship/:idchampionship/poule/:tier/:poule/races', {templateUrl: 'partials/championship-poule-races.html', controller: 'PouleCtrl'}); $routeProvider.when('/championship/:idchampionship/poule/:tier/:poule/teams', {templateUrl: 'partials/championship-poule-teams.html', controller: 'PouleCtrl'}); $routeProvider.when('/championship/:idchampionship/poule/:tier/:poule/race/:idrace/drives', {templateUrl: 'partials/championship-poule-race-drives.html', controller: 'RaceCtrl'}); + $routeProvider.when('/championship/:idchampionship/poule/:tier/:poule/race/:idrace/drive/:drivenr/comments', {templateUrl: 'partials/championship-poule-race-comments.html', controller: 'DriveCtrl'}); $routeProvider.when('/championship/:idchampionship/poule/:tier/:poule/race/:idrace/measurements', {templateUrl: 'partials/championship-poule-race-measurements.html', controller: 'RaceCtrl'}); $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'}); diff --git a/js/controllers.js b/js/controllers.js index 236a38f..b52c812 100644 --- a/js/controllers.js +++ b/js/controllers.js @@ -689,3 +689,69 @@ mod.controller('TimepickerDemoCtrl', ['$scope', function ($scope, $log) { $scope.mytime = null; }; }]); + + + +mod.controller('DriveCtrl', ['$scope', 'RaceService', 'DriveService', '$routeParams', function ($scope, RaceService, DriveService, $routeParams) { + + //set route params in scope variables + $scope.currentChampionship = $routeParams.idchampionship; + $scope.currentTier = $routeParams.tier; + $scope.currentPoule = $routeParams.poule; + $scope.currentRace = $routeParams.idrace; + $scope.currentDrive = $routeParams.drivenr; + + $scope.refreshComments = function() { + DriveService.getComments($scope.currentRace, $scope.currentDrive). + success(function(data, status, headers, config) { + console.log('refreshComments successful...'); + console.log(data); + if(data['ok']==true) { + $scope.comments = data.comments; + } else { + console.log('shit hit the fan with refreshComments'); + } + }). + error(function(data, status, headers, config) { + console.log('refreshComments failed...'); + }); + }; + + $scope.deleteComment = function(idcomment) { + DriveService.deleteComment(idcomment). + success(function(data, status, headers, config) { + console.log('deleteComment successful...'); + console.log(data); + if(data['ok']==true) { + $scope.refreshComments(); + } else { + console.log('shit hit the fan with deleteComment'); + } + }). + error(function(data, status, headers, config) { + console.log('deleteComment failed...'); + }); + }; + + $scope.addComment = function(newcomment, newpenaltyseconds) { + console.log('comment: '+newcomment); + console.log('penaltyseconds: '+newpenaltyseconds); + // this.addComment = function(idrace, drivenr, comment, penaltyseconds) { + DriveService.addComment($scope.currentRace, $scope.currentDrive, newcomment, newpenaltyseconds). + success(function(data, status, headers, config) { + console.log('addComment successful...'); + console.log(data); + if(data['ok']==true) { + $scope.refreshComments(); + } else { + console.log('shit hit the fan with addComment') + } + }). + error(function(data, status, headers, config) { + console.log('addcomment failed...'); + }); + }; + + $scope.refreshComments(); + +}]); diff --git a/js/services.js b/js/services.js index 165dd97..d99bcbf 100644 --- a/js/services.js +++ b/js/services.js @@ -135,6 +135,27 @@ appServices.service('DriverService', function($http) { }; }); +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('MainService', function($http, $cookies) { var activerace = null; diff --git a/partials/championship-poule-race-comments.html b/partials/championship-poule-race-comments.html new file mode 100644 index 0000000..3aa30ce --- /dev/null +++ b/partials/championship-poule-race-comments.html @@ -0,0 +1,50 @@ + + +
+
+
+
+

Comments

+
+
+ + + + + + + +
CommentaarPenaltyActies
{{comment.comment}}{{comment.penaltyseconds}} secs + Verwijder +
+
+
+
+ +
+
+
+

Voeg rit toe

+
+
+
+
Opties en acties
+
+ +
+ + penalty seconden +
+ +
+
+
+
+
+
diff --git a/partials/championship-poule-race-drives.html b/partials/championship-poule-race-drives.html index 3aea881..3636784 100644 --- a/partials/championship-poule-race-drives.html +++ b/partials/championship-poule-race-drives.html @@ -19,6 +19,9 @@ {{drive.laps}} {{drive.drivername}} + + Commentaar + Verwijder diff --git a/partials/championship-poule-races.html b/partials/championship-poule-races.html index f1c1415..49d75e6 100644 --- a/partials/championship-poule-races.html +++ b/partials/championship-poule-races.html @@ -15,10 +15,11 @@
- + +
TeamRaceidLapsActies
TeamRaceidTotaaltijdLapsActies
{{race.name}} {{race.idrace}}{{race.totaltime}} secs {{race.lapagg}} diff --git a/server/addcomment.php b/server/addcomment.php new file mode 100644 index 0000000..401621e --- /dev/null +++ b/server/addcomment.php @@ -0,0 +1,31 @@ + diff --git a/server/deletecomment.php b/server/deletecomment.php new file mode 100644 index 0000000..b29b2f7 --- /dev/null +++ b/server/deletecomment.php @@ -0,0 +1,30 @@ + diff --git a/server/getcomments.php b/server/getcomments.php new file mode 100644 index 0000000..1acff00 --- /dev/null +++ b/server/getcomments.php @@ -0,0 +1,34 @@ + diff --git a/server/getracesinpoule.php b/server/getracesinpoule.php index 0b397b6..515af6d 100644 --- a/server/getracesinpoule.php +++ b/server/getracesinpoule.php @@ -14,7 +14,7 @@ $poule = $post['poule']; //fetch the championships - $racefetch = pg_prepare($dbconn, "racefetch", "select team.*, race.idrace, (select string_agg(laps||'', ',') lapagg from drive where drive.idrace = race.idrace) from team inner join race using (idteam, idchampionship) where idchampionship = $1 and tier = $2 and poule = $3"); + $racefetch = pg_prepare($dbconn, "racefetch", "select team.*, race.idrace, (select string_agg(laps||'', ',') lapagg from drive where drive.idrace = race.idrace), (select extract(epoch from max(timestamp)-min(timestamp)) from measurement where idrace = race.idrace) as totaltime from team inner join race using (idteam, idchampionship) where idchampionship = $1 and tier = $2 and poule = $3"); $racefetch = pg_execute($dbconn, "racefetch", array($idchampionship, $tier, $poule)); //build result object