arnaucube
arnaucube/openworktimePublic Self-hosted repository
openworktime/desktopapp/controllers.js
desktopapp/controllers.jsRaw
 1
 2angular.module('workApp', [])
 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        };
21    }else{
22        $scope.newproject={
23            id: 0
24        };
25    }
26    //$scope.newproject.id=$scope.projects[$scope.projects.length-1].id+1;
27    $scope.addNewProject = function(){
28        $scope.newproject.totaltime="0";
29        $scope.projects.push($scope.newproject);
30        localStorage.setItem("w_l_projects", angular.toJson($scope.projects));
31        $scope.newproject={
32            id: $scope.projects[$scope.projects.length-1].id+1
33        };
34    };
35    $scope.editingIndex="";
36    $scope.editProject = function(index){
37        $scope.editingIndex=index;
38        $scope.editingProject=angular.copy($scope.projects[index]);
39    };
40    $scope.cancelEditProject = function(){
41        $scope.editingProject=false;
42    };
43    $scope.updateProject = function(){
44        $scope.projects[$scope.editingIndex]=angular.copy($scope.editingProject);
45        $scope.currentproject=angular.copy($scope.editingProject);
46        $scope.editingProject=false;
47    };
48    $scope.removeProject = function(index){
49        $scope.projects.splice(index, 1);
50        localStorage.setItem("w_l_projects", angular.toJson($scope.projects));
51    };
52    $scope.projectSelect = function(index){
53        $scope.btnStop();
54        $scope.currentproject=$scope.projects[index];
55    };
56    var interval;
57    $scope.currentStrike=0;
58    $scope.btnWork = function(){
59        $scope.editingProject=false;
60        $scope.working=true;
61        $scope.currentStrike=0;
62        interval = $interval(function(){
63            $scope.currentStrike++;
64            $scope.currentproject.totaltime++;
65        }, 1000);
66    };
67    $scope.btnStop = function(){
68        $interval.cancel(interval);
69        $scope.working=false;
70        localStorage.setItem("w_l_projects", angular.toJson($scope.projects));
71
72    }
73
74    $scope.openCode = function(){
75        toastr.info("Visiting code");
76        var urlCode="https://github.com/idoctnef/openworktime";
77        if(typeof process !== 'undefined'){
78            console.log(process.versions['electron']);
79            const {shell} = require('electron');
80
81            shell.openExternal(urlCode);
82        }else{
83            window.open(urlCode);
84        }
85    };
86
87  })
88
89  .filter('secondsToDateTime', [function() {
90    return function(seconds) {
91        return new Date(2016, 0, 1).setSeconds(seconds);
92    };
93}]);