diff --git a/client/components/admin/admin-general.vue b/client/components/admin/admin-general.vue
index de986d7f..88a7284f 100644
--- a/client/components/admin/admin-general.vue
+++ b/client/components/admin/admin-general.vue
@@ -30,15 +30,6 @@
v-toolbar-title
.subheading Site Branding
v-card-text ---
- v-card.mt-3
- v-toolbar(color='primary', dark, dense, flat)
- v-toolbar-title
- .subheading Maintenance Mode
- v-card-text
- .body-1 Maintenance mode restrict access to the site to administrators only, regarless of current permissions.
- v-btn.mt-3(color='orange darken-2', dark)
- icon-home-alert.mr-2(fillColor='#FFFFFF')
- | Turn On Maintenance Mode
diff --git a/client/components/admin/admin-utilities.vue b/client/components/admin/admin-utilities.vue
index 8a8cea16..76c55a95 100644
--- a/client/components/admin/admin-utilities.vue
+++ b/client/components/admin/admin-utilities.vue
@@ -1,15 +1,104 @@
- v-container(fluid, fill-height)
- v-layout(row wrap)
- v-flex(xs12)
+ v-card(flat)
+ v-card(color='grey lighten-5')
+ .pa-3.pt-4
.headline.primary--text Utilities
.subheading.grey--text Maintenance and troubleshooting tools
+ v-tabs(v-model='tab', color='grey lighten-4', fixed-tabs, slider-color='primary', show-arrows)
+ v-tab(key='tools') Tools
+ v-tab(key='telemetry') Telemetry
+ v-tab(key='telemetry') Support
+
+ v-tab-item(key='tools', :transition='false', :reverse-transition='false')
+ v-container.grey.lighten-5(fluid, grid-list-lg)
+ v-layout(row, wrap)
+ v-flex(xs12, sm6)
+ v-card
+ v-toolbar(color='primary', dark, dense, flat)
+ v-toolbar-title
+ .subheading Authentication
+ v-subheader Flush User Sessions
+ v-card-text.pt-0
+ .body-1 This will cause all users to be logged out. You will need to log back in after the operation.
+ v-btn(depressed).ml-0
+ v-icon(left, color='grey') build
+ span Proceed
+ v-subheader Reset Guest User
+ v-card-text.pt-0
+ .body-1 This will reset the guest user to its default parameters and permissions.
+ v-btn(depressed).ml-0
+ v-icon(left, color='grey') build
+ span Proceed
+ v-flex(xs12, sm6)
+ v-card
+ v-toolbar(color='primary', dark, dense, flat)
+ v-toolbar-title
+ .subheading Maintenance Mode
+ v-card-text
+ .body-1 Maintenance mode restrict access to the site to administrators only, regarless of current permissions.
+ v-btn.mt-3(color='orange darken-2', dark)
+ icon-home-alert.mr-2(fillColor='#FFFFFF')
+ | Turn On Maintenance Mode
+
+ v-tab-item(key='telemetry', :transition='false', :reverse-transition='false')
+ v-card.pa-3
+ v-form
+ v-subheader What is telemetry?
+ .body-1.pl-3 Telemetry allows the developers of Wiki.js to improve the software by collecting basic anonymized data about its usage and the host info. #[br] This is entirely optional and #[strong absolutely no] private data (such as content or personal data) is collected.
+ .body-1.pt-3.pl-3 For maximum privacy, a random client ID is generated every time Wiki.js is started. This ID is used to group requests together while keeping complete anonymity.
+ v-divider
+ v-subheader What is collected?
+ .body-1.pl-3 When telemetry is enabled, only the following data is transmitted:
+ v-list(dense)
+ v-list-tile
+ v-list-tile-avatar: v-icon info_outline
+ v-list-tile-content: v-list-tile-title.caption Version of Wiki.js installed
+ v-list-tile
+ v-list-tile-avatar: v-icon info_outline
+ v-list-tile-content: v-list-tile-title.caption Basic OS information (version, CPU cores, RAM available)
+ v-list-tile
+ v-list-tile-avatar: v-icon info_outline
+ v-list-tile-content: v-list-tile-title.caption Crash debug data
+ v-list-tile
+ v-list-tile-avatar: v-icon info_outline
+ v-list-tile-content: v-list-tile-title.caption Setup analytics (step reached)
+ .body-2.pl-3
+ v-divider
+ v-subheader Settings
+ .pl-3
+ v-switch(
+ v-model='telemetry',
+ label='Enable Telemetry',
+ :value='true',
+ color='primary',
+ hint='Allow Wiki.js to transmit telemetry data.',
+ persistent-hint
+ )
+ .subheading.mt-3.grey--text.text--darken-1 Client ID
+ .body-1 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+ v-divider
+ v-card-actions
+ v-btn(color='primary')
+ v-icon(left) chevron_right
+ | Save Changes
+ v-spacer
+ v-btn(outline, color='grey')
+ v-icon(left) autorenew
+ span Reset Client ID
diff --git a/client/components/common/criterias-item.vue b/client/components/common/criterias-item.vue
index 098fa83b..d2a26f6b 100644
--- a/client/components/common/criterias-item.vue
+++ b/client/components/common/criterias-item.vue
@@ -21,12 +21,18 @@
v-select(v-if='item.type === "country"', solo, :items='countries', v-model='item.value', placeholder='Countries...', multiple, item-text='name', item-value='code')
v-text-field(v-else-if='item.type === "path"', solo, v-model='item.value', label='Path (e.g. /section)')
v-text-field(v-else-if='item.type === "date"', solo, @click.native.stop='dateActivator = true', v-model='item.value', label='YYYY-MM-DD', readonly)
+ v-text-field(v-else-if='item.type === "time"', solo, @click.native.stop='timeActivator = true', v-model='item.value', label='HH:MM', readonly)
+ v-select(v-else-if='item.type === "group"', solo, :items='groups', v-model='item.value', placeholder='Group...', item-text='name', item-value='id')
v-text-field.blue-grey.lighten-4(v-else, solo, disabled)
v-dialog(lazy, v-model='dateActivator', width='290px', ref='dateDialog')
v-date-picker(v-model='item.value', scrollable, color='primary')
v-btn(flat, color='primary' @click='$refs.dateDialog.save(date)', block) ok
+ v-dialog(lazy, v-model='timeActivator', width='300px', ref='timeDialog')
+ v-time-picker(v-model='item.value', scrollable, color='primary')
+ v-btn(flat, color='primary' @click='$refs.timeDialog.save(time)', block) ok
+
v-btn(icon, @click='remove'): v-icon(color='blue-grey') clear
@@ -60,7 +66,10 @@ export default {
},
dateActivator: false,
dateDialog: false,
+ timeActivator: false,
+ timeDialog: false,
countries: [],
+ groups: [],
criteriaTypes: [
{ text: 'Path', value: 'path', icon: 'space_bar', color: 'blue', description: 'Match the path of the document being viewed.' },
{ text: 'Date', value: 'date', icon: 'date_range', color: 'blue', description: 'Match the current calendar day.' },