mirror of
https://github.com/misskey-dev/misskey.git
synced 2026-05-22 09:24:22 +02:00
@@ -155,8 +155,8 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||
<script lang="ts" setup>
|
||||
import { ref, computed } from 'vue';
|
||||
import JSON5 from 'json5';
|
||||
import * as Misskey from 'misskey-js';
|
||||
import { host } from '@@/js/config.js';
|
||||
import type { ClientOptions } from '@/instance.js';
|
||||
import MkInput from '@/components/MkInput.vue';
|
||||
import MkTextarea from '@/components/MkTextarea.vue';
|
||||
import * as os from '@/os.js';
|
||||
@@ -172,11 +172,11 @@ import MkSwitch from '@/components/MkSwitch.vue';
|
||||
const meta = await misskeyApi('admin/meta');
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
||||
const entrancePageStyle = ref<ClientOptions['entrancePageStyle']>(meta.clientOptions.entrancePageStyle ?? 'classic');
|
||||
const entrancePageStyle = ref<Misskey.entities.MetaClientOptions['entrancePageStyle']>(meta.clientOptions.entrancePageStyle ?? 'classic');
|
||||
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
||||
const showTimelineForVisitor = ref<ClientOptions['showTimelineForVisitor']>(meta.clientOptions.showTimelineForVisitor ?? true);
|
||||
const showTimelineForVisitor = ref<Misskey.entities.MetaClientOptions['showTimelineForVisitor']>(meta.clientOptions.showTimelineForVisitor ?? true);
|
||||
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
||||
const showActivitiesForVisitor = ref<ClientOptions['showActivitiesForVisitor']>(meta.clientOptions.showActivitiesForVisitor ?? true);
|
||||
const showActivitiesForVisitor = ref<Misskey.entities.MetaClientOptions['showActivitiesForVisitor']>(meta.clientOptions.showActivitiesForVisitor ?? true);
|
||||
|
||||
const iconUrl = ref(meta.iconUrl);
|
||||
const app192IconUrl = ref(meta.app192IconUrl);
|
||||
@@ -195,11 +195,11 @@ const manifestJsonOverride = ref(meta.manifestJsonOverride === '' ? '{}' : JSON.
|
||||
|
||||
function save() {
|
||||
os.apiWithDialog('admin/update-meta', {
|
||||
clientOptions: ({
|
||||
clientOptions: {
|
||||
entrancePageStyle: entrancePageStyle.value,
|
||||
showTimelineForVisitor: showTimelineForVisitor.value,
|
||||
showActivitiesForVisitor: showActivitiesForVisitor.value,
|
||||
} as ClientOptions) as any,
|
||||
},
|
||||
iconUrl: iconUrl.value,
|
||||
app192IconUrl: app192IconUrl.value,
|
||||
app512IconUrl: app512IconUrl.value,
|
||||
|
||||
@@ -5,10 +5,10 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
<template>
|
||||
<section>
|
||||
<div v-if="app.permission.length > 0">
|
||||
<div v-if="permissions.length > 0">
|
||||
<p>{{ i18n.tsx._auth.permission({ name }) }}</p>
|
||||
<ul>
|
||||
<li v-for="p in app.permission" :key="p">{{ (i18n.ts._permissions as any)[p] ?? p }}</li>
|
||||
<li v-for="p in permissions" :key="p">{{ i18n.ts._permissions[p] ?? p }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>{{ i18n.tsx._auth.shareAccess({ name: `${name} (${app.id})` }) }}</div>
|
||||
@@ -37,6 +37,10 @@ const emit = defineEmits<{
|
||||
|
||||
const app = computed(() => props.session.app);
|
||||
|
||||
const permissions = computed(() => {
|
||||
return props.session.app.permission.filter((p): p is typeof Misskey.permissions[number] => typeof p === 'string');
|
||||
});
|
||||
|
||||
const name = computed(() => {
|
||||
const el = window.document.createElement('div');
|
||||
el.textContent = app.value.name;
|
||||
|
||||
@@ -212,7 +212,7 @@ async function run() {
|
||||
const version = utils.getLangVersion(flash.value.script);
|
||||
const isLegacy = getIsLegacy(version);
|
||||
|
||||
const { Interpreter, Parser, values } = isLegacy ? (await import('@syuilo/aiscript-0-19-0') as any) : await import('@syuilo/aiscript');
|
||||
const { Interpreter, Parser, values } = (isLegacy ? (await import('@syuilo/aiscript-0-19-0')) : await import('@syuilo/aiscript')) as typeof import('@syuilo/aiscript');
|
||||
|
||||
const parser = new Parser();
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||
<template #key>{{ i18n.ts.permission }}</template>
|
||||
<template #value>
|
||||
<ul style="margin-top: 0; margin-bottom: 0;">
|
||||
<li v-for="permission in plugin.permissions" :key="permission">{{ (i18n.ts._permissions as any)[permission] ?? permission }}</li>
|
||||
<li v-for="permission in plugin.permissions" :key="permission">{{ i18n.ts._permissions[permission] ?? permission }}</li>
|
||||
<li v-if="!plugin.permissions || plugin.permissions.length === 0">{{ i18n.ts.none }}</li>
|
||||
</ul>
|
||||
</template>
|
||||
|
||||
@@ -1083,7 +1083,7 @@ function removePinnedList() {
|
||||
function enableAllDataSaver() {
|
||||
const g = { ...prefer.s.dataSaver };
|
||||
|
||||
Object.keys(g).forEach((key) => { (g as any)[key] = true; });
|
||||
(Object.keys(g) as (keyof typeof g)[]).forEach((key) => { g[key] = true; });
|
||||
|
||||
dataSaver.value = g;
|
||||
}
|
||||
@@ -1091,7 +1091,7 @@ function enableAllDataSaver() {
|
||||
function disableAllDataSaver() {
|
||||
const g = { ...prefer.s.dataSaver };
|
||||
|
||||
Object.keys(g).forEach((key) => { (g as any)[key] = false; });
|
||||
(Object.keys(g) as (keyof typeof g)[]).forEach((key) => { g[key] = false; });
|
||||
|
||||
dataSaver.value = g;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user