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');
},