Browse Source

Implement search for archive;

modals-to-spa
Nero Ignis 4 years ago
parent
commit
44df5a9253
  1. 11
      css/app.css
  2. 105
      index.html
  3. 3
      js/app.js

11
css/app.css

@ -95,8 +95,9 @@ nav, .card {
margin-bottom: 1px; margin-bottom: 1px;
} }
#showTicketsModal .showTicketsModalDialog, #settingsModal .modal-dialog,
#showArchivedTicketsModal .showArchivedTicketsModalDialog{ #showTicketsModal .modal-dialog,
#showArchivedTicketsModal .modal-dialog {
max-width: 900px; max-width: 900px;
} }
@ -117,3 +118,9 @@ nav, .card {
#settingsModal .form-group { #settingsModal .form-group {
margin-bottom: 0.5em; margin-bottom: 0.5em;
} }
.search-field {
display: inline-block;
max-width: 85%;
margin-left: 5%;
}

105
index.html

@ -194,7 +194,7 @@
<div class="modal-body"> <div class="modal-body">
<div class="row"> <div class="row">
<template v-for="(ticket, ticketIndex) in archive"> <template v-for="(ticket, ticketIndex) in archive">
<div class="col-md-6"> <div class="col-md-6" v-if="searchQuery === '' || ticket.number.search(searchQuery) >= 0 || (ticket.description && ticket.description.search(searchQuery)) >= 0">
<h6><span v-if="isTicketNumber(ticket.number)"></span>{{ ticket.number }}</h6> <h6><span v-if="isTicketNumber(ticket.number)"></span>{{ ticket.number }}</h6>
<div v-if="ticket.description"> <div v-if="ticket.description">
<p class="blockquote">{{ ticket.description }}</p> <p class="blockquote">{{ ticket.description }}</p>
@ -232,6 +232,13 @@
</template> </template>
</div> </div>
</div> </div>
<div class="modal-footer row">
<div class="col-sm-6"></div>
<div class="col-sm-6">
<i class="fas fa-search"></i>
<input @keydown="$forceUpdate()" type="text" class="form-control search-field float-right" v-model="searchQuery" placeholder="Suche..">
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -244,56 +251,60 @@
<h5 class="modal-title"><i class="fas fa-sliders-h"></i> Einstellungen</h5> <h5 class="modal-title"><i class="fas fa-sliders-h"></i> Einstellungen</h5>
<button type="button" class="btn-close" data-dismiss="modal" aria-label="Close"></button> <button type="button" class="btn-close" data-dismiss="modal" aria-label="Close"></button>
</div> </div>
<div class="modal-body"> <div class="modal-body row">
<h5>Allgemeine Einstellungen</h5> <div class="col-md-6">
<div class="form-group"> <h5>Allgemeine Einstellungen</h5>
<label>Logo-Pfad</label> <div class="form-group">
<input type="text" v-model="dashboardLogo" class="form-control"> <label>Logo-Pfad</label>
</div> <input type="text" v-model="dashboardLogo" class="form-control">
<div class="form-group"> </div>
<label>Ticket-Link <small>Link zu einem Ticket ohne Ticketnummer</small></label> <div class="form-group">
<input type="text" v-model="ticketSystemUrl" class="form-control"> <label>Ticket-Link <small>Link zu einem Ticket ohne Ticketnummer</small></label>
</div> <input type="text" v-model="ticketSystemUrl" class="form-control">
<br/>
<div class="form-group">
<label>
<input type="checkbox" class="form-control-checkbox" v-model="showPT">
Ab 8 Stunden nurmehr PT anzeigen
</label>
</div>
<br/>
<div class="form-group">
<label>Design</label>
<select v-model="theme" class="form-control">
<option v-for="availableTheme in themes" :value="availableTheme.name.toLowerCase()">{{ availableTheme.name }}</option>
</select>
</div>
<br/>
<h5>Zurücksetzen & Löschen</h5>
<div class="row">
<div class="col-md-6">
<button class="btn btn-outline-warning btn-full-width" @click="resetToDefault()">
Zurücksetzen
</button>
</div> </div>
<div class="col-md-6"> <br/>
<button class="btn btn-outline-danger btn-full-width" @click="deleteAllData()">Alle Daten <div class="form-group">
löschen <label>
</button> <input type="checkbox" class="form-control-checkbox" v-model="showPT">
Ab 8 Stunden nurmehr PT anzeigen
</label>
</div> </div>
<br/>
<div class="form-group">
<label>Design</label>
<select v-model="theme" class="form-control">
<option v-for="availableTheme in themes" :value="availableTheme.name.toLowerCase()">{{ availableTheme.name }}</option>
</select>
</div>
<br/>
</div> </div>
<br/> <div class="col-md-6">
<h5>Import & Export</h5> <h5>Zurücksetzen & Löschen</h5>
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
<h6>Export-Json</h6> <button class="btn btn-outline-warning btn-full-width" @click="resetToDefault()">
<textarea class="form-control" rows="3" id="exportJsonInput">{{ exportJson }}</textarea> Zurücksetzen
<button class="btn btn-success btn-full-width" @click="copy2Clipboard">Export-String kopieren</button> </button>
</div>
<div class="col-md-6">
<button class="btn btn-outline-danger btn-full-width" @click="deleteAllData()">Alle Daten
löschen
</button>
</div>
</div> </div>
<div class="col-md-6"> <br/>
<h6>Import</h6> <h5>Import & Export</h5>
<textarea class="form-control" rows="3" v-model="inputs.importJson"></textarea> <div class="row">
<button class="btn btn-success btn-full-width" @click="importData">Import</button> <div class="col-md-6">
<h6>Export-Json</h6>
<textarea class="form-control" rows="3" id="exportJsonInput">{{ exportJson }}</textarea>
<button class="btn btn-success btn-full-width" @click="copy2Clipboard">Export-String kopieren</button>
</div>
<div class="col-md-6">
<h6>Import</h6>
<textarea class="form-control" rows="3" v-model="inputs.importJson"></textarea>
<button class="btn btn-success btn-full-width" @click="importData">Import</button>
</div>
</div> </div>
</div> </div>
</div> </div>

3
js/app.js

@ -12,7 +12,8 @@ const TimeTrack = {
}, },
tickets: [], tickets: [],
archive: [], archive: [],
selectedTicket: null selectedTicket: null,
searchQuery: ''
} }
}, },
mounted() { mounted() {