|
|
|
@ -22,63 +22,63 @@
@@ -22,63 +22,63 @@
|
|
|
|
|
<div class="row"> |
|
|
|
|
<div class="col-md-12"> |
|
|
|
|
<div class="row"> |
|
|
|
|
<div class=" col-lg-4 col-md-6" |
|
|
|
|
v-for="(ticket, ticketIndex) in trackedTickets" |
|
|
|
|
v-if="!ticket.archived"> |
|
|
|
|
<div class="card bg-gradient-secondary"> |
|
|
|
|
<div class="card-body"> |
|
|
|
|
<div class="card-text"> |
|
|
|
|
<input type="text" |
|
|
|
|
v-model="ticket.number" |
|
|
|
|
class="form-control trackingNameField" |
|
|
|
|
@keydown="updateStorage()"/> |
|
|
|
|
<template v-for="ticket in tickets"> |
|
|
|
|
<div class="col-lg-4 col-md-6"> |
|
|
|
|
<div class="card bg-gradient-secondary"> |
|
|
|
|
<div class="card-body"> |
|
|
|
|
<div class="card-text"> |
|
|
|
|
<input type="text" |
|
|
|
|
v-model="ticket.number" |
|
|
|
|
class="form-control trackingNameField" |
|
|
|
|
@keydown="updateStorage()"/> |
|
|
|
|
|
|
|
|
|
<div class="ticket-time-info"> |
|
|
|
|
<div v-if="ticket.tracking === true"> |
|
|
|
|
<div class="text-danger font-weight-bolder float-end"> |
|
|
|
|
<div class="spinner-grow spinner-grow-sm" role="status"> |
|
|
|
|
<span class="sr-only">Tracking...</span> |
|
|
|
|
<div class="ticket-time-info"> |
|
|
|
|
<div v-if="ticket.tracking === true"> |
|
|
|
|
<div class="text-danger font-weight-bolder float-end"> |
|
|
|
|
<div class="spinner-grow spinner-grow-sm" role="status"> |
|
|
|
|
<span class="sr-only">Tracking...</span> |
|
|
|
|
</div> |
|
|
|
|
Tracking |
|
|
|
|
</div> |
|
|
|
|
Tracking |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<div v-if="ticket.tracking === true" class="ticket-time-info"> |
|
|
|
|
<span class="float-end">{{ getTrackingStartTime(ticket) }}</span> |
|
|
|
|
<span v-if="ticket.tracking === true">Gestartet: </span> |
|
|
|
|
<br/> |
|
|
|
|
<span class="float-end">{{ currentTrackingRunningFor(ticket) }}</span> |
|
|
|
|
<span v-if="ticket.tracking === true">Läuft seit: </span> |
|
|
|
|
</div> |
|
|
|
|
<div v-if="ticket.tracking === true" class="ticket-time-info"> |
|
|
|
|
<span class="float-end">{{ getTrackingStartTime(ticket) }}</span> |
|
|
|
|
<span v-if="ticket.tracking === true">Gestartet: </span> |
|
|
|
|
<br/> |
|
|
|
|
<span class="float-end">{{ currentTrackingRunningFor(ticket) }}</span> |
|
|
|
|
<span v-if="ticket.tracking === true">Läuft seit: </span> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<div class="ticket-time-info"> |
|
|
|
|
<span class="float-end">{{ getTotalTime(ticket) }}</span> |
|
|
|
|
<span class="current-ticket-info">Gesamt: </span> |
|
|
|
|
</div> |
|
|
|
|
<div class="ticket-time-info"> |
|
|
|
|
<span class="float-end">{{ getTotalTime(ticket) }}</span> |
|
|
|
|
<span class="current-ticket-info">Gesamt: </span> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<span class="float-end">{{ getTotalTimeToday(ticket) }}</span> |
|
|
|
|
<span class="">Heute: </span> |
|
|
|
|
<span class="float-end">{{ getTotalTimeToday(ticket) }}</span> |
|
|
|
|
<span class="">Heute: </span> |
|
|
|
|
|
|
|
|
|
<div class="row"> |
|
|
|
|
<div class="col-md-12" v-if="ticket.tracking == false"> |
|
|
|
|
<button type="button" class="btn btn-info ticket-action-button" |
|
|
|
|
@click="startTracking(ticket)"> |
|
|
|
|
<i class="far fa-play-circle"></i> |
|
|
|
|
</button> |
|
|
|
|
</div> |
|
|
|
|
<div class="row"> |
|
|
|
|
<div class="col-md-12" v-if="!ticket.tracking"> |
|
|
|
|
<button type="button" class="btn btn-info ticket-action-button" |
|
|
|
|
@click="startTracking(ticket)"> |
|
|
|
|
<i class="far fa-play-circle"></i> |
|
|
|
|
</button> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<div class="col-md-12" v-else> |
|
|
|
|
<button type="button" class="btn btn-danger ticket-action-button" |
|
|
|
|
@click="stopTracking(ticket)"> |
|
|
|
|
<i class="far fa-stop-circle"></i> |
|
|
|
|
</button> |
|
|
|
|
<div class="col-md-12" v-else> |
|
|
|
|
<button type="button" class="btn btn-danger ticket-action-button" |
|
|
|
|
@click="stopTracking(ticket)"> |
|
|
|
|
<i class="far fa-stop-circle"></i> |
|
|
|
|
</button> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
@ -87,13 +87,13 @@
@@ -87,13 +87,13 @@
|
|
|
|
|
<i class="fas fa-plus"></i> |
|
|
|
|
</a> |
|
|
|
|
|
|
|
|
|
<a type="button" :class="'btn btn-primary side-button-right text-light ' + (archivedTrackers > 0 ? 'third-button' : 'second-button')" data-toggle="modal" |
|
|
|
|
data-target="#showTrackedTicketsModal" v-if="activeTrackers > 0"> |
|
|
|
|
<a type="button" :class="'btn btn-primary side-button-right text-light ' + (archive.length > 0 ? 'third-button' : 'second-button')" data-toggle="modal" |
|
|
|
|
data-target="#showTicketsModal" v-if="tickets.length > 0"> |
|
|
|
|
<i class="fas fa-user-clock"></i> |
|
|
|
|
</a> |
|
|
|
|
|
|
|
|
|
<a type="button" :class="'btn btn-secondary side-button-right text-dark second-button'" data-toggle="modal" |
|
|
|
|
data-target="#showArchivedTicketsModal" v-if="archivedTrackers > 0"> |
|
|
|
|
data-target="#showArchivedTicketsModal" v-if="archive.length > 0"> |
|
|
|
|
<i class="fas fa-archive"></i> |
|
|
|
|
</a> |
|
|
|
|
|
|
|
|
@ -102,10 +102,10 @@
@@ -102,10 +102,10 @@
|
|
|
|
|
<i class="fas fa-sliders-h"></i> |
|
|
|
|
</a> |
|
|
|
|
|
|
|
|
|
<div class="modal modal-fullscreen fade" id="showTrackedTicketsModal" tabindex="-1" role="dialog" |
|
|
|
|
aria-labelledby="showTrackedTicketsModalLabel" |
|
|
|
|
<div class="modal modal-fullscreen fade" id="showTicketsModal" tabindex="-1" role="dialog" |
|
|
|
|
aria-labelledby="showTicketsModalLabel" |
|
|
|
|
aria-hidden="true"> |
|
|
|
|
<div class="modal-dialog showTrackedTicketsModalDialog" role="document"> |
|
|
|
|
<div class="modal-dialog showTicketsModalDialog" role="document"> |
|
|
|
|
<div class="modal-content"> |
|
|
|
|
<div class="modal-header"> |
|
|
|
|
<h5 class="modal-title"><i class="fas fa-user-clock"></i> Tracker</h5> |
|
|
|
@ -113,66 +113,69 @@
@@ -113,66 +113,69 @@
|
|
|
|
|
</div> |
|
|
|
|
<div class="modal-body"> |
|
|
|
|
<div class="row"> |
|
|
|
|
<div class="col-md-6" v-for="(ticket, ticketIndex) in trackedTickets" v-if="!ticket.archived"> |
|
|
|
|
<h6><span v-if="isTicketNumber(ticket.number)"></span>{{ ticket.number }}</h6> |
|
|
|
|
<template v-for="(ticket, ticketIndex) in tickets"> |
|
|
|
|
<div class="col-md-6"> |
|
|
|
|
<h6><span v-if="isTicketNumber(ticket.number)"></span>{{ ticket.number }}</h6> |
|
|
|
|
|
|
|
|
|
<div class="form-group"> |
|
|
|
|
<input type="text" class="form-control" v-model="ticket.description" @keydown="updateStorage()" placeholder="Beschreibung"> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<span>Gesamtzeit: {{ getTotalTime(ticket) }}</span> |
|
|
|
|
<br> |
|
|
|
|
<div class="row"> |
|
|
|
|
<div class="col-md-3"> |
|
|
|
|
<button class="btn btn-success ticket-action-button" |
|
|
|
|
@click="bookTimeManually(ticket, 30)"> |
|
|
|
|
+ ½h |
|
|
|
|
</button> |
|
|
|
|
</div> |
|
|
|
|
<div class="col-md-3"> |
|
|
|
|
<button class="btn btn-success ticket-action-button" |
|
|
|
|
@click="bookTimeManually(ticket, 60)"> |
|
|
|
|
+ 1h |
|
|
|
|
</button> |
|
|
|
|
<div class="form-group"> |
|
|
|
|
<input type="text" class="form-control" v-model="ticket.description" @keydown="updateStorage()" placeholder="Beschreibung"> |
|
|
|
|
</div> |
|
|
|
|
<div class="col-md-3"> |
|
|
|
|
<button class="btn btn-warning ticket-action-button" |
|
|
|
|
@click="bookTimeManually(ticket, -30)"> |
|
|
|
|
- ½h |
|
|
|
|
</button> |
|
|
|
|
</div> |
|
|
|
|
<div class="col-md-3"> |
|
|
|
|
<button class="btn btn-warning ticket-action-button" |
|
|
|
|
@click="bookTimeManually(ticket, -60)"> |
|
|
|
|
- 1h |
|
|
|
|
</button> |
|
|
|
|
</div> |
|
|
|
|
<div class="col"> |
|
|
|
|
<button class="btn btn-secondary ticket-action-button" data-bs-dismiss="modal" |
|
|
|
|
@click="archiveTicket(ticket)" title="Archivieren"> |
|
|
|
|
<i class="fas fa-archive"></i> |
|
|
|
|
</button> |
|
|
|
|
</div> |
|
|
|
|
<div class="col" v-if="ticket.history.length > 0"> |
|
|
|
|
<button class="btn btn-info ticket-action-button" data-bs-dismiss="modal" |
|
|
|
|
@click="showHistoryForTicket(ticket)" title="History"> |
|
|
|
|
<i class="fas fa-history"></i> |
|
|
|
|
</button> |
|
|
|
|
</div> |
|
|
|
|
<div class="col"> |
|
|
|
|
<button class="btn btn-danger ticket-action-button" |
|
|
|
|
@click="deleteTicket(ticket)" title="Löschen"> |
|
|
|
|
<i class="fas fa-trash"></i> |
|
|
|
|
</button> |
|
|
|
|
</div> |
|
|
|
|
<div class="col" v-if="ticketSystemUrl"> |
|
|
|
|
<a v-if="isTicketNumber(ticket.number)" :href="ticketSystemUrl + ticket.number" |
|
|
|
|
target="_blank" class="btn btn-dark ticket-action-button" title="Ticket"> |
|
|
|
|
<i class="fas fa-external-link-square-alt"></i> |
|
|
|
|
</a> |
|
|
|
|
|
|
|
|
|
<span v-if="getTotalTime(ticket) > 0">Gesamtzeit: {{ getTotalTime(ticket) }}</span> |
|
|
|
|
<br> |
|
|
|
|
<div class="row"> |
|
|
|
|
<div class="col-md-3"> |
|
|
|
|
<button class="btn btn-success ticket-action-button" |
|
|
|
|
@click="bookTimeManually(ticket, 30)"> |
|
|
|
|
+ ½h |
|
|
|
|
</button> |
|
|
|
|
</div> |
|
|
|
|
<div class="col-md-3"> |
|
|
|
|
<button class="btn btn-success ticket-action-button" |
|
|
|
|
@click="bookTimeManually(ticket, 60)"> |
|
|
|
|
+ 1h |
|
|
|
|
</button> |
|
|
|
|
</div> |
|
|
|
|
<div class="col-md-3"> |
|
|
|
|
<button class="btn btn-warning ticket-action-button" |
|
|
|
|
@click="bookTimeManually(ticket, -30)"> |
|
|
|
|
- ½h |
|
|
|
|
</button> |
|
|
|
|
</div> |
|
|
|
|
<div class="col-md-3"> |
|
|
|
|
<button class="btn btn-warning ticket-action-button" |
|
|
|
|
@click="bookTimeManually(ticket, -60)"> |
|
|
|
|
- 1h |
|
|
|
|
</button> |
|
|
|
|
</div> |
|
|
|
|
<div class="col"> |
|
|
|
|
<button class="btn btn-secondary ticket-action-button" data-bs-dismiss="modal" |
|
|
|
|
@click="archiveTicket(ticketIndex)" title="Archivieren"> |
|
|
|
|
<i class="fas fa-archive"></i> |
|
|
|
|
</button> |
|
|
|
|
</div> |
|
|
|
|
<div class="col" v-if="ticket.history.length > 0"> |
|
|
|
|
<button class="btn btn-info ticket-action-button" data-bs-dismiss="modal" |
|
|
|
|
@click="showHistoryForTicket(ticket)" title="History"> |
|
|
|
|
<i class="fas fa-history"></i> |
|
|
|
|
</button> |
|
|
|
|
</div> |
|
|
|
|
<div class="col"> |
|
|
|
|
<button class="btn btn-danger ticket-action-button" |
|
|
|
|
@click="deleteTicket(ticket)" title="Löschen"> |
|
|
|
|
<i class="fas fa-trash"></i> |
|
|
|
|
</button> |
|
|
|
|
</div> |
|
|
|
|
<div class="col" v-if="ticketSystemUrl"> |
|
|
|
|
<a v-if="isTicketNumber(ticket.number)" :href="ticketSystemUrl + ticket.number" |
|
|
|
|
target="_blank" class="btn btn-dark ticket-action-button" title="Ticket"> |
|
|
|
|
<i class="fas fa-external-link-square-alt"></i> |
|
|
|
|
</a> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<br/> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
@ -190,40 +193,43 @@
@@ -190,40 +193,43 @@
|
|
|
|
|
</div> |
|
|
|
|
<div class="modal-body"> |
|
|
|
|
<div class="row"> |
|
|
|
|
<div class="col-md-6" v-for="(ticket, ticketIndex) in trackedTickets" v-if="ticket.archived"> |
|
|
|
|
<h6><span v-if="isTicketNumber(ticket.number)"></span>{{ ticket.number }}</h6> |
|
|
|
|
<div v-if="ticket.description"> |
|
|
|
|
<p class="blockquote">{{ ticket.description }}</p> |
|
|
|
|
</div> |
|
|
|
|
<span>Gesamtzeit: {{ getTotalTime(ticket) }}</span> |
|
|
|
|
<br> |
|
|
|
|
<div class="col-md-12 row"> |
|
|
|
|
<div class="col"> |
|
|
|
|
<button class="btn btn-success ticket-action-button" data-bs-dismiss="modal" |
|
|
|
|
@click="reactivateTicket(ticket)" title="Reaktivieren"> |
|
|
|
|
<i class="fas fa-power-off"></i> |
|
|
|
|
</button> |
|
|
|
|
</div> |
|
|
|
|
<div class="col" v-if="ticket.history.length > 0"> |
|
|
|
|
<button class="btn btn-info ticket-action-button" data-bs-dismiss="modal" |
|
|
|
|
@click="showHistoryForTicket(ticket)" title="History"> |
|
|
|
|
<i class="fas fa-history"></i> |
|
|
|
|
</button> |
|
|
|
|
<template v-for="(ticket, ticketIndex) in archive"> |
|
|
|
|
<div class="col-md-6"> |
|
|
|
|
<h6><span v-if="isTicketNumber(ticket.number)"></span>{{ ticket.number }}</h6> |
|
|
|
|
<div v-if="ticket.description"> |
|
|
|
|
<p class="blockquote">{{ ticket.description }}</p> |
|
|
|
|
</div> |
|
|
|
|
<div class="col"> |
|
|
|
|
<button class="btn btn-danger ticket-action-button" |
|
|
|
|
@click="deleteTicket(ticket)" title="Löschen"> |
|
|
|
|
<i class="fas fa-trash"></i> |
|
|
|
|
</button> |
|
|
|
|
</div> |
|
|
|
|
<div class="col" v-if="ticketSystemUrl"> |
|
|
|
|
<a v-if="isTicketNumber(ticket.number)" :href="ticketSystemUrl + ticket.number" |
|
|
|
|
target="_blank" class="btn btn-dark ticket-action-button" title="Ticket"> |
|
|
|
|
<i class="fas fa-external-link-square-alt"></i> |
|
|
|
|
</a> |
|
|
|
|
<span v-if="getTotalTime(ticket) > 0">Gesamtzeit: {{ getTotalTime(ticket) }}</span> |
|
|
|
|
<br> |
|
|
|
|
<div class="col-md-12 row"> |
|
|
|
|
<div class="col"> |
|
|
|
|
<button class="btn btn-success ticket-action-button" data-bs-dismiss="modal" |
|
|
|
|
@click="reactivateTicket(ticketIndex)" title="Reaktivieren"> |
|
|
|
|
<i class="fas fa-power-off"></i> |
|
|
|
|
</button> |
|
|
|
|
</div> |
|
|
|
|
<div class="col" v-if="ticket.history.length > 0"> |
|
|
|
|
<button class="btn btn-info ticket-action-button" data-bs-dismiss="modal" |
|
|
|
|
@click="showHistoryForTicket(ticket)" title="History"> |
|
|
|
|
<i class="fas fa-history"></i> |
|
|
|
|
</button> |
|
|
|
|
</div> |
|
|
|
|
<div class="col"> |
|
|
|
|
<button class="btn btn-danger ticket-action-button" |
|
|
|
|
@click="deleteTicket(ticket)" title="Löschen"> |
|
|
|
|
<i class="fas fa-trash"></i> |
|
|
|
|
</button> |
|
|
|
|
</div> |
|
|
|
|
<div class="col" v-if="ticketSystemUrl"> |
|
|
|
|
<a v-if="isTicketNumber(ticket.number)" :href="ticketSystemUrl + ticket.number" |
|
|
|
|
target="_blank" class="btn btn-dark ticket-action-button" title="Ticket"> |
|
|
|
|
<i class="fas fa-external-link-square-alt"></i> |
|
|
|
|
</a> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<br/> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
@ -309,60 +315,63 @@
@@ -309,60 +315,63 @@
|
|
|
|
|
</div> |
|
|
|
|
<div class="modal-body"> |
|
|
|
|
<ul class="list-group ticket-history"> |
|
|
|
|
<li class="list-group-item" v-for="(tracker, historyIndex) in selectedTicket.history" v-if="!tracker.manually"> |
|
|
|
|
<div> |
|
|
|
|
<div class="float-end" :title="exactTimestamp(tracker.trackingStarted)"> |
|
|
|
|
{{ formattedDate(tracker.trackingStarted) }} |
|
|
|
|
<template v-for="(tracker, historyIndex) in selectedTicket.history"> |
|
|
|
|
<li class="list-group-item" v-if="!tracker.manually"> |
|
|
|
|
<div> |
|
|
|
|
<div class="float-end" :title="exactTimestamp(tracker.trackingStarted)"> |
|
|
|
|
{{ formattedDate(tracker.trackingStarted) }} |
|
|
|
|
</div> |
|
|
|
|
Start: |
|
|
|
|
</div> |
|
|
|
|
Start: |
|
|
|
|
</div> |
|
|
|
|
<div> |
|
|
|
|
<div class="float-end" :title="exactTimestamp(tracker.trackingStopped)"> |
|
|
|
|
{{ formattedDate(tracker.trackingStopped) }} |
|
|
|
|
<div> |
|
|
|
|
<div class="float-end" :title="exactTimestamp(tracker.trackingStopped)"> |
|
|
|
|
{{ formattedDate(tracker.trackingStopped) }} |
|
|
|
|
</div> |
|
|
|
|
Ende: |
|
|
|
|
</div> |
|
|
|
|
Ende: |
|
|
|
|
</div> |
|
|
|
|
<div> |
|
|
|
|
<div class="float-end"> |
|
|
|
|
{{ timeWithPostFix(tracker.minutes) }} |
|
|
|
|
<div> |
|
|
|
|
<div class="float-end"> |
|
|
|
|
{{ timeWithPostFix(tracker.minutes) }} |
|
|
|
|
</div> |
|
|
|
|
Zeit: |
|
|
|
|
</div> |
|
|
|
|
Zeit: |
|
|
|
|
</div> |
|
|
|
|
<a href="javascript:" @click="deleteHistoryEntry(null, historyIndex)" class="float-end"> |
|
|
|
|
<i class="fas fa-trash"></i> |
|
|
|
|
</a> |
|
|
|
|
<br/> |
|
|
|
|
</li> |
|
|
|
|
<li class="list-group-item bg-light" v-for="(tracker, historyIndex) in selectedTicket.history" |
|
|
|
|
v-if="tracker.manually && tracker.manually == true"> |
|
|
|
|
<div> |
|
|
|
|
<div class="float-end" :title="exactTimestamp(tracker.trackingStarted)"> |
|
|
|
|
{{ formattedDate(tracker.trackingStarted) }} |
|
|
|
|
<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 selectedTicket.history"> |
|
|
|
|
<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> |
|
|
|
|
Manuell erfasst am: |
|
|
|
|
</div> |
|
|
|
|
<div> |
|
|
|
|
<div class="float-end"> |
|
|
|
|
{{ timeWithPostFix(tracker.minutes) }} |
|
|
|
|
<div> |
|
|
|
|
<div class="float-end"> |
|
|
|
|
{{ timeWithPostFix(tracker.minutes) }} |
|
|
|
|
</div> |
|
|
|
|
Zeit: |
|
|
|
|
</div> |
|
|
|
|
Zeit: |
|
|
|
|
</div> |
|
|
|
|
<a href="javascript:" @click="deleteHistoryEntry(ticketIndex, historyIndex)" class="float-end"> |
|
|
|
|
<i class="fas fa-trash"></i> |
|
|
|
|
</a> |
|
|
|
|
<br/> |
|
|
|
|
</li> |
|
|
|
|
<a href="javascript:" @click="deleteHistoryEntry(ticketIndex, historyIndex)" class="float-end"> |
|
|
|
|
<i class="fas fa-trash"></i> |
|
|
|
|
</a> |
|
|
|
|
<br/> |
|
|
|
|
</li> |
|
|
|
|
</template> |
|
|
|
|
</ul> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<script src="https://kit.fontawesome.com/b54a4cceff.js" crossorigin="anonymous"></script> |
|
|
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment-with-locales.min.js"></script> |
|
|
|
|
<script src="js/vue.js"></script> |
|
|
|
|
<script src="https://unpkg.com/vue@next"></script> |
|
|
|
|
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script> |
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"></script> |
|
|
|
|
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script> |
|
|
|
|