summaryrefslogtreecommitdiff
path: root/packages/client/src/pages/admin/queue.vue
diff options
context:
space:
mode:
Diffstat (limited to 'packages/client/src/pages/admin/queue.vue')
-rw-r--r--packages/client/src/pages/admin/queue.vue87
1 files changed, 38 insertions, 49 deletions
diff --git a/packages/client/src/pages/admin/queue.vue b/packages/client/src/pages/admin/queue.vue
index 35fd618c82..656b18199f 100644
--- a/packages/client/src/pages/admin/queue.vue
+++ b/packages/client/src/pages/admin/queue.vue
@@ -6,71 +6,60 @@
<XQueue :connection="connection" domain="deliver">
<template #title>Out</template>
</XQueue>
- <MkButton danger @click="clear()"><i class="fas fa-trash-alt"></i> {{ $ts.clearQueue }}</MkButton>
+ <MkButton danger @click="clear()"><i class="fas fa-trash-alt"></i> {{ i18n.ts.clearQueue }}</MkButton>
</MkSpacer>
</template>
-<script lang="ts">
-import { defineComponent, markRaw } from 'vue';
+<script lang="ts" setup>
+import { markRaw, onMounted, onBeforeUnmount, nextTick } from 'vue';
import MkButton from '@/components/ui/button.vue';
import XQueue from './queue.chart.vue';
import * as os from '@/os';
import { stream } from '@/stream';
import * as symbols from '@/symbols';
import * as config from '@/config';
+import { i18n } from '@/i18n';
-export default defineComponent({
- components: {
- MkButton,
- XQueue,
- },
+const connection = markRaw(stream.useChannel('queueStats'));
- emits: ['info'],
+function clear() {
+ os.confirm({
+ type: 'warning',
+ title: i18n.ts.clearQueueConfirmTitle,
+ text: i18n.ts.clearQueueConfirmText,
+ }).then(({ canceled }) => {
+ if (canceled) return;
- data() {
- return {
- [symbols.PAGE_INFO]: {
- title: this.$ts.jobQueue,
- icon: 'fas fa-clipboard-list',
- bg: 'var(--bg)',
- actions: [{
- asFullButton: true,
- icon: 'fas fa-up-right-from-square',
- text: this.$ts.dashboard,
- handler: () => {
- window.open(config.url + '/queue', '_blank');
- },
- }],
- },
- connection: markRaw(stream.useChannel('queueStats')),
- }
- },
+ os.apiWithDialog('admin/queue/clear');
+ });
+}
- mounted() {
- this.$nextTick(() => {
- this.connection.send('requestLog', {
- id: Math.random().toString().substr(2, 8),
- length: 200
- });
+onMounted(() => {
+ nextTick(() => {
+ connection.send('requestLog', {
+ id: Math.random().toString().substr(2, 8),
+ length: 200
});
- },
-
- beforeUnmount() {
- this.connection.dispose();
- },
+ });
+});
- methods: {
- clear() {
- os.confirm({
- type: 'warning',
- title: this.$ts.clearQueueConfirmTitle,
- text: this.$ts.clearQueueConfirmText,
- }).then(({ canceled }) => {
- if (canceled) return;
+onBeforeUnmount(() => {
+ connection.dispose();
+});
- os.apiWithDialog('admin/queue/clear', {});
- });
- }
+defineExpose({
+ [symbols.PAGE_INFO]: {
+ title: i18n.ts.jobQueue,
+ icon: 'fas fa-clipboard-list',
+ bg: 'var(--bg)',
+ actions: [{
+ asFullButton: true,
+ icon: 'fas fa-up-right-from-square',
+ text: i18n.ts.dashboard,
+ handler: () => {
+ window.open(config.url + '/queue', '_blank');
+ },
+ }],
}
});
</script>