diff --git a/client/components/admin.vue b/client/components/admin.vue
index ff4f5ddf..e143869f 100644
--- a/client/components/admin.vue
+++ b/client/components/admin.vue
@@ -1,7 +1,7 @@
v-app(:dark='darkMode').admin
nav-header
- v-navigation-drawer.pb-0(v-model='adminDrawerShown', app, fixed, clipped, left, permanent)
+ v-navigation-drawer.pb-0.admin-sidebar(v-model='adminDrawerShown', app, fixed, clipped, left, permanent)
v-list(dense)
v-list-tile.pt-2(to='/dashboard')
v-list-tile-avatar: v-icon dashboard
@@ -71,7 +71,7 @@
v-list-tile-avatar: v-icon favorite
v-list-tile-title {{ $t('admin:contribute.title') }}
- v-content
+ v-content(:class='darkMode ? "grey darken-4" : ""')
transition(name='admin-router')
router-view
@@ -138,4 +138,20 @@ export default {
}
}
+.admin-sidebar {
+ .v-list__tile--active {
+ background-color: rgba(mc('theme', 'primary'), .1);
+
+ .v-icon {
+ color: mc('theme', 'primary')
+ }
+ }
+}
+
+.theme--dark {
+ .admin-sidebar .v-list__tile--active {
+ background-color: rgba(0,0,0, .2);
+ }
+}
+
diff --git a/client/components/admin/admin-auth.vue b/client/components/admin/admin-auth.vue
index 2a895ab2..a5f8c5cf 100644
--- a/client/components/admin/admin-auth.vue
+++ b/client/components/admin/admin-auth.vue
@@ -47,7 +47,7 @@
persistent-hint
:class='cfg.value.hint ? "mb-2" : ""'
)
- v-switch(
+ v-switch.mb-3(
v-else-if='cfg.value.type === "boolean"'
:key='cfg.key'
:label='cfg.value.title'
diff --git a/client/components/admin/admin-dashboard.vue b/client/components/admin/admin-dashboard.vue
index 6351ef53..76968420 100644
--- a/client/components/admin/admin-dashboard.vue
+++ b/client/components/admin/admin-dashboard.vue
@@ -6,68 +6,142 @@
v-container(fluid, grid-list-lg)
v-layout(row, wrap)
v-flex(xs12 md6 lg4 xl3 d-flex)
- v-card.primary(dark)
+ v-card.primary.dashboard-card(dark)
v-card-text
v-icon.dashboard-icon insert_drive_file
.subheading Pages
animated-number.display-1(
- :value='357'
+ :value='info.pagesTotal'
:duration='2000'
:formatValue='round'
easing='easeOutQuint'
)
v-flex(xs12 md6 lg4 xl3 d-flex)
- v-card.indigo.lighten-1(dark)
+ v-card.indigo.lighten-1.dashboard-card(dark)
v-card-text
v-icon.dashboard-icon person
.subheading Users
animated-number.display-1(
- :value='34'
+ :value='info.usersTotal'
:duration='2000'
:formatValue='round'
easing='easeOutQuint'
)
v-flex(xs12 md6 lg4 xl3 d-flex)
- v-card.indigo.lighten-2(dark)
+ v-card.indigo.lighten-2.dashboard-card(dark)
v-card-text
v-icon.dashboard-icon people
.subheading Groups
animated-number.display-1(
- :value='5'
+ :value='info.groupsTotal'
:duration='2000'
:formatValue='round'
easing='easeOutQuint'
)
v-flex(xs12 md6 lg12 xl3 d-flex)
- v-card.teal.lighten-2(dark)
+ v-card.dashboard-card(
+ :class='isLatestVersion ? "teal lighten-2" : "red lighten-2"'
+ dark
+ )
+ v-btn(fab, absolute, right, top, small, light, to='system')
+ v-icon(v-if='isLatestVersion', color='teal') build
+ v-icon(v-else, color='red darken-4') get_app
v-card-text
v-icon.dashboard-icon blur_on
- .subheading Wiki.js 2.0.0
- .body-2 You are running the latest version.
+ .subheading Wiki.js {{info.currentVersion}}
+ .body-2(v-if='isLatestVersion') You are running the latest version.
+ .body-2(v-else) A new version is available: {{info.latestVersion}}
v-flex(xs12)
v-card
- v-card-text ---
+ v-card-title.subheading Recent Pages
+ v-data-table.pb-2(
+ :items='recentPages'
+ hide-actions
+ hide-headers
+ )
+ template(slot='items' slot-scope='props')
+ td(width='20', style='padding-right: 0;'): v-icon insert_drive_file
+ td
+ .body-2.primary--text {{ props.item.title }}
+ .caption.grey--text.text--darken-2 {{ props.item.description }}
+ td.caption /{{ props.item.path }}
+ td.grey--text.text--darken-2(width='250')
+ .caption: strong Updated {{ props.item.updatedAt | moment('from') }}
+ .caption Created {{ props.item.createdAt | moment('calendar') }}
+ v-flex(xs12)
+ v-card
+ v-card-title.subheading Most Popular Pages
+ v-data-table.pb-2(
+ :items='popularPages'
+ hide-actions
+ hide-headers
+ )
+ template(slot='items' slot-scope='props')
+ td(width='20', style='padding-right: 0;'): v-icon insert_drive_file
+ td
+ .body-2.primary--text {{ props.item.title }}
+ .caption.grey--text.text--darken-2 {{ props.item.description }}
+ td.caption /{{ props.item.path }}
+ td.grey--text.text--darken-2(width='250')
+ .caption: strong Updated {{ props.item.updatedAt | moment('from') }}
+ .caption Created {{ props.item.createdAt | moment('calendar') }}