66 lines
1.7 KiB
Vue
66 lines
1.7 KiB
Vue
<template>
|
|
<div id="codes">
|
|
<router-link to="codes/add" class="pure-button pure-button-primary">{{ $t('admin.codes.add') }}</router-link>
|
|
|
|
<div v-if="codes !== null">
|
|
<div class="pure-g list-header">
|
|
<div class="pure-u-3-4"><span class="text">{{ $t('admin.codes.list.code') }}</span></div>
|
|
<div class="pure-u-1-4"><span class="text">{{ $t('admin.codes.list.owner') }}</span></div>
|
|
</div>
|
|
|
|
<div v-for="code in codes" class="list">
|
|
<div class="pure-g row">
|
|
<div class="pure-u-3-4"><span class="text"><router-link :to="'codes/edit/' + encodeURIComponent(code.id)">{{ code.id }}</router-link></span></div>
|
|
<div class="pure-u-1-4"><span class="text">{{ code.username }}</span></div>
|
|
<div class="pure-u-1-1" v-if="code.description"><span class="text description">{{ code.description }}</span></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div v-if="codes.length == 0" class="nodata">
|
|
{{ $t('admin.empty') }}
|
|
</div>
|
|
</div>
|
|
|
|
<div v-else class="loading">
|
|
{{ $t('admin.loading') }}
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import axios from 'axios';
|
|
import shared from '../../shared';
|
|
|
|
export default {
|
|
data()
|
|
{
|
|
return {
|
|
codes: null
|
|
};
|
|
},
|
|
|
|
created()
|
|
{
|
|
var self = this;
|
|
|
|
axios.get('/admin/codes', {
|
|
headers: {
|
|
Authorization: 'Bearer ' + shared.adminToken
|
|
}
|
|
})
|
|
.then((response) =>
|
|
{
|
|
self.codes = _.orderBy(response.data, ['created'], ['desc']);
|
|
})
|
|
.catch((error) => { shared.$emit('apiError', error, this.$router) });
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
.description
|
|
{
|
|
font-size: 75%;
|
|
color: #808080;
|
|
}
|
|
</style> |