openworktime/webapp/controllers.js
webapp/controllers.jsRaw
1
2angular.module('workApp', ['chart.js'])
3 .controller('workController', function(
4 $scope,
5 $interval
6 ) {
7 $scope.username="user";
8 //localStorage.clear();
9 $scope.working=false;
10 $scope.projects=[];
11 $scope.currentproject={};
12 if(localStorage.getItem("w_l_projects"))
13 {
14 $scope.projects=JSON.parse(localStorage.getItem("w_l_projects")); //w_local_
15 }
16 if($scope.projects.length>0)
17 {
18 $scope.newproject={
19 id: $scope.projects[$scope.projects.length-1].id+1,
20 chart: {
21 labels: [],
22 series: ['Working time'],
23 data: []
24 }
25 };
26 }else{
27 $scope.newproject={
28 id: 0,
29 chart: {
30 labels: [],
31 series: ['Working time'],
32 data: []
33 }
34 };
35 }
36 //$scope.newproject.id=$scope.projects[$scope.projects.length-1].id+1;
37 $scope.addNewProject = function(){
38 $scope.newproject.totaltime="0";
39 $scope.projects.push($scope.newproject);
40 localStorage.setItem("w_l_projects", angular.toJson($scope.projects));
41 $scope.newproject={
42 id: $scope.projects[$scope.projects.length-1].id+1,
43 chart: {
44 labels: [],
45 series: ['Working time'],
46 data: []
47 }
48 };
49 };
50 $scope.editingIndex="";
51 $scope.editProject = function(index){
52 $scope.editingIndex=index;
53 $scope.editingProject=angular.copy($scope.projects[index]);
54 };
55 $scope.cancelEditProject = function(){
56 $scope.editingProject=false;
57 };
58 $scope.updateProject = function(){
59 $scope.projects[$scope.editingIndex]=angular.copy($scope.editingProject);
60 $scope.currentproject=angular.copy($scope.editingProject);
61 $scope.editingProject=false;
62 };
63 $scope.removeProject = function(index){
64 $scope.projects.splice(index, 1);
65 localStorage.setItem("w_l_projects", angular.toJson($scope.projects));
66 $scope.projectSelect(0);
67 };
68 $scope.projectSelect = function(index){
69 $scope.btnStop();
70 $scope.currentproject=$scope.projects[index];
71 };
72 var interval;
73 $scope.currentStrike=0;
74 $scope.btnWork = function(){
75 $scope.editingProject=false;
76 $scope.working=true;
77 $scope.currentStrike=0;
78 interval = $interval(function(){
79 $scope.currentStrike++;
80 $scope.currentproject.totaltime++;
81 }, 1000);
82 };
83 $scope.btnStop = function(){
84 $interval.cancel(interval);
85 if($scope.working==true)
86 {
87 $scope.working=false;
88 $scope.currentproject.chart.labels.push("work strike " + $scope.currentproject.chart.labels.length);
89 $scope.currentproject.chart.data.push($scope.currentStrike);
90
91 localStorage.setItem("w_l_projects", angular.toJson($scope.projects));
92 }
93
94
95 }
96
97 $scope.openCode = function(){
98 toastr.info("Visiting code");
99 var urlCode="https://github.com/idoctnef/openworktime";
100 if(typeof process !== 'undefined'){
101 console.log(process.versions['electron']);
102 const {shell} = require('electron');
103
104 shell.openExternal(urlCode);
105 }else{
106 window.open(urlCode);
107 }
108 };
109
110 //chart
111 /*$scope.chart={
112 labels: ['A', 'B', 'C', 'D', 'E', 'F', 'G'],
113 series: ['Working time', 'Series B'],
114 data: [
115 [65, 59, 80, 81, 56, 55, 40],
116 [28, 48, 40, 19, 86, 27, 90]
117 ]
118 };*/
119
120 })
121
122 .filter('secondsToDateTime', [function() {
123 return function(seconds) {
124 return new Date(2016, 0, 1).setSeconds(seconds);
125 };
126}]);