-
+
@@ -61,10 +61,10 @@ const narrow = ref(false);
const view = ref(null);
const el = ref
(null);
const pageProps = ref({});
-let noMaintainerInformation = isEmpty(instance.maintainerName) || isEmpty(instance.maintainerEmail);
-let noBotProtection = !instance.disableRegistration && !instance.enableHcaptcha && !instance.enableRecaptcha && !instance.enableTurnstile;
-let noEmailServer = !instance.enableEmail;
-let noInquiryUrl = isEmpty(instance.inquiryUrl);
+const noMaintainerInformation = computed(() => isEmpty(instance.maintainerName) || isEmpty(instance.maintainerEmail));
+const noBotProtection = computed(() => !instance.disableRegistration && !instance.enableHcaptcha && !instance.enableRecaptcha && !instance.enableTurnstile && !instance.enableMcaptcha);
+const noEmailServer = computed(() => !instance.enableEmail);
+const noInquiryUrl = computed(() => isEmpty(instance.inquiryUrl));
const thereIsUnresolvedAbuseReport = ref(false);
const currentPage = computed(() => router.currentRef.value.child);
@@ -235,25 +235,22 @@ const menuDef = computed(() => [{
}],
}]);
-watch(narrow.value, () => {
- if (currentPage.value?.route.name == null && !narrow.value) {
- router.push('/admin/overview');
- }
-});
-
onMounted(() => {
- ro.observe(el.value);
-
- narrow.value = el.value.offsetWidth < NARROW_THRESHOLD;
+ if (el.value != null) {
+ ro.observe(el.value);
+ narrow.value = el.value.offsetWidth < NARROW_THRESHOLD;
+ }
if (currentPage.value?.route.name == null && !narrow.value) {
- router.push('/admin/overview');
+ router.replace('/admin/overview');
}
});
onActivated(() => {
- narrow.value = el.value.offsetWidth < NARROW_THRESHOLD;
+ if (el.value != null) {
+ narrow.value = el.value.offsetWidth < NARROW_THRESHOLD;
+ }
if (currentPage.value?.route.name == null && !narrow.value) {
- router.push('/admin/overview');
+ router.replace('/admin/overview');
}
});
diff --git a/packages/frontend/src/pages/admin/modlog.ModLog.vue b/packages/frontend/src/pages/admin/modlog.ModLog.vue
index 649340f05aa0..64d7f2584572 100644
--- a/packages/frontend/src/pages/admin/modlog.ModLog.vue
+++ b/packages/frontend/src/pages/admin/modlog.ModLog.vue
@@ -21,12 +21,12 @@ SPDX-License-Identifier: AGPL-3.0-only
].includes(log.type),
[$style.logYellow]: [
'markSensitiveDriveFile',
- 'resetPassword'
+ 'resetPassword',
+ 'suspendRemoteInstance',
].includes(log.type),
[$style.logRed]: [
'suspend',
'deleteRole',
- 'suspendRemoteInstance',
'deleteGlobalAnnouncement',
'deleteUserAnnouncement',
'deleteCustomEmoji',
@@ -36,6 +36,7 @@ SPDX-License-Identifier: AGPL-3.0-only
'deleteAvatarDecoration',
'deleteSystemWebhook',
'deleteAbuseReportNotificationRecipient',
+ 'deleteAccount',
'deletePage',
'deleteFlash',
'deleteGalleryPost',
@@ -75,6 +76,7 @@ SPDX-License-Identifier: AGPL-3.0-only
: {{ log.info.recipient.name }}
: {{ log.info.before.name }}
: {{ log.info.recipient.name }}
+ : @{{ log.info.userUsername }}{{ log.info.userHost ? '@' + log.info.userHost : '' }}
: @{{ log.info.pageUserUsername }}
: @{{ log.info.flashUserUsername }}
: @{{ log.info.postUserUsername }}
@@ -149,7 +151,6 @@ SPDX-License-Identifier: AGPL-3.0-only
- {{ i18n.ts.user }}: {{ log.info.userId }}
diff --git a/packages/frontend/src/pages/admin/users.vue b/packages/frontend/src/pages/admin/users.vue
index 7d87b97a3615..d1bbb5b73418 100644
--- a/packages/frontend/src/pages/admin/users.vue
+++ b/packages/frontend/src/pages/admin/users.vue
@@ -33,11 +33,11 @@ SPDX-License-Identifier: AGPL-3.0-only
-
+
@
{{ i18n.ts.username }}
-
+
@
{{ i18n.ts.host }}
diff --git a/packages/frontend/src/pages/page-editor/common.ts b/packages/frontend/src/pages/page-editor/common.ts
new file mode 100644
index 000000000000..420c8fc967eb
--- /dev/null
+++ b/packages/frontend/src/pages/page-editor/common.ts
@@ -0,0 +1,15 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { i18n } from '@/i18n.js';
+
+export function getPageBlockList() {
+ return [
+ { value: 'section', text: i18n.ts._pages.blocks.section },
+ { value: 'text', text: i18n.ts._pages.blocks.text },
+ { value: 'image', text: i18n.ts._pages.blocks.image },
+ { value: 'note', text: i18n.ts._pages.blocks.note },
+ ];
+}
diff --git a/packages/frontend/src/pages/page-editor/els/page-editor.el.section.vue b/packages/frontend/src/pages/page-editor/els/page-editor.el.section.vue
index 47e9c08c2caf..0f8dc33143ea 100644
--- a/packages/frontend/src/pages/page-editor/els/page-editor.el.section.vue
+++ b/packages/frontend/src/pages/page-editor/els/page-editor.el.section.vue
@@ -29,6 +29,7 @@ import * as os from '@/os.js';
import { i18n } from '@/i18n.js';
import { deepClone } from '@/scripts/clone.js';
import MkButton from '@/components/MkButton.vue';
+import { getPageBlockList } from '@/pages/page-editor/common.js';
const XBlocks = defineAsyncComponent(() => import('../page-editor.blocks.vue'));
@@ -53,11 +54,9 @@ watch(children, () => {
deep: true,
});
-const getPageBlockList = inject<(any) => any>('getPageBlockList');
-
async function rename() {
const { canceled, result: title } = await os.inputText({
- title: 'Enter title',
+ title: i18n.ts._pages.enterSectionTitle,
default: props.modelValue.title,
});
if (canceled) return;
diff --git a/packages/frontend/src/pages/page-editor/page-editor.vue b/packages/frontend/src/pages/page-editor/page-editor.vue
index af32fd227465..eaef7c337a4c 100644
--- a/packages/frontend/src/pages/page-editor/page-editor.vue
+++ b/packages/frontend/src/pages/page-editor/page-editor.vue
@@ -77,6 +77,7 @@ import { i18n } from '@/i18n.js';
import { definePageMetadata } from '@/scripts/page-metadata.js';
import { $i } from '@/account.js';
import { mainRouter } from '@/router/main.js';
+import { getPageBlockList } from '@/pages/page-editor/common.js';
const props = defineProps<{
initPageId?: string;
@@ -101,7 +102,6 @@ const alignCenter = ref(false);
const hideTitleWhenPinned = ref(false);
provide('readonly', readonly.value);
-provide('getPageBlockList', getPageBlockList);
watch(eyeCatchingImageId, async () => {
if (eyeCatchingImageId.value == null) {
@@ -216,15 +216,6 @@ async function add() {
content.value.push({ id, type });
}
-function getPageBlockList() {
- return [
- { value: 'section', text: i18n.ts._pages.blocks.section },
- { value: 'text', text: i18n.ts._pages.blocks.text },
- { value: 'image', text: i18n.ts._pages.blocks.image },
- { value: 'note', text: i18n.ts._pages.blocks.note },
- ];
-}
-
function setEyeCatchingImage(img) {
selectFile(img.currentTarget ?? img.target, null).then(file => {
eyeCatchingImageId.value = file.id;
diff --git a/packages/frontend/src/pages/settings/index.vue b/packages/frontend/src/pages/settings/index.vue
index 5fc1fd1bca53..7d16740a3e68 100644
--- a/packages/frontend/src/pages/settings/index.vue
+++ b/packages/frontend/src/pages/settings/index.vue
@@ -198,9 +198,6 @@ const menuDef = computed(() => [{
}],
}]);
-watch(narrow, () => {
-});
-
onMounted(() => {
ro.observe(el.value);
diff --git a/packages/frontend/src/pages/timeline.vue b/packages/frontend/src/pages/timeline.vue
index 32f6dd0e5a6c..c4bff3a0b8a0 100644
--- a/packages/frontend/src/pages/timeline.vue
+++ b/packages/frontend/src/pages/timeline.vue
@@ -34,7 +34,7 @@ SPDX-License-Identifier: AGPL-3.0-only