(add) ロール制御
This commit is contained in:
parent
8608df20b2
commit
7694d17b2e
10 changed files with 53 additions and 4 deletions
|
|
@ -929,13 +929,13 @@ function openOtherSettingsMenu(ev: MouseEvent) {
|
|||
text: i18n.ts.reactionAcceptance,
|
||||
icon: reactionAcceptanceIcon,
|
||||
action: toggleReactionAcceptance,
|
||||
}, {
|
||||
}, ($i.policies?.canScheduleNote) ? {
|
||||
type: 'button',
|
||||
text: i18n.ts.schedulePost,
|
||||
icon: 'ti ti-calendar-time',
|
||||
indicate: (schedule != null),
|
||||
action: toggleSchedule,
|
||||
}, null, {
|
||||
} : undefined, ...(($i.policies?.canScheduleNote) ? [ null, {
|
||||
type: 'button',
|
||||
text: i18n.ts._schedulePost.list,
|
||||
icon: 'ti ti-calendar-event',
|
||||
|
|
@ -944,7 +944,7 @@ function openOtherSettingsMenu(ev: MouseEvent) {
|
|||
emit('cancel');
|
||||
listSchedulePost();
|
||||
},
|
||||
}], ev.currentTarget ?? ev.target, {
|
||||
}] : [])], ev.currentTarget ?? ev.target, {
|
||||
align: 'right',
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@ export const ROLE_POLICIES = [
|
|||
'gtlAvailable',
|
||||
'ltlAvailable',
|
||||
'canPublicNote',
|
||||
'canScheduleNote',
|
||||
'canInvite',
|
||||
'inviteLimit',
|
||||
'inviteLimitCycle',
|
||||
|
|
|
|||
|
|
@ -174,6 +174,7 @@ export const navbarItemDef = reactive({
|
|||
scheduledNotes: {
|
||||
title: i18n.ts._schedulePost.list,
|
||||
icon: 'ti ti-calendar-event',
|
||||
show: computed(() => $i && $i.policies?.canScheduleNote),
|
||||
action: (ev) => {
|
||||
os.listSchedulePost();
|
||||
},
|
||||
|
|
|
|||
|
|
@ -160,6 +160,26 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
</div>
|
||||
</MkFolder>
|
||||
|
||||
<MkFolder v-if="matchQuery([i18n.ts._role._options.canScheduleNote, 'canScheduleNote'])">
|
||||
<template #label>{{ i18n.ts._role._options.canScheduleNote }}</template>
|
||||
<template #suffix>
|
||||
<span v-if="role.policies.canScheduleNote.useDefault" :class="$style.useDefaultLabel">{{ i18n.ts._role.useBaseValue }}</span>
|
||||
<span v-else>{{ role.policies.canScheduleNote.value ? i18n.ts.yes : i18n.ts.no }}</span>
|
||||
<span :class="$style.priorityIndicator"><i :class="getPriorityIcon(role.policies.canScheduleNote)"></i></span>
|
||||
</template>
|
||||
<div class="_gaps">
|
||||
<MkSwitch v-model="role.policies.canScheduleNote.useDefault" :readonly="readonly">
|
||||
<template #label>{{ i18n.ts._role.useBaseValue }}</template>
|
||||
</MkSwitch>
|
||||
<MkSwitch v-model="role.policies.canScheduleNote.value" :disabled="role.policies.canScheduleNote.useDefault" :readonly="readonly">
|
||||
<template #label>{{ i18n.ts.enable }}</template>
|
||||
</MkSwitch>
|
||||
<MkRange v-model="role.policies.canScheduleNote.priority" :min="0" :max="2" :step="1" easing :textConverter="(v) => v === 0 ? i18n.ts._role._priority.low : v === 1 ? i18n.ts._role._priority.middle : v === 2 ? i18n.ts._role._priority.high : ''">
|
||||
<template #label>{{ i18n.ts._role.priority }}</template>
|
||||
</MkRange>
|
||||
</div>
|
||||
</MkFolder>
|
||||
|
||||
<MkFolder v-if="matchQuery([i18n.ts._role._options.canInvite, 'canInvite'])">
|
||||
<template #label>{{ i18n.ts._role._options.canInvite }}</template>
|
||||
<template #suffix>
|
||||
|
|
@ -549,7 +569,7 @@ import MkSwitch from '@/components/MkSwitch.vue';
|
|||
import MkRange from '@/components/MkRange.vue';
|
||||
import FormSlot from '@/components/form/slot.vue';
|
||||
import { i18n } from '@/i18n.js';
|
||||
import { ROLE_POLICIES } from '@/const';
|
||||
import { ROLE_POLICIES } from '@/const.js';
|
||||
import { instance } from '@/instance.js';
|
||||
import { deepClone } from '@/scripts/clone.js';
|
||||
|
||||
|
|
|
|||
|
|
@ -48,6 +48,14 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
</MkSwitch>
|
||||
</MkFolder>
|
||||
|
||||
<MkFolder v-if="matchQuery([i18n.ts._role._options.canScheduleNote, 'canScheduleNote'])">
|
||||
<template #label>{{ i18n.ts._role._options.canScheduleNote }}</template>
|
||||
<template #suffix>{{ policies.canScheduleNote ? i18n.ts.yes : i18n.ts.no }}</template>
|
||||
<MkSwitch v-model="policies.canScheduleNote">
|
||||
<template #label>{{ i18n.ts.enable }}</template>
|
||||
</MkSwitch>
|
||||
</MkFolder>
|
||||
|
||||
<MkFolder v-if="matchQuery([i18n.ts._role._options.canInvite, 'canInvite'])">
|
||||
<template #label>{{ i18n.ts._role._options.canInvite }}</template>
|
||||
<template #suffix>{{ policies.canInvite ? i18n.ts.yes : i18n.ts.no }}</template>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue