Nextcloud-App/src/components/TicketList.vue

101 lines
2.1 KiB
Vue

<template>
<table
id="ticketlist"
class="list-container has-controls">
<thead>
<tr>
<th id="headerName" class="column-name">
<div id="headerName-container">
<a class="name sort columntitle" data-sort="name">
<span>Titel (#Ticket-Nummer)</span>
<span class="sort-indicator icon-triangle-n" />
</a>
</div>
</th>
<th id="headerStatus" class="column-status">
<a class="status sort columntitle" data-sort="status">
<span>Status</span>
<span class="sort-indicator hidden icon-triangle-s" />
</a>
</th>
<th id="headerDate" class="column-mtime">
<a id="modified" class="columntitle" data-sort="mtime">
<span>Geändert</span>
<span class="sort-indicator hidden icon-triangle-s" />
</a>
</th>
</tr>
</thead>
<tbody id="tickettbody">
<tr v-for="item in tickets" :key="item.id">
<td class="filename ui-draggable ui-draggable-handle">
<a class="name" :href="'#ticket-' + item.id" @click="openTicket(item.id)">
<span class="nametext">
<span class="innernametext">{{ item.title }}</span>
<span class="ticket-number"> (<span class="icon icon-ticket" />#{{ item.id }})</span>
</span>
</a>
</td>
<td class="status">
{{ item.status }}
</td>
<td class="date">
<span
class="modified live-relative-timestamp"
title=""
data-timestamp="1628157115000"
style="color:rgb(81,81,81)"
data-original-title="5. August 2021 11:51">
vor 16 Tagen <!-- ToDo -->
</span>
</td>
</tr>
</tbody>
</table>
</template>
<script>
export default {
name: 'TicketList',
props: {
tickets: {
type: Array,
default() {
return []
},
},
},
methods: {
openTicket(ticketId) {
this.$emit('open-ticket', ticketId)
},
},
}
</script>
<style scoped>
#ticketlist {
margin-top: 4rem;
}
table {
width: 100%;
}
td {
border-bottom: solid #000 1px;
}
tr:nth-child(2n) {
background: #f0f0f0;
}
a .ticket-number {
opacity: 0.5;
}
a:hover .ticket-number, a:focus .ticket-number, a:active .ticket-number {
opacity: 1;
}
</style>