summaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-11-15 06:21:31 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-11-15 06:21:31 +0900
commit50fe67b99b5aa5ed68c9a0d53fae88e670e9bc1a (patch)
treeb56e844b96c28c78086a9dd1ae41d9c9fe7f4029 /src/client
parent[API] Add /instances (diff)
downloadsharkey-50fe67b99b5aa5ed68c9a0d53fae88e670e9bc1a.tar.gz
sharkey-50fe67b99b5aa5ed68c9a0d53fae88e670e9bc1a.tar.bz2
sharkey-50fe67b99b5aa5ed68c9a0d53fae88e670e9bc1a.zip
[Client] Improve admin panel
Diffstat (limited to 'src/client')
-rw-r--r--src/client/app/admin/views/index.vue60
1 files changed, 48 insertions, 12 deletions
diff --git a/src/client/app/admin/views/index.vue b/src/client/app/admin/views/index.vue
index 116d794b91..4aed85468a 100644
--- a/src/client/app/admin/views/index.vue
+++ b/src/client/app/admin/views/index.vue
@@ -37,15 +37,20 @@
</div>
</nav>
<main>
- <div v-if="page == 'dashboard'"><x-dashboard/></div>
- <div v-if="page == 'instance'"><x-instance/></div>
- <div v-if="page == 'moderators'"><x-moderators/></div>
- <div v-if="page == 'users'"><x-users/></div>
- <div v-if="page == 'emoji'"><x-emoji/></div>
- <div v-if="page == 'announcements'"><x-announcements/></div>
- <div v-if="page == 'hashtags'"><x-hashtags/></div>
- <div v-if="page == 'drive'"></div>
- <div v-if="page == 'update'"></div>
+ <marquee-text v-if="instances.length > 0" v-show="!isMobile" class="instances" :repeat="10" :duration="10">
+ <span v-for="instance in instances" class="instance"><b :style="{ background: instance.bg }">{{ instance.host }}</b>{{ instance.notesCount | number }}</span>
+ </marquee-text>
+ <div class="page">
+ <div v-if="page == 'dashboard'"><x-dashboard/></div>
+ <div v-if="page == 'instance'"><x-instance/></div>
+ <div v-if="page == 'moderators'"><x-moderators/></div>
+ <div v-if="page == 'users'"><x-users/></div>
+ <div v-if="page == 'emoji'"><x-emoji/></div>
+ <div v-if="page == 'announcements'"><x-announcements/></div>
+ <div v-if="page == 'hashtags'"><x-hashtags/></div>
+ <div v-if="page == 'drive'"></div>
+ <div v-if="page == 'update'"></div>
+ </div>
</main>
</div>
</template>
@@ -63,6 +68,8 @@ import XHashtags from "./hashtags.vue";
import XUsers from "./users.vue";
import { faHeadset, faArrowLeft } from '@fortawesome/free-solid-svg-icons';
import { faGrin } from '@fortawesome/free-regular-svg-icons';
+import MarqueeText from 'vue-marquee-text-component';
+import randomColor from 'randomcolor';
// Detect the user agent
const ua = navigator.userAgent.toLowerCase();
@@ -77,7 +84,8 @@ export default Vue.extend({
XEmoji,
XAnnouncements,
XHashtags,
- XUsers
+ XUsers,
+ MarqueeText
},
provide: {
isMobile
@@ -88,11 +96,23 @@ export default Vue.extend({
version,
isMobile,
navOpend: !isMobile,
+ instances: [],
faGrin,
faArrowLeft,
faHeadset
};
},
+ created() {
+ this.$root.api('instances').then(instances => {
+ instances.forEach(i => {
+ i.bg = randomColor({
+ seed: i.host,
+ luminosity: 'dark'
+ });
+ });
+ this.instances = instances;
+ });
+ },
methods: {
nav(page: string) {
this.page = page;
@@ -101,7 +121,7 @@ export default Vue.extend({
});
</script>
-<style lang="stylus">
+<style lang="stylus" scoped>
.mk-admin
$headerHeight = 48px
@@ -262,7 +282,23 @@ export default Vue.extend({
> main
width 100%
padding 0 0 0 250px
- max-width 1300px
+
+ > .instances
+ padding 8px
+ background rgba(0, 0, 0, 0.7)
+ color #fff
+ font-size 14px
+
+ >>> .instance
+ margin 0 10px
+
+ > b
+ padding 0px 6px
+ margin-right 4px
+ border-radius 4px
+
+ > .page
+ max-width 1300px
&.isMobile
> main