summaryrefslogtreecommitdiff
path: root/src/client/app/admin/views
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-07-03 03:58:45 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-07-03 03:58:45 +0900
commitf17e229c1e390eb98f167c918dde87dbbfcaacf2 (patch)
tree34f39d6d2c8c3b9e91613897346424b312c393ad /src/client/app/admin/views
parentMFMで連続したスペースがひとつに纏まるのを修正 (diff)
downloadsharkey-f17e229c1e390eb98f167c918dde87dbbfcaacf2.tar.gz
sharkey-f17e229c1e390eb98f167c918dde87dbbfcaacf2.tar.bz2
sharkey-f17e229c1e390eb98f167c918dde87dbbfcaacf2.zip
Resolve #5072
Diffstat (limited to 'src/client/app/admin/views')
-rw-r--r--src/client/app/admin/views/db.vue26
1 files changed, 24 insertions, 2 deletions
diff --git a/src/client/app/admin/views/db.vue b/src/client/app/admin/views/db.vue
index 7818546e76..9f87a749b6 100644
--- a/src/client/app/admin/views/db.vue
+++ b/src/client/app/admin/views/db.vue
@@ -5,6 +5,14 @@
<section v-if="tables">
<div v-for="table in Object.keys(tables)"><b>{{ table }}</b> {{ tables[table].count | number }} {{ tables[table].size | bytes }}</div>
</section>
+ <section>
+ <header><fa :icon="faBroom"/> {{ $t('vacuum') }}</header>
+ <ui-info>{{ $t('vacuum-info') }}</ui-info>
+ <ui-switch v-model="fullVacuum">FULL</ui-switch>
+ <ui-switch v-model="analyzeVacuum">ANALYZE</ui-switch>
+ <ui-button @click="vacuum()"><fa :icon="faBroom"/> {{ $t('vacuum') }}</ui-button>
+ <ui-info warn>{{ $t('vacuum-exclamation') }}</ui-info>
+ </section>
</ui-card>
</div>
</template>
@@ -12,7 +20,7 @@
<script lang="ts">
import Vue from 'vue';
import i18n from '../../i18n';
-import { faDatabase } from '@fortawesome/free-solid-svg-icons';
+import { faDatabase, faBroom } from '@fortawesome/free-solid-svg-icons';
export default Vue.extend({
i18n: i18n('admin/views/db.vue'),
@@ -20,7 +28,9 @@ export default Vue.extend({
data() {
return {
tables: null,
- faDatabase
+ fullVacuum: true,
+ analyzeVacuum: true,
+ faDatabase, faBroom
};
},
@@ -34,6 +44,18 @@ export default Vue.extend({
this.tables = tables;
});
},
+
+ vacuum() {
+ this.$root.api('admin/vacuum', {
+ full: this.fullVacuum,
+ analyze: this.analyzeVacuum,
+ }).then(() => {
+ this.$root.dialog({
+ type: 'success',
+ splash: true
+ });
+ });
+ },
}
});
</script>