You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

126 lines
3.7 KiB

angular.module('workApp', ['chart.js'])
.controller('workController', function(
$scope,
$interval
) {
$scope.username="user";
//localStorage.clear();
$scope.working=false;
$scope.projects=[];
$scope.currentproject={};
if(localStorage.getItem("w_l_projects"))
{
$scope.projects=JSON.parse(localStorage.getItem("w_l_projects")); //w_local_
}
if($scope.projects.length>0)
{
$scope.newproject={
id: $scope.projects[$scope.projects.length-1].id+1,
chart: {
labels: [],
series: ['Working time'],
data: []
}
};
}else{
$scope.newproject={
id: 0,
chart: {
labels: [],
series: ['Working time'],
data: []
}
};
}
//$scope.newproject.id=$scope.projects[$scope.projects.length-1].id+1;
$scope.addNewProject = function(){
$scope.newproject.totaltime="0";
$scope.projects.push($scope.newproject);
localStorage.setItem("w_l_projects", angular.toJson($scope.projects));
$scope.newproject={
id: $scope.projects[$scope.projects.length-1].id+1,
chart: {
labels: [],
series: ['Working time'],
data: []
}
};
};
$scope.editingIndex="";
$scope.editProject = function(index){
$scope.editingIndex=index;
$scope.editingProject=angular.copy($scope.projects[index]);
};
$scope.cancelEditProject = function(){
$scope.editingProject=false;
};
$scope.updateProject = function(){
$scope.projects[$scope.editingIndex]=angular.copy($scope.editingProject);
$scope.currentproject=angular.copy($scope.editingProject);
$scope.editingProject=false;
};
$scope.removeProject = function(index){
$scope.projects.splice(index, 1);
localStorage.setItem("w_l_projects", angular.toJson($scope.projects));
$scope.projectSelect(0);
};
$scope.projectSelect = function(index){
$scope.btnStop();
$scope.currentproject=$scope.projects[index];
};
var interval;
$scope.currentStrike=0;
$scope.btnWork = function(){
$scope.editingProject=false;
$scope.working=true;
$scope.currentStrike=0;
interval = $interval(function(){
$scope.currentStrike++;
$scope.currentproject.totaltime++;
}, 1000);
};
$scope.btnStop = function(){
$interval.cancel(interval);
if($scope.working==true)
{
$scope.working=false;
$scope.currentproject.chart.labels.push("work strike " + $scope.currentproject.chart.labels.length);
$scope.currentproject.chart.data.push($scope.currentStrike);
localStorage.setItem("w_l_projects", angular.toJson($scope.projects));
}
}
$scope.openCode = function(){
toastr.info("Visiting code");
var urlCode="https://github.com/idoctnef/openworktime";
if(typeof process !== 'undefined'){
console.log(process.versions['electron']);
const {shell} = require('electron');
shell.openExternal(urlCode);
}else{
window.open(urlCode);
}
};
//chart
/*$scope.chart={
labels: ['A', 'B', 'C', 'D', 'E', 'F', 'G'],
series: ['Working time', 'Series B'],
data: [
[65, 59, 80, 81, 56, 55, 40],
[28, 48, 40, 19, 86, 27, 90]
]
};*/
})
.filter('secondsToDateTime', [function() {
return function(seconds) {
return new Date(2016, 0, 1).setSeconds(seconds);
};
}]);