summaryrefslogtreecommitdiff
path: root/packages/frontend/src/components/MkSystemWebhookEditor.vue
diff options
context:
space:
mode:
authormisskey-release-bot[bot] <157398866+misskey-release-bot[bot]@users.noreply.github.com>2024-09-29 11:42:24 +0000
committerGitHub <noreply@github.com>2024-09-29 11:42:24 +0000
commit5fc8b3bc5018a2cb553f114a570cc33ef6831163 (patch)
tree40edc874ae384548fd13e55fff6e317d1ef84fbb /packages/frontend/src/components/MkSystemWebhookEditor.vue
parentMerge pull request #14391 from misskey-dev/develop (diff)
parentRelease: 2024.9.0 (diff)
downloadsharkey-5fc8b3bc5018a2cb553f114a570cc33ef6831163.tar.gz
sharkey-5fc8b3bc5018a2cb553f114a570cc33ef6831163.tar.bz2
sharkey-5fc8b3bc5018a2cb553f114a570cc33ef6831163.zip
Merge pull request #14580 from misskey-dev/develop
Release: 2024.9.0
Diffstat (limited to 'packages/frontend/src/components/MkSystemWebhookEditor.vue')
-rw-r--r--packages/frontend/src/components/MkSystemWebhookEditor.vue76
1 files changed, 66 insertions, 10 deletions
diff --git a/packages/frontend/src/components/MkSystemWebhookEditor.vue b/packages/frontend/src/components/MkSystemWebhookEditor.vue
index f5c7a3160b..ec3b1c90ca 100644
--- a/packages/frontend/src/components/MkSystemWebhookEditor.vue
+++ b/packages/frontend/src/components/MkSystemWebhookEditor.vue
@@ -35,16 +35,31 @@ SPDX-License-Identifier: AGPL-3.0-only
<MkFolder :defaultOpen="true">
<template #label>{{ i18n.ts._webhookSettings.trigger }}</template>
- <div class="_gaps_s">
- <MkSwitch v-model="events.abuseReport" :disabled="disabledEvents.abuseReport">
- <template #label>{{ i18n.ts._webhookSettings._systemEvents.abuseReport }}</template>
- </MkSwitch>
- <MkSwitch v-model="events.abuseReportResolved" :disabled="disabledEvents.abuseReportResolved">
- <template #label>{{ i18n.ts._webhookSettings._systemEvents.abuseReportResolved }}</template>
- </MkSwitch>
- <MkSwitch v-model="events.userCreated" :disabled="disabledEvents.userCreated">
- <template #label>{{ i18n.ts._webhookSettings._systemEvents.userCreated }}</template>
- </MkSwitch>
+ <div class="_gaps">
+ <div class="_gaps_s">
+ <div :class="$style.switchBox">
+ <MkSwitch v-model="events.abuseReport" :disabled="disabledEvents.abuseReport">
+ <template #label>{{ i18n.ts._webhookSettings._systemEvents.abuseReport }}</template>
+ </MkSwitch>
+ <MkButton v-show="mode === 'edit'" transparent :class="$style.testButton" :disabled="!(isActive && events.abuseReport)" @click="test('abuseReport')"><i class="ti ti-send"></i></MkButton>
+ </div>
+ <div :class="$style.switchBox">
+ <MkSwitch v-model="events.abuseReportResolved" :disabled="disabledEvents.abuseReportResolved">
+ <template #label>{{ i18n.ts._webhookSettings._systemEvents.abuseReportResolved }}</template>
+ </MkSwitch>
+ <MkButton v-show="mode === 'edit'" transparent :class="$style.testButton" :disabled="!(isActive && events.abuseReportResolved)" @click="test('abuseReportResolved')"><i class="ti ti-send"></i></MkButton>
+ </div>
+ <div :class="$style.switchBox">
+ <MkSwitch v-model="events.userCreated" :disabled="disabledEvents.userCreated">
+ <template #label>{{ i18n.ts._webhookSettings._systemEvents.userCreated }}</template>
+ </MkSwitch>
+ <MkButton v-show="mode === 'edit'" transparent :class="$style.testButton" :disabled="!(isActive && events.userCreated)" @click="test('userCreated')"><i class="ti ti-send"></i></MkButton>
+ </div>
+ </div>
+
+ <div v-show="mode === 'edit'" :class="$style.description">
+ {{ i18n.ts._webhookSettings.testRemarks }}
+ </div>
</div>
</MkFolder>
@@ -66,6 +81,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<script setup lang="ts">
import { computed, onMounted, ref, shallowRef, toRefs } from 'vue';
+import * as Misskey from 'misskey-js';
import MkInput from '@/components/MkInput.vue';
import MkSwitch from '@/components/MkSwitch.vue';
import {
@@ -180,6 +196,21 @@ async function loadingScope<T>(fn: () => Promise<T>): Promise<T> {
}
}
+async function test(type: Misskey.entities.SystemWebhook['on'][number]): Promise<void> {
+ if (!id.value) {
+ return Promise.resolve();
+ }
+
+ await os.apiWithDialog('admin/system-webhook/test', {
+ webhookId: id.value,
+ type,
+ override: {
+ secret: secret.value,
+ url: url.value,
+ },
+ });
+}
+
onMounted(async () => {
await loadingScope(async () => {
switch (mode.value) {
@@ -235,4 +266,29 @@ onMounted(async () => {
-webkit-backdrop-filter: var(--blur, blur(15px));
backdrop-filter: var(--blur, blur(15px));
}
+
+.switchBox {
+ display: flex;
+ align-items: center;
+ justify-content: start;
+
+ .testButton {
+ $buttonSize: 28px;
+ padding: 0;
+ width: $buttonSize;
+ min-width: $buttonSize;
+ max-width: $buttonSize;
+ height: $buttonSize;
+ margin-left: auto;
+ line-height: normal;
+ font-size: 90%;
+ border-radius: 9999px;
+ }
+}
+
+.description {
+ font-size: 0.85em;
+ padding: 8px 0 0 0;
+ color: var(--fgTransparentWeak);
+}
</style>