🎨
This commit is contained in:
		
							parent
							
								
									2d8b97287e
								
							
						
					
					
						commit
						dace5b6940
					
				
					 2 changed files with 93 additions and 18 deletions
				
			
		|  | @ -1,6 +1,11 @@ | ||||||
| <template> | <template> | ||||||
| <MkA v-adaptive-bg :to="`/admin/roles/${role.id}`" class="_panel" :class="$style.root" tabindex="-1" :style="{ '--color': role.color }"> | <MkA v-adaptive-bg :to="`/admin/roles/${role.id}`" class="_panel" :class="$style.root" tabindex="-1" :style="{ '--color': role.color }"> | ||||||
| 	<div :class="$style.title"> | 	<div :class="$style.title"> | ||||||
|  | 		<span :class="$style.icon"> | ||||||
|  | 			<i v-if="role.isAdministrator" class="ti ti-crown" style="color: var(--accent);"></i> | ||||||
|  | 			<i v-else-if="role.isModerator" class="ti ti-shield" style="color: var(--accent);"></i> | ||||||
|  | 			<i v-else class="ti ti-user" style="opacity: 0.7;"></i> | ||||||
|  | 		</span> | ||||||
| 		<span :class="$style.name">{{ role.name }}</span> | 		<span :class="$style.name">{{ role.name }}</span> | ||||||
| 		<span v-if="role.target === 'manual'" :class="$style.users">{{ role.usersCount }} users</span> | 		<span v-if="role.target === 'manual'" :class="$style.users">{{ role.usersCount }} users</span> | ||||||
| 		<span v-else-if="role.target === 'conditional'" :class="$style.users">({{ i18n.ts._role.conditional }})</span> | 		<span v-else-if="role.target === 'conditional'" :class="$style.users">({{ i18n.ts._role.conditional }})</span> | ||||||
|  | @ -31,6 +36,10 @@ const props = defineProps<{ | ||||||
| 	display: flex; | 	display: flex; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | .icon { | ||||||
|  | 	margin-right: 8px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| .name { | .name { | ||||||
| 	font-weight: bold; | 	font-weight: bold; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -14,7 +14,7 @@ | ||||||
| 	</MkInput> | 	</MkInput> | ||||||
| 
 | 
 | ||||||
| 	<MkSelect v-model="rolePermission" :readonly="readonly"> | 	<MkSelect v-model="rolePermission" :readonly="readonly"> | ||||||
| 		<template #label>{{ i18n.ts._role.permission }}</template> | 		<template #label><i class="ti ti-shield-lock"></i> {{ i18n.ts._role.permission }}</template> | ||||||
| 		<template #caption><div v-html="i18n.ts._role.descriptionOfPermission.replaceAll('\n', '<br>')"></div></template> | 		<template #caption><div v-html="i18n.ts._role.descriptionOfPermission.replaceAll('\n', '<br>')"></div></template> | ||||||
| 		<option value="normal">{{ i18n.ts.normalUser }}</option> | 		<option value="normal">{{ i18n.ts.normalUser }}</option> | ||||||
| 		<option value="moderator">{{ i18n.ts.moderator }}</option> | 		<option value="moderator">{{ i18n.ts.moderator }}</option> | ||||||
|  | @ -22,7 +22,7 @@ | ||||||
| 	</MkSelect> | 	</MkSelect> | ||||||
| 
 | 
 | ||||||
| 	<MkSelect v-model="target" :readonly="readonly"> | 	<MkSelect v-model="target" :readonly="readonly"> | ||||||
| 		<template #label>{{ i18n.ts._role.assignTarget }}</template> | 		<template #label><i class="ti ti-users"></i> {{ i18n.ts._role.assignTarget }}</template> | ||||||
| 		<template #caption><div v-html="i18n.ts._role.descriptionOfAssignTarget.replaceAll('\n', '<br>')"></div></template> | 		<template #caption><div v-html="i18n.ts._role.descriptionOfAssignTarget.replaceAll('\n', '<br>')"></div></template> | ||||||
| 		<option value="manual">{{ i18n.ts._role.manual }}</option> | 		<option value="manual">{{ i18n.ts._role.manual }}</option> | ||||||
| 		<option value="conditional">{{ i18n.ts._role.conditional }}</option> | 		<option value="conditional">{{ i18n.ts._role.conditional }}</option> | ||||||
|  | @ -36,7 +36,7 @@ | ||||||
| 	</MkFolder> | 	</MkFolder> | ||||||
| 
 | 
 | ||||||
| 	<FormSlot> | 	<FormSlot> | ||||||
| 		<template #label>{{ i18n.ts._role.policies }}</template> | 		<template #label><i class="ti ti-license"></i> {{ i18n.ts._role.policies }}</template> | ||||||
| 		<div class="_gaps_s"> | 		<div class="_gaps_s"> | ||||||
| 			<MkInput v-model="q" type="search"> | 			<MkInput v-model="q" type="search"> | ||||||
| 				<template #prefix><i class="ti ti-search"></i></template> | 				<template #prefix><i class="ti ti-search"></i></template> | ||||||
|  | @ -44,7 +44,11 @@ | ||||||
| 
 | 
 | ||||||
| 			<MkFolder v-if="matchQuery([i18n.ts._role._options.rateLimitFactor, 'rateLimitFactor'])"> | 			<MkFolder v-if="matchQuery([i18n.ts._role._options.rateLimitFactor, 'rateLimitFactor'])"> | ||||||
| 				<template #label>{{ i18n.ts._role._options.rateLimitFactor }}</template> | 				<template #label>{{ i18n.ts._role._options.rateLimitFactor }}</template> | ||||||
| 				<template #suffix>{{ policies.rateLimitFactor.useDefault ? i18n.ts._role.useBaseValue : `${Math.floor(policies.rateLimitFactor.value * 100)}%` }} <i :class="getPriorityIcon(policies.rateLimitFactor)"></i></template> | 				<template #suffix> | ||||||
|  | 					<span v-if="policies.rateLimitFactor.useDefault" :class="$style.useDefaultLabel">{{ i18n.ts._role.useBaseValue }}</span> | ||||||
|  | 					<span v-else>{{ `${Math.floor(policies.rateLimitFactor.value * 100)}%` }}</span> | ||||||
|  | 					<span :class="$style.priorityIndicator"><i :class="getPriorityIcon(policies.rateLimitFactor)"></i></span> | ||||||
|  | 				</template> | ||||||
| 				<div class="_gaps"> | 				<div class="_gaps"> | ||||||
| 					<MkSwitch v-model="policies.rateLimitFactor.useDefault" :readonly="readonly"> | 					<MkSwitch v-model="policies.rateLimitFactor.useDefault" :readonly="readonly"> | ||||||
| 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | ||||||
|  | @ -61,7 +65,11 @@ | ||||||
| 
 | 
 | ||||||
| 			<MkFolder v-if="matchQuery([i18n.ts._role._options.gtlAvailable, 'gtlAvailable'])"> | 			<MkFolder v-if="matchQuery([i18n.ts._role._options.gtlAvailable, 'gtlAvailable'])"> | ||||||
| 				<template #label>{{ i18n.ts._role._options.gtlAvailable }}</template> | 				<template #label>{{ i18n.ts._role._options.gtlAvailable }}</template> | ||||||
| 				<template #suffix>{{ policies.gtlAvailable.useDefault ? i18n.ts._role.useBaseValue : (policies.gtlAvailable.value ? i18n.ts.yes : i18n.ts.no) }} <i :class="getPriorityIcon(policies.gtlAvailable)"></i></template> | 				<template #suffix> | ||||||
|  | 					<span v-if="policies.gtlAvailable.useDefault" :class="$style.useDefaultLabel">{{ i18n.ts._role.useBaseValue }}</span> | ||||||
|  | 					<span v-else>{{ policies.gtlAvailable.value ? i18n.ts.yes : i18n.ts.no }}</span> | ||||||
|  | 					<span :class="$style.priorityIndicator"><i :class="getPriorityIcon(policies.gtlAvailable)"></i></span> | ||||||
|  | 				</template> | ||||||
| 				<div class="_gaps"> | 				<div class="_gaps"> | ||||||
| 					<MkSwitch v-model="policies.gtlAvailable.useDefault" :readonly="readonly"> | 					<MkSwitch v-model="policies.gtlAvailable.useDefault" :readonly="readonly"> | ||||||
| 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | ||||||
|  | @ -77,7 +85,11 @@ | ||||||
| 
 | 
 | ||||||
| 			<MkFolder v-if="matchQuery([i18n.ts._role._options.ltlAvailable, 'ltlAvailable'])"> | 			<MkFolder v-if="matchQuery([i18n.ts._role._options.ltlAvailable, 'ltlAvailable'])"> | ||||||
| 				<template #label>{{ i18n.ts._role._options.ltlAvailable }}</template> | 				<template #label>{{ i18n.ts._role._options.ltlAvailable }}</template> | ||||||
| 				<template #suffix>{{ policies.ltlAvailable.useDefault ? i18n.ts._role.useBaseValue : (policies.ltlAvailable.value ? i18n.ts.yes : i18n.ts.no) }} <i :class="getPriorityIcon(policies.ltlAvailable)"></i></template> | 				<template #suffix> | ||||||
|  | 					<span v-if="policies.ltlAvailable.useDefault" :class="$style.useDefaultLabel">{{ i18n.ts._role.useBaseValue }}</span> | ||||||
|  | 					<span v-else>{{ policies.ltlAvailable.value ? i18n.ts.yes : i18n.ts.no }}</span> | ||||||
|  | 					<span :class="$style.priorityIndicator"><i :class="getPriorityIcon(policies.ltlAvailable)"></i></span> | ||||||
|  | 				</template> | ||||||
| 				<div class="_gaps"> | 				<div class="_gaps"> | ||||||
| 					<MkSwitch v-model="policies.ltlAvailable.useDefault" :readonly="readonly"> | 					<MkSwitch v-model="policies.ltlAvailable.useDefault" :readonly="readonly"> | ||||||
| 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | ||||||
|  | @ -93,7 +105,11 @@ | ||||||
| 
 | 
 | ||||||
| 			<MkFolder v-if="matchQuery([i18n.ts._role._options.canPublicNote, 'canPublicNote'])"> | 			<MkFolder v-if="matchQuery([i18n.ts._role._options.canPublicNote, 'canPublicNote'])"> | ||||||
| 				<template #label>{{ i18n.ts._role._options.canPublicNote }}</template> | 				<template #label>{{ i18n.ts._role._options.canPublicNote }}</template> | ||||||
| 				<template #suffix>{{ policies.canPublicNote.useDefault ? i18n.ts._role.useBaseValue : (policies.canPublicNote.value ? i18n.ts.yes : i18n.ts.no) }} <i :class="getPriorityIcon(policies.canPublicNote)"></i></template> | 				<template #suffix> | ||||||
|  | 					<span v-if="policies.canPublicNote.useDefault" :class="$style.useDefaultLabel">{{ i18n.ts._role.useBaseValue }}</span> | ||||||
|  | 					<span v-else>{{ policies.canPublicNote.value ? i18n.ts.yes : i18n.ts.no }}</span> | ||||||
|  | 					<span :class="$style.priorityIndicator"><i :class="getPriorityIcon(policies.canPublicNote)"></i></span> | ||||||
|  | 				</template> | ||||||
| 				<div class="_gaps"> | 				<div class="_gaps"> | ||||||
| 					<MkSwitch v-model="policies.canPublicNote.useDefault" :readonly="readonly"> | 					<MkSwitch v-model="policies.canPublicNote.useDefault" :readonly="readonly"> | ||||||
| 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | ||||||
|  | @ -109,7 +125,11 @@ | ||||||
| 
 | 
 | ||||||
| 			<MkFolder v-if="matchQuery([i18n.ts._role._options.canInvite, 'canInvite'])"> | 			<MkFolder v-if="matchQuery([i18n.ts._role._options.canInvite, 'canInvite'])"> | ||||||
| 				<template #label>{{ i18n.ts._role._options.canInvite }}</template> | 				<template #label>{{ i18n.ts._role._options.canInvite }}</template> | ||||||
| 				<template #suffix>{{ policies.canInvite.useDefault ? i18n.ts._role.useBaseValue : (policies.canInvite.value ? i18n.ts.yes : i18n.ts.no) }} <i :class="getPriorityIcon(policies.canInvite)"></i></template> | 				<template #suffix> | ||||||
|  | 					<span v-if="policies.canInvite.useDefault" :class="$style.useDefaultLabel">{{ i18n.ts._role.useBaseValue }}</span> | ||||||
|  | 					<span v-else>{{ policies.canInvite.value ? i18n.ts.yes : i18n.ts.no }}</span> | ||||||
|  | 					<span :class="$style.priorityIndicator"><i :class="getPriorityIcon(policies.canInvite)"></i></span> | ||||||
|  | 				</template> | ||||||
| 				<div class="_gaps"> | 				<div class="_gaps"> | ||||||
| 					<MkSwitch v-model="policies.canInvite.useDefault" :readonly="readonly"> | 					<MkSwitch v-model="policies.canInvite.useDefault" :readonly="readonly"> | ||||||
| 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | ||||||
|  | @ -125,7 +145,11 @@ | ||||||
| 
 | 
 | ||||||
| 			<MkFolder v-if="matchQuery([i18n.ts._role._options.canManageCustomEmojis, 'canManageCustomEmojis'])"> | 			<MkFolder v-if="matchQuery([i18n.ts._role._options.canManageCustomEmojis, 'canManageCustomEmojis'])"> | ||||||
| 				<template #label>{{ i18n.ts._role._options.canManageCustomEmojis }}</template> | 				<template #label>{{ i18n.ts._role._options.canManageCustomEmojis }}</template> | ||||||
| 				<template #suffix>{{ policies.canManageCustomEmojis.useDefault ? i18n.ts._role.useBaseValue : (policies.canManageCustomEmojis.value ? i18n.ts.yes : i18n.ts.no) }} <i :class="getPriorityIcon(policies.canManageCustomEmojis)"></i></template> | 				<template #suffix> | ||||||
|  | 					<span v-if="policies.canManageCustomEmojis.useDefault" :class="$style.useDefaultLabel">{{ i18n.ts._role.useBaseValue }}</span> | ||||||
|  | 					<span v-else>{{ policies.canManageCustomEmojis.value ? i18n.ts.yes : i18n.ts.no }}</span> | ||||||
|  | 					<span :class="$style.priorityIndicator"><i :class="getPriorityIcon(policies.canManageCustomEmojis)"></i></span> | ||||||
|  | 				</template> | ||||||
| 				<div class="_gaps"> | 				<div class="_gaps"> | ||||||
| 					<MkSwitch v-model="policies.canManageCustomEmojis.useDefault" :readonly="readonly"> | 					<MkSwitch v-model="policies.canManageCustomEmojis.useDefault" :readonly="readonly"> | ||||||
| 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | ||||||
|  | @ -141,7 +165,11 @@ | ||||||
| 
 | 
 | ||||||
| 			<MkFolder v-if="matchQuery([i18n.ts._role._options.driveCapacity, 'driveCapacityMb'])"> | 			<MkFolder v-if="matchQuery([i18n.ts._role._options.driveCapacity, 'driveCapacityMb'])"> | ||||||
| 				<template #label>{{ i18n.ts._role._options.driveCapacity }}</template> | 				<template #label>{{ i18n.ts._role._options.driveCapacity }}</template> | ||||||
| 				<template #suffix>{{ policies.driveCapacityMb.useDefault ? i18n.ts._role.useBaseValue : (policies.driveCapacityMb.value + 'MB') }} <i :class="getPriorityIcon(policies.driveCapacityMb)"></i></template> | 				<template #suffix> | ||||||
|  | 					<span v-if="policies.driveCapacityMb.useDefault" :class="$style.useDefaultLabel">{{ i18n.ts._role.useBaseValue }}</span> | ||||||
|  | 					<span v-else>{{ policies.driveCapacityMb.value + 'MB' }}</span> | ||||||
|  | 					<span :class="$style.priorityIndicator"><i :class="getPriorityIcon(policies.driveCapacityMb)"></i></span> | ||||||
|  | 				</template> | ||||||
| 				<div class="_gaps"> | 				<div class="_gaps"> | ||||||
| 					<MkSwitch v-model="policies.driveCapacityMb.useDefault" :readonly="readonly"> | 					<MkSwitch v-model="policies.driveCapacityMb.useDefault" :readonly="readonly"> | ||||||
| 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | ||||||
|  | @ -157,7 +185,11 @@ | ||||||
| 
 | 
 | ||||||
| 			<MkFolder v-if="matchQuery([i18n.ts._role._options.pinMax, 'pinLimit'])"> | 			<MkFolder v-if="matchQuery([i18n.ts._role._options.pinMax, 'pinLimit'])"> | ||||||
| 				<template #label>{{ i18n.ts._role._options.pinMax }}</template> | 				<template #label>{{ i18n.ts._role._options.pinMax }}</template> | ||||||
| 				<template #suffix>{{ policies.pinLimit.useDefault ? i18n.ts._role.useBaseValue : (policies.pinLimit.value) }} <i :class="getPriorityIcon(policies.pinLimit)"></i></template> | 				<template #suffix> | ||||||
|  | 					<span v-if="policies.pinLimit.useDefault" :class="$style.useDefaultLabel">{{ i18n.ts._role.useBaseValue }}</span> | ||||||
|  | 					<span v-else>{{ policies.pinLimit.value }}</span> | ||||||
|  | 					<span :class="$style.priorityIndicator"><i :class="getPriorityIcon(policies.pinLimit)"></i></span> | ||||||
|  | 				</template> | ||||||
| 				<div class="_gaps"> | 				<div class="_gaps"> | ||||||
| 					<MkSwitch v-model="policies.pinLimit.useDefault" :readonly="readonly"> | 					<MkSwitch v-model="policies.pinLimit.useDefault" :readonly="readonly"> | ||||||
| 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | ||||||
|  | @ -172,7 +204,11 @@ | ||||||
| 
 | 
 | ||||||
| 			<MkFolder v-if="matchQuery([i18n.ts._role._options.antennaMax, 'antennaLimit'])"> | 			<MkFolder v-if="matchQuery([i18n.ts._role._options.antennaMax, 'antennaLimit'])"> | ||||||
| 				<template #label>{{ i18n.ts._role._options.antennaMax }}</template> | 				<template #label>{{ i18n.ts._role._options.antennaMax }}</template> | ||||||
| 				<template #suffix>{{ policies.antennaLimit.useDefault ? i18n.ts._role.useBaseValue : (policies.antennaLimit.value) }} <i :class="getPriorityIcon(policies.antennaLimit)"></i></template> | 				<template #suffix> | ||||||
|  | 					<span v-if="policies.antennaLimit.useDefault" :class="$style.useDefaultLabel">{{ i18n.ts._role.useBaseValue }}</span> | ||||||
|  | 					<span v-else>{{ policies.antennaLimit.value }}</span> | ||||||
|  | 					<span :class="$style.priorityIndicator"><i :class="getPriorityIcon(policies.antennaLimit)"></i></span> | ||||||
|  | 				</template> | ||||||
| 				<div class="_gaps"> | 				<div class="_gaps"> | ||||||
| 					<MkSwitch v-model="policies.antennaLimit.useDefault" :readonly="readonly"> | 					<MkSwitch v-model="policies.antennaLimit.useDefault" :readonly="readonly"> | ||||||
| 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | ||||||
|  | @ -187,7 +223,11 @@ | ||||||
| 
 | 
 | ||||||
| 			<MkFolder v-if="matchQuery([i18n.ts._role._options.wordMuteMax, 'wordMuteLimit'])"> | 			<MkFolder v-if="matchQuery([i18n.ts._role._options.wordMuteMax, 'wordMuteLimit'])"> | ||||||
| 				<template #label>{{ i18n.ts._role._options.wordMuteMax }}</template> | 				<template #label>{{ i18n.ts._role._options.wordMuteMax }}</template> | ||||||
| 				<template #suffix>{{ policies.wordMuteLimit.useDefault ? i18n.ts._role.useBaseValue : (policies.wordMuteLimit.value) }} <i :class="getPriorityIcon(policies.wordMuteLimit)"></i></template> | 				<template #suffix> | ||||||
|  | 					<span v-if="policies.wordMuteLimit.useDefault" :class="$style.useDefaultLabel">{{ i18n.ts._role.useBaseValue }}</span> | ||||||
|  | 					<span v-else>{{ policies.wordMuteLimit.value }}</span> | ||||||
|  | 					<span :class="$style.priorityIndicator"><i :class="getPriorityIcon(policies.wordMuteLimit)"></i></span> | ||||||
|  | 				</template> | ||||||
| 				<div class="_gaps"> | 				<div class="_gaps"> | ||||||
| 					<MkSwitch v-model="policies.wordMuteLimit.useDefault" :readonly="readonly"> | 					<MkSwitch v-model="policies.wordMuteLimit.useDefault" :readonly="readonly"> | ||||||
| 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | ||||||
|  | @ -203,7 +243,11 @@ | ||||||
| 
 | 
 | ||||||
| 			<MkFolder v-if="matchQuery([i18n.ts._role._options.webhookMax, 'webhookLimit'])"> | 			<MkFolder v-if="matchQuery([i18n.ts._role._options.webhookMax, 'webhookLimit'])"> | ||||||
| 				<template #label>{{ i18n.ts._role._options.webhookMax }}</template> | 				<template #label>{{ i18n.ts._role._options.webhookMax }}</template> | ||||||
| 				<template #suffix>{{ policies.webhookLimit.useDefault ? i18n.ts._role.useBaseValue : (policies.webhookLimit.value) }} <i :class="getPriorityIcon(policies.webhookLimit)"></i></template> | 				<template #suffix> | ||||||
|  | 					<span v-if="policies.webhookLimit.useDefault" :class="$style.useDefaultLabel">{{ i18n.ts._role.useBaseValue }}</span> | ||||||
|  | 					<span v-else>{{ policies.webhookLimit.value }}</span> | ||||||
|  | 					<span :class="$style.priorityIndicator"><i :class="getPriorityIcon(policies.webhookLimit)"></i></span> | ||||||
|  | 				</template> | ||||||
| 				<div class="_gaps"> | 				<div class="_gaps"> | ||||||
| 					<MkSwitch v-model="policies.webhookLimit.useDefault" :readonly="readonly"> | 					<MkSwitch v-model="policies.webhookLimit.useDefault" :readonly="readonly"> | ||||||
| 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | ||||||
|  | @ -218,7 +262,11 @@ | ||||||
| 
 | 
 | ||||||
| 			<MkFolder v-if="matchQuery([i18n.ts._role._options.clipMax, 'clipLimit'])"> | 			<MkFolder v-if="matchQuery([i18n.ts._role._options.clipMax, 'clipLimit'])"> | ||||||
| 				<template #label>{{ i18n.ts._role._options.clipMax }}</template> | 				<template #label>{{ i18n.ts._role._options.clipMax }}</template> | ||||||
| 				<template #suffix>{{ policies.clipLimit.useDefault ? i18n.ts._role.useBaseValue : (policies.clipLimit.value) }} <i :class="getPriorityIcon(policies.clipLimit)"></i></template> | 				<template #suffix> | ||||||
|  | 					<span v-if="policies.clipLimit.useDefault" :class="$style.useDefaultLabel">{{ i18n.ts._role.useBaseValue }}</span> | ||||||
|  | 					<span v-else>{{ policies.clipLimit.value }}</span> | ||||||
|  | 					<span :class="$style.priorityIndicator"><i :class="getPriorityIcon(policies.clipLimit)"></i></span> | ||||||
|  | 				</template> | ||||||
| 				<div class="_gaps"> | 				<div class="_gaps"> | ||||||
| 					<MkSwitch v-model="policies.clipLimit.useDefault" :readonly="readonly"> | 					<MkSwitch v-model="policies.clipLimit.useDefault" :readonly="readonly"> | ||||||
| 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | ||||||
|  | @ -233,7 +281,11 @@ | ||||||
| 
 | 
 | ||||||
| 			<MkFolder v-if="matchQuery([i18n.ts._role._options.noteEachClipsMax, 'noteEachClipsLimit'])"> | 			<MkFolder v-if="matchQuery([i18n.ts._role._options.noteEachClipsMax, 'noteEachClipsLimit'])"> | ||||||
| 				<template #label>{{ i18n.ts._role._options.noteEachClipsMax }}</template> | 				<template #label>{{ i18n.ts._role._options.noteEachClipsMax }}</template> | ||||||
| 				<template #suffix>{{ policies.noteEachClipsLimit.useDefault ? i18n.ts._role.useBaseValue : (policies.noteEachClipsLimit.value) }} <i :class="getPriorityIcon(policies.noteEachClipsLimit)"></i></template> | 				<template #suffix> | ||||||
|  | 					<span v-if="policies.noteEachClipsLimit.useDefault" :class="$style.useDefaultLabel">{{ i18n.ts._role.useBaseValue }}</span> | ||||||
|  | 					<span v-else>{{ policies.noteEachClipsLimit.value }}</span> | ||||||
|  | 					<span :class="$style.priorityIndicator"><i :class="getPriorityIcon(policies.noteEachClipsLimit)"></i></span> | ||||||
|  | 				</template> | ||||||
| 				<div class="_gaps"> | 				<div class="_gaps"> | ||||||
| 					<MkSwitch v-model="policies.noteEachClipsLimit.useDefault" :readonly="readonly"> | 					<MkSwitch v-model="policies.noteEachClipsLimit.useDefault" :readonly="readonly"> | ||||||
| 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | ||||||
|  | @ -248,7 +300,11 @@ | ||||||
| 
 | 
 | ||||||
| 			<MkFolder v-if="matchQuery([i18n.ts._role._options.userListMax, 'userListLimit'])"> | 			<MkFolder v-if="matchQuery([i18n.ts._role._options.userListMax, 'userListLimit'])"> | ||||||
| 				<template #label>{{ i18n.ts._role._options.userListMax }}</template> | 				<template #label>{{ i18n.ts._role._options.userListMax }}</template> | ||||||
| 				<template #suffix>{{ policies.userListLimit.useDefault ? i18n.ts._role.useBaseValue : (policies.userListLimit.value) }} <i :class="getPriorityIcon(policies.userListLimit)"></i></template> | 				<template #suffix> | ||||||
|  | 					<span v-if="policies.userListLimit.useDefault" :class="$style.useDefaultLabel">{{ i18n.ts._role.useBaseValue }}</span> | ||||||
|  | 					<span v-else>{{ policies.userListLimit.value }}</span> | ||||||
|  | 					<span :class="$style.priorityIndicator"><i :class="getPriorityIcon(policies.userListLimit)"></i></span> | ||||||
|  | 				</template> | ||||||
| 				<div class="_gaps"> | 				<div class="_gaps"> | ||||||
| 					<MkSwitch v-model="policies.userListLimit.useDefault" :readonly="readonly"> | 					<MkSwitch v-model="policies.userListLimit.useDefault" :readonly="readonly"> | ||||||
| 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | ||||||
|  | @ -263,7 +319,11 @@ | ||||||
| 
 | 
 | ||||||
| 			<MkFolder v-if="matchQuery([i18n.ts._role._options.userEachUserListsMax, 'userEachUserListsLimit'])"> | 			<MkFolder v-if="matchQuery([i18n.ts._role._options.userEachUserListsMax, 'userEachUserListsLimit'])"> | ||||||
| 				<template #label>{{ i18n.ts._role._options.userEachUserListsMax }}</template> | 				<template #label>{{ i18n.ts._role._options.userEachUserListsMax }}</template> | ||||||
| 				<template #suffix>{{ policies.userEachUserListsLimit.useDefault ? i18n.ts._role.useBaseValue : (policies.userEachUserListsLimit.value) }} <i :class="getPriorityIcon(policies.userEachUserListsLimit)"></i></template> | 				<template #suffix> | ||||||
|  | 					<span v-if="policies.userEachUserListsLimit.useDefault" :class="$style.useDefaultLabel">{{ i18n.ts._role.useBaseValue }}</span> | ||||||
|  | 					<span v-else>{{ policies.userEachUserListsLimit.value }}</span> | ||||||
|  | 					<span :class="$style.priorityIndicator"><i :class="getPriorityIcon(policies.userEachUserListsLimit)"></i></span> | ||||||
|  | 				</template> | ||||||
| 				<div class="_gaps"> | 				<div class="_gaps"> | ||||||
| 					<MkSwitch v-model="policies.userEachUserListsLimit.useDefault" :readonly="readonly"> | 					<MkSwitch v-model="policies.userEachUserListsLimit.useDefault" :readonly="readonly"> | ||||||
| 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | 						<template #label>{{ i18n.ts._role.useBaseValue }}</template> | ||||||
|  | @ -413,5 +473,11 @@ async function save() { | ||||||
| </script> | </script> | ||||||
| 
 | 
 | ||||||
| <style lang="scss" module> | <style lang="scss" module> | ||||||
|  | .useDefaultLabel { | ||||||
|  | 	opacity: 0.7; | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
|  | .priorityIndicator { | ||||||
|  | 	margin-left: 8px; | ||||||
|  | } | ||||||
| </style> | </style> | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue