285 lines
7.5 KiB
JavaScript
285 lines
7.5 KiB
JavaScript
'use strict';
|
|
|
|
/* Services */
|
|
|
|
var appServices = angular.module('bananaraceApp.services', []);
|
|
|
|
appServices.service('ChampionshipService', function($http) {
|
|
this.getChampionships = function() {
|
|
console.log('service.getChampionships called');
|
|
return $http.post('server/getchampionships.php', {});
|
|
};
|
|
|
|
this.deleteChampionship = function(championship) {
|
|
return $http.post('server/deletechampionship.php', {idchampionship:championship.idchampionship});
|
|
};
|
|
|
|
this.addChampionship = function(newchampionship) {
|
|
return $http.post('server/addchampionship.php', {name:newchampionship.name});
|
|
};
|
|
});
|
|
|
|
appServices.service('PouleService', function($http) {
|
|
this.getPoules = function(idchampionship) {
|
|
return $http.post('server/getpoules.php', {idchampionship:idchampionship});
|
|
};
|
|
|
|
this.addPoule = function(newpoule, idchampionship) {
|
|
return $http.post('server/addpoule.php', {tier:newpoule.tier, poule:newpoule.poule, idchampionship:idchampionship});
|
|
};
|
|
});
|
|
|
|
appServices.service('TeamService', function($http) {
|
|
this.getTeams = function(idchampionship) {
|
|
return $http.post('server/getteams.php', {idchampionship:idchampionship});
|
|
};
|
|
|
|
this.addTeam = function(newteam, idchampionship) {
|
|
console.log('adding team');
|
|
return $http.post('server/addteam.php', {name:newteam.name, idchampionship:idchampionship});
|
|
};
|
|
});
|
|
|
|
|
|
appServices.service('StopwatchService', ['TemplateBackendService', function(TemplateBackendService) {
|
|
//init the stopwatch value in ms
|
|
var intervalMs = 0;
|
|
var startMs = null;
|
|
var running = false;
|
|
|
|
var timings = null;
|
|
|
|
//this is the currently tracked leaf
|
|
var templateItemIndex = -1;
|
|
//this is the starttime of the currently tracked leaf
|
|
var leafStart = null;
|
|
|
|
//the currently active template
|
|
var activeTemplate = null;
|
|
|
|
this.updateValue = function() {
|
|
var currentMs = +new Date();
|
|
intervalMs = currentMs - startMs;
|
|
}
|
|
|
|
this.isRunning = function() {
|
|
return running;
|
|
}
|
|
|
|
this.getValue = function() {
|
|
if(running) {
|
|
this.updateValue();
|
|
}
|
|
return intervalMs;
|
|
};
|
|
|
|
this.currentlyRunningTemplateItemIndex = function() {
|
|
return templateItemIndex;
|
|
}
|
|
|
|
this.getCurrentTemplateItems = function() {
|
|
if(activeTemplate != null && activeTemplate.templateitems != null) {
|
|
return activeTemplate.templateitems;
|
|
} else {
|
|
return [];
|
|
}
|
|
}
|
|
|
|
this.getActiveTemplate = function() {
|
|
return activeTemplate;
|
|
}
|
|
|
|
this.setActiveTemplate = function(template) {
|
|
console.log('setActiveTemplate called');
|
|
activeTemplate = template;
|
|
console.log('active template: '+template.templatename);
|
|
console.log(template);
|
|
|
|
//now, set up the timer so we can process the active template
|
|
//1) active template needs to be read from left to right, leaf to leaf
|
|
//2) time each leaf: start , tap , tap , end > save timings to db
|
|
//-- stop will break off the attempt
|
|
|
|
//get the leafs of the active template
|
|
console.log('got these active items: ');
|
|
console.log(template.templateitems);
|
|
}
|
|
|
|
this.cancel = function() {
|
|
running = false;
|
|
templateItemIndex = -1;
|
|
leafStart = 0;
|
|
}
|
|
|
|
this.tap = function() {
|
|
//okay, if we are not running right now, initialise everything
|
|
var stopRunningTimer = false;
|
|
|
|
if(!running) {
|
|
//start up the first leaf
|
|
templateItemIndex = 0;
|
|
leafStart = 0;
|
|
running = true;
|
|
startMs = +new Date();
|
|
} else {
|
|
//already running!
|
|
var temptime = this.getValue();
|
|
var leafTime = temptime-leafStart;
|
|
activeTemplate.templateitems[templateItemIndex]['timing'] = leafTime;
|
|
//check if we're at the end
|
|
if(templateItemIndex==activeTemplate.templateitems.length-1) {
|
|
//reached the end, stop everything
|
|
console.log('got to the end...');
|
|
console.log('leaf '+activeTemplate.templateitems[templateItemIndex].templateitemname+' got: '+leafTime);
|
|
var currentMs = +new Date();
|
|
intervalMs = currentMs - startMs;
|
|
running = false;
|
|
templateItemIndex = -1;
|
|
stopRunningTimer = true;
|
|
} else {
|
|
//end the current leaf
|
|
console.log('leaf '+activeTemplate.templateitems[templateItemIndex].templateitemname+' got: '+leafTime);
|
|
//go to the next leaf
|
|
templateItemIndex++;
|
|
leafStart = temptime;
|
|
}
|
|
}
|
|
|
|
return stopRunningTimer;
|
|
}
|
|
}]);
|
|
|
|
|
|
|
|
appServices.service('TemplateBackendService', function($http) {
|
|
|
|
this.saveTemplate = function(templateName, templateItems) {
|
|
console.log('gonna save this');
|
|
console.log(templateName+' '+templateItems);
|
|
return $http.post('server/savetemplate.php', {templateName:templateName, templateItems:templateItems});
|
|
};
|
|
|
|
this.getTemplates = function() {
|
|
console.log('TemplateBackendService.getTemplates called');
|
|
return $http.post('server/gettemplates.php', {});
|
|
};
|
|
|
|
this.removeTemplate = function(template) {
|
|
var idtemplate = template.idtemplate;
|
|
// var templateid = template->{'$id'};
|
|
// console.log('going to remove: '+templateid);
|
|
return $http.post('server/removetemplate.php', {idtemplate:idtemplate});
|
|
};
|
|
|
|
/**
|
|
Templateid: dbid of the template. timings: assoc array with nodeid=>timing(ms)
|
|
*/
|
|
this.saveTiming = function(idtemplate, templateitems) {
|
|
console.log('saving timing...');
|
|
console.log(idtemplate);
|
|
console.log(templateitems);
|
|
return $http.post('server/savetiming.php', {idtemplate:idtemplate,templateitems:templateitems});
|
|
};
|
|
|
|
/**
|
|
Fetch an array with all the timings for the given templateid, sorted on insert date.
|
|
*/
|
|
this.getTimings = function(idtemplate) {
|
|
return $http.post('server/gettimings.php', {idtemplate:idtemplate});
|
|
}
|
|
|
|
this.removeTiming = function(idtimingrun) {
|
|
return $http.post('server/removetiming.php', {idtimingrun:idtimingrun});
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
appServices.service('TemplateCreationService', function() {
|
|
|
|
});
|
|
|
|
|
|
appServices.service('RegisterService', function($http) {
|
|
var url = "server/register.php";
|
|
//?email=emailtest&md5pass=passtest&username=usertest
|
|
|
|
this.register = function (username, email, md5pass) {
|
|
return $http.post(url, {
|
|
username:username,
|
|
md5pass:md5pass,
|
|
email:email
|
|
});
|
|
};
|
|
});
|
|
|
|
appServices.service('LoginService', function($http) {
|
|
var url = "server/login.php";
|
|
// var loggedIn = $cookieStore.get('loggedIn');
|
|
var email = null;
|
|
// console.log('cookiestore says loggedin is: '+loggedIn);
|
|
|
|
this.login = function (username, md5password) {
|
|
console.log('doing the login... '+username+' '+md5password);
|
|
return $http.post(url, {
|
|
md5password:md5password,
|
|
username:username
|
|
});
|
|
};
|
|
|
|
this.setLoggedInUsername = function(newusername) {
|
|
console.log('setting loggedin username: '+newusername);
|
|
$cookieStore.put('loggedInUsername', newusername);
|
|
};
|
|
|
|
this.getLoggedInUsername = function() {
|
|
return $cookieStore.get('loggedInUsername');
|
|
};
|
|
|
|
this.setLoggedIn = function(newValue) {
|
|
console.log('set logged in : '+newValue);
|
|
// loggedIn = newValue;
|
|
$cookieStore.put('loggedIn', newValue);
|
|
};
|
|
|
|
this.isLoggedIn = function() {
|
|
return false;
|
|
};
|
|
|
|
this.logout = function() {
|
|
return $http.post("server/logout.php");
|
|
};
|
|
});
|
|
|
|
appServices.service('NewsService', function($http,$upload) {
|
|
this.fetchNews = function() {
|
|
return $http.post("phpservices/news.php");
|
|
};
|
|
|
|
this.submitNews = function(newNewsTitle, newNewsBody) {
|
|
var newNews = {
|
|
title:newNewsTitle,
|
|
body:newNewsBody
|
|
};
|
|
console.log("submitnewsing service: "+newNews);
|
|
return $http.post("phpservices/addnews.php",newNews);
|
|
};
|
|
|
|
this.removeNewsItem = function(newsItem) {
|
|
var postObj = {
|
|
idnews:newsItem.idnews
|
|
};
|
|
$http.post("phpservices/removenews.php", postObj);
|
|
};
|
|
|
|
this.saveNewsItemText = function(newsItemImage) {
|
|
return $http.post("phpservices/savenewsimagetext.php", newsItemImage);
|
|
};
|
|
|
|
this.deleteNewsItemImage = function(newsItemImage) {
|
|
return $http.post("phpservices/removenewsitemimage.php", newsItemImage);
|
|
};
|
|
});
|