11const Vue = require ( 'vue/dist/vue' ) ;
22const _ = require ( 'lodash' ) ;
3+ const moment = require ( 'moment' ) ;
4+ const { powerSaveBlocker} = require ( 'electron' ) ;
35
46Vue . filter ( 'pad' , require ( './filters/pad' ) ) ;
57Vue . filter ( 'seconds' , require ( './filters/seconds' ) ) ;
@@ -15,7 +17,7 @@ new Vue({
1517
1618 computed : {
1719 orderedTasks ( ) {
18- return _ . orderBy ( this . tasks , 'id ', 'desc' ) ;
20+ return _ . orderBy ( this . tasks , [ 'completed ', 'timer.active' ] , [ 'asc' , ' desc'] ) ;
1921 }
2022 } ,
2123
@@ -44,6 +46,7 @@ new Vue({
4446 id : ( this . tasks . length + 1 ) ,
4547 name : this . taskName ,
4648 completed : false ,
49+ created_at : moment ( ) . format ( this . dateFormat ) ,
4750
4851 timer : {
4952 seconds : 0 ,
@@ -53,6 +56,29 @@ new Vue({
5356 } ) ;
5457
5558 this . taskName = '' ;
56- }
59+ } ,
60+
61+ /**
62+ * Enable power save blocker if it is not already enabled
63+ */
64+ handleTimerStarted ( ) {
65+ if ( this . powerSaveBlockerId === null ) {
66+ this . powerSaveBlockerId = powerSaveBlocker . start ( 'prevent-app-suspension' ) ;
67+ }
68+ } ,
69+
70+ handleTimerStopped ( ) {
71+ // Do we have any running tasks?
72+ let activeTasks = this . tasks . filter ( function ( task ) {
73+ return task . timer . active === true ;
74+ } ) ;
75+
76+ // If we do not have any active tasks, enable power save
77+ if ( activeTasks . length === 0 ) {
78+ powerSaveBlocker . stop ( this . powerSaveBlockerId ) ;
79+
80+ this . powerSaveBlockerId = null ;
81+ }
82+ } ,
5783 }
5884} ) ;
0 commit comments