mirror of
https://github.com/paricafe/misskey.git
synced 2025-01-21 04:38:41 -06:00
61fae45390
* feat: 通報を受けた際にメールまたはWebhookで通知を送出出来るようにする
* モデログに対応&エンドポイントを単一オブジェクトでのサポートに変更(API経由で大量に作るシチュエーションもないと思うので)
* fix spdx
* fix migration
* fix migration
* fix models
* add e2e webhook
* tweak
* fix modlog
* fix bugs
* add tests and fix bugs
* add tests and fix bugs
* add tests
* fix path
* regenerate locale
* 混入除去
* 混入除去
* add abuseReportResolved
* fix pnpm-lock.yaml
* add abuseReportResolved test
* fix bugs
* fix ui
* add tests
* fix CHANGELOG.md
* add tests
* add RoleService.getModeratorIds tests
* WebhookServiceをUserとSystemに分割
* fix CHANGELOG.md
* fix test
* insertOneを使う用に
* fix
* regenerate locales
* revert version
* separate webhook job queue
* fix
* 🎨
* Update QueueProcessorService.ts
---------
Co-authored-by: osamu <46447427+sam-osamu@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
117 lines
2.3 KiB
Vue
117 lines
2.3 KiB
Vue
<!--
|
|
SPDX-FileCopyrightText: syuilo and misskey-project
|
|
SPDX-License-Identifier: AGPL-3.0-only
|
|
-->
|
|
|
|
<template>
|
|
<div :class="$style.main">
|
|
<span :class="$style.icon">
|
|
<i v-if="!entity.isActive" class="ti ti-player-pause"/>
|
|
<i v-else-if="entity.latestStatus === null" class="ti ti-circle"/>
|
|
<i
|
|
v-else-if="[200, 201, 204].includes(entity.latestStatus)"
|
|
class="ti ti-check"
|
|
:style="{ color: 'var(--success)' }"
|
|
/>
|
|
<i v-else class="ti ti-alert-triangle" :style="{ color: 'var(--error)' }"/>
|
|
</span>
|
|
<span :class="$style.text">{{ entity.name || entity.url }}</span>
|
|
<span :class="$style.suffix">
|
|
<MkTime v-if="entity.latestSentAt" :time="entity.latestSentAt" style="margin-right: 8px"/>
|
|
<button :class="$style.suffixButton" @click="onEditClick">
|
|
<i class="ti ti-settings"></i>
|
|
</button>
|
|
<button :class="$style.suffixButton" @click="onDeleteClick">
|
|
<i class="ti ti-trash"></i>
|
|
</button>
|
|
</span>
|
|
</div>
|
|
</template>
|
|
|
|
<script lang="ts" setup>
|
|
import { entities } from 'misskey-js';
|
|
import { toRefs } from 'vue';
|
|
|
|
const emit = defineEmits<{
|
|
(ev: 'edit', value: entities.SystemWebhook): void;
|
|
(ev: 'delete', value: entities.SystemWebhook): void;
|
|
}>();
|
|
|
|
const props = defineProps<{
|
|
entity: entities.SystemWebhook;
|
|
}>();
|
|
|
|
const { entity } = toRefs(props);
|
|
|
|
function onEditClick() {
|
|
emit('edit', entity.value);
|
|
}
|
|
|
|
function onDeleteClick() {
|
|
emit('delete', entity.value);
|
|
}
|
|
|
|
</script>
|
|
|
|
<style module lang="scss">
|
|
.main {
|
|
display: flex;
|
|
align-items: center;
|
|
width: 100%;
|
|
box-sizing: border-box;
|
|
padding: 10px 14px;
|
|
background: var(--buttonBg);
|
|
border: none;
|
|
border-radius: 6px;
|
|
font-size: 0.9em;
|
|
|
|
&:hover {
|
|
text-decoration: none;
|
|
background: var(--buttonHoverBg);
|
|
}
|
|
|
|
&.active {
|
|
color: var(--accent);
|
|
background: var(--buttonHoverBg);
|
|
}
|
|
}
|
|
|
|
.icon {
|
|
margin-right: 0.75em;
|
|
flex-shrink: 0;
|
|
text-align: center;
|
|
color: var(--fgTransparentWeak);
|
|
}
|
|
|
|
.text {
|
|
flex-shrink: 1;
|
|
white-space: normal;
|
|
padding-right: 12px;
|
|
text-align: center;
|
|
}
|
|
|
|
.suffix {
|
|
display: flex;
|
|
flex-direction: row;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gaps: 4px;
|
|
margin-left: auto;
|
|
margin-right: -8px;
|
|
opacity: 0.7;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.suffixButton {
|
|
background: transparent;
|
|
border: none;
|
|
border-radius: 9999px;
|
|
margin-top: -8px;
|
|
margin-bottom: -8px;
|
|
padding: 8px;
|
|
|
|
&:hover {
|
|
background: var(--buttonBg);
|
|
}
|
|
}
|
|
</style>
|