sbkwgh 8 роки тому
батько
коміт
aa62e12253
1 змінених файлів з 35 додано та 3 видалено
  1. 35 3
      src/components/AdminNewAdmin.vue

+ 35 - 3
src/components/AdminNewAdmin.vue

@@ -14,8 +14,20 @@
 
 		<div class='admin_new_admin__box'>
 			<div class='admin_new_admin__text'>
-				<div>Add other admin users</div>
+				<div class='admin_new_admin__text__title'>Add other admin users</div>
 				Click to generate a login link for a new admin account - this will expire after 24 hours
+				
+				<div v-if='!filteredAdmins'>Loading...</div>
+				<div v-else>
+					<strong v-if='filteredAdmins.length === 0'>There are no other admins</strong>
+					<template v-else>
+						Current admins are you,
+						<span v-for='(admin, $index) in filteredAdmins'>
+							<router-link :to='"/user/" + admin.username'>{{admin.username}}</router-link>
+							<template v-if='$index !== filteredAdmins.length-1'>,</template>
+						</span>
+					</template>
+				</div>
 			</div>
 			<loading-button :loading='loading' @click='getLink'>Generate link</loading-button>
 		</div>
@@ -54,8 +66,28 @@
 			return {
 				loading: false,
 				showModal: false,
-				link: ''
+				link: '',
+				admins: null
 			}
+		},
+		computed: {
+			filteredAdmins () {
+				if(!this.admins) {
+					return null
+				} else {
+					return this.admins.filter(a => {
+						return a.username !== this.$store.state.username
+					})
+				}
+			}
+		},
+		created () {
+			this.axios
+				.get('/api/v1/user?admin=true')
+				.then(res => {
+					this.admins = res.data
+				})
+				.catch(AjaxErrorHandler(this.$store))
 		}
 	}
 </script>
@@ -80,7 +112,7 @@
 		@at-root #{&}__text {
 			margin-bottom: 1rem;
 
-			div {
+			@at-root #{&}__title {
 				margin-bottom: 0.5rem;
 				font-weight: bold;
 				font-size: 1.25rem;