69 lines
2.3 KiB
Vue
69 lines
2.3 KiB
Vue
<template>
|
|
<div id="userlist">
|
|
<h3>Registered Users ({{ pagination.total }})</h3>
|
|
<div class="pgn">
|
|
<span class="pagenum">Page {{ pagination.page }} of {{ pagination.pages }}</span>
|
|
<div class="button" v-if="pagination.page > 1" v-on:click="getUsers(pagination.page - 1)">Previous</div>
|
|
<div class="button" v-for="n in pagination.pages" v-on:click="getUsers(n)" v-bind:class="{active: n == pagination.page}">{{ n }}</div>
|
|
<div class="button" v-if="pagination.page < pagination.pages" v-on:click="getUsers(pagination.page + 1)">Next</div>
|
|
</div>
|
|
<div class="list users">
|
|
<div class="user list-item" v-for="user in users">
|
|
<div class="avatar">
|
|
<img v-if="user.avatar_file" v-bind:src="'/usercontent/images/' + user.avatar_file"/>
|
|
<img v-else="v-else" src="/static/image/avatar.png"/>
|
|
</div>
|
|
<div class="info">
|
|
<div class="stamps">
|
|
<div class="noactive" v-if="user.activated == false" title="Not activated.">
|
|
<i class="fa fa-fw fa-envelope"></i>
|
|
</div>
|
|
</div>
|
|
<div class="display_name">{{ user.display_name }}</div>
|
|
<div class="username">{{ user.id }} - {{ user.username }} ({{ user.uuid }})</div>
|
|
<div class="email">{{ user.email }}</div>
|
|
<div class="privilege">Privilege: level {{ user.nw_privilege }}</div>
|
|
<div class="timestamp">{{ new Date(user.created_at).toString() }}</div>
|
|
<div class="external" v-if="!user.password"><b>Used external login</b></div>
|
|
<div class="button ban" v-if="user.bannable" v-on:click="banning = user.id">
|
|
<i class="fa fa-fw fa-ban"></i>Ban User
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<ban-modal :show="banning" @close="banning = 0" :id="banning"></ban-modal>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
module.exports = {
|
|
data: function () {
|
|
return {
|
|
pagination: {
|
|
offset: 0,
|
|
page: 1,
|
|
pages: 1,
|
|
perPage: 6,
|
|
total: 0
|
|
},
|
|
users: [],
|
|
banning: 0
|
|
}
|
|
},
|
|
methods: {
|
|
getUsers: function (page) {
|
|
this.$http.get('/admin/api/users?page=' + page).then(data => {
|
|
if (data.body && data.body.error) return
|
|
this.pagination = data.body.page
|
|
this.users = data.body.users
|
|
|
|
console.log(this.pagination)
|
|
})
|
|
}
|
|
},
|
|
mounted: function () {
|
|
this.getUsers(1)
|
|
}
|
|
}
|
|
</script>
|