From ef8f2b1e171d0857f33b5c5f7b9cb0c9d8aad4cb Mon Sep 17 00:00:00 2001 From: stingl Date: Thu, 2 Sep 2021 18:51:43 +0200 Subject: [PATCH] WIP worktime --- index.html | 9 +++++++++ js/app.js | 46 +++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 50 insertions(+), 5 deletions(-) diff --git a/index.html b/index.html index c3e8dc4..1ad19b5 100644 --- a/index.html +++ b/index.html @@ -19,6 +19,15 @@ diff --git a/js/app.js b/js/app.js index fd9f096..2e2de7a 100644 --- a/js/app.js +++ b/js/app.js @@ -12,6 +12,13 @@ const TimeTrack = { }, tickets: [], archive: [], + worktimeTracker: { + tracking: false, + number: 'Worktime', + trackingStarted: null, + trackingStopped: null, + history: [] + }, selectedTicket: null, searchQuery: '', portal: '', @@ -115,8 +122,11 @@ const TimeTrack = { this.tickets.push(newTicket); this.updateStorage(); }, - startTracking(ticket) { - this.stopTrackingTicket(); + startTracking(ticket, individual = false) { + if (!individual) { + this.stopTrackingTicket(); + } + ticket.trackingStarted = moment(); ticket.tracking = true; @@ -137,13 +147,18 @@ const TimeTrack = { ticket.trackingStopped.diff(ticket.trackingStarted) ).as('minutes'); - - ticket.history.push({ + let historyEntry = { trackingStarted: ticket.trackingStarted, trackingStopped: ticket.trackingStopped, manually: false, minutes: Math.round(minutesSpent) - }); + }; + + if (ticket.paused) { + historyEntry.pause = true; + } + + ticket.history.push(); ticket.trackingStarted = null; ticket.trackingStopped = null; @@ -151,6 +166,27 @@ const TimeTrack = { this.$forceUpdate(); this.updateStorage(); }, + pauseTracking(ticket) { + ticket.trackingStopped = moment(); + ticket.tracking = false; + ticket.paused = true; + + this.stopTracking(ticket); + }, + resumeTracking(ticket) { + ticket.trackingStarted = moment(); + ticket.tracking = true; + ticket.paused = false; + + let noNoTickets = ['#1920', '#3110', '#2492', '#2419', '#1256']; + + if (this.fun && noNoTickets.includes(ticket.number)) { + playSound(oneOf(this.sounds.bad)) + } + + this.$forceUpdate(); + this.updateStorage(); + }, formattedDate(date) { return moment(date).format('llll'); },