mirror of
https://git.joinsharkey.org/Sharkey/Sharkey.git
synced 2024-11-30 03:13:10 +02:00
merge: develop
This commit is contained in:
commit
db29a5c2da
134 changed files with 282 additions and 282 deletions
|
@ -15,7 +15,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<MkNoteSub v-if="appearNote.reply && !renoteCollapsed" :note="appearNote.reply" :class="$style.replyTo"/>
|
<MkNoteSub v-if="appearNote.reply && !renoteCollapsed" :note="appearNote.reply" :class="$style.replyTo"/>
|
||||||
<div v-if="pinned" :class="$style.tip"><i class="ph-push-pin ph-bold ph-lg"></i> {{ i18n.ts.pinnedNote }}</div>
|
<div v-if="pinned" :class="$style.tip"><i class="ph-push-pin ph-bold ph-lg"></i> {{ i18n.ts.pinnedNote }}</div>
|
||||||
<!--<div v-if="appearNote._prId_" class="tip"><i class="ph-megaphone ph-bold ph-lg"></i> {{ i18n.ts.promotion }}<button class="_textButton hide" @click="readPromo()">{{ i18n.ts.hideThisNote }} <i class="ph-x ph-bold ph-lg"></i></button></div>-->
|
<!--<div v-if="appearNote._prId_" class="tip"><i class="ph-megaphone ph-bold ph-lg"></i> {{ i18n.ts.promotion }}<button class="_textButton hide" @click="readPromo()">{{ i18n.ts.hideThisNote }} <i class="ph-x ph-bold ph-lg"></i></button></div>-->
|
||||||
<!--<div v-if="appearNote._featuredId_" class="tip"><i class="ph-lightning ph-bold pg-lg"></i> {{ i18n.ts.featured }}</div>-->
|
<!--<div v-if="appearNote._featuredId_" class="tip"><i class="ph-lightning ph-bold ph-lg"></i> {{ i18n.ts.featured }}</div>-->
|
||||||
<div v-if="isRenote" :class="$style.renote">
|
<div v-if="isRenote" :class="$style.renote">
|
||||||
<div v-if="note.channel" :class="$style.colorBar" :style="{ background: note.channel.color }"></div>
|
<div v-if="note.channel" :class="$style.colorBar" :style="{ background: note.channel.color }"></div>
|
||||||
<MkAvatar :class="$style.renoteAvatar" :user="note.user" link preview/>
|
<MkAvatar :class="$style.renoteAvatar" :user="note.user" link preview/>
|
||||||
|
@ -37,7 +37,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<i v-else-if="note.visibility === 'followers'" class="ph-lock ph-bold ph-lg"></i>
|
<i v-else-if="note.visibility === 'followers'" class="ph-lock ph-bold ph-lg"></i>
|
||||||
<i v-else-if="note.visibility === 'specified'" ref="specified" class="ph-envelope ph-bold ph-lg"></i>
|
<i v-else-if="note.visibility === 'specified'" ref="specified" class="ph-envelope ph-bold ph-lg"></i>
|
||||||
</span>
|
</span>
|
||||||
<span v-if="note.localOnly" style="margin-left: 0.5em;" :title="i18n.ts._visibility['disableFederation']"><i class="ph-rocket ph-bold pg-lg"></i></span>
|
<span v-if="note.localOnly" style="margin-left: 0.5em;" :title="i18n.ts._visibility['disableFederation']"><i class="ph-rocket ph-bold ph-lg"></i></span>
|
||||||
<span v-if="note.channel" style="margin-left: 0.5em;" :title="note.channel.name"><i class="ph-television ph-bold ph-lg"></i></span>
|
<span v-if="note.channel" style="margin-left: 0.5em;" :title="note.channel.name"><i class="ph-television ph-bold ph-lg"></i></span>
|
||||||
<span v-if="note.updatedAt" ref="menuVersionsButton" style="margin-left: 0.5em;" title="Edited" @mousedown="menuVersions()"><i class="ph-pencil ph-bold ph-lg"></i></span>
|
<span v-if="note.updatedAt" ref="menuVersionsButton" style="margin-left: 0.5em;" title="Edited" @mousedown="menuVersions()"><i class="ph-pencil ph-bold ph-lg"></i></span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -60,7 +60,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<div v-show="appearNote.cw == null || showContent" :class="[{ [$style.contentCollapsed]: collapsed }]" >
|
<div v-show="appearNote.cw == null || showContent" :class="[{ [$style.contentCollapsed]: collapsed }]" >
|
||||||
<div :class="$style.text">
|
<div :class="$style.text">
|
||||||
<span v-if="appearNote.isHidden" style="opacity: 0.5">({{ i18n.ts.private }})</span>
|
<span v-if="appearNote.isHidden" style="opacity: 0.5">({{ i18n.ts.private }})</span>
|
||||||
<MkA v-if="appearNote.replyId" :class="$style.replyIcon" :to="`/notes/${appearNote.replyId}`"><i class="ph-arrow-bend-left-up ph-bold pg-lg"></i></MkA>
|
<MkA v-if="appearNote.replyId" :class="$style.replyIcon" :to="`/notes/${appearNote.replyId}`"><i class="ph-arrow-bend-left-up ph-bold ph-lg"></i></MkA>
|
||||||
<Mfm
|
<Mfm
|
||||||
v-if="appearNote.text"
|
v-if="appearNote.text"
|
||||||
:parsedNodes="parsed"
|
:parsedNodes="parsed"
|
||||||
|
@ -101,7 +101,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</MkReactionsViewer>
|
</MkReactionsViewer>
|
||||||
<footer :class="$style.footer">
|
<footer :class="$style.footer">
|
||||||
<button :class="$style.footerButton" class="_button" v-on:click.stop @click="reply()">
|
<button :class="$style.footerButton" class="_button" v-on:click.stop @click="reply()">
|
||||||
<i class="ph-arrow-u-up-left ph-bold pg-lg"></i>
|
<i class="ph-arrow-u-up-left ph-bold ph-lg"></i>
|
||||||
<p v-if="appearNote.repliesCount > 0" :class="$style.footerButtonCount">{{ appearNote.repliesCount }}</p>
|
<p v-if="appearNote.repliesCount > 0" :class="$style.footerButtonCount">{{ appearNote.repliesCount }}</p>
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
|
|
|
@ -40,7 +40,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<i v-else-if="note.visibility === 'followers'" class="ph-lock ph-bold ph-lg"></i>
|
<i v-else-if="note.visibility === 'followers'" class="ph-lock ph-bold ph-lg"></i>
|
||||||
<i v-else-if="note.visibility === 'specified'" ref="specified" class="ph-envelope ph-bold ph-lg"></i>
|
<i v-else-if="note.visibility === 'specified'" ref="specified" class="ph-envelope ph-bold ph-lg"></i>
|
||||||
</span>
|
</span>
|
||||||
<span v-if="note.localOnly" style="margin-left: 0.5em;" :title="i18n.ts._visibility['disableFederation']"><i class="ph-rocket ph-bold pg-lg"></i></span>
|
<span v-if="note.localOnly" style="margin-left: 0.5em;" :title="i18n.ts._visibility['disableFederation']"><i class="ph-rocket ph-bold ph-lg"></i></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<article :class="$style.note" @contextmenu.stop="onContextmenu">
|
<article :class="$style.note" @contextmenu.stop="onContextmenu">
|
||||||
|
@ -59,7 +59,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<i v-else-if="appearNote.visibility === 'specified'" ref="specified" class="ph-envelope ph-bold ph-lg"></i>
|
<i v-else-if="appearNote.visibility === 'specified'" ref="specified" class="ph-envelope ph-bold ph-lg"></i>
|
||||||
</span>
|
</span>
|
||||||
<span v-if="appearNote.updatedAt" ref="menuVersionsButton" style="margin-left: 0.5em;" title="Edited" @mousedown="menuVersions()"><i class="ph-pencil ph-bold ph-lg"></i></span>
|
<span v-if="appearNote.updatedAt" ref="menuVersionsButton" style="margin-left: 0.5em;" title="Edited" @mousedown="menuVersions()"><i class="ph-pencil ph-bold ph-lg"></i></span>
|
||||||
<span v-if="appearNote.localOnly" style="margin-left: 0.5em;" :title="i18n.ts._visibility['disableFederation']"><i class="ph-rocket ph-bold pg-lg"></i></span>
|
<span v-if="appearNote.localOnly" style="margin-left: 0.5em;" :title="i18n.ts._visibility['disableFederation']"><i class="ph-rocket ph-bold ph-lg"></i></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div :class="$style.noteHeaderUsername"><MkAcct :user="appearNote.user"/></div>
|
<div :class="$style.noteHeaderUsername"><MkAcct :user="appearNote.user"/></div>
|
||||||
|
@ -73,7 +73,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</p>
|
</p>
|
||||||
<div v-show="appearNote.cw == null || showContent">
|
<div v-show="appearNote.cw == null || showContent">
|
||||||
<span v-if="appearNote.isHidden" style="opacity: 0.5">({{ i18n.ts.private }})</span>
|
<span v-if="appearNote.isHidden" style="opacity: 0.5">({{ i18n.ts.private }})</span>
|
||||||
<MkA v-if="appearNote.replyId" :class="$style.noteReplyTarget" :to="`/notes/${appearNote.replyId}`"><i class="ph-arrow-bend-left-up ph-bold pg-lg"></i></MkA>
|
<MkA v-if="appearNote.replyId" :class="$style.noteReplyTarget" :to="`/notes/${appearNote.replyId}`"><i class="ph-arrow-bend-left-up ph-bold ph-lg"></i></MkA>
|
||||||
<Mfm
|
<Mfm
|
||||||
v-if="appearNote.text"
|
v-if="appearNote.text"
|
||||||
:parsedNodes="parsed"
|
:parsedNodes="parsed"
|
||||||
|
@ -112,7 +112,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</div>
|
</div>
|
||||||
<MkReactionsViewer ref="reactionsViewer" :note="appearNote"/>
|
<MkReactionsViewer ref="reactionsViewer" :note="appearNote"/>
|
||||||
<button class="_button" :class="$style.noteFooterButton" @click="reply()">
|
<button class="_button" :class="$style.noteFooterButton" @click="reply()">
|
||||||
<i class="ph-arrow-u-up-left ph-bold pg-lg"></i>
|
<i class="ph-arrow-u-up-left ph-bold ph-lg"></i>
|
||||||
<p v-if="appearNote.repliesCount > 0" :class="$style.noteFooterButtonCount">{{ appearNote.repliesCount }}</p>
|
<p v-if="appearNote.repliesCount > 0" :class="$style.noteFooterButtonCount">{{ appearNote.repliesCount }}</p>
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
|
@ -158,10 +158,10 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</footer>
|
</footer>
|
||||||
</article>
|
</article>
|
||||||
<div :class="$style.tabs">
|
<div :class="$style.tabs">
|
||||||
<button class="_button" :class="[$style.tab, { [$style.tabActive]: tab === 'replies' }]" @click="tab = 'replies'"><i class="ph-arrow-u-up-left ph-bold pg-lg"></i> {{ i18n.ts.replies }}</button>
|
<button class="_button" :class="[$style.tab, { [$style.tabActive]: tab === 'replies' }]" @click="tab = 'replies'"><i class="ph-arrow-u-up-left ph-bold ph-lg"></i> {{ i18n.ts.replies }}</button>
|
||||||
<button class="_button" :class="[$style.tab, { [$style.tabActive]: tab === 'renotes' }]" @click="tab = 'renotes'"><i class="ph-rocket-launch ph-bold ph-lg"></i> {{ i18n.ts.renotes }}</button>
|
<button class="_button" :class="[$style.tab, { [$style.tabActive]: tab === 'renotes' }]" @click="tab = 'renotes'"><i class="ph-rocket-launch ph-bold ph-lg"></i> {{ i18n.ts.renotes }}</button>
|
||||||
<button class="_button" :class="[$style.tab, { [$style.tabActive]: tab === 'quotes' }]" @click="tab = 'quotes'"><i class="ph-quotes ph-bold ph-lg"></i> {{ i18n.ts._notification._types.quote }}</button>
|
<button class="_button" :class="[$style.tab, { [$style.tabActive]: tab === 'quotes' }]" @click="tab = 'quotes'"><i class="ph-quotes ph-bold ph-lg"></i> {{ i18n.ts._notification._types.quote }}</button>
|
||||||
<button class="_button" :class="[$style.tab, { [$style.tabActive]: tab === 'reactions' }]" @click="tab = 'reactions'"><i class="ph-smiley ph-bold pg-lg"></i> {{ i18n.ts.reactions }}</button>
|
<button class="_button" :class="[$style.tab, { [$style.tabActive]: tab === 'reactions' }]" @click="tab = 'reactions'"><i class="ph-smiley ph-bold ph-lg"></i> {{ i18n.ts.reactions }}</button>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<div v-if="tab === 'replies'" :class="$style.tab_replies">
|
<div v-if="tab === 'replies'" :class="$style.tab_replies">
|
||||||
|
|
|
@ -29,7 +29,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<i v-else-if="note.visibility === 'specified'" ref="specified" class="ph-envelope ph-bold ph-lg"></i>
|
<i v-else-if="note.visibility === 'specified'" ref="specified" class="ph-envelope ph-bold ph-lg"></i>
|
||||||
</span>
|
</span>
|
||||||
<span v-if="note.updatedAt" ref="menuVersionsButton" style="margin-left: 0.5em;" title="Edited" @mousedown="menuVersions()"><i class="ph-pencil ph-bold ph-lg"></i></span>
|
<span v-if="note.updatedAt" ref="menuVersionsButton" style="margin-left: 0.5em;" title="Edited" @mousedown="menuVersions()"><i class="ph-pencil ph-bold ph-lg"></i></span>
|
||||||
<span v-if="note.localOnly" style="margin-left: 0.5em;" :title="i18n.ts._visibility['disableFederation']"><i class="ph-rocket ph-bold pg-lg"></i></span>
|
<span v-if="note.localOnly" style="margin-left: 0.5em;" :title="i18n.ts._visibility['disableFederation']"><i class="ph-rocket ph-bold ph-lg"></i></span>
|
||||||
<span v-if="note.channel" style="margin-left: 0.5em;" :title="note.channel.name"><i class="ph-television ph-bold ph-lg"></i></span>
|
<span v-if="note.channel" style="margin-left: 0.5em;" :title="note.channel.name"><i class="ph-television ph-bold ph-lg"></i></span>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
|
|
@ -22,7 +22,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<footer :class="$style.footer">
|
<footer :class="$style.footer">
|
||||||
<MkReactionsViewer ref="reactionsViewer" :note="note"/>
|
<MkReactionsViewer ref="reactionsViewer" :note="note"/>
|
||||||
<button class="_button" :class="$style.noteFooterButton" @click="reply()">
|
<button class="_button" :class="$style.noteFooterButton" @click="reply()">
|
||||||
<i class="ph-arrow-u-up-left ph-bold pg-lg"></i>
|
<i class="ph-arrow-u-up-left ph-bold ph-lg"></i>
|
||||||
<p v-if="note.repliesCount > 0" :class="$style.noteFooterButtonCount">{{ note.repliesCount }}</p>
|
<p v-if="note.repliesCount > 0" :class="$style.noteFooterButtonCount">{{ note.repliesCount }}</p>
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
|
|
|
@ -31,10 +31,10 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<i v-else-if="notification.type === 'receiveFollowRequest'" class="ph-clock ph-bold ph-lg"></i>
|
<i v-else-if="notification.type === 'receiveFollowRequest'" class="ph-clock ph-bold ph-lg"></i>
|
||||||
<i v-else-if="notification.type === 'followRequestAccepted'" class="ph-check ph-bold ph-lg"></i>
|
<i v-else-if="notification.type === 'followRequestAccepted'" class="ph-check ph-bold ph-lg"></i>
|
||||||
<i v-else-if="notification.type === 'renote'" class="ph-rocket-launch ph-bold ph-lg"></i>
|
<i v-else-if="notification.type === 'renote'" class="ph-rocket-launch ph-bold ph-lg"></i>
|
||||||
<i v-else-if="notification.type === 'reply'" class="ph-arrow-u-up-left ph-bold pg-lg"></i>
|
<i v-else-if="notification.type === 'reply'" class="ph-arrow-u-up-left ph-bold ph-lg"></i>
|
||||||
<i v-else-if="notification.type === 'mention'" class="ph-at ph-bold ph-lg"></i>
|
<i v-else-if="notification.type === 'mention'" class="ph-at ph-bold ph-lg"></i>
|
||||||
<i v-else-if="notification.type === 'quote'" class="ph-quotes ph-bold ph-lg"></i>
|
<i v-else-if="notification.type === 'quote'" class="ph-quotes ph-bold ph-lg"></i>
|
||||||
<i v-else-if="notification.type === 'pollEnded'" class="ph-chart-bar-horizontal ph-bold pg-lg"></i>
|
<i v-else-if="notification.type === 'pollEnded'" class="ph-chart-bar-horizontal ph-bold ph-lg"></i>
|
||||||
<i v-else-if="notification.type === 'achievementEarned'" class="ph-trophy ph-bold ph-lg"></i>
|
<i v-else-if="notification.type === 'achievementEarned'" class="ph-trophy ph-bold ph-lg"></i>
|
||||||
<!-- notification.reaction が null になることはまずないが、ここでoptional chaining使うと一部ブラウザで刺さるので念の為 -->
|
<!-- notification.reaction が null になることはまずないが、ここでoptional chaining使うと一部ブラウザで刺さるので念の為 -->
|
||||||
<MkReactionIcon
|
<MkReactionIcon
|
||||||
|
|
|
@ -66,7 +66,7 @@ const buttonsLeft = $computed(() => {
|
||||||
|
|
||||||
if (history.length > 1) {
|
if (history.length > 1) {
|
||||||
buttons.push({
|
buttons.push({
|
||||||
icon: 'ph-arrow-left ph-bold pg-lg',
|
icon: 'ph-arrow-left ph-bold ph-lg',
|
||||||
onClick: back,
|
onClick: back,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -79,7 +79,7 @@ const buttonsRight = $computed(() => {
|
||||||
title: i18n.ts.reload,
|
title: i18n.ts.reload,
|
||||||
onClick: reload,
|
onClick: reload,
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-eject ph-bold pg-lg',
|
icon: 'ph-eject ph-bold ph-lg',
|
||||||
title: i18n.ts.showInPage,
|
title: i18n.ts.showInPage,
|
||||||
onClick: expand,
|
onClick: expand,
|
||||||
}];
|
}];
|
||||||
|
@ -101,7 +101,7 @@ provide('shouldHeaderThin', true);
|
||||||
provide('forceSpacerMin', true);
|
provide('forceSpacerMin', true);
|
||||||
|
|
||||||
const contextmenu = $computed(() => ([{
|
const contextmenu = $computed(() => ([{
|
||||||
icon: 'ph-eject ph-bold pg-lg',
|
icon: 'ph-eject ph-bold ph-lg',
|
||||||
text: i18n.ts.showInPage,
|
text: i18n.ts.showInPage,
|
||||||
action: expand,
|
action: expand,
|
||||||
}, {
|
}, {
|
||||||
|
|
|
@ -26,7 +26,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
|
||||||
<MkInput v-if="$i.twoFactorEnabled" v-model="token" type="text" pattern="^([0-9]{6}|[A-Z0-9]{32})$" autocomplete="one-time-code" :spellcheck="false">
|
<MkInput v-if="$i.twoFactorEnabled" v-model="token" type="text" pattern="^([0-9]{6}|[A-Z0-9]{32})$" autocomplete="one-time-code" :spellcheck="false">
|
||||||
<template #label>{{ i18n.ts.token }} ({{ i18n.ts['2fa'] }})</template>
|
<template #label>{{ i18n.ts.token }} ({{ i18n.ts['2fa'] }})</template>
|
||||||
<template #prefix><i class="ph-keyhole ph-bold pg-lg"></i></template>
|
<template #prefix><i class="ph-keyhole ph-bold ph-lg"></i></template>
|
||||||
</MkInput>
|
</MkInput>
|
||||||
|
|
||||||
<MkButton :disabled="(password ?? '') == '' || ($i.twoFactorEnabled && (token ?? '') == '')" primary rounded style="margin: 0 auto;" @click="done"><i class="ph-lock ph-bold ph-lg-open"></i> {{ i18n.ts.continue }}</MkButton>
|
<MkButton :disabled="(password ?? '') == '' || ($i.twoFactorEnabled && (token ?? '') == '')" primary rounded style="margin: 0 auto;" @click="done"><i class="ph-lock ph-bold ph-lg-open"></i> {{ i18n.ts.continue }}</MkButton>
|
||||||
|
|
|
@ -33,20 +33,20 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</button>
|
</button>
|
||||||
</template>
|
</template>
|
||||||
<button v-click-anime v-tooltip="i18n.ts._visibility.disableFederation" class="_button" :class="[$style.headerRightItem, { [$style.danger]: localOnly }]" :disabled="channel != null || visibility === 'specified'" @click="toggleLocalOnly">
|
<button v-click-anime v-tooltip="i18n.ts._visibility.disableFederation" class="_button" :class="[$style.headerRightItem, { [$style.danger]: localOnly }]" :disabled="channel != null || visibility === 'specified'" @click="toggleLocalOnly">
|
||||||
<span v-if="!localOnly"><i class="ph-rocket-launch ph-bold pg-lg"></i></span>
|
<span v-if="!localOnly"><i class="ph-rocket-launch ph-bold ph-lg"></i></span>
|
||||||
<span v-else><i class="ph-rocket ph-bold pg-lg"></i></span>
|
<span v-else><i class="ph-rocket ph-bold ph-lg"></i></span>
|
||||||
</button>
|
</button>
|
||||||
<button v-click-anime v-tooltip="i18n.ts.reactionAcceptance" class="_button" :class="[$style.headerRightItem, { [$style.danger]: reactionAcceptance === 'likeOnly' }]" @click="toggleReactionAcceptance">
|
<button v-click-anime v-tooltip="i18n.ts.reactionAcceptance" class="_button" :class="[$style.headerRightItem, { [$style.danger]: reactionAcceptance === 'likeOnly' }]" @click="toggleReactionAcceptance">
|
||||||
<span v-if="reactionAcceptance === 'likeOnly'"><i class="ph-heart ph-bold ph-lg"></i></span>
|
<span v-if="reactionAcceptance === 'likeOnly'"><i class="ph-heart ph-bold ph-lg"></i></span>
|
||||||
<span v-else-if="reactionAcceptance === 'likeOnlyForRemote'"><i class="ph-heart ph-bold ph-lg"></i></span>
|
<span v-else-if="reactionAcceptance === 'likeOnlyForRemote'"><i class="ph-heart ph-bold ph-lg"></i></span>
|
||||||
<span v-else><i class="ph-smiley ph-bold pg-lg"></i></span>
|
<span v-else><i class="ph-smiley ph-bold ph-lg"></i></span>
|
||||||
</button>
|
</button>
|
||||||
<button v-click-anime class="_button" :class="$style.submit" :disabled="!canPost" data-cy-open-post-form-submit @click="post">
|
<button v-click-anime class="_button" :class="$style.submit" :disabled="!canPost" data-cy-open-post-form-submit @click="post">
|
||||||
<div :class="$style.submitInner">
|
<div :class="$style.submitInner">
|
||||||
<template v-if="posted"></template>
|
<template v-if="posted"></template>
|
||||||
<template v-else-if="posting"><MkEllipsis/></template>
|
<template v-else-if="posting"><MkEllipsis/></template>
|
||||||
<template v-else>{{ submitText }}</template>
|
<template v-else>{{ submitText }}</template>
|
||||||
<i style="margin-left: 6px;" :class="posted ? 'ph-check ph-bold ph-lg' : reply ? 'ph-arrow-u-up-left ph-bold pg-lg' : renote ? 'ph-quotes ph-bold ph-lg' : 'ph-paper-plane-tilt ph-bold ph-lg'"></i>
|
<i style="margin-left: 6px;" :class="posted ? 'ph-check ph-bold ph-lg' : reply ? 'ph-arrow-u-up-left ph-bold ph-lg' : renote ? 'ph-quotes ph-bold ph-lg' : 'ph-paper-plane-tilt ph-bold ph-lg'"></i>
|
||||||
</div>
|
</div>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -79,7 +79,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<footer :class="$style.footer">
|
<footer :class="$style.footer">
|
||||||
<div :class="$style.footerLeft">
|
<div :class="$style.footerLeft">
|
||||||
<button v-tooltip="i18n.ts.attachFile" class="_button" :class="$style.footerButton" @click="chooseFileFrom"><i class="ph-image-square ph-bold ph-lg-plus"></i></button>
|
<button v-tooltip="i18n.ts.attachFile" class="_button" :class="$style.footerButton" @click="chooseFileFrom"><i class="ph-image-square ph-bold ph-lg-plus"></i></button>
|
||||||
<button v-tooltip="i18n.ts.poll" class="_button" :class="[$style.footerButton, { [$style.footerButtonActive]: poll }]" @click="togglePoll"><i class="ph-chart-bar-horizontal ph-bold pg-lg"></i></button>
|
<button v-tooltip="i18n.ts.poll" class="_button" :class="[$style.footerButton, { [$style.footerButtonActive]: poll }]" @click="togglePoll"><i class="ph-chart-bar-horizontal ph-bold ph-lg"></i></button>
|
||||||
<button v-tooltip="i18n.ts.useCw" class="_button" :class="[$style.footerButton, { [$style.footerButtonActive]: useCw }]" @click="useCw = !useCw"><i class="ph-eye-slash ph-bold ph-lg"></i></button>
|
<button v-tooltip="i18n.ts.useCw" class="_button" :class="[$style.footerButton, { [$style.footerButtonActive]: useCw }]" @click="useCw = !useCw"><i class="ph-eye-slash ph-bold ph-lg"></i></button>
|
||||||
<button v-tooltip="i18n.ts.mention" class="_button" :class="$style.footerButton" @click="insertMention"><i class="ph-at ph-bold ph-lg"></i></button>
|
<button v-tooltip="i18n.ts.mention" class="_button" :class="$style.footerButton" @click="insertMention"><i class="ph-at ph-bold ph-lg"></i></button>
|
||||||
<button v-tooltip="i18n.ts.hashtags" class="_button" :class="[$style.footerButton, { [$style.footerButtonActive]: withHashtags }]" @click="withHashtags = !withHashtags"><i class="ph-hash ph-bold ph-lg"></i></button>
|
<button v-tooltip="i18n.ts.hashtags" class="_button" :class="[$style.footerButton, { [$style.footerButtonActive]: withHashtags }]" @click="withHashtags = !withHashtags"><i class="ph-hash ph-bold ph-lg"></i></button>
|
||||||
|
|
|
@ -8,7 +8,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<div v-if="isPullStart" :class="$style.frame" :style="`--frame-min-height: ${pullDistance / (PULL_BRAKE_BASE + (pullDistance / PULL_BRAKE_FACTOR))}px;`">
|
<div v-if="isPullStart" :class="$style.frame" :style="`--frame-min-height: ${pullDistance / (PULL_BRAKE_BASE + (pullDistance / PULL_BRAKE_FACTOR))}px;`">
|
||||||
<div :class="$style.frameContent">
|
<div :class="$style.frameContent">
|
||||||
<MkLoading v-if="isRefreshing" :class="$style.loader" :em="true"/>
|
<MkLoading v-if="isRefreshing" :class="$style.loader" :em="true"/>
|
||||||
<i v-else class="ph-arrow-line-down ph-bold pg-lg" :class="[$style.icon, { [$style.refresh]: isPullEnd }]"></i>
|
<i v-else class="ph-arrow-line-down ph-bold ph-lg" :class="[$style.icon, { [$style.refresh]: isPullEnd }]"></i>
|
||||||
<div :class="$style.text">
|
<div :class="$style.text">
|
||||||
<template v-if="isPullEnd">{{ i18n.ts.releaseToRefresh }}</template>
|
<template v-if="isPullEnd">{{ i18n.ts.releaseToRefresh }}</template>
|
||||||
<template v-else-if="isRefreshing">{{ i18n.ts.refreshing }}</template>
|
<template v-else-if="isRefreshing">{{ i18n.ts.refreshing }}</template>
|
||||||
|
|
|
@ -27,7 +27,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</div>
|
</div>
|
||||||
<div :class="$style.caption"><slot name="caption"></slot></div>
|
<div :class="$style.caption"><slot name="caption"></slot></div>
|
||||||
|
|
||||||
<MkButton v-if="manualSave && changed" primary @click="updated"><i class="ph-floppy-disk ph-bold pg-lg"></i> {{ i18n.ts.save }}</MkButton>
|
<MkButton v-if="manualSave && changed" primary @click="updated"><i class="ph-floppy-disk ph-bold ph-lg"></i> {{ i18n.ts.save }}</MkButton>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</MkInput>
|
</MkInput>
|
||||||
<MkInput v-model="token" type="text" pattern="^([0-9]{6}|[A-Z0-9]{32})$" autocomplete="one-time-code" :spellcheck="false" required>
|
<MkInput v-model="token" type="text" pattern="^([0-9]{6}|[A-Z0-9]{32})$" autocomplete="one-time-code" :spellcheck="false" required>
|
||||||
<template #label>{{ i18n.ts.token }}</template>
|
<template #label>{{ i18n.ts.token }}</template>
|
||||||
<template #prefix><i class="ph-keyhole ph-bold pg-lg"></i></template>
|
<template #prefix><i class="ph-keyhole ph-bold ph-lg"></i></template>
|
||||||
</MkInput>
|
</MkInput>
|
||||||
<MkButton type="submit" :disabled="signing" large primary rounded style="margin: 0 auto;">{{ signing ? i18n.ts.loggingIn : i18n.ts.login }}</MkButton>
|
<MkButton type="submit" :disabled="signing" large primary rounded style="margin: 0 auto;">{{ signing ? i18n.ts.loggingIn : i18n.ts.login }}</MkButton>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -32,7 +32,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
|
||||||
<MkFolder v-if="availableTos || availablePrivacyPolicy" :defaultOpen="true">
|
<MkFolder v-if="availableTos || availablePrivacyPolicy" :defaultOpen="true">
|
||||||
<template #label>{{ tosPrivacyPolicyLabel }}</template>
|
<template #label>{{ tosPrivacyPolicyLabel }}</template>
|
||||||
<template #suffix><i v-if="agreeTosAndPrivacyPolicy" class="ph-check ph-bold pg-lg" style="color: var(--success)"></i></template>
|
<template #suffix><i v-if="agreeTosAndPrivacyPolicy" class="ph-check ph-bold ph-lg" style="color: var(--success)"></i></template>
|
||||||
<div class="_gaps_s">
|
<div class="_gaps_s">
|
||||||
<div v-if="availableTos"><a :href="instance.tosUrl" class="_link" target="_blank">{{ i18n.ts.termsOfService }} <i class="ph-arrow-square-out ph-bold ph-lg"></i></a></div>
|
<div v-if="availableTos"><a :href="instance.tosUrl" class="_link" target="_blank">{{ i18n.ts.termsOfService }} <i class="ph-arrow-square-out ph-bold ph-lg"></i></a></div>
|
||||||
<div v-if="availablePrivacyPolicy"><a :href="instance.privacyPolicyUrl" class="_link" target="_blank">{{ i18n.ts.privacyPolicy }} <i class="ph-arrow-square-out ph-bold ph-lg"></i></a></div>
|
<div v-if="availablePrivacyPolicy"><a :href="instance.privacyPolicyUrl" class="_link" target="_blank">{{ i18n.ts.privacyPolicy }} <i class="ph-arrow-square-out ph-bold ph-lg"></i></a></div>
|
||||||
|
@ -54,7 +54,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
|
||||||
<div class="_buttonsCenter">
|
<div class="_buttonsCenter">
|
||||||
<MkButton inline rounded @click="emit('cancel')">{{ i18n.ts.cancel }}</MkButton>
|
<MkButton inline rounded @click="emit('cancel')">{{ i18n.ts.cancel }}</MkButton>
|
||||||
<MkButton inline primary rounded gradate :disabled="!agreed" data-cy-signup-rules-continue @click="emit('done')">{{ i18n.ts.continue }} <i class="ph-arrow-right ph-bold pg-lg"></i></MkButton>
|
<MkButton inline primary rounded gradate :disabled="!agreed" data-cy-signup-rules-continue @click="emit('done')">{{ i18n.ts.continue }} <i class="ph-arrow-right ph-bold ph-lg"></i></MkButton>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</MkSpacer>
|
</MkSpacer>
|
||||||
|
|
|
@ -8,7 +8,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<div :class="{ [$style.clickToOpen]: defaultStore.state.clickToOpen }" @click="defaultStore.state.clickToOpen ? noteclick(note.id) : undefined">
|
<div :class="{ [$style.clickToOpen]: defaultStore.state.clickToOpen }" @click="defaultStore.state.clickToOpen ? noteclick(note.id) : undefined">
|
||||||
<span v-if="note.isHidden" style="opacity: 0.5">({{ i18n.ts.private }})</span>
|
<span v-if="note.isHidden" style="opacity: 0.5">({{ i18n.ts.private }})</span>
|
||||||
<span v-if="note.deletedAt" style="opacity: 0.5">({{ i18n.ts.deleted }})</span>
|
<span v-if="note.deletedAt" style="opacity: 0.5">({{ i18n.ts.deleted }})</span>
|
||||||
<MkA v-if="note.replyId" :class="$style.reply" :to="`/notes/${note.replyId}`" v-on:click.stop><i class="ph-arrow-bend-left-up ph-bold pg-lg"></i></MkA>
|
<MkA v-if="note.replyId" :class="$style.reply" :to="`/notes/${note.replyId}`" v-on:click.stop><i class="ph-arrow-bend-left-up ph-bold ph-lg"></i></MkA>
|
||||||
<Mfm v-if="note.text" :text="note.text" :author="note.user" :nyaize="'account'" :emojiUrls="note.emojis"/>
|
<Mfm v-if="note.text" :text="note.text" :author="note.user" :nyaize="'account'" :emojiUrls="note.emojis"/>
|
||||||
<div v-if="note.text && translating || note.text && translation" :class="$style.translation">
|
<div v-if="note.text && translating || note.text && translation" :class="$style.translation">
|
||||||
<MkLoading v-if="translating" mini/>
|
<MkLoading v-if="translating" mini/>
|
||||||
|
|
|
@ -27,7 +27,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</div>
|
</div>
|
||||||
<div :class="$style.caption"><slot name="caption"></slot></div>
|
<div :class="$style.caption"><slot name="caption"></slot></div>
|
||||||
|
|
||||||
<MkButton v-if="manualSave && changed" primary :class="$style.save" @click="updated"><i class="ph-floppy-disk ph-bold pg-lg"></i> {{ i18n.ts.save }}</MkButton>
|
<MkButton v-if="manualSave && changed" primary :class="$style.save" @click="updated"><i class="ph-floppy-disk ph-bold ph-lg"></i> {{ i18n.ts.save }}</MkButton>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -72,7 +72,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</div>
|
</div>
|
||||||
<div v-if="!playerEnabled && player.url" :class="$style.action">
|
<div v-if="!playerEnabled && player.url" :class="$style.action">
|
||||||
<MkButton :small="true" inline @click="playerEnabled = true">
|
<MkButton :small="true" inline @click="playerEnabled = true">
|
||||||
<i class="ph-play ph-bold pg-lg"></i> {{ i18n.ts.enablePlayer }}
|
<i class="ph-play ph-bold ph-lg"></i> {{ i18n.ts.enablePlayer }}
|
||||||
</MkButton>
|
</MkButton>
|
||||||
<MkButton v-if="!isMobile" :small="true" inline @click="openPlayer()">
|
<MkButton v-if="!isMobile" :small="true" inline @click="openPlayer()">
|
||||||
<i class="ph-picture-in-picture ph-bold ph-lg"></i> {{ i18n.ts.openInWindow }}
|
<i class="ph-picture-in-picture ph-bold ph-lg"></i> {{ i18n.ts.openInWindow }}
|
||||||
|
|
|
@ -15,7 +15,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<template v-if="page === 1" #header><i class="ph-user-list ph-bold ph-lg"></i> {{ i18n.ts._initialAccountSetting.profileSetting }}</template>
|
<template v-if="page === 1" #header><i class="ph-user-list ph-bold ph-lg"></i> {{ i18n.ts._initialAccountSetting.profileSetting }}</template>
|
||||||
<template v-else-if="page === 2" #header><i class="ph-lock ph-bold ph-lg"></i> {{ i18n.ts._initialAccountSetting.privacySetting }}</template>
|
<template v-else-if="page === 2" #header><i class="ph-lock ph-bold ph-lg"></i> {{ i18n.ts._initialAccountSetting.privacySetting }}</template>
|
||||||
<template v-else-if="page === 3" #header><i class="ph-user-plus ph-bold ph-lg"></i> {{ i18n.ts.follow }}</template>
|
<template v-else-if="page === 3" #header><i class="ph-user-plus ph-bold ph-lg"></i> {{ i18n.ts.follow }}</template>
|
||||||
<template v-else-if="page === 4" #header><i class="ph-bell-ringing ph-bold pg-lg"></i> {{ i18n.ts.pushNotification }}</template>
|
<template v-else-if="page === 4" #header><i class="ph-bell-ringing ph-bold ph-lg"></i> {{ i18n.ts.pushNotification }}</template>
|
||||||
<template v-else-if="page === 5" #header>{{ i18n.ts.done }}</template>
|
<template v-else-if="page === 5" #header>{{ i18n.ts.done }}</template>
|
||||||
<template v-else #header>{{ i18n.ts.initialAccountSetting }}</template>
|
<template v-else #header>{{ i18n.ts.initialAccountSetting }}</template>
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<i class="ph-confetti ph-bold ph-lg" style="display: block; margin: auto; font-size: 3em; color: var(--accent);"></i>
|
<i class="ph-confetti ph-bold ph-lg" style="display: block; margin: auto; font-size: 3em; color: var(--accent);"></i>
|
||||||
<div style="font-size: 120%;">{{ i18n.ts._initialAccountSetting.accountCreated }}</div>
|
<div style="font-size: 120%;">{{ i18n.ts._initialAccountSetting.accountCreated }}</div>
|
||||||
<div>{{ i18n.ts._initialAccountSetting.letsStartAccountSetup }}</div>
|
<div>{{ i18n.ts._initialAccountSetting.letsStartAccountSetup }}</div>
|
||||||
<MkButton primary rounded gradate style="margin: 16px auto 0 auto;" data-cy-user-setup-continue @click="page++">{{ i18n.ts._initialAccountSetting.profileSetting }} <i class="ph-arrow-right ph-bold pg-lg"></i></MkButton>
|
<MkButton primary rounded gradate style="margin: 16px auto 0 auto;" data-cy-user-setup-continue @click="page++">{{ i18n.ts._initialAccountSetting.profileSetting }} <i class="ph-arrow-right ph-bold ph-lg"></i></MkButton>
|
||||||
<MkButton style="margin: 0 auto;" transparent rounded @click="later(true)">{{ i18n.ts.later }}</MkButton>
|
<MkButton style="margin: 0 auto;" transparent rounded @click="later(true)">{{ i18n.ts.later }}</MkButton>
|
||||||
</div>
|
</div>
|
||||||
</MkSpacer>
|
</MkSpacer>
|
||||||
|
@ -52,8 +52,8 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</MkSpacer>
|
</MkSpacer>
|
||||||
<div :class="$style.pageFooter">
|
<div :class="$style.pageFooter">
|
||||||
<div class="_buttonsCenter">
|
<div class="_buttonsCenter">
|
||||||
<MkButton rounded data-cy-user-setup-back @click="page--"><i class="ph-arrow-left ph-bold pg-lg"></i> {{ i18n.ts.goBack }}</MkButton>
|
<MkButton rounded data-cy-user-setup-back @click="page--"><i class="ph-arrow-left ph-bold ph-lg"></i> {{ i18n.ts.goBack }}</MkButton>
|
||||||
<MkButton primary rounded gradate data-cy-user-setup-continue @click="page++">{{ i18n.ts.continue }} <i class="ph-arrow-right ph-bold pg-lg"></i></MkButton>
|
<MkButton primary rounded gradate data-cy-user-setup-continue @click="page++">{{ i18n.ts.continue }} <i class="ph-arrow-right ph-bold ph-lg"></i></MkButton>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -67,8 +67,8 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</MkSpacer>
|
</MkSpacer>
|
||||||
<div :class="$style.pageFooter">
|
<div :class="$style.pageFooter">
|
||||||
<div class="_buttonsCenter">
|
<div class="_buttonsCenter">
|
||||||
<MkButton rounded data-cy-user-setup-back @click="page--"><i class="ph-arrow-left ph-bold pg-lg"></i> {{ i18n.ts.goBack }}</MkButton>
|
<MkButton rounded data-cy-user-setup-back @click="page--"><i class="ph-arrow-left ph-bold ph-lg"></i> {{ i18n.ts.goBack }}</MkButton>
|
||||||
<MkButton primary rounded gradate data-cy-user-setup-continue @click="page++">{{ i18n.ts.continue }} <i class="ph-arrow-right ph-bold pg-lg"></i></MkButton>
|
<MkButton primary rounded gradate data-cy-user-setup-continue @click="page++">{{ i18n.ts.continue }} <i class="ph-arrow-right ph-bold ph-lg"></i></MkButton>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -81,8 +81,8 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</MkSpacer>
|
</MkSpacer>
|
||||||
<div :class="$style.pageFooter">
|
<div :class="$style.pageFooter">
|
||||||
<div class="_buttonsCenter">
|
<div class="_buttonsCenter">
|
||||||
<MkButton rounded data-cy-user-setup-back @click="page--"><i class="ph-arrow-left ph-bold pg-lg"></i> {{ i18n.ts.goBack }}</MkButton>
|
<MkButton rounded data-cy-user-setup-back @click="page--"><i class="ph-arrow-left ph-bold ph-lg"></i> {{ i18n.ts.goBack }}</MkButton>
|
||||||
<MkButton primary rounded gradate style="" data-cy-user-setup-continue @click="page++">{{ i18n.ts.continue }} <i class="ph-arrow-right ph-bold pg-lg"></i></MkButton>
|
<MkButton primary rounded gradate style="" data-cy-user-setup-continue @click="page++">{{ i18n.ts.continue }} <i class="ph-arrow-right ph-bold ph-lg"></i></MkButton>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -91,13 +91,13 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<div :class="$style.centerPage">
|
<div :class="$style.centerPage">
|
||||||
<MkSpacer :marginMin="20" :marginMax="28">
|
<MkSpacer :marginMin="20" :marginMax="28">
|
||||||
<div class="_gaps" style="text-align: center;">
|
<div class="_gaps" style="text-align: center;">
|
||||||
<i class="ph-bell-ringing ph-bold pg-lg" style="display: block; margin: auto; font-size: 3em; color: var(--accent);"></i>
|
<i class="ph-bell-ringing ph-bold ph-lg" style="display: block; margin: auto; font-size: 3em; color: var(--accent);"></i>
|
||||||
<div style="font-size: 120%;">{{ i18n.ts.pushNotification }}</div>
|
<div style="font-size: 120%;">{{ i18n.ts.pushNotification }}</div>
|
||||||
<div style="padding: 0 16px;">{{ i18n.t('_initialAccountSetting.pushNotificationDescription', { name: instance.name ?? host }) }}</div>
|
<div style="padding: 0 16px;">{{ i18n.t('_initialAccountSetting.pushNotificationDescription', { name: instance.name ?? host }) }}</div>
|
||||||
<MkPushNotificationAllowButton primary showOnlyToRegister style="margin: 0 auto;"/>
|
<MkPushNotificationAllowButton primary showOnlyToRegister style="margin: 0 auto;"/>
|
||||||
<div class="_buttonsCenter" style="margin-top: 16px;">
|
<div class="_buttonsCenter" style="margin-top: 16px;">
|
||||||
<MkButton rounded data-cy-user-setup-back @click="page--"><i class="ph-arrow-left ph-bold pg-lg"></i> {{ i18n.ts.goBack }}</MkButton>
|
<MkButton rounded data-cy-user-setup-back @click="page--"><i class="ph-arrow-left ph-bold ph-lg"></i> {{ i18n.ts.goBack }}</MkButton>
|
||||||
<MkButton primary rounded gradate data-cy-user-setup-continue @click="page++">{{ i18n.ts.continue }} <i class="ph-arrow-right ph-bold pg-lg"></i></MkButton>
|
<MkButton primary rounded gradate data-cy-user-setup-continue @click="page++">{{ i18n.ts.continue }} <i class="ph-arrow-right ph-bold ph-lg"></i></MkButton>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</MkSpacer>
|
</MkSpacer>
|
||||||
|
@ -112,10 +112,10 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<div style="font-size: 120%;">{{ i18n.ts._initialAccountSetting.initialAccountSettingCompleted }}</div>
|
<div style="font-size: 120%;">{{ i18n.ts._initialAccountSetting.initialAccountSettingCompleted }}</div>
|
||||||
<div>{{ i18n.t('_initialAccountSetting.youCanContinueTutorial', { name: instance.name ?? host }) }}</div>
|
<div>{{ i18n.t('_initialAccountSetting.youCanContinueTutorial', { name: instance.name ?? host }) }}</div>
|
||||||
<div class="_buttonsCenter" style="margin-top: 16px;">
|
<div class="_buttonsCenter" style="margin-top: 16px;">
|
||||||
<MkButton rounded primary gradate data-cy-user-setup-continue @click="launchTutorial()">{{ i18n.ts._initialAccountSetting.startTutorial }} <i class="ph-arrow-right ph-bold pg-lg"></i></MkButton>
|
<MkButton rounded primary gradate data-cy-user-setup-continue @click="launchTutorial()">{{ i18n.ts._initialAccountSetting.startTutorial }} <i class="ph-arrow-right ph-bold ph-lg"></i></MkButton>
|
||||||
</div>
|
</div>
|
||||||
<div class="_buttonsCenter">
|
<div class="_buttonsCenter">
|
||||||
<MkButton rounded data-cy-user-setup-back @click="page--"><i class="ph-arrow-left ph-bold pg-lg"></i> {{ i18n.ts.goBack }}</MkButton>
|
<MkButton rounded data-cy-user-setup-back @click="page--"><i class="ph-arrow-left ph-bold ph-lg"></i> {{ i18n.ts.goBack }}</MkButton>
|
||||||
<MkButton rounded primary data-cy-user-setup-continue @click="setupComplete()">{{ i18n.ts.close }}</MkButton>
|
<MkButton rounded primary data-cy-user-setup-continue @click="setupComplete()">{{ i18n.ts.close }}</MkButton>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -109,19 +109,19 @@ function showMenu(ev) {
|
||||||
},
|
},
|
||||||
}, null, (instance.impressumUrl) ? {
|
}, null, (instance.impressumUrl) ? {
|
||||||
text: i18n.ts.impressum,
|
text: i18n.ts.impressum,
|
||||||
icon: 'ph-newspaper-clipping ph-bold pg-lg',
|
icon: 'ph-newspaper-clipping ph-bold ph-lg',
|
||||||
action: () => {
|
action: () => {
|
||||||
window.open(instance.impressumUrl, '_blank');
|
window.open(instance.impressumUrl, '_blank');
|
||||||
},
|
},
|
||||||
} : undefined, (instance.tosUrl) ? {
|
} : undefined, (instance.tosUrl) ? {
|
||||||
text: i18n.ts.termsOfService,
|
text: i18n.ts.termsOfService,
|
||||||
icon: 'ph-notebook ph-bold pg-lg',
|
icon: 'ph-notebook ph-bold ph-lg',
|
||||||
action: () => {
|
action: () => {
|
||||||
window.open(instance.tosUrl, '_blank');
|
window.open(instance.tosUrl, '_blank');
|
||||||
},
|
},
|
||||||
} : undefined, (instance.privacyPolicyUrl) ? {
|
} : undefined, (instance.privacyPolicyUrl) ? {
|
||||||
text: i18n.ts.privacyPolicy,
|
text: i18n.ts.privacyPolicy,
|
||||||
icon: 'ph-shield ph-bold pg-lg',
|
icon: 'ph-shield ph-bold ph-lg',
|
||||||
action: () => {
|
action: () => {
|
||||||
window.open(instance.privacyPolicyUrl, '_blank');
|
window.open(instance.privacyPolicyUrl, '_blank');
|
||||||
},
|
},
|
||||||
|
|
|
@ -25,7 +25,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
>
|
>
|
||||||
<template #item="{element}">
|
<template #item="{element}">
|
||||||
<div :class="[$style.widget, $style.customizeContainer]" data-cy-customize-container>
|
<div :class="[$style.widget, $style.customizeContainer]" data-cy-customize-container>
|
||||||
<button :class="$style.customizeContainerConfig" class="_button" @click.prevent.stop="configWidget(element.id)"><i class="ph-gear ph-bold pg-lg"></i></button>
|
<button :class="$style.customizeContainerConfig" class="_button" @click.prevent.stop="configWidget(element.id)"><i class="ph-gear ph-bold ph-lg"></i></button>
|
||||||
<button :class="$style.customizeContainerRemove" data-cy-customize-container-remove class="_button" @click.prevent.stop="removeWidget(element)"><i class="ph-x ph-bold ph-lg"></i></button>
|
<button :class="$style.customizeContainerRemove" data-cy-customize-container-remove class="_button" @click.prevent.stop="removeWidget(element)"><i class="ph-x ph-bold ph-lg"></i></button>
|
||||||
<div class="handle">
|
<div class="handle">
|
||||||
<component :is="`widget-${element.name}`" :ref="el => widgetRefs[element.id] = el" class="widget" :class="$style.customizeContainerHandleWidget" :widget="element" @updateProps="updateWidget(element.id, $event)"/>
|
<component :is="`widget-${element.name}`" :ref="el => widgetRefs[element.id] = el" class="widget" :class="$style.customizeContainerHandleWidget" :widget="element" @updateProps="updateWidget(element.id, $event)"/>
|
||||||
|
@ -111,7 +111,7 @@ function onContextmenu(widget: Widget, ev: MouseEvent) {
|
||||||
type: 'label',
|
type: 'label',
|
||||||
text: i18n.t(`_widgets.${widget.name}`),
|
text: i18n.t(`_widgets.${widget.name}`),
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-gear ph-bold pg-lg',
|
icon: 'ph-gear ph-bold ph-lg',
|
||||||
text: i18n.ts.settings,
|
text: i18n.ts.settings,
|
||||||
action: () => {
|
action: () => {
|
||||||
configWidget(widget.id);
|
configWidget(widget.id);
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
<i v-else-if="appearNote.visibility === 'followers'" class="ph-lock ph-bold ph-lg"></i>
|
<i v-else-if="appearNote.visibility === 'followers'" class="ph-lock ph-bold ph-lg"></i>
|
||||||
<i v-else-if="appearNote.visibility === 'specified'" ref="specified" class="ph-envelope ph-bold ph-lg"></i>
|
<i v-else-if="appearNote.visibility === 'specified'" ref="specified" class="ph-envelope ph-bold ph-lg"></i>
|
||||||
</span>
|
</span>
|
||||||
<span v-if="appearNote.localOnly" style="margin-left: 0.5em;" :title="i18n.ts._visibility['disableFederation']"><i class="ph-rocket ph-bold pg-lg"></i></span>
|
<span v-if="appearNote.localOnly" style="margin-left: 0.5em;" :title="i18n.ts._visibility['disableFederation']"><i class="ph-rocket ph-bold ph-lg"></i></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div :class="$style.noteHeaderUsername"><MkAcct :user="appearNote.user"/></div>
|
<div :class="$style.noteHeaderUsername"><MkAcct :user="appearNote.user"/></div>
|
||||||
|
@ -34,7 +34,7 @@
|
||||||
</p>
|
</p>
|
||||||
<div v-show="appearNote.cw == null || showContent">
|
<div v-show="appearNote.cw == null || showContent">
|
||||||
<span v-if="appearNote.isHidden" style="opacity: 0.5">({{ i18n.ts.private }})</span>
|
<span v-if="appearNote.isHidden" style="opacity: 0.5">({{ i18n.ts.private }})</span>
|
||||||
<MkA v-if="appearNote.replyId" :class="$style.noteReplyTarget" :to="`/notes/${appearNote.replyId}`"><i class="ph-arrow-bend-left-up ph-bold pg-lg"></i></MkA>
|
<MkA v-if="appearNote.replyId" :class="$style.noteReplyTarget" :to="`/notes/${appearNote.replyId}`"><i class="ph-arrow-bend-left-up ph-bold ph-lg"></i></MkA>
|
||||||
<Mfm v-if="appearNote.text" :text="appearNote.text" :author="appearNote.user" :nyaize="'account'" :emojiUrls="appearNote.emojis"/>
|
<Mfm v-if="appearNote.text" :text="appearNote.text" :author="appearNote.user" :nyaize="'account'" :emojiUrls="appearNote.emojis"/>
|
||||||
<a v-if="appearNote.renote != null" :class="$style.rn">RN:</a>
|
<a v-if="appearNote.renote != null" :class="$style.rn">RN:</a>
|
||||||
<div v-if="translating || translation" :class="$style.translation">
|
<div v-if="translating || translation" :class="$style.translation">
|
||||||
|
@ -58,7 +58,7 @@
|
||||||
<MkTime :time="appearNote.createdAt" mode="detail"/>
|
<MkTime :time="appearNote.createdAt" mode="detail"/>
|
||||||
</div>
|
</div>
|
||||||
<button class="_button" :class="$style.noteFooterButton">
|
<button class="_button" :class="$style.noteFooterButton">
|
||||||
<i class="ph-arrow-u-up-left ph-bold pg-lg"></i>
|
<i class="ph-arrow-u-up-left ph-bold ph-lg"></i>
|
||||||
</button>
|
</button>
|
||||||
<button class="_button" :class="$style.noteFooterButton">
|
<button class="_button" :class="$style.noteFooterButton">
|
||||||
<i class="ph-rocket-launch ph-bold ph-lg"></i>
|
<i class="ph-rocket-launch ph-bold ph-lg"></i>
|
||||||
|
|
|
@ -51,7 +51,7 @@ function onContextmenu(ev) {
|
||||||
os.pageWindow(props.to);
|
os.pageWindow(props.to);
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-eject ph-bold pg-lg',
|
icon: 'ph-eject ph-bold ph-lg',
|
||||||
text: i18n.ts.showInPage,
|
text: i18n.ts.showInPage,
|
||||||
action: () => {
|
action: () => {
|
||||||
router.push(props.to, 'forcePage');
|
router.push(props.to, 'forcePage');
|
||||||
|
|
|
@ -92,12 +92,12 @@ export const SomeTabs = {
|
||||||
{
|
{
|
||||||
key: 'fairy',
|
key: 'fairy',
|
||||||
title: 'Fairy',
|
title: 'Fairy',
|
||||||
icon: 'ph-snowflake ph-bold pg-lg',
|
icon: 'ph-snowflake ph-bold ph-lg',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: 'angel',
|
key: 'angel',
|
||||||
title: 'Angel',
|
title: 'Angel',
|
||||||
icon: 'ph-feather ph-bold pg-lg',
|
icon: 'ph-feather ph-bold ph-lg',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
|
@ -81,7 +81,7 @@ export const navbarItemDef = reactive({
|
||||||
},
|
},
|
||||||
favorites: {
|
favorites: {
|
||||||
title: i18n.ts.favorites,
|
title: i18n.ts.favorites,
|
||||||
icon: 'ph-bookmark ph-bold ph-lg',
|
icon: 'ph-star ph-bold ph-lg',
|
||||||
show: computed(() => $i != null),
|
show: computed(() => $i != null),
|
||||||
to: '/my/favorites',
|
to: '/my/favorites',
|
||||||
},
|
},
|
||||||
|
|
|
@ -30,12 +30,12 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<div class="_gaps_s">
|
<div class="_gaps_s">
|
||||||
<FormLink to="https://github.com/transfem-org/Sharkey" external>
|
<FormLink to="https://github.com/transfem-org/Sharkey" external>
|
||||||
<template #icon><i class="ph-code ph-bold pg-lg"></i></template>
|
<template #icon><i class="ph-code ph-bold ph-lg"></i></template>
|
||||||
{{ i18n.ts._aboutMisskey.source }}
|
{{ i18n.ts._aboutMisskey.source }}
|
||||||
<template #suffix>GitHub</template>
|
<template #suffix>GitHub</template>
|
||||||
</FormLink>
|
</FormLink>
|
||||||
<FormLink to="https://ko-fi.com/transfem" external>
|
<FormLink to="https://ko-fi.com/transfem" external>
|
||||||
<template #icon><i class="ph-piggy-bank ph-bold pg-lg"></i></template>
|
<template #icon><i class="ph-piggy-bank ph-bold ph-lg"></i></template>
|
||||||
{{ i18n.ts._aboutMisskey.donate }}
|
{{ i18n.ts._aboutMisskey.donate }}
|
||||||
<template #suffix>Ko-Fi</template>
|
<template #suffix>Ko-Fi</template>
|
||||||
</FormLink>
|
</FormLink>
|
||||||
|
|
|
@ -148,7 +148,7 @@ const headerTabs = $computed(() => [{
|
||||||
}, {
|
}, {
|
||||||
key: 'emojis',
|
key: 'emojis',
|
||||||
title: i18n.ts.customEmojis,
|
title: i18n.ts.customEmojis,
|
||||||
icon: 'ph-smiley ph-bold pg-lg',
|
icon: 'ph-smiley ph-bold ph-lg',
|
||||||
}, {
|
}, {
|
||||||
key: 'federation',
|
key: 'federation',
|
||||||
title: i18n.ts.federation,
|
title: i18n.ts.federation,
|
||||||
|
@ -156,7 +156,7 @@ const headerTabs = $computed(() => [{
|
||||||
}, {
|
}, {
|
||||||
key: 'charts',
|
key: 'charts',
|
||||||
title: i18n.ts.charts,
|
title: i18n.ts.charts,
|
||||||
icon: 'ph-chart-line ph-bold pg-lg',
|
icon: 'ph-chart-line ph-bold ph-lg',
|
||||||
}]);
|
}]);
|
||||||
|
|
||||||
definePageMetadata(computed(() => ({
|
definePageMetadata(computed(() => ({
|
||||||
|
|
|
@ -135,7 +135,7 @@ const headerTabs = $computed(() => [{
|
||||||
} : null, {
|
} : null, {
|
||||||
key: 'raw',
|
key: 'raw',
|
||||||
title: 'Raw data',
|
title: 'Raw data',
|
||||||
icon: 'ph-code ph-bold pg-lg',
|
icon: 'ph-code ph-bold ph-lg',
|
||||||
}]);
|
}]);
|
||||||
|
|
||||||
definePageMetadata(computed(() => ({
|
definePageMetadata(computed(() => ({
|
||||||
|
|
|
@ -72,7 +72,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</MkKeyValue>
|
</MkKeyValue>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<MkButton @click="updateRemoteUser"><i class="ph-arrows-counter-clockwise ph-bold pg-lg"></i> {{ i18n.ts.updateRemoteUser }}</MkButton>
|
<MkButton @click="updateRemoteUser"><i class="ph-arrows-counter-clockwise ph-bold ph-lg"></i> {{ i18n.ts.updateRemoteUser }}</MkButton>
|
||||||
</div>
|
</div>
|
||||||
</FormSection>
|
</FormSection>
|
||||||
|
|
||||||
|
@ -474,7 +474,7 @@ const headerTabs = $computed(() => [{
|
||||||
}, {
|
}, {
|
||||||
key: 'roles',
|
key: 'roles',
|
||||||
title: i18n.ts.roles,
|
title: i18n.ts.roles,
|
||||||
icon: 'ph-seal-check ph-bold pg-lg',
|
icon: 'ph-seal-check ph-bold ph-lg',
|
||||||
}, {
|
}, {
|
||||||
key: 'announcements',
|
key: 'announcements',
|
||||||
title: i18n.ts.announcements,
|
title: i18n.ts.announcements,
|
||||||
|
@ -486,11 +486,11 @@ const headerTabs = $computed(() => [{
|
||||||
}, {
|
}, {
|
||||||
key: 'chart',
|
key: 'chart',
|
||||||
title: i18n.ts.charts,
|
title: i18n.ts.charts,
|
||||||
icon: 'ph-chart-line ph-bold pg-lg',
|
icon: 'ph-chart-line ph-bold ph-lg',
|
||||||
}, {
|
}, {
|
||||||
key: 'raw',
|
key: 'raw',
|
||||||
title: 'Raw',
|
title: 'Raw',
|
||||||
icon: 'ph-code ph-bold pg-lg',
|
icon: 'ph-code ph-bold ph-lg',
|
||||||
}]);
|
}]);
|
||||||
|
|
||||||
definePageMetadata(computed(() => ({
|
definePageMetadata(computed(() => ({
|
||||||
|
|
|
@ -65,7 +65,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<MkButton class="button" inline primary style="margin-right: 12px;" @click="save(ad)">
|
<MkButton class="button" inline primary style="margin-right: 12px;" @click="save(ad)">
|
||||||
<i
|
<i
|
||||||
class="ph-floppy-disk ph-bold pg-lg"
|
class="ph-floppy-disk ph-bold ph-lg"
|
||||||
></i> {{ i18n.ts.save }}
|
></i> {{ i18n.ts.save }}
|
||||||
</MkButton>
|
</MkButton>
|
||||||
<MkButton class="button" inline danger @click="remove(ad)">
|
<MkButton class="button" inline danger @click="remove(ad)">
|
||||||
|
|
|
@ -53,7 +53,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</MkSwitch>
|
</MkSwitch>
|
||||||
<p v-if="announcement.reads">{{ i18n.t('nUsersRead', { n: announcement.reads }) }}</p>
|
<p v-if="announcement.reads">{{ i18n.t('nUsersRead', { n: announcement.reads }) }}</p>
|
||||||
<div class="buttons _buttons">
|
<div class="buttons _buttons">
|
||||||
<MkButton class="button" inline primary @click="save(announcement)"><i class="ph-floppy-disk ph-bold pg-lg"></i> {{ i18n.ts.save }}</MkButton>
|
<MkButton class="button" inline primary @click="save(announcement)"><i class="ph-floppy-disk ph-bold ph-lg"></i> {{ i18n.ts.save }}</MkButton>
|
||||||
<MkButton v-if="announcement.id != null" class="button" inline @click="archive(announcement)"><i class="ph-check ph-bold ph-lg"></i> {{ i18n.ts._announcement.end }} ({{ i18n.ts.archive }})</MkButton>
|
<MkButton v-if="announcement.id != null" class="button" inline @click="archive(announcement)"><i class="ph-check ph-bold ph-lg"></i> {{ i18n.ts._announcement.end }} ({{ i18n.ts.archive }})</MkButton>
|
||||||
<MkButton v-if="announcement.id != null" class="button" inline danger @click="del(announcement)"><i class="ph-trash ph-bold ph-lg"></i> {{ i18n.ts.delete }}</MkButton>
|
<MkButton v-if="announcement.id != null" class="button" inline danger @click="del(announcement)"><i class="ph-trash ph-bold ph-lg"></i> {{ i18n.ts.delete }}</MkButton>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -50,7 +50,7 @@ const headerTabs = $computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(computed(() => ({
|
definePageMetadata(computed(() => ({
|
||||||
title: i18n.ts.approvals,
|
title: i18n.ts.approvals,
|
||||||
icon: 'ph-chalkboard-teacher ph-bold pg-lg',
|
icon: 'ph-chalkboard-teacher ph-bold ph-lg',
|
||||||
})));
|
})));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</FormSlot>
|
</FormSlot>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<MkButton primary @click="save"><i class="ph-floppy-disk ph-bold pg-lg"></i> {{ i18n.ts.save }}</MkButton>
|
<MkButton primary @click="save"><i class="ph-floppy-disk ph-bold ph-lg"></i> {{ i18n.ts.save }}</MkButton>
|
||||||
</div>
|
</div>
|
||||||
</FormSuspense>
|
</FormSuspense>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -35,6 +35,6 @@ const headerTabs = $computed(() => []);
|
||||||
|
|
||||||
definePageMetadata({
|
definePageMetadata({
|
||||||
title: i18n.ts.database,
|
title: i18n.ts.database,
|
||||||
icon: 'ph-database ph-bold pg-lg',
|
icon: 'ph-database ph-bold ph-lg',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -45,7 +45,7 @@ const router = useRouter();
|
||||||
|
|
||||||
const indexInfo = {
|
const indexInfo = {
|
||||||
title: i18n.ts.controlPanel,
|
title: i18n.ts.controlPanel,
|
||||||
icon: 'ph-gear ph-bold pg-lg',
|
icon: 'ph-gear ph-bold ph-lg',
|
||||||
hideHeader: true,
|
hideHeader: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -101,12 +101,12 @@ const menuDef = $computed(() => [{
|
||||||
}, {
|
}, {
|
||||||
title: i18n.ts.administration,
|
title: i18n.ts.administration,
|
||||||
items: [{
|
items: [{
|
||||||
icon: 'ph-gauge ph-bold pg-lg',
|
icon: 'ph-gauge ph-bold ph-lg',
|
||||||
text: i18n.ts.dashboard,
|
text: i18n.ts.dashboard,
|
||||||
to: '/admin/overview',
|
to: '/admin/overview',
|
||||||
active: currentPage?.route.name === 'overview',
|
active: currentPage?.route.name === 'overview',
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-users ph-bold pg-lg',
|
icon: 'ph-users ph-bold ph-lg',
|
||||||
text: i18n.ts.users,
|
text: i18n.ts.users,
|
||||||
to: '/admin/users',
|
to: '/admin/users',
|
||||||
active: currentPage?.route.name === 'users',
|
active: currentPage?.route.name === 'users',
|
||||||
|
@ -121,12 +121,12 @@ const menuDef = $computed(() => [{
|
||||||
to: '/admin/approvals',
|
to: '/admin/approvals',
|
||||||
active: currentPage?.route.name === 'approvals',
|
active: currentPage?.route.name === 'approvals',
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-seal-check ph-bold pg-lg',
|
icon: 'ph-seal-check ph-bold ph-lg',
|
||||||
text: i18n.ts.roles,
|
text: i18n.ts.roles,
|
||||||
to: '/admin/roles',
|
to: '/admin/roles',
|
||||||
active: currentPage?.route.name === 'roles',
|
active: currentPage?.route.name === 'roles',
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-smiley ph-bold pg-lg',
|
icon: 'ph-smiley ph-bold ph-lg',
|
||||||
text: i18n.ts.customEmojis,
|
text: i18n.ts.customEmojis,
|
||||||
to: '/admin/emojis',
|
to: '/admin/emojis',
|
||||||
active: currentPage?.route.name === 'emojis',
|
active: currentPage?.route.name === 'emojis',
|
||||||
|
@ -166,7 +166,7 @@ const menuDef = $computed(() => [{
|
||||||
to: '/admin/abuses',
|
to: '/admin/abuses',
|
||||||
active: currentPage?.route.name === 'abuses',
|
active: currentPage?.route.name === 'abuses',
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-list ph-bold pg-lg-search',
|
icon: 'ph-list ph-bold ph-lg-search',
|
||||||
text: i18n.ts.moderationLogs,
|
text: i18n.ts.moderationLogs,
|
||||||
to: '/admin/modlog',
|
to: '/admin/modlog',
|
||||||
active: currentPage?.route.name === 'modlog',
|
active: currentPage?.route.name === 'modlog',
|
||||||
|
@ -174,7 +174,7 @@ const menuDef = $computed(() => [{
|
||||||
}, {
|
}, {
|
||||||
title: i18n.ts.settings,
|
title: i18n.ts.settings,
|
||||||
items: [{
|
items: [{
|
||||||
icon: 'ph-gear ph-bold pg-lg',
|
icon: 'ph-gear ph-bold ph-lg',
|
||||||
text: i18n.ts.general,
|
text: i18n.ts.general,
|
||||||
to: '/admin/settings',
|
to: '/admin/settings',
|
||||||
active: currentPage?.route.name === 'settings',
|
active: currentPage?.route.name === 'settings',
|
||||||
|
@ -204,7 +204,7 @@ const menuDef = $computed(() => [{
|
||||||
to: '/admin/security',
|
to: '/admin/security',
|
||||||
active: currentPage?.route.name === 'security',
|
active: currentPage?.route.name === 'security',
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-planet ph-bold pg-lg',
|
icon: 'ph-planet ph-bold ph-lg',
|
||||||
text: i18n.ts.relays,
|
text: i18n.ts.relays,
|
||||||
to: '/admin/relays',
|
to: '/admin/relays',
|
||||||
active: currentPage?.route.name === 'relays',
|
active: currentPage?.route.name === 'relays',
|
||||||
|
@ -219,7 +219,7 @@ const menuDef = $computed(() => [{
|
||||||
to: '/admin/proxy-account',
|
to: '/admin/proxy-account',
|
||||||
active: currentPage?.route.name === 'proxy-account',
|
active: currentPage?.route.name === 'proxy-account',
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-arrow-square-out ph-bold pg-lg',
|
icon: 'ph-arrow-square-out ph-bold ph-lg',
|
||||||
text: i18n.ts.externalServices,
|
text: i18n.ts.externalServices,
|
||||||
to: '/admin/external-services',
|
to: '/admin/external-services',
|
||||||
active: currentPage?.route.name === 'external-services',
|
active: currentPage?.route.name === 'external-services',
|
||||||
|
@ -232,7 +232,7 @@ const menuDef = $computed(() => [{
|
||||||
}, {
|
}, {
|
||||||
title: i18n.ts.info,
|
title: i18n.ts.info,
|
||||||
items: [{
|
items: [{
|
||||||
icon: 'ph-database ph-bold pg-lg',
|
icon: 'ph-database ph-bold ph-lg',
|
||||||
text: i18n.ts.database,
|
text: i18n.ts.database,
|
||||||
to: '/admin/database',
|
to: '/admin/database',
|
||||||
active: currentPage?.route.name === 'database',
|
active: currentPage?.route.name === 'database',
|
||||||
|
@ -314,7 +314,7 @@ const lookup = (ev) => {
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
text: i18n.ts.instance,
|
text: i18n.ts.instance,
|
||||||
icon: 'ph-planet ph-bold pg-lg',
|
icon: 'ph-planet ph-bold ph-lg',
|
||||||
action: () => {
|
action: () => {
|
||||||
alert('TODO');
|
alert('TODO');
|
||||||
},
|
},
|
||||||
|
|
|
@ -16,7 +16,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<span>{{ i18n.ts.silencedInstances }}</span>
|
<span>{{ i18n.ts.silencedInstances }}</span>
|
||||||
<template #caption>{{ i18n.ts.silencedInstancesDescription }}</template>
|
<template #caption>{{ i18n.ts.silencedInstancesDescription }}</template>
|
||||||
</MkTextarea>
|
</MkTextarea>
|
||||||
<MkButton primary @click="save"><i class="ph-floppy-disk ph-bold pg-lg"></i> {{ i18n.ts.save }}</MkButton>
|
<MkButton primary @click="save"><i class="ph-floppy-disk ph-bold ph-lg"></i> {{ i18n.ts.save }}</MkButton>
|
||||||
</FormSuspense>
|
</FormSuspense>
|
||||||
</MkSpacer>
|
</MkSpacer>
|
||||||
</MkStickyContainer>
|
</MkStickyContainer>
|
||||||
|
|
|
@ -62,6 +62,6 @@ const headerTabs = $computed(() => []);
|
||||||
|
|
||||||
definePageMetadata({
|
definePageMetadata({
|
||||||
title: i18n.ts.moderationLogs,
|
title: i18n.ts.moderationLogs,
|
||||||
icon: 'ph-list ph-bold pg-lg-search',
|
icon: 'ph-list ph-bold ph-lg-search',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -9,7 +9,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<MkLoading v-if="fetching"/>
|
<MkLoading v-if="fetching"/>
|
||||||
<div v-else :class="$style.root">
|
<div v-else :class="$style.root">
|
||||||
<div class="item _panel users">
|
<div class="item _panel users">
|
||||||
<div class="icon"><i class="ph-users ph-bold pg-lg"></i></div>
|
<div class="icon"><i class="ph-users ph-bold ph-lg"></i></div>
|
||||||
<div class="body">
|
<div class="body">
|
||||||
<div class="value">
|
<div class="value">
|
||||||
<MkNumber :value="stats.originalUsersCount" style="margin-right: 0.5em;"/>
|
<MkNumber :value="stats.originalUsersCount" style="margin-right: 0.5em;"/>
|
||||||
|
@ -29,7 +29,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="item _panel instances">
|
<div class="item _panel instances">
|
||||||
<div class="icon"><i class="ph-planet ph-bold pg-lg"></i></div>
|
<div class="icon"><i class="ph-planet ph-bold ph-lg"></i></div>
|
||||||
<div class="body">
|
<div class="body">
|
||||||
<div class="value">
|
<div class="value">
|
||||||
<MkNumber :value="stats.instances" style="margin-right: 0.5em;"/>
|
<MkNumber :value="stats.instances" style="margin-right: 0.5em;"/>
|
||||||
|
@ -38,7 +38,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="item _panel emojis">
|
<div class="item _panel emojis">
|
||||||
<div class="icon"><i class="ph-smiley ph-bold pg-lg"></i></div>
|
<div class="icon"><i class="ph-smiley ph-bold ph-lg"></i></div>
|
||||||
<div class="body">
|
<div class="body">
|
||||||
<div class="value">
|
<div class="value">
|
||||||
<MkNumber :value="customEmojis.length" style="margin-right: 0.5em;"/>
|
<MkNumber :value="customEmojis.length" style="margin-right: 0.5em;"/>
|
||||||
|
|
|
@ -177,7 +177,7 @@ const headerTabs = $computed(() => []);
|
||||||
|
|
||||||
definePageMetadata({
|
definePageMetadata({
|
||||||
title: i18n.ts.dashboard,
|
title: i18n.ts.dashboard,
|
||||||
icon: 'ph-gauge ph-bold pg-lg',
|
icon: 'ph-gauge ph-bold ph-lg',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -84,7 +84,7 @@ const headerTabs = $computed(() => []);
|
||||||
|
|
||||||
definePageMetadata({
|
definePageMetadata({
|
||||||
title: i18n.ts.relays,
|
title: i18n.ts.relays,
|
||||||
icon: 'ph-planet ph-bold pg-lg',
|
icon: 'ph-planet ph-bold ph-lg',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -87,10 +87,10 @@ const headerTabs = $computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(computed(() => role ? {
|
definePageMetadata(computed(() => role ? {
|
||||||
title: i18n.ts._role.edit + ': ' + role.name,
|
title: i18n.ts._role.edit + ': ' + role.name,
|
||||||
icon: 'ph-seal-check ph-bold pg-lg',
|
icon: 'ph-seal-check ph-bold ph-lg',
|
||||||
} : {
|
} : {
|
||||||
title: i18n.ts._role.new,
|
title: i18n.ts._role.new,
|
||||||
icon: 'ph-seal-check ph-bold pg-lg',
|
icon: 'ph-seal-check ph-bold ph-lg',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</MkSelect>
|
</MkSelect>
|
||||||
|
|
||||||
<MkSelect v-model="role.target" :readonly="readonly">
|
<MkSelect v-model="role.target" :readonly="readonly">
|
||||||
<template #label><i class="ph-users ph-bold pg-lg"></i> {{ i18n.ts._role.assignTarget }}</template>
|
<template #label><i class="ph-users ph-bold ph-lg"></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>
|
||||||
|
@ -588,7 +588,7 @@ let q = $ref('');
|
||||||
function getPriorityIcon(option) {
|
function getPriorityIcon(option) {
|
||||||
if (option.priority === 2) return 'ph-arrow-up ph-bold ph-lg';
|
if (option.priority === 2) return 'ph-arrow-up ph-bold ph-lg';
|
||||||
if (option.priority === 1) return 'ph-arrow-up ph-bold ph-lg';
|
if (option.priority === 1) return 'ph-arrow-up ph-bold ph-lg';
|
||||||
return 'ph-circle ph-bold pg-lg';
|
return 'ph-circle ph-bold ph-lg';
|
||||||
}
|
}
|
||||||
|
|
||||||
function matchQuery(keywords: string[]): boolean {
|
function matchQuery(keywords: string[]): boolean {
|
||||||
|
|
|
@ -19,7 +19,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<XEditor :modelValue="role" readonly/>
|
<XEditor :modelValue="role" readonly/>
|
||||||
</MkFolder>
|
</MkFolder>
|
||||||
<MkFolder v-if="role.target === 'manual'" defaultOpen>
|
<MkFolder v-if="role.target === 'manual'" defaultOpen>
|
||||||
<template #icon><i class="ph-users ph-bold pg-lg"></i></template>
|
<template #icon><i class="ph-users ph-bold ph-lg"></i></template>
|
||||||
<template #label>{{ i18n.ts.users }}</template>
|
<template #label>{{ i18n.ts.users }}</template>
|
||||||
<template #suffix>{{ role.usersCount }}</template>
|
<template #suffix>{{ role.usersCount }}</template>
|
||||||
<div class="_gaps">
|
<div class="_gaps">
|
||||||
|
@ -173,7 +173,7 @@ const headerTabs = $computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(computed(() => ({
|
definePageMetadata(computed(() => ({
|
||||||
title: i18n.ts.role + ': ' + role.name,
|
title: i18n.ts.role + ': ' + role.name,
|
||||||
icon: 'ph-seal-check ph-bold pg-lg',
|
icon: 'ph-seal-check ph-bold ph-lg',
|
||||||
})));
|
})));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -264,7 +264,7 @@ const headerTabs = $computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(computed(() => ({
|
definePageMetadata(computed(() => ({
|
||||||
title: i18n.ts.roles,
|
title: i18n.ts.roles,
|
||||||
icon: 'ph-seal-check ph-bold pg-lg',
|
icon: 'ph-seal-check ph-bold ph-lg',
|
||||||
})));
|
})));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -59,7 +59,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</MkSwitch>
|
</MkSwitch>
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<MkButton primary @click="save"><i class="ph-floppy-disk ph-bold pg-lg"></i> {{ i18n.ts.save }}</MkButton>
|
<MkButton primary @click="save"><i class="ph-floppy-disk ph-bold ph-lg"></i> {{ i18n.ts.save }}</MkButton>
|
||||||
</div>
|
</div>
|
||||||
</MkFolder>
|
</MkFolder>
|
||||||
|
|
||||||
|
@ -97,7 +97,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<template #label>Summaly Proxy URL</template>
|
<template #label>Summaly Proxy URL</template>
|
||||||
</MkInput>
|
</MkInput>
|
||||||
|
|
||||||
<MkButton primary @click="save"><i class="ph-floppy-disk ph-bold pg-lg"></i> {{ i18n.ts.save }}</MkButton>
|
<MkButton primary @click="save"><i class="ph-floppy-disk ph-bold ph-lg"></i> {{ i18n.ts.save }}</MkButton>
|
||||||
</div>
|
</div>
|
||||||
</MkFolder>
|
</MkFolder>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -228,7 +228,7 @@ const headerTabs = $computed(() => []);
|
||||||
|
|
||||||
definePageMetadata({
|
definePageMetadata({
|
||||||
title: i18n.ts.general,
|
title: i18n.ts.general,
|
||||||
icon: 'ph-gear ph-bold pg-lg',
|
icon: 'ph-gear ph-bold ph-lg',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -140,7 +140,7 @@ const headerTabs = $computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(computed(() => ({
|
definePageMetadata(computed(() => ({
|
||||||
title: i18n.ts.users,
|
title: i18n.ts.users,
|
||||||
icon: 'ph-users ph-bold pg-lg',
|
icon: 'ph-users ph-bold ph-lg',
|
||||||
})));
|
})));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -95,11 +95,11 @@ const headerActions = $computed(() => []);
|
||||||
const headerTabs = $computed(() => [{
|
const headerTabs = $computed(() => [{
|
||||||
key: 'current',
|
key: 'current',
|
||||||
title: i18n.ts.currentAnnouncements,
|
title: i18n.ts.currentAnnouncements,
|
||||||
icon: 'ph-fire ph-bold pg-lg',
|
icon: 'ph-fire ph-bold ph-lg',
|
||||||
}, {
|
}, {
|
||||||
key: 'past',
|
key: 'past',
|
||||||
title: i18n.ts.pastAnnouncements,
|
title: i18n.ts.pastAnnouncements,
|
||||||
icon: 'ph-circle ph-bold pg-lg',
|
icon: 'ph-circle ph-bold ph-lg',
|
||||||
}]);
|
}]);
|
||||||
|
|
||||||
definePageMetadata({
|
definePageMetadata({
|
||||||
|
|
|
@ -82,7 +82,7 @@ const headerActions = $computed(() => antenna ? [{
|
||||||
text: i18n.ts.jumpToSpecifiedDate,
|
text: i18n.ts.jumpToSpecifiedDate,
|
||||||
handler: timetravel,
|
handler: timetravel,
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-gear ph-bold pg-lg',
|
icon: 'ph-gear ph-bold ph-lg',
|
||||||
text: i18n.ts.settings,
|
text: i18n.ts.settings,
|
||||||
handler: settings,
|
handler: settings,
|
||||||
}] : []);
|
}] : []);
|
||||||
|
@ -91,7 +91,7 @@ const headerTabs = $computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(computed(() => antenna ? {
|
definePageMetadata(computed(() => antenna ? {
|
||||||
title: antenna.name,
|
title: antenna.name,
|
||||||
icon: 'ph-flying-saucer ph-bold pg-lg',
|
icon: 'ph-flying-saucer ph-bold ph-lg',
|
||||||
} : null));
|
} : null));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -120,7 +120,7 @@ const headerTabs = $computed(() => []);
|
||||||
|
|
||||||
definePageMetadata({
|
definePageMetadata({
|
||||||
title: i18n.ts._auth.shareAccessTitle,
|
title: i18n.ts._auth.shareAccessTitle,
|
||||||
icon: 'ph-squares-four ph-bold pg-lg',
|
icon: 'ph-squares-four ph-bold ph-lg',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -60,7 +60,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</MkFolder>
|
</MkFolder>
|
||||||
|
|
||||||
<div class="_buttons">
|
<div class="_buttons">
|
||||||
<MkButton primary @click="save()"><i class="ph-floppy-disk ph-bold pg-lg"></i> {{ channelId ? i18n.ts.save : i18n.ts.create }}</MkButton>
|
<MkButton primary @click="save()"><i class="ph-floppy-disk ph-bold ph-lg"></i> {{ channelId ? i18n.ts.save : i18n.ts.create }}</MkButton>
|
||||||
<MkButton v-if="channelId" danger @click="archive()"><i class="ph-trash ph-bold ph-lg"></i> {{ i18n.ts.archive }}</MkButton>
|
<MkButton v-if="channelId" danger @click="archive()"><i class="ph-trash ph-bold ph-lg"></i> {{ i18n.ts.archive }}</MkButton>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -10,11 +10,11 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<div v-if="channel && tab === 'overview'" class="_gaps">
|
<div v-if="channel && tab === 'overview'" class="_gaps">
|
||||||
<div class="_panel" :class="$style.bannerContainer">
|
<div class="_panel" :class="$style.bannerContainer">
|
||||||
<XChannelFollowButton :channel="channel" :full="true" :class="$style.subscribe"/>
|
<XChannelFollowButton :channel="channel" :full="true" :class="$style.subscribe"/>
|
||||||
<MkButton v-if="favorited" v-tooltip="i18n.ts.unfavorite" asLike class="button" rounded primary :class="$style.favorite" @click="unfavorite()"><i class="ph-star ph-bold pg-lg"></i></MkButton>
|
<MkButton v-if="favorited" v-tooltip="i18n.ts.unfavorite" asLike class="button" rounded primary :class="$style.favorite" @click="unfavorite()"><i class="ph-star ph-bold ph-lg"></i></MkButton>
|
||||||
<MkButton v-else v-tooltip="i18n.ts.favorite" asLike class="button" rounded :class="$style.favorite" @click="favorite()"><i class="ph-star ph-bold pg-lg"></i></MkButton>
|
<MkButton v-else v-tooltip="i18n.ts.favorite" asLike class="button" rounded :class="$style.favorite" @click="favorite()"><i class="ph-star ph-bold ph-lg"></i></MkButton>
|
||||||
<div :style="{ backgroundImage: channel.bannerUrl ? `url(${channel.bannerUrl})` : null }" :class="$style.banner">
|
<div :style="{ backgroundImage: channel.bannerUrl ? `url(${channel.bannerUrl})` : null }" :class="$style.banner">
|
||||||
<div :class="$style.bannerStatus">
|
<div :class="$style.bannerStatus">
|
||||||
<div><i class="ph-users ph-bold pg-lg ti-fw"></i><I18n :src="i18n.ts._channel.usersCount" tag="span" style="margin-left: 4px;"><template #n><b>{{ channel.usersCount }}</b></template></I18n></div>
|
<div><i class="ph-users ph-bold ph-lg ti-fw"></i><I18n :src="i18n.ts._channel.usersCount" tag="span" style="margin-left: 4px;"><template #n><b>{{ channel.usersCount }}</b></template></I18n></div>
|
||||||
<div><i class="ph-pencil ph-bold ph-lg ti-fw"></i><I18n :src="i18n.ts._channel.notesCount" tag="span" style="margin-left: 4px;"><template #n><b>{{ channel.notesCount }}</b></template></I18n></div>
|
<div><i class="ph-pencil ph-bold ph-lg ti-fw"></i><I18n :src="i18n.ts._channel.notesCount" tag="span" style="margin-left: 4px;"><template #n><b>{{ channel.notesCount }}</b></template></I18n></div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="channel.isSensitive" :class="$style.sensitiveIndicator">{{ i18n.ts.sensitive }}</div>
|
<div v-if="channel.isSensitive" :class="$style.sensitiveIndicator">{{ i18n.ts.sensitive }}</div>
|
||||||
|
@ -168,7 +168,7 @@ async function search() {
|
||||||
const headerActions = $computed(() => {
|
const headerActions = $computed(() => {
|
||||||
if (channel && channel.userId) {
|
if (channel && channel.userId) {
|
||||||
const share = {
|
const share = {
|
||||||
icon: 'ph-share-network ph-bold pg-lg',
|
icon: 'ph-share-network ph-bold ph-lg',
|
||||||
text: i18n.ts.share,
|
text: i18n.ts.share,
|
||||||
handler: async (): Promise<void> => {
|
handler: async (): Promise<void> => {
|
||||||
navigator.share({
|
navigator.share({
|
||||||
|
@ -181,7 +181,7 @@ const headerActions = $computed(() => {
|
||||||
|
|
||||||
const canEdit = ($i && $i.id === channel.userId) || iAmModerator;
|
const canEdit = ($i && $i.id === channel.userId) || iAmModerator;
|
||||||
return canEdit ? [share, {
|
return canEdit ? [share, {
|
||||||
icon: 'ph-gear ph-bold pg-lg',
|
icon: 'ph-gear ph-bold ph-lg',
|
||||||
text: i18n.ts.edit,
|
text: i18n.ts.edit,
|
||||||
handler: edit,
|
handler: edit,
|
||||||
}] : [share];
|
}] : [share];
|
||||||
|
@ -201,7 +201,7 @@ const headerTabs = $computed(() => [{
|
||||||
}, {
|
}, {
|
||||||
key: 'featured',
|
key: 'featured',
|
||||||
title: i18n.ts.featured,
|
title: i18n.ts.featured,
|
||||||
icon: 'ph-lightning ph-bold pg-lg',
|
icon: 'ph-lightning ph-bold ph-lg',
|
||||||
}, {
|
}, {
|
||||||
key: 'search',
|
key: 'search',
|
||||||
title: i18n.ts.search,
|
title: i18n.ts.search,
|
||||||
|
|
|
@ -138,7 +138,7 @@ const headerTabs = $computed(() => [{
|
||||||
}, {
|
}, {
|
||||||
key: 'favorites',
|
key: 'favorites',
|
||||||
title: i18n.ts.favorites,
|
title: i18n.ts.favorites,
|
||||||
icon: 'ph-star ph-bold pg-lg',
|
icon: 'ph-star ph-bold ph-lg',
|
||||||
}, {
|
}, {
|
||||||
key: 'following',
|
key: 'following',
|
||||||
title: i18n.ts._channel.following,
|
title: i18n.ts._channel.following,
|
||||||
|
@ -146,7 +146,7 @@ const headerTabs = $computed(() => [{
|
||||||
}, {
|
}, {
|
||||||
key: 'owned',
|
key: 'owned',
|
||||||
title: i18n.ts._channel.owned,
|
title: i18n.ts._channel.owned,
|
||||||
icon: 'ph-pencil-line ph-bold pg-lg',
|
icon: 'ph-pencil-line ph-bold ph-lg',
|
||||||
}]);
|
}]);
|
||||||
|
|
||||||
definePageMetadata(computed(() => ({
|
definePageMetadata(computed(() => ({
|
||||||
|
|
|
@ -18,7 +18,7 @@ import { definePageMetadata } from '@/scripts/page-metadata.js';
|
||||||
|
|
||||||
definePageMetadata({
|
definePageMetadata({
|
||||||
title: '🍪👈',
|
title: '🍪👈',
|
||||||
icon: 'ph-cookie ph-bold pg-lg',
|
icon: 'ph-cookie ph-bold ph-lg',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -118,7 +118,7 @@ const headerActions = $computed(() => clip && isOwned ? [{
|
||||||
clipsCache.delete();
|
clipsCache.delete();
|
||||||
},
|
},
|
||||||
}, ...(clip.isPublic ? [{
|
}, ...(clip.isPublic ? [{
|
||||||
icon: 'ph-share-network ph-bold pg-lg',
|
icon: 'ph-share-network ph-bold ph-lg',
|
||||||
text: i18n.ts.share,
|
text: i18n.ts.share,
|
||||||
handler: async (): Promise<void> => {
|
handler: async (): Promise<void> => {
|
||||||
navigator.share({
|
navigator.share({
|
||||||
|
|
|
@ -316,7 +316,7 @@ const headerTabs = $computed(() => [{
|
||||||
|
|
||||||
definePageMetadata(computed(() => ({
|
definePageMetadata(computed(() => ({
|
||||||
title: i18n.ts.customEmojis,
|
title: i18n.ts.customEmojis,
|
||||||
icon: 'ph-smiley ph-bold pg-lg',
|
icon: 'ph-smiley ph-bold ph-lg',
|
||||||
})));
|
})));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<MkUserList :pagination="pinnedUsers"/>
|
<MkUserList :pagination="pinnedUsers"/>
|
||||||
</MkFoldableSection>
|
</MkFoldableSection>
|
||||||
<MkFoldableSection class="_margin" persistKey="explore-popular-users">
|
<MkFoldableSection class="_margin" persistKey="explore-popular-users">
|
||||||
<template #header><i class="ph-chart-line ph-bold pg-lg ti-fw" style="margin-right: 0.5em;"></i>{{ i18n.ts.popularUsers }}</template>
|
<template #header><i class="ph-chart-line ph-bold ph-lg ti-fw" style="margin-right: 0.5em;"></i>{{ i18n.ts.popularUsers }}</template>
|
||||||
<MkUserList :pagination="popularUsers"/>
|
<MkUserList :pagination="popularUsers"/>
|
||||||
</MkFoldableSection>
|
</MkFoldableSection>
|
||||||
<MkFoldableSection class="_margin" persistKey="explore-recently-updated-users">
|
<MkFoldableSection class="_margin" persistKey="explore-recently-updated-users">
|
||||||
|
@ -46,7 +46,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
|
||||||
<template v-if="tag == null">
|
<template v-if="tag == null">
|
||||||
<MkFoldableSection class="_margin">
|
<MkFoldableSection class="_margin">
|
||||||
<template #header><i class="ph-chart-line ph-bold pg-lg ti-fw" style="margin-right: 0.5em;"></i>{{ i18n.ts.popularUsers }}</template>
|
<template #header><i class="ph-chart-line ph-bold ph-lg ti-fw" style="margin-right: 0.5em;"></i>{{ i18n.ts.popularUsers }}</template>
|
||||||
<MkUserList :pagination="popularUsersF"/>
|
<MkUserList :pagination="popularUsersF"/>
|
||||||
</MkFoldableSection>
|
</MkFoldableSection>
|
||||||
<MkFoldableSection class="_margin">
|
<MkFoldableSection class="_margin">
|
||||||
|
@ -54,7 +54,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<MkUserList :pagination="recentlyUpdatedUsersF"/>
|
<MkUserList :pagination="recentlyUpdatedUsersF"/>
|
||||||
</MkFoldableSection>
|
</MkFoldableSection>
|
||||||
<MkFoldableSection class="_margin">
|
<MkFoldableSection class="_margin">
|
||||||
<template #header><i class="ph-rocket-launch ph-bold pg-lg ti-fw" style="margin-right: 0.5em;"></i>{{ i18n.ts.recentlyDiscoveredUsers }}</template>
|
<template #header><i class="ph-rocket-launch ph-bold ph-lg ti-fw" style="margin-right: 0.5em;"></i>{{ i18n.ts.recentlyDiscoveredUsers }}</template>
|
||||||
<MkUserList :pagination="recentlyRegisteredUsersF"/>
|
<MkUserList :pagination="recentlyRegisteredUsersF"/>
|
||||||
</MkFoldableSection>
|
</MkFoldableSection>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -47,15 +47,15 @@ const headerActions = $computed(() => []);
|
||||||
|
|
||||||
const headerTabs = $computed(() => [{
|
const headerTabs = $computed(() => [{
|
||||||
key: 'featured',
|
key: 'featured',
|
||||||
icon: 'ph-lightning ph-bold pg-lg',
|
icon: 'ph-lightning ph-bold ph-lg',
|
||||||
title: i18n.ts.featured,
|
title: i18n.ts.featured,
|
||||||
}, {
|
}, {
|
||||||
key: 'users',
|
key: 'users',
|
||||||
icon: 'ph-users ph-bold pg-lg',
|
icon: 'ph-users ph-bold ph-lg',
|
||||||
title: i18n.ts.users,
|
title: i18n.ts.users,
|
||||||
}, {
|
}, {
|
||||||
key: 'roles',
|
key: 'roles',
|
||||||
icon: 'ph-seal-check ph-bold pg-lg',
|
icon: 'ph-seal-check ph-bold ph-lg',
|
||||||
title: i18n.ts.roles,
|
title: i18n.ts.roles,
|
||||||
}]);
|
}]);
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ const pagination = {
|
||||||
|
|
||||||
definePageMetadata({
|
definePageMetadata({
|
||||||
title: i18n.ts.favorites,
|
title: i18n.ts.favorites,
|
||||||
icon: 'ph-star ph-bold pg-lg',
|
icon: 'ph-star ph-bold ph-lg',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -76,11 +76,11 @@ const headerActions = $computed(() => [{
|
||||||
const headerTabs = $computed(() => [{
|
const headerTabs = $computed(() => [{
|
||||||
key: 'featured',
|
key: 'featured',
|
||||||
title: i18n.ts._play.featured,
|
title: i18n.ts._play.featured,
|
||||||
icon: 'ph-fire ph-bold pg-lg',
|
icon: 'ph-fire ph-bold ph-lg',
|
||||||
}, {
|
}, {
|
||||||
key: 'my',
|
key: 'my',
|
||||||
title: i18n.ts._play.my,
|
title: i18n.ts._play.my,
|
||||||
icon: 'ph-pencil-line ph-bold pg-lg',
|
icon: 'ph-pencil-line ph-bold ph-lg',
|
||||||
}, {
|
}, {
|
||||||
key: 'liked',
|
key: 'liked',
|
||||||
title: i18n.ts._play.liked,
|
title: i18n.ts._play.liked,
|
||||||
|
@ -89,6 +89,6 @@ const headerTabs = $computed(() => [{
|
||||||
|
|
||||||
definePageMetadata(computed(() => ({
|
definePageMetadata(computed(() => ({
|
||||||
title: 'Play',
|
title: 'Play',
|
||||||
icon: 'ph-play ph-bold pg-lg',
|
icon: 'ph-play ph-bold ph-lg',
|
||||||
})));
|
})));
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -18,7 +18,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<MkButton v-if="flash.isLiked" v-tooltip="i18n.ts.unlike" asLike class="button" rounded primary @click="unlike()"><i class="ph-heart ph-bold ph-lg"></i><span v-if="flash.likedCount > 0" style="margin-left: 6px;">{{ flash.likedCount }}</span></MkButton>
|
<MkButton v-if="flash.isLiked" v-tooltip="i18n.ts.unlike" asLike class="button" rounded primary @click="unlike()"><i class="ph-heart ph-bold ph-lg"></i><span v-if="flash.likedCount > 0" style="margin-left: 6px;">{{ flash.likedCount }}</span></MkButton>
|
||||||
<MkButton v-else v-tooltip="i18n.ts.like" asLike class="button" rounded @click="like()"><i class="ph-heart ph-bold ph-lg"></i><span v-if="flash.likedCount > 0" style="margin-left: 6px;">{{ flash.likedCount }}</span></MkButton>
|
<MkButton v-else v-tooltip="i18n.ts.like" asLike class="button" rounded @click="like()"><i class="ph-heart ph-bold ph-lg"></i><span v-if="flash.likedCount > 0" style="margin-left: 6px;">{{ flash.likedCount }}</span></MkButton>
|
||||||
<MkButton v-tooltip="i18n.ts.shareWithNote" class="button" rounded @click="shareWithNote"><i class="ph-repeat ph-bold ph-lg ti-fw"></i></MkButton>
|
<MkButton v-tooltip="i18n.ts.shareWithNote" class="button" rounded @click="shareWithNote"><i class="ph-repeat ph-bold ph-lg ti-fw"></i></MkButton>
|
||||||
<MkButton v-tooltip="i18n.ts.share" class="button" rounded @click="share"><i class="ph-share-network ph-bold pg-lg ti-fw"></i></MkButton>
|
<MkButton v-tooltip="i18n.ts.share" class="button" rounded @click="share"><i class="ph-share-network ph-bold ph-lg ti-fw"></i></MkButton>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else :class="$style.ready">
|
<div v-else :class="$style.ready">
|
||||||
|
@ -33,7 +33,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</div>
|
</div>
|
||||||
</Transition>
|
</Transition>
|
||||||
<MkFolder :defaultOpen="false" :max-height="280" class="_margin">
|
<MkFolder :defaultOpen="false" :max-height="280" class="_margin">
|
||||||
<template #icon><i class="ph-code ph-bold pg-lg"></i></template>
|
<template #icon><i class="ph-code ph-bold ph-lg"></i></template>
|
||||||
<template #label>{{ i18n.ts._play.viewSource }}</template>
|
<template #label>{{ i18n.ts._play.viewSource }}</template>
|
||||||
|
|
||||||
<MkCode :code="flash.script" lang="is" :inline="false" class="_monospace"/>
|
<MkCode :code="flash.script" lang="is" :inline="false" class="_monospace"/>
|
||||||
|
|
|
@ -27,8 +27,8 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<MkSwitch v-model="isSensitive">{{ i18n.ts.markAsSensitive }}</MkSwitch>
|
<MkSwitch v-model="isSensitive">{{ i18n.ts.markAsSensitive }}</MkSwitch>
|
||||||
|
|
||||||
<div class="_buttons">
|
<div class="_buttons">
|
||||||
<MkButton v-if="postId" primary @click="save"><i class="ph-floppy-disk ph-bold pg-lg"></i> {{ i18n.ts.save }}</MkButton>
|
<MkButton v-if="postId" primary @click="save"><i class="ph-floppy-disk ph-bold ph-lg"></i> {{ i18n.ts.save }}</MkButton>
|
||||||
<MkButton v-else primary @click="save"><i class="ph-floppy-disk ph-bold pg-lg"></i> {{ i18n.ts.publish }}</MkButton>
|
<MkButton v-else primary @click="save"><i class="ph-floppy-disk ph-bold ph-lg"></i> {{ i18n.ts.publish }}</MkButton>
|
||||||
|
|
||||||
<MkButton v-if="postId" danger @click="del"><i class="ph-trash ph-bold ph-lg"></i> {{ i18n.ts.delete }}</MkButton>
|
<MkButton v-if="postId" danger @click="del"><i class="ph-trash ph-bold ph-lg"></i> {{ i18n.ts.delete }}</MkButton>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -107,7 +107,7 @@ const headerActions = $computed(() => [{
|
||||||
const headerTabs = $computed(() => [{
|
const headerTabs = $computed(() => [{
|
||||||
key: 'explore',
|
key: 'explore',
|
||||||
title: i18n.ts.gallery,
|
title: i18n.ts.gallery,
|
||||||
icon: 'ph-images-square ph-bold pg-lg',
|
icon: 'ph-images-square ph-bold ph-lg',
|
||||||
}, {
|
}, {
|
||||||
key: 'liked',
|
key: 'liked',
|
||||||
title: i18n.ts._gallery.liked,
|
title: i18n.ts._gallery.liked,
|
||||||
|
@ -115,12 +115,12 @@ const headerTabs = $computed(() => [{
|
||||||
}, {
|
}, {
|
||||||
key: 'my',
|
key: 'my',
|
||||||
title: i18n.ts._gallery.my,
|
title: i18n.ts._gallery.my,
|
||||||
icon: 'ph-pencil-line ph-bold pg-lg',
|
icon: 'ph-pencil-line ph-bold ph-lg',
|
||||||
}]);
|
}]);
|
||||||
|
|
||||||
definePageMetadata({
|
definePageMetadata({
|
||||||
title: i18n.ts.gallery,
|
title: i18n.ts.gallery,
|
||||||
icon: 'ph-images-square ph-bold pg-lg',
|
icon: 'ph-images-square ph-bold ph-lg',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<div class="other">
|
<div class="other">
|
||||||
<button v-if="$i && $i.id === post.user.id" v-tooltip="i18n.ts.edit" v-click-anime class="_button" @click="edit"><i class="ph-pencil ph-bold ph-lg ti-fw"></i></button>
|
<button v-if="$i && $i.id === post.user.id" v-tooltip="i18n.ts.edit" v-click-anime class="_button" @click="edit"><i class="ph-pencil ph-bold ph-lg ti-fw"></i></button>
|
||||||
<button v-tooltip="i18n.ts.shareWithNote" v-click-anime class="_button" @click="shareWithNote"><i class="ph-repeat ph-bold ph-lg ti-fw"></i></button>
|
<button v-tooltip="i18n.ts.shareWithNote" v-click-anime class="_button" @click="shareWithNote"><i class="ph-repeat ph-bold ph-lg ti-fw"></i></button>
|
||||||
<button v-tooltip="i18n.ts.share" v-click-anime class="_button" @click="share"><i class="ph-share-network ph-bold pg-lg ti-fw"></i></button>
|
<button v-tooltip="i18n.ts.share" v-click-anime class="_button" @click="share"><i class="ph-share-network ph-bold ph-lg ti-fw"></i></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="user">
|
<div class="user">
|
||||||
|
|
|
@ -37,7 +37,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<MkSwitch v-model="suspended" :disabled="!instance" @update:modelValue="toggleSuspend">{{ i18n.ts.stopActivityDelivery }}</MkSwitch>
|
<MkSwitch v-model="suspended" :disabled="!instance" @update:modelValue="toggleSuspend">{{ i18n.ts.stopActivityDelivery }}</MkSwitch>
|
||||||
<MkSwitch v-model="isBlocked" :disabled="!meta || !instance" @update:modelValue="toggleBlock">{{ i18n.ts.blockThisInstance }}</MkSwitch>
|
<MkSwitch v-model="isBlocked" :disabled="!meta || !instance" @update:modelValue="toggleBlock">{{ i18n.ts.blockThisInstance }}</MkSwitch>
|
||||||
<MkSwitch v-model="isSilenced" :disabled="!meta || !instance" @update:modelValue="toggleSilenced">{{ i18n.ts.silenceThisInstance }}</MkSwitch>
|
<MkSwitch v-model="isSilenced" :disabled="!meta || !instance" @update:modelValue="toggleSilenced">{{ i18n.ts.silenceThisInstance }}</MkSwitch>
|
||||||
<MkButton @click="refreshMetadata"><i class="ph-arrows-counter-clockwise ph-bold pg-lg"></i> Refresh metadata</MkButton>
|
<MkButton @click="refreshMetadata"><i class="ph-arrows-counter-clockwise ph-bold ph-lg"></i> Refresh metadata</MkButton>
|
||||||
</div>
|
</div>
|
||||||
</FormSection>
|
</FormSection>
|
||||||
|
|
||||||
|
@ -228,15 +228,15 @@ const headerTabs = $computed(() => [{
|
||||||
}, {
|
}, {
|
||||||
key: 'chart',
|
key: 'chart',
|
||||||
title: i18n.ts.charts,
|
title: i18n.ts.charts,
|
||||||
icon: 'ph-chart-line ph-bold pg-lg',
|
icon: 'ph-chart-line ph-bold ph-lg',
|
||||||
}, {
|
}, {
|
||||||
key: 'users',
|
key: 'users',
|
||||||
title: i18n.ts.users,
|
title: i18n.ts.users,
|
||||||
icon: 'ph-users ph-bold pg-lg',
|
icon: 'ph-users ph-bold ph-lg',
|
||||||
}, {
|
}, {
|
||||||
key: 'raw',
|
key: 'raw',
|
||||||
title: 'Raw',
|
title: 'Raw',
|
||||||
icon: 'ph-code ph-bold pg-lg',
|
icon: 'ph-code ph-bold ph-lg',
|
||||||
}]);
|
}]);
|
||||||
|
|
||||||
definePageMetadata({
|
definePageMetadata({
|
||||||
|
|
|
@ -101,7 +101,7 @@ const headerTabs = $computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(computed(() => list ? {
|
definePageMetadata(computed(() => list ? {
|
||||||
title: list.name,
|
title: list.name,
|
||||||
icon: 'ph-list ph-bold pg-lg',
|
icon: 'ph-list ph-bold ph-lg',
|
||||||
} : null));
|
} : null));
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" module>
|
<style lang="scss" module>
|
||||||
|
|
|
@ -95,7 +95,7 @@ const headerTabs = $computed(() => []);
|
||||||
|
|
||||||
definePageMetadata({
|
definePageMetadata({
|
||||||
title: 'MiAuth',
|
title: 'MiAuth',
|
||||||
icon: 'ph-squares-four ph-bold pg-lg',
|
icon: 'ph-squares-four ph-bold ph-lg',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -39,6 +39,6 @@ function onAntennaCreated() {
|
||||||
|
|
||||||
definePageMetadata({
|
definePageMetadata({
|
||||||
title: i18n.ts.manageAntennas,
|
title: i18n.ts.manageAntennas,
|
||||||
icon: 'ph-flying-saucer ph-bold pg-lg',
|
icon: 'ph-flying-saucer ph-bold ph-lg',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -36,6 +36,6 @@ os.api('antennas/show', { antennaId: props.antennaId }).then((antennaResponse) =
|
||||||
|
|
||||||
definePageMetadata({
|
definePageMetadata({
|
||||||
title: i18n.ts.manageAntennas,
|
title: i18n.ts.manageAntennas,
|
||||||
icon: 'ph-flying-saucer ph-bold pg-lg',
|
icon: 'ph-flying-saucer ph-bold ph-lg',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -41,7 +41,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<MkSwitch v-model="notify">{{ i18n.ts.notifyAntenna }}</MkSwitch>
|
<MkSwitch v-model="notify">{{ i18n.ts.notifyAntenna }}</MkSwitch>
|
||||||
</div>
|
</div>
|
||||||
<div :class="$style.actions">
|
<div :class="$style.actions">
|
||||||
<MkButton inline primary @click="saveAntenna()"><i class="ph-floppy-disk ph-bold pg-lg"></i> {{ i18n.ts.save }}</MkButton>
|
<MkButton inline primary @click="saveAntenna()"><i class="ph-floppy-disk ph-bold ph-lg"></i> {{ i18n.ts.save }}</MkButton>
|
||||||
<MkButton v-if="antenna.id != null" inline danger @click="deleteAntenna()"><i class="ph-trash ph-bold ph-lg"></i> {{ i18n.ts.delete }}</MkButton>
|
<MkButton v-if="antenna.id != null" inline danger @click="deleteAntenna()"><i class="ph-trash ph-bold ph-lg"></i> {{ i18n.ts.delete }}</MkButton>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -45,7 +45,7 @@ fetch();
|
||||||
|
|
||||||
const headerActions = $computed(() => [{
|
const headerActions = $computed(() => [{
|
||||||
asFullButton: true,
|
asFullButton: true,
|
||||||
icon: 'ph-arrows-counter-clockwise ph-bold pg-lg',
|
icon: 'ph-arrows-counter-clockwise ph-bold ph-lg',
|
||||||
text: i18n.ts.reload,
|
text: i18n.ts.reload,
|
||||||
handler: () => {
|
handler: () => {
|
||||||
antennasCache.delete();
|
antennasCache.delete();
|
||||||
|
@ -57,7 +57,7 @@ const headerTabs = $computed(() => []);
|
||||||
|
|
||||||
definePageMetadata({
|
definePageMetadata({
|
||||||
title: i18n.ts.manageAntennas,
|
title: i18n.ts.manageAntennas,
|
||||||
icon: 'ph-flying-saucer ph-bold pg-lg',
|
icon: 'ph-flying-saucer ph-bold ph-lg',
|
||||||
});
|
});
|
||||||
|
|
||||||
onActivated(() => {
|
onActivated(() => {
|
||||||
|
|
|
@ -59,7 +59,7 @@ async function create() {
|
||||||
|
|
||||||
const headerActions = $computed(() => [{
|
const headerActions = $computed(() => [{
|
||||||
asFullButton: true,
|
asFullButton: true,
|
||||||
icon: 'ph-arrows-counter-clockwise ph-bold pg-lg',
|
icon: 'ph-arrows-counter-clockwise ph-bold ph-lg',
|
||||||
text: i18n.ts.reload,
|
text: i18n.ts.reload,
|
||||||
handler: () => {
|
handler: () => {
|
||||||
userListsCache.delete();
|
userListsCache.delete();
|
||||||
|
@ -71,7 +71,7 @@ const headerTabs = $computed(() => []);
|
||||||
|
|
||||||
definePageMetadata({
|
definePageMetadata({
|
||||||
title: i18n.ts.manageLists,
|
title: i18n.ts.manageLists,
|
||||||
icon: 'ph-list ph-bold pg-lg',
|
icon: 'ph-list ph-bold ph-lg',
|
||||||
});
|
});
|
||||||
|
|
||||||
onActivated(() => {
|
onActivated(() => {
|
||||||
|
|
|
@ -185,7 +185,7 @@ const headerTabs = $computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(computed(() => list ? {
|
definePageMetadata(computed(() => list ? {
|
||||||
title: list.name,
|
title: list.name,
|
||||||
icon: 'ph-list ph-bold pg-lg',
|
icon: 'ph-list ph-bold ph-lg',
|
||||||
} : null));
|
} : null));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -80,7 +80,7 @@ const headerActions = $computed(() => [tab === 'all' ? {
|
||||||
const headerTabs = $computed(() => [{
|
const headerTabs = $computed(() => [{
|
||||||
key: 'all',
|
key: 'all',
|
||||||
title: i18n.ts.all,
|
title: i18n.ts.all,
|
||||||
icon: 'ph-circle ph-bold pg-lg',
|
icon: 'ph-circle ph-bold ph-lg',
|
||||||
}, {
|
}, {
|
||||||
key: 'mentions',
|
key: 'mentions',
|
||||||
title: i18n.ts.mentions,
|
title: i18n.ts.mentions,
|
||||||
|
@ -93,6 +93,6 @@ const headerTabs = $computed(() => [{
|
||||||
|
|
||||||
definePageMetadata(computed(() => ({
|
definePageMetadata(computed(() => ({
|
||||||
title: i18n.ts.notifications,
|
title: i18n.ts.notifications,
|
||||||
icon: 'ph-bell ph-bold pg-lg',
|
icon: 'ph-bell ph-bold ph-lg',
|
||||||
})));
|
})));
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -53,7 +53,7 @@ function onLogin(res): void {
|
||||||
|
|
||||||
definePageMetadata({
|
definePageMetadata({
|
||||||
title: 'OAuth',
|
title: 'OAuth',
|
||||||
icon: 'ph-squares-four ph-bold pg-lg',
|
icon: 'ph-squares-four ph-bold ph-lg',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<MkSpacer :contentMax="700">
|
<MkSpacer :contentMax="700">
|
||||||
<div class="jqqmcavi">
|
<div class="jqqmcavi">
|
||||||
<MkButton v-if="pageId" class="button" inline link :to="`/@${ author.username }/pages/${ currentName }`"><i class="ph-arrow-square-out ph-bold ph-lg"></i> {{ i18n.ts._pages.viewPage }}</MkButton>
|
<MkButton v-if="pageId" class="button" inline link :to="`/@${ author.username }/pages/${ currentName }`"><i class="ph-arrow-square-out ph-bold ph-lg"></i> {{ i18n.ts._pages.viewPage }}</MkButton>
|
||||||
<MkButton v-if="!readonly" inline primary class="button" @click="save"><i class="ph-floppy-disk ph-bold pg-lg"></i> {{ i18n.ts.save }}</MkButton>
|
<MkButton v-if="!readonly" inline primary class="button" @click="save"><i class="ph-floppy-disk ph-bold ph-lg"></i> {{ i18n.ts.save }}</MkButton>
|
||||||
<MkButton v-if="pageId" inline class="button" @click="duplicate"><i class="ph-copy ph-bold ph-lg"></i> {{ i18n.ts.duplicate }}</MkButton>
|
<MkButton v-if="pageId" inline class="button" @click="duplicate"><i class="ph-copy ph-bold ph-lg"></i> {{ i18n.ts.duplicate }}</MkButton>
|
||||||
<MkButton v-if="pageId && !readonly" inline class="button" danger @click="del"><i class="ph-trash ph-bold ph-lg"></i> {{ i18n.ts.delete }}</MkButton>
|
<MkButton v-if="pageId && !readonly" inline class="button" danger @click="del"><i class="ph-trash ph-bold ph-lg"></i> {{ i18n.ts.delete }}</MkButton>
|
||||||
</div>
|
</div>
|
||||||
|
@ -275,7 +275,7 @@ const headerActions = $computed(() => []);
|
||||||
const headerTabs = $computed(() => [{
|
const headerTabs = $computed(() => [{
|
||||||
key: 'settings',
|
key: 'settings',
|
||||||
title: i18n.ts._pages.pageSetting,
|
title: i18n.ts._pages.pageSetting,
|
||||||
icon: 'ph-gear ph-bold pg-lg',
|
icon: 'ph-gear ph-bold ph-lg',
|
||||||
}, {
|
}, {
|
||||||
key: 'contents',
|
key: 'contents',
|
||||||
title: i18n.ts._pages.contents,
|
title: i18n.ts._pages.contents,
|
||||||
|
|
|
@ -34,7 +34,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</div>
|
</div>
|
||||||
<div class="other">
|
<div class="other">
|
||||||
<button v-tooltip="i18n.ts.shareWithNote" v-click-anime class="_button" @click="shareWithNote"><i class="ph-rocket-launch ph-bold ph-lg ti-fw"></i></button>
|
<button v-tooltip="i18n.ts.shareWithNote" v-click-anime class="_button" @click="shareWithNote"><i class="ph-rocket-launch ph-bold ph-lg ti-fw"></i></button>
|
||||||
<button v-tooltip="i18n.ts.share" v-click-anime class="_button" @click="share"><i class="ph-share-network ph-bold pg-lg ti-fw"></i></button>
|
<button v-tooltip="i18n.ts.share" v-click-anime class="_button" @click="share"><i class="ph-share-network ph-bold ph-lg ti-fw"></i></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="user">
|
<div class="user">
|
||||||
|
|
|
@ -74,11 +74,11 @@ const headerActions = $computed(() => [{
|
||||||
const headerTabs = $computed(() => [{
|
const headerTabs = $computed(() => [{
|
||||||
key: 'featured',
|
key: 'featured',
|
||||||
title: i18n.ts._pages.featured,
|
title: i18n.ts._pages.featured,
|
||||||
icon: 'ph-fire ph-bold pg-lg',
|
icon: 'ph-fire ph-bold ph-lg',
|
||||||
}, {
|
}, {
|
||||||
key: 'my',
|
key: 'my',
|
||||||
title: i18n.ts._pages.my,
|
title: i18n.ts._pages.my,
|
||||||
icon: 'ph-pencil-line ph-bold pg-lg',
|
icon: 'ph-pencil-line ph-bold ph-lg',
|
||||||
}, {
|
}, {
|
||||||
key: 'liked',
|
key: 'liked',
|
||||||
title: i18n.ts._pages.liked,
|
title: i18n.ts._pages.liked,
|
||||||
|
|
|
@ -30,7 +30,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<template #label>{{ i18n.ts.value }} (JSON)</template>
|
<template #label>{{ i18n.ts.value }} (JSON)</template>
|
||||||
</MkTextarea>
|
</MkTextarea>
|
||||||
|
|
||||||
<MkButton primary @click="save"><i class="ph-floppy-disk ph-bold pg-lg"></i> {{ i18n.ts.save }}</MkButton>
|
<MkButton primary @click="save"><i class="ph-floppy-disk ph-bold ph-lg"></i> {{ i18n.ts.save }}</MkButton>
|
||||||
|
|
||||||
<MkKeyValue>
|
<MkKeyValue>
|
||||||
<template #key>{{ i18n.ts.updatedAt }}</template>
|
<template #key>{{ i18n.ts.updatedAt }}</template>
|
||||||
|
|
|
@ -74,7 +74,7 @@ const users = $computed(() => ({
|
||||||
|
|
||||||
const headerTabs = $computed(() => [{
|
const headerTabs = $computed(() => [{
|
||||||
key: 'users',
|
key: 'users',
|
||||||
icon: 'ph-users ph-bold pg-lg',
|
icon: 'ph-users ph-bold ph-lg',
|
||||||
title: i18n.ts.users,
|
title: i18n.ts.users,
|
||||||
}, {
|
}, {
|
||||||
key: 'timeline',
|
key: 'timeline',
|
||||||
|
@ -84,7 +84,7 @@ const headerTabs = $computed(() => [{
|
||||||
|
|
||||||
definePageMetadata(computed(() => ({
|
definePageMetadata(computed(() => ({
|
||||||
title: role?.name,
|
title: role?.name,
|
||||||
icon: 'ph-seal-check ph-bold pg-lg',
|
icon: 'ph-seal-check ph-bold ph-lg',
|
||||||
})));
|
})));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,7 @@ const headerTabs = $computed(() => [{
|
||||||
}, {
|
}, {
|
||||||
key: 'user',
|
key: 'user',
|
||||||
title: i18n.ts.users,
|
title: i18n.ts.users,
|
||||||
icon: 'ph-users ph-bold pg-lg',
|
icon: 'ph-users ph-bold ph-lg',
|
||||||
}]);
|
}]);
|
||||||
|
|
||||||
definePageMetadata(computed(() => ({
|
definePageMetadata(computed(() => ({
|
||||||
|
|
|
@ -42,7 +42,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</div>
|
</div>
|
||||||
<div class="_buttonsCenter" style="margin-top: 16px;">
|
<div class="_buttonsCenter" style="margin-top: 16px;">
|
||||||
<MkButton rounded @click="cancel">{{ i18n.ts.cancel }}</MkButton>
|
<MkButton rounded @click="cancel">{{ i18n.ts.cancel }}</MkButton>
|
||||||
<MkButton primary rounded gradate @click="page++">{{ i18n.ts.continue }} <i class="ph-arrow-right ph-bold pg-lg"></i></MkButton>
|
<MkButton primary rounded gradate @click="page++">{{ i18n.ts.continue }} <i class="ph-arrow-right ph-bold ph-lg"></i></MkButton>
|
||||||
</div>
|
</div>
|
||||||
</MkSpacer>
|
</MkSpacer>
|
||||||
</div>
|
</div>
|
||||||
|
@ -56,8 +56,8 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<div>{{ i18n.ts._2fa.step3 }}</div>
|
<div>{{ i18n.ts._2fa.step3 }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="_buttonsCenter" style="margin-top: 16px;">
|
<div class="_buttonsCenter" style="margin-top: 16px;">
|
||||||
<MkButton rounded @click="page--"><i class="ph-arrow-left ph-bold pg-lg"></i> {{ i18n.ts.goBack }}</MkButton>
|
<MkButton rounded @click="page--"><i class="ph-arrow-left ph-bold ph-lg"></i> {{ i18n.ts.goBack }}</MkButton>
|
||||||
<MkButton primary rounded gradate @click="tokenDone">{{ i18n.ts.continue }} <i class="ph-arrow-right ph-bold pg-lg"></i></MkButton>
|
<MkButton primary rounded gradate @click="tokenDone">{{ i18n.ts.continue }} <i class="ph-arrow-right ph-bold ph-lg"></i></MkButton>
|
||||||
</div>
|
</div>
|
||||||
</MkSpacer>
|
</MkSpacer>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -9,7 +9,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<div class="_gaps">
|
<div class="_gaps">
|
||||||
<div class="_buttons">
|
<div class="_buttons">
|
||||||
<MkButton primary @click="addAccount"><i class="ph-plus ph-bold ph-lg"></i> {{ i18n.ts.addAccount }}</MkButton>
|
<MkButton primary @click="addAccount"><i class="ph-plus ph-bold ph-lg"></i> {{ i18n.ts.addAccount }}</MkButton>
|
||||||
<MkButton @click="init"><i class="ph-arrows-counter-clockwise ph-bold pg-lg"></i> {{ i18n.ts.reloadAccountsList }}</MkButton>
|
<MkButton @click="init"><i class="ph-arrows-counter-clockwise ph-bold ph-lg"></i> {{ i18n.ts.reloadAccountsList }}</MkButton>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<MkUserCardMini v-for="user in accounts" :key="user.id" :user="user" :class="$style.user" @click.prevent="menu(user, $event)"/>
|
<MkUserCardMini v-for="user in accounts" :key="user.id" :user="user" :class="$style.user" @click.prevent="menu(user, $event)"/>
|
||||||
|
@ -107,7 +107,7 @@ const headerTabs = $computed(() => []);
|
||||||
|
|
||||||
definePageMetadata({
|
definePageMetadata({
|
||||||
title: i18n.ts.accounts,
|
title: i18n.ts.accounts,
|
||||||
icon: 'ph-users ph-bold pg-lg',
|
icon: 'ph-users ph-bold ph-lg',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -46,6 +46,6 @@ const headerTabs = $computed(() => []);
|
||||||
|
|
||||||
definePageMetadata({
|
definePageMetadata({
|
||||||
title: 'API',
|
title: 'API',
|
||||||
icon: 'ph-webhooks-logo ph-bold pg-lg',
|
icon: 'ph-webhooks-logo ph-bold ph-lg',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -47,6 +47,6 @@ const headerTabs = $computed(() => []);
|
||||||
|
|
||||||
definePageMetadata({
|
definePageMetadata({
|
||||||
title: i18n.ts.customCss,
|
title: i18n.ts.customCss,
|
||||||
icon: 'ph-code ph-bold pg-lg',
|
icon: 'ph-code ph-bold ph-lg',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -189,7 +189,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</div>
|
</div>
|
||||||
</MkFolder>
|
</MkFolder>
|
||||||
<FormLink to="/settings/deck">{{ i18n.ts.deck }}</FormLink>
|
<FormLink to="/settings/deck">{{ i18n.ts.deck }}</FormLink>
|
||||||
<FormLink to="/settings/custom-css"><template #icon><i class="ph-code ph-bold pg-lg"></i></template>{{ i18n.ts.customCss }}</FormLink>
|
<FormLink to="/settings/custom-css"><template #icon><i class="ph-code ph-bold ph-lg"></i></template>{{ i18n.ts.customCss }}</FormLink>
|
||||||
</div>
|
</div>
|
||||||
</FormSection>
|
</FormSection>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -14,7 +14,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</MkFolder>
|
</MkFolder>
|
||||||
</FormSection>
|
</FormSection>
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label><i class="ph-star ph-bold pg-lg"></i> {{ i18n.ts._exportOrImport.favoritedNotes }}</template>
|
<template #label><i class="ph-star ph-bold ph-lg"></i> {{ i18n.ts._exportOrImport.favoritedNotes }}</template>
|
||||||
<MkFolder>
|
<MkFolder>
|
||||||
<template #label>{{ i18n.ts.export }}</template>
|
<template #label>{{ i18n.ts.export }}</template>
|
||||||
<template #icon><i class="ph-download ph-bold ph-lg"></i></template>
|
<template #icon><i class="ph-download ph-bold ph-lg"></i></template>
|
||||||
|
@ -22,7 +22,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</MkFolder>
|
</MkFolder>
|
||||||
</FormSection>
|
</FormSection>
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label><i class="ph-users ph-bold pg-lg"></i> {{ i18n.ts._exportOrImport.followingList }}</template>
|
<template #label><i class="ph-users ph-bold ph-lg"></i> {{ i18n.ts._exportOrImport.followingList }}</template>
|
||||||
<div class="_gaps_s">
|
<div class="_gaps_s">
|
||||||
<MkFolder>
|
<MkFolder>
|
||||||
<template #label>{{ i18n.ts.export }}</template>
|
<template #label>{{ i18n.ts.export }}</template>
|
||||||
|
@ -48,7 +48,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</div>
|
</div>
|
||||||
</FormSection>
|
</FormSection>
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label><i class="ph-users ph-bold pg-lg"></i> {{ i18n.ts._exportOrImport.userLists }}</template>
|
<template #label><i class="ph-users ph-bold ph-lg"></i> {{ i18n.ts._exportOrImport.userLists }}</template>
|
||||||
<div class="_gaps_s">
|
<div class="_gaps_s">
|
||||||
<MkFolder>
|
<MkFolder>
|
||||||
<template #label>{{ i18n.ts.export }}</template>
|
<template #label>{{ i18n.ts.export }}</template>
|
||||||
|
@ -93,7 +93,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</div>
|
</div>
|
||||||
</FormSection>
|
</FormSection>
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label><i class="ph-flying-saucer ph-bold pg-lg"></i> {{ i18n.ts.antennas }}</template>
|
<template #label><i class="ph-flying-saucer ph-bold ph-lg"></i> {{ i18n.ts.antennas }}</template>
|
||||||
<div class="_gaps_s">
|
<div class="_gaps_s">
|
||||||
<MkFolder>
|
<MkFolder>
|
||||||
<template #label>{{ i18n.ts.export }}</template>
|
<template #label>{{ i18n.ts.export }}</template>
|
||||||
|
|
|
@ -42,7 +42,7 @@ import { fetchCustomEmojis } from '@/custom-emojis.js';
|
||||||
|
|
||||||
const indexInfo = {
|
const indexInfo = {
|
||||||
title: i18n.ts.settings,
|
title: i18n.ts.settings,
|
||||||
icon: 'ph-gear ph-bold pg-lg',
|
icon: 'ph-gear ph-bold ph-lg',
|
||||||
hideHeader: true,
|
hideHeader: true,
|
||||||
};
|
};
|
||||||
const INFO = ref(indexInfo);
|
const INFO = ref(indexInfo);
|
||||||
|
@ -84,7 +84,7 @@ const menuDef = computed(() => [{
|
||||||
to: '/settings/drive',
|
to: '/settings/drive',
|
||||||
active: currentPage?.route.name === 'drive',
|
active: currentPage?.route.name === 'drive',
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-bell ph-bold pg-lg',
|
icon: 'ph-bell ph-bold ph-lg',
|
||||||
text: i18n.ts.notifications,
|
text: i18n.ts.notifications,
|
||||||
to: '/settings/notifications',
|
to: '/settings/notifications',
|
||||||
active: currentPage?.route.name === 'notifications',
|
active: currentPage?.route.name === 'notifications',
|
||||||
|
@ -122,7 +122,7 @@ const menuDef = computed(() => [{
|
||||||
to: '/settings/statusbar',
|
to: '/settings/statusbar',
|
||||||
active: currentPage?.route.name === 'statusbar',
|
active: currentPage?.route.name === 'statusbar',
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-music-notes ph-bold pg-lg',
|
icon: 'ph-music-notes ph-bold ph-lg',
|
||||||
text: i18n.ts.sounds,
|
text: i18n.ts.sounds,
|
||||||
to: '/settings/sounds',
|
to: '/settings/sounds',
|
||||||
active: currentPage?.route.name === 'sounds',
|
active: currentPage?.route.name === 'sounds',
|
||||||
|
@ -135,7 +135,7 @@ const menuDef = computed(() => [{
|
||||||
}, {
|
}, {
|
||||||
title: i18n.ts.otherSettings,
|
title: i18n.ts.otherSettings,
|
||||||
items: [{
|
items: [{
|
||||||
icon: 'ph-seal-check ph-bold pg-lg',
|
icon: 'ph-seal-check ph-bold ph-lg',
|
||||||
text: i18n.ts.roles,
|
text: i18n.ts.roles,
|
||||||
to: '/settings/roles',
|
to: '/settings/roles',
|
||||||
active: currentPage?.route.name === 'roles',
|
active: currentPage?.route.name === 'roles',
|
||||||
|
@ -145,7 +145,7 @@ const menuDef = computed(() => [{
|
||||||
to: '/settings/mute-block',
|
to: '/settings/mute-block',
|
||||||
active: currentPage?.route.name === 'mute-block',
|
active: currentPage?.route.name === 'mute-block',
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-key ph-bold pg-lg',
|
icon: 'ph-key ph-bold ph-lg',
|
||||||
text: 'API',
|
text: 'API',
|
||||||
to: '/settings/api',
|
to: '/settings/api',
|
||||||
active: currentPage?.route.name === 'api',
|
active: currentPage?.route.name === 'api',
|
||||||
|
@ -172,7 +172,7 @@ const menuDef = computed(() => [{
|
||||||
}],
|
}],
|
||||||
}, {
|
}, {
|
||||||
items: [{
|
items: [{
|
||||||
icon: 'ph-floppy-disk ph-bold pg-lg',
|
icon: 'ph-floppy-disk ph-bold ph-lg',
|
||||||
text: i18n.ts.preferencesBackups,
|
text: i18n.ts.preferencesBackups,
|
||||||
to: '/settings/preferences-backups',
|
to: '/settings/preferences-backups',
|
||||||
active: currentPage?.route.name === 'preferences-backups',
|
active: currentPage?.route.name === 'preferences-backups',
|
||||||
|
|
|
@ -10,7 +10,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<template #label>{{ i18n.ts._instanceMute.heading }}</template>
|
<template #label>{{ i18n.ts._instanceMute.heading }}</template>
|
||||||
<template #caption>{{ i18n.ts._instanceMute.instanceMuteDescription }}<br>{{ i18n.ts._instanceMute.instanceMuteDescription2 }}</template>
|
<template #caption>{{ i18n.ts._instanceMute.instanceMuteDescription }}<br>{{ i18n.ts._instanceMute.instanceMuteDescription2 }}</template>
|
||||||
</MkTextarea>
|
</MkTextarea>
|
||||||
<MkButton primary :disabled="!changed" @click="save()"><i class="ph-floppy-disk ph-bold pg-lg"></i> {{ i18n.ts.save }}</MkButton>
|
<MkButton primary :disabled="!changed" @click="save()"><i class="ph-floppy-disk ph-bold ph-lg"></i> {{ i18n.ts.save }}</MkButton>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<template #caption>{{ i18n.ts._wordMute.muteWordsDescription }}<br>{{ i18n.ts._wordMute.muteWordsDescription2 }}</template>
|
<template #caption>{{ i18n.ts._wordMute.muteWordsDescription }}<br>{{ i18n.ts._wordMute.muteWordsDescription2 }}</template>
|
||||||
</MkTextarea>
|
</MkTextarea>
|
||||||
</div>
|
</div>
|
||||||
<MkButton primary inline :disabled="!changed" @click="save()"><i class="ph-floppy-disk ph-bold pg-lg"></i> {{ i18n.ts.save }}</MkButton>
|
<MkButton primary inline :disabled="!changed" @click="save()"><i class="ph-floppy-disk ph-bold ph-lg"></i> {{ i18n.ts.save }}</MkButton>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<div class="_buttons">
|
<div class="_buttons">
|
||||||
<MkButton @click="addItem"><i class="ph-plus ph-bold ph-lg"></i> {{ i18n.ts.addItem }}</MkButton>
|
<MkButton @click="addItem"><i class="ph-plus ph-bold ph-lg"></i> {{ i18n.ts.addItem }}</MkButton>
|
||||||
<MkButton danger @click="reset"><i class="ph-arrow-clockwise ph-bold ph-lg"></i> {{ i18n.ts.default }}</MkButton>
|
<MkButton danger @click="reset"><i class="ph-arrow-clockwise ph-bold ph-lg"></i> {{ i18n.ts.default }}</MkButton>
|
||||||
<MkButton primary class="save" @click="save"><i class="ph-floppy-disk ph-bold pg-lg"></i> {{ i18n.ts.save }}</MkButton>
|
<MkButton primary class="save" @click="save"><i class="ph-floppy-disk ph-bold ph-lg"></i> {{ i18n.ts.save }}</MkButton>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<MkRadios v-model="menuDisplay">
|
<MkRadios v-model="menuDisplay">
|
||||||
|
@ -121,7 +121,7 @@ const headerTabs = $computed(() => []);
|
||||||
|
|
||||||
definePageMetadata({
|
definePageMetadata({
|
||||||
title: i18n.ts.navbar,
|
title: i18n.ts.navbar,
|
||||||
icon: 'ph-list ph-bold pg-lg',
|
icon: 'ph-list ph-bold ph-lg',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -114,6 +114,6 @@ const headerTabs = $computed(() => []);
|
||||||
|
|
||||||
definePageMetadata({
|
definePageMetadata({
|
||||||
title: i18n.ts.notifications,
|
title: i18n.ts.notifications,
|
||||||
icon: 'ph-bell ph-bold pg-lg',
|
icon: 'ph-bell ph-bold ph-lg',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -58,7 +58,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</MkFolder>
|
</MkFolder>
|
||||||
|
|
||||||
<MkFolder>
|
<MkFolder>
|
||||||
<template #icon><i class="ph-code ph-bold pg-lg"></i></template>
|
<template #icon><i class="ph-code ph-bold ph-lg"></i></template>
|
||||||
<template #label>{{ i18n.ts.developer }}</template>
|
<template #label>{{ i18n.ts.developer }}</template>
|
||||||
|
|
||||||
<div class="_gaps_m">
|
<div class="_gaps_m">
|
||||||
|
|
|
@ -37,12 +37,12 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="_buttons">
|
<div class="_buttons">
|
||||||
<MkButton v-if="plugin.config" inline @click="config(plugin)"><i class="ph-gear ph-bold pg-lg"></i> {{ i18n.ts.settings }}</MkButton>
|
<MkButton v-if="plugin.config" inline @click="config(plugin)"><i class="ph-gear ph-bold ph-lg"></i> {{ i18n.ts.settings }}</MkButton>
|
||||||
<MkButton inline danger @click="uninstall(plugin)"><i class="ph-trash ph-bold ph-lg"></i> {{ i18n.ts.uninstall }}</MkButton>
|
<MkButton inline danger @click="uninstall(plugin)"><i class="ph-trash ph-bold ph-lg"></i> {{ i18n.ts.uninstall }}</MkButton>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<MkFolder>
|
<MkFolder>
|
||||||
<template #icon><i class="ph-code ph-bold pg-lg"></i></template>
|
<template #icon><i class="ph-code ph-bold ph-lg"></i></template>
|
||||||
<template #label>{{ i18n.ts._plugin.viewSource }}</template>
|
<template #label>{{ i18n.ts._plugin.viewSource }}</template>
|
||||||
|
|
||||||
<div class="_gaps_s">
|
<div class="_gaps_s">
|
||||||
|
|
|
@ -400,7 +400,7 @@ function menu(ev: MouseEvent, profileId: string) {
|
||||||
action: () => rename(profileId),
|
action: () => rename(profileId),
|
||||||
}, {
|
}, {
|
||||||
text: ts._preferencesBackups.save,
|
text: ts._preferencesBackups.save,
|
||||||
icon: 'ph-floppy-disk ph-bold pg-lg',
|
icon: 'ph-floppy-disk ph-bold ph-lg',
|
||||||
action: () => save(profileId),
|
action: () => save(profileId),
|
||||||
}, null, {
|
}, null, {
|
||||||
text: ts.delete,
|
text: ts.delete,
|
||||||
|
@ -426,7 +426,7 @@ onUnmounted(() => {
|
||||||
|
|
||||||
definePageMetadata(computed(() => ({
|
definePageMetadata(computed(() => ({
|
||||||
title: ts.preferencesBackups,
|
title: ts.preferencesBackups,
|
||||||
icon: 'ph-floppy-disk ph-bold pg-lg',
|
icon: 'ph-floppy-disk ph-bold ph-lg',
|
||||||
})));
|
})));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
|
||||||
<FormSlot>
|
<FormSlot>
|
||||||
<MkFolder>
|
<MkFolder>
|
||||||
<template #icon><i class="ph-list ph-bold pg-lg"></i></template>
|
<template #icon><i class="ph-list ph-bold ph-lg"></i></template>
|
||||||
<template #label>{{ i18n.ts._profile.metadataEdit }}</template>
|
<template #label>{{ i18n.ts._profile.metadataEdit }}</template>
|
||||||
|
|
||||||
<div :class="$style.metadataRoot">
|
<div :class="$style.metadataRoot">
|
||||||
|
@ -90,7 +90,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</FormSlot>
|
</FormSlot>
|
||||||
|
|
||||||
<MkFolder>
|
<MkFolder>
|
||||||
<template #icon><i class="ph-sparkle ph-bold pg-lg"></i></template>
|
<template #icon><i class="ph-sparkle ph-bold ph-lg"></i></template>
|
||||||
<template #label>{{ i18n.ts.avatarDecorations }}</template>
|
<template #label>{{ i18n.ts.avatarDecorations }}</template>
|
||||||
|
|
||||||
<div style="display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); grid-gap: 12px;">
|
<div style="display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); grid-gap: 12px;">
|
||||||
|
|
|
@ -52,7 +52,7 @@ const headerTabs = $computed(() => []);
|
||||||
|
|
||||||
definePageMetadata({
|
definePageMetadata({
|
||||||
title: i18n.ts.roles,
|
title: i18n.ts.roles,
|
||||||
icon: 'ph-seal-check ph-bold pg-lg',
|
icon: 'ph-seal-check ph-bold ph-lg',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<FormSlot>
|
<FormSlot>
|
||||||
<MkButton danger @click="regenerateToken"><i class="ph-arrows-counter-clockwise ph-bold pg-lg"></i> {{ i18n.ts.regenerateLoginToken }}</MkButton>
|
<MkButton danger @click="regenerateToken"><i class="ph-arrows-counter-clockwise ph-bold ph-lg"></i> {{ i18n.ts.regenerateLoginToken }}</MkButton>
|
||||||
<template #caption>{{ i18n.ts.regenerateLoginTokenDescription }}</template>
|
<template #caption>{{ i18n.ts.regenerateLoginTokenDescription }}</template>
|
||||||
</FormSlot>
|
</FormSlot>
|
||||||
</FormSection>
|
</FormSection>
|
||||||
|
|
|
@ -14,7 +14,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</MkRange>
|
</MkRange>
|
||||||
|
|
||||||
<div class="_buttons">
|
<div class="_buttons">
|
||||||
<MkButton inline @click="listen"><i class="ph-play ph-bold pg-lg"></i> {{ i18n.ts.listen }}</MkButton>
|
<MkButton inline @click="listen"><i class="ph-play ph-bold ph-lg"></i> {{ i18n.ts.listen }}</MkButton>
|
||||||
<MkButton inline primary @click="save"><i class="ph-check ph-bold ph-lg"></i> {{ i18n.ts.save }}</MkButton>
|
<MkButton inline primary @click="save"><i class="ph-check ph-bold ph-lg"></i> {{ i18n.ts.save }}</MkButton>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -72,6 +72,6 @@ const headerTabs = $computed(() => []);
|
||||||
|
|
||||||
definePageMetadata({
|
definePageMetadata({
|
||||||
title: i18n.ts.sounds,
|
title: i18n.ts.sounds,
|
||||||
icon: 'ph-music-notes ph-bold pg-lg',
|
icon: 'ph-music-notes ph-bold ph-lg',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -51,6 +51,6 @@ const headerTabs = $computed(() => []);
|
||||||
|
|
||||||
definePageMetadata({
|
definePageMetadata({
|
||||||
title: i18n.ts.statusbar,
|
title: i18n.ts.statusbar,
|
||||||
icon: 'ph-list ph-bold pg-lg',
|
icon: 'ph-list ph-bold ph-lg',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -168,6 +168,6 @@ const headerTabs = $computed(() => []);
|
||||||
|
|
||||||
definePageMetadata({
|
definePageMetadata({
|
||||||
title: i18n.ts.share,
|
title: i18n.ts.share,
|
||||||
icon: 'ph-share-network ph-bold pg-lg',
|
icon: 'ph-share-network ph-bold ph-lg',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -47,7 +47,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</MkFolder>
|
</MkFolder>
|
||||||
|
|
||||||
<MkFolder :defaultOpen="false">
|
<MkFolder :defaultOpen="false">
|
||||||
<template #icon><i class="ph-code ph-bold pg-lg"></i></template>
|
<template #icon><i class="ph-code ph-bold ph-lg"></i></template>
|
||||||
<template #label>{{ i18n.ts.editCode }}</template>
|
<template #label>{{ i18n.ts.editCode }}</template>
|
||||||
|
|
||||||
<div class="_gaps_m">
|
<div class="_gaps_m">
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue