|
|
|
@ -1,68 +1,64 @@
@@ -1,68 +1,64 @@
|
|
|
|
|
<template> |
|
|
|
|
<div class="modal fade" id="historyModal" tabindex="-1" role="dialog" aria-labelledby="historyModalLabel" |
|
|
|
|
<div class="offcanvas offcanvas-end" id="historyCancas" tabindex="-1" role="dialog" |
|
|
|
|
aria-labelledby="historyCancasLabel" |
|
|
|
|
aria-hidden="true" v-if="$store.state.selectedTracker"> |
|
|
|
|
<div class="modal-dialog" role="document"> |
|
|
|
|
<div class="modal-content"> |
|
|
|
|
<div class="modal-header"> |
|
|
|
|
<h5><i class="fas fa-history"></i> History von |
|
|
|
|
{{ $store.state.selectedTracker.number }}</h5> |
|
|
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> |
|
|
|
|
</div> |
|
|
|
|
<div class="modal-body"> |
|
|
|
|
<ul class="list-group tracker-history"> |
|
|
|
|
<template v-for="(tracker, historyIndex) in $store.state.selectedTracker.history" |
|
|
|
|
v-bind:key="historyIndex"> |
|
|
|
|
<li class="list-group-item" v-if="!tracker.manually"> |
|
|
|
|
<div> |
|
|
|
|
<div class="float-end" :title="exactTimestamp(tracker.trackingStarted)"> |
|
|
|
|
{{ formattedDate(tracker.trackingStarted) }} |
|
|
|
|
</div> |
|
|
|
|
Start: |
|
|
|
|
</div> |
|
|
|
|
<div> |
|
|
|
|
<div class="float-end" :title="exactTimestamp(tracker.trackingStopped)"> |
|
|
|
|
{{ formattedDate(tracker.trackingStopped) }} |
|
|
|
|
</div> |
|
|
|
|
Ende: |
|
|
|
|
</div> |
|
|
|
|
<div> |
|
|
|
|
<div class="float-end"> |
|
|
|
|
{{ timeWithPostFix(tracker.minutes) }} |
|
|
|
|
</div> |
|
|
|
|
Zeit: |
|
|
|
|
</div> |
|
|
|
|
<a href="javascript:" @click="deleteHistoryEntry(null, historyIndex)" class="float-end"> |
|
|
|
|
<i class="fas fa-trash"></i> |
|
|
|
|
</a> |
|
|
|
|
<br/> |
|
|
|
|
</li> |
|
|
|
|
</template> |
|
|
|
|
<template v-for="(tracker, historyIndex) in $store.state.selectedTracker.history" |
|
|
|
|
v-bind:key="historyIndex"> |
|
|
|
|
<li class="list-group-item bg-light" |
|
|
|
|
v-if="tracker.manually"> |
|
|
|
|
<div> |
|
|
|
|
<div class="float-end" :title="exactTimestamp(tracker.trackingStarted)"> |
|
|
|
|
{{ formattedDate(tracker.trackingStarted) }} |
|
|
|
|
</div> |
|
|
|
|
Manuell erfasst am: |
|
|
|
|
</div> |
|
|
|
|
<div> |
|
|
|
|
<div class="float-end"> |
|
|
|
|
{{ timeWithPostFix(tracker.minutes) }} |
|
|
|
|
</div> |
|
|
|
|
Zeit: |
|
|
|
|
</div> |
|
|
|
|
<a href="javascript:" @click="deleteHistoryEntry(trackerIndex, historyIndex)" |
|
|
|
|
class="float-end"> |
|
|
|
|
<i class="fas fa-trash"></i> |
|
|
|
|
</a> |
|
|
|
|
<br/> |
|
|
|
|
</li> |
|
|
|
|
</template> |
|
|
|
|
</ul> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<div class="offcanvas-header"> |
|
|
|
|
<h5><i class="fas fa-history"></i> History von |
|
|
|
|
{{ $store.state.selectedTracker.number }}</h5> |
|
|
|
|
</div> |
|
|
|
|
<div class="offcanvas-body"> |
|
|
|
|
<ul class="list-group tracker-history"> |
|
|
|
|
<template v-for="(tracker, historyIndex) in $store.state.selectedTracker.history" |
|
|
|
|
v-bind:key="historyIndex"> |
|
|
|
|
<li class="list-group-item" v-if="!tracker.manually"> |
|
|
|
|
<div> |
|
|
|
|
<div class="float-end" :title="exactTimestamp(tracker.trackingStarted)"> |
|
|
|
|
{{ formattedDate(tracker.trackingStarted) }} |
|
|
|
|
</div> |
|
|
|
|
Start: |
|
|
|
|
</div> |
|
|
|
|
<div> |
|
|
|
|
<div class="float-end" :title="exactTimestamp(tracker.trackingStopped)"> |
|
|
|
|
{{ formattedDate(tracker.trackingStopped) }} |
|
|
|
|
</div> |
|
|
|
|
Ende: |
|
|
|
|
</div> |
|
|
|
|
<div> |
|
|
|
|
<div class="float-end"> |
|
|
|
|
{{ timeWithPostFix(tracker.minutes) }} |
|
|
|
|
</div> |
|
|
|
|
Zeit: |
|
|
|
|
</div> |
|
|
|
|
<a href="javascript:" @click="deleteHistoryEntry(null, historyIndex)" class="float-end"> |
|
|
|
|
<i class="fas fa-trash"></i> |
|
|
|
|
</a> |
|
|
|
|
<br/> |
|
|
|
|
</li> |
|
|
|
|
</template> |
|
|
|
|
<template v-for="(tracker, historyIndex) in $store.state.selectedTracker.history" |
|
|
|
|
v-bind:key="historyIndex"> |
|
|
|
|
<li class="list-group-item bg-light" |
|
|
|
|
v-if="tracker.manually"> |
|
|
|
|
<div> |
|
|
|
|
<div class="float-end" :title="exactTimestamp(tracker.trackingStarted)"> |
|
|
|
|
{{ formattedDate(tracker.trackingStarted) }} |
|
|
|
|
</div> |
|
|
|
|
Manuell erfasst am: |
|
|
|
|
</div> |
|
|
|
|
<div> |
|
|
|
|
<div class="float-end"> |
|
|
|
|
{{ timeWithPostFix(tracker.minutes) }} |
|
|
|
|
</div> |
|
|
|
|
Zeit: |
|
|
|
|
</div> |
|
|
|
|
<a href="javascript:" @click="deleteHistoryEntry(trackerIndex, historyIndex)" |
|
|
|
|
class="float-end"> |
|
|
|
|
<i class="fas fa-trash"></i> |
|
|
|
|
</a> |
|
|
|
|
<br/> |
|
|
|
|
</li> |
|
|
|
|
</template> |
|
|
|
|
</ul> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
@ -78,10 +74,11 @@ export default {
@@ -78,10 +74,11 @@ export default {
|
|
|
|
|
}, |
|
|
|
|
deleteHistoryEntry(trackerIndex, historyIndex) { |
|
|
|
|
if (trackerIndex) { |
|
|
|
|
this.trackers[trackerIndex].history.splice(historyIndex, 1); |
|
|
|
|
this.$store.state.trackers[trackerIndex].history.splice(historyIndex, 1); |
|
|
|
|
} else { |
|
|
|
|
this.selectedTracker.history.splice(historyIndex, 1); |
|
|
|
|
this.$store.state.selectedTracker.history.splice(historyIndex, 1); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
this.$store.commit('saveTrackers'); |
|
|
|
|
}, |
|
|
|
|
formattedDate(date) { |
|
|
|
@ -90,7 +87,7 @@ export default {
@@ -90,7 +87,7 @@ export default {
|
|
|
|
|
timeWithPostFix(time) { |
|
|
|
|
let postFix = ' Minute'; |
|
|
|
|
|
|
|
|
|
if (time >= 480 && this.showPT) { |
|
|
|
|
if (time >= 480 && this.$store.state.settings.showPT) { |
|
|
|
|
postFix = ' PT'; |
|
|
|
|
time = (time / 480).toFixed(1); |
|
|
|
|
} else if (time >= 60 || this.$store.state.settings.dontShowMinutes) { |
|
|
|
|