Browse Source

refactor

modals-to-spa
stingl 4 years ago
parent
commit
6a8aabec58
  1. 36
      index.html
  2. 26
      js/app.js

36
index.html

@ -93,13 +93,13 @@
<div class="col-6"> <div class="col-6">
<button class="btn btn-secondary ticket-action-button" data-bs-dismiss="modal" <button class="btn btn-secondary ticket-action-button" data-bs-dismiss="modal"
@click="archiveTicket(ticketIndex)" title="Archivieren"> @click="archiveTracker(ticketIndex)" title="Archivieren">
<i class="fas fa-archive"></i> <i class="fas fa-archive"></i>
</button> </button>
</div> </div>
<div class="col-6"> <div class="col-6">
<button class="btn btn-danger ticket-action-button" <button class="btn btn-danger ticket-action-button"
@click="deleteTicket(ticketIndex)" title="Löschen"> @click="deleteTracker(ticketIndex)" title="Löschen">
<i class="fas fa-trash"></i> <i class="fas fa-trash"></i>
</button> </button>
</div> </div>
@ -180,7 +180,7 @@
<div class="col-md-12"> <div class="col-md-12">
<button class="btn btn-danger ticket-action-button" <button class="btn btn-danger ticket-action-button"
@click="deleteTicket(ticketIndex)" title="Löschen"> @click="deleteTracker(ticketIndex)" title="Löschen">
<i class="fas fa-trash"></i> <i class="fas fa-trash"></i>
</button> </button>
</div> </div>
@ -255,7 +255,7 @@
<div class="col-md-12"> <div class="col-md-12">
<button class="btn btn-secondary ticket-action-button" data-bs-dismiss="modal" <button class="btn btn-secondary ticket-action-button" data-bs-dismiss="modal"
@click="archiveTicket(ticketIndex)" title="Archivieren"> @click="archiveTracker(ticketIndex)" title="Archivieren">
<i class="fas fa-archive"></i> <i class="fas fa-archive"></i>
</button> </button>
</div> </div>
@ -320,7 +320,7 @@
<div class="col-md-12"> <div class="col-md-12">
<button class="btn btn-secondary ticket-action-button" data-bs-dismiss="modal" <button class="btn btn-secondary ticket-action-button" data-bs-dismiss="modal"
@click="archiveTicket(ticketIndex)" title="Archivieren"> @click="archiveTracker(ticketIndex)" title="Archivieren">
<i class="fas fa-archive"></i> <i class="fas fa-archive"></i>
</button> </button>
</div> </div>
@ -394,19 +394,19 @@
</template> </template>
<div class="col"> <div class="col">
<button class="btn btn-secondary ticket-action-button" data-bs-dismiss="modal" <button class="btn btn-secondary ticket-action-button" data-bs-dismiss="modal"
@click="archiveTicket(ticketIndex)" title="Archivieren"> @click="archiveTracker(ticketIndex)" title="Archivieren">
<i class="fas fa-archive"></i> <i class="fas fa-archive"></i>
</button> </button>
</div> </div>
<div class="col" v-if="ticket.history.length > 0"> <div class="col" v-if="ticket.history.length > 0">
<button class="btn btn-info ticket-action-button" data-bs-dismiss="modal" <button class="btn btn-info ticket-action-button" data-bs-dismiss="modal"
@click="showHistoryForTicket(ticket)" title="History"> @click="showHistoryForTracker(ticket)" title="History">
<i class="fas fa-history"></i> <i class="fas fa-history"></i>
</button> </button>
</div> </div>
<div class="col"> <div class="col">
<button class="btn btn-danger ticket-action-button" <button class="btn btn-danger ticket-action-button"
@click="deleteTicket(ticketIndex)" title="Löschen"> @click="deleteTracker(ticketIndex)" title="Löschen">
<i class="fas fa-trash"></i> <i class="fas fa-trash"></i>
</button> </button>
</div> </div>
@ -458,7 +458,7 @@
<span class="">Heute: </span> <span class="">Heute: </span>
<br> <br>
<div class="col-md-12 row"> <div class="row">
<div class="col"> <div class="col">
<button class="btn btn-success ticket-action-button" data-bs-dismiss="modal" <button class="btn btn-success ticket-action-button" data-bs-dismiss="modal"
@click="reactivateTicket(ticketIndex)" title="Reaktivieren"> @click="reactivateTicket(ticketIndex)" title="Reaktivieren">
@ -467,13 +467,13 @@
</div> </div>
<div class="col" v-if="ticket.history.length > 0"> <div class="col" v-if="ticket.history.length > 0">
<button class="btn btn-info ticket-action-button" data-bs-dismiss="modal" <button class="btn btn-info ticket-action-button" data-bs-dismiss="modal"
@click="showHistoryForTicket(ticket)" title="History"> @click="showHistoryForTracker(ticket)" title="History">
<i class="fas fa-history"></i> <i class="fas fa-history"></i>
</button> </button>
</div> </div>
<div class="col"> <div class="col">
<button class="btn btn-danger ticket-action-button" <button class="btn btn-danger ticket-action-button"
@click="deleteTicket(ticketIndex, true)" title="Löschen"> @click="deleteTracker(ticketIndex, true)" title="Löschen">
<i class="fas fa-trash"></i> <i class="fas fa-trash"></i>
</button> </button>
</div> </div>
@ -596,16 +596,16 @@
<!-- History Modal --> <!-- History Modal -->
<div class="modal fade" id="historyModal" tabindex="-1" role="dialog" aria-labelledby="historyModalLabel" <div class="modal fade" id="historyModal" tabindex="-1" role="dialog" aria-labelledby="historyModalLabel"
aria-hidden="true" v-if="selectedTicket"> aria-hidden="true" v-if="selectedTracker">
<div class="modal-dialog" role="document"> <div class="modal-dialog" role="document">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<h5 class="modal-title"><i class="fas fa-history"></i> History von {{ selectedTicket.number }}</h5> <h5 class="modal-title"><i class="fas fa-history"></i> History von {{ selectedTracker.number }}</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<ul class="list-group ticket-history"> <ul class="list-group ticket-history">
<template v-for="(tracker, historyIndex) in selectedTicket.history"> <template v-for="(tracker, historyIndex) in selectedTracker.history">
<li class="list-group-item" v-if="!tracker.manually"> <li class="list-group-item" v-if="!tracker.manually">
<div> <div>
<div class="float-end" :title="exactTimestamp(tracker.trackingStarted)"> <div class="float-end" :title="exactTimestamp(tracker.trackingStarted)">
@ -631,7 +631,7 @@
<br/> <br/>
</li> </li>
</template> </template>
<template v-for="(tracker, historyIndex) in selectedTicket.history"> <template v-for="(tracker, historyIndex) in selectedTracker.history">
<li class="list-group-item bg-light" <li class="list-group-item bg-light"
v-if="tracker.manually"> v-if="tracker.manually">
<div> <div>
@ -660,11 +660,11 @@
<!-- Custom Booking Modal --> <!-- Custom Booking Modal -->
<div class="modal fade" id="customBookingModal" tabindex="-1" role="dialog" aria-labelledby="customBookingModalLabel" <div class="modal fade" id="customBookingModal" tabindex="-1" role="dialog" aria-labelledby="customBookingModalLabel"
aria-hidden="true" v-if="selectedTicket"> aria-hidden="true" v-if="selectedTracker">
<div class="modal-dialog" role="document"> <div class="modal-dialog" role="document">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<h5 class="modal-title"><i class="fas fa-user-edit"></i> Buchung für {{selectedTicket.number}}</h5> <h5 class="modal-title"><i class="fas fa-user-edit"></i> Buchung für {{selectedTracker.number}}</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
@ -769,7 +769,7 @@
<i class="fas fa-plus"></i> <i class="fas fa-plus"></i>
</button> </button>
<ul class="dropdown-menu" aria-labelledby="create-dropdown-menu"> <ul class="dropdown-menu" aria-labelledby="create-dropdown-menu">
<li><button class="btn btn-light dropdown-menu-button" type="button" @click="addTrackedTicket()">Tracker</button></li> <li><button class="btn btn-light dropdown-menu-button" type="button" @click="createTracker()">Tracker</button></li>
<li><button class="btn btn-light dropdown-menu-button" type="button" @click="addTimeBox()">Timebox</button></li> <li><button class="btn btn-light dropdown-menu-button" type="button" @click="addTimeBox()">Timebox</button></li>
</ul> </ul>
</div> </div>

26
js/app.js

@ -151,7 +151,7 @@ const TimeTrack = {
resetToDefault() { resetToDefault() {
this.updateStorage(); this.updateStorage();
}, },
addTrackedTicket() { createTracker() {
this.tickets.push({ this.tickets.push({
tracking: false, tracking: false,
number: '#', number: '#',
@ -162,7 +162,7 @@ const TimeTrack = {
this.updateStorage(); this.updateStorage();
}, },
addTimeBox() { createTimeBox() {
this.tickets.push({ this.tickets.push({
tracking: false, tracking: false,
number: 'Timebox ', number: 'Timebox ',
@ -180,7 +180,7 @@ const TimeTrack = {
}, },
startTracking(ticket, individual = false, timeBoxMinutes = null) { startTracking(ticket, individual = false, timeBoxMinutes = null) {
if (!individual) { if (!individual) {
this.stopTrackingTicket(); this.stopActiveTracker();
} }
if (timeBoxMinutes) { if (timeBoxMinutes) {
@ -319,7 +319,7 @@ const TimeTrack = {
return time + postFix + plural; return time + postFix + plural;
}, },
stopTrackingTicket() { stopActiveTracker() {
let vue = this; let vue = this;
vue.tickets.forEach(function (ticket) { vue.tickets.forEach(function (ticket) {
@ -334,15 +334,15 @@ const TimeTrack = {
isTicketNumber(number) { isTicketNumber(number) {
return number.indexOf('#') >= 0; return number.indexOf('#') >= 0;
}, },
deleteTicket(index, archive = false) { deleteTracker(index, archive = false) {
let message = ''; let message = '';
if (archive) { if (archive) {
let name = this.archive[index].number; let name = this.archive[index].number;
message = 'Ticket "' + name + '" wurde gelöscht'; message = 'Tracker "' + name + '" wurde gelöscht';
this.archive.splice(index, 1); this.archive.splice(index, 1);
} else { } else {
let name = this.tickets[index].number; let name = this.tickets[index].number;
message = 'Ticket "' + name + '" wurde gelöscht'; message = 'Tracker "' + name + '" wurde gelöscht';
this.tickets.splice(index, 1); this.tickets.splice(index, 1);
} }
@ -353,9 +353,9 @@ const TimeTrack = {
this.updateStorage(); this.updateStorage();
}, },
archiveTicket(index) { archiveTracker(index) {
if (this.tickets[index].tracking) { if (this.tickets[index].tracking) {
this.stopTrackingTicket(); this.stopActiveTracker();
} }
this.archive.push(this.tickets[index]); this.archive.push(this.tickets[index]);
@ -371,7 +371,7 @@ const TimeTrack = {
if (ticketIndex) { if (ticketIndex) {
this.tickets[ticketIndex].history.splice(historyIndex, 1); this.tickets[ticketIndex].history.splice(historyIndex, 1);
} else { } else {
this.selectedTicket.history.splice(historyIndex, 1); this.selectedTracker.history.splice(historyIndex, 1);
} }
this.updateStorage(); this.updateStorage();
}, },
@ -441,8 +441,8 @@ const TimeTrack = {
console.log(error); console.log(error);
}); });
}, },
showHistoryForTicket(ticket) { showHistoryForTracker(ticket) {
this.selectedTicket = ticket; this.selectedTracker = ticket;
this.$forceUpdate(); this.$forceUpdate();
setTimeout(() => { setTimeout(() => {
let historyModal = new bootstrap.Modal(document.getElementById('historyModal')); let historyModal = new bootstrap.Modal(document.getElementById('historyModal'));
@ -467,7 +467,7 @@ const TimeTrack = {
color: 'green' color: 'green'
}); });
this.bookTimeManually(this.selectedTicket, this.customBookingValue); this.bookTimeManually(this.selectedTracker, this.customBookingValue);
}, },
getPortalLink (test = false) { getPortalLink (test = false) {
let finalPortalName = this.portal.replaceAll('_', '-'); let finalPortalName = this.portal.replaceAll('_', '-');