@@ -143,65 +17,78 @@ SPDX-License-Identifier: AGPL-3.0-only
-
+
-
-
-
-
- {{ i18n.ts.delete }} ({{ deleteItemsCount }})
-
-
-
-
-
-
-
-
-
- {{ i18n.ts.update }} ({{ updatedItemsCount }})
-
- {{ i18n.ts.reset }}
-
-
+
+
+
+
+
+ {{ i18n.ts.delete }} ({{ deleteItemsCount }})
+
+
+
+
+
+
+
+
+
+ {{ i18n.ts.update }} ({{ updatedItemsCount }})
+
+ {{ i18n.ts.reset }}
+
+
+
+
+
+const headerTabs = computed(() => [{
+ key: 'list',
+ title: i18n.ts._customEmojisManager._local.tabTitleList,
+}, {
+ key: 'register',
+ title: i18n.ts._customEmojisManager._local.tabTitleRegister,
+}]);
+
diff --git a/packages/frontend/src/pages/admin/custom-emojis-manager.logs-folder.vue b/packages/frontend/src/pages/admin/custom-emojis-manager.logs.vue
similarity index 62%
rename from packages/frontend/src/pages/admin/custom-emojis-manager.logs-folder.vue
rename to packages/frontend/src/pages/admin/custom-emojis-manager.logs.vue
index f75f6c0da5..eef55a9f7e 100644
--- a/packages/frontend/src/pages/admin/custom-emojis-manager.logs-folder.vue
+++ b/packages/frontend/src/pages/admin/custom-emojis-manager.logs.vue
@@ -4,47 +4,38 @@ SPDX-License-Identifier: AGPL-3.0-only
-->
-
-
- {{ i18n.ts._customEmojisManager._gridCommon.registrationLogs }}
-
- {{ i18n.ts._customEmojisManager._gridCommon.registrationLogsCaption }}
-
-
-
-
-
- {{ i18n.ts._customEmojisManager._logs.showSuccessLogSwitch }}
-
-
-
-
-
-
- {{ i18n.ts._customEmojisManager._logs.failureLogNothing }}
-
+
+
+
+ {{ i18n.ts._customEmojisManager._logs.showSuccessLogSwitch }}
+
+
+
+
+
+
+ {{ i18n.ts._customEmojisManager._logs.failureLogNothing }}
-
- {{ i18n.ts._customEmojisManager._logs.logNothing }}
-
-
+
+ {{ i18n.ts._customEmojisManager._logs.logNothing }}
+
+
-
-
diff --git a/packages/frontend/src/pages/admin/custom-emojis-manager.remote.vue b/packages/frontend/src/pages/admin/custom-emojis-manager.remote.vue
index 14a3b71e53..eecf8d7390 100644
--- a/packages/frontend/src/pages/admin/custom-emojis-manager.remote.vue
+++ b/packages/frontend/src/pages/admin/custom-emojis-manager.remote.vue
@@ -64,6 +64,8 @@ SPDX-License-Identifier: AGPL-3.0-only
+
+
{{ i18n.ts._customEmojisManager._gridCommon.sortOrder }}
@@ -74,6 +76,14 @@ SPDX-License-Identifier: AGPL-3.0-only
/>
+
+ {{ i18n.ts._customEmojisManager._gridCommon.searchLimit }}
+
+
{{ i18n.ts.search }}
@@ -85,7 +95,14 @@ SPDX-License-Identifier: AGPL-3.0-only
-
+
+
+ {{ i18n.ts._customEmojisManager._gridCommon.registrationLogs }}
+
+ {{ i18n.ts._customEmojisManager._gridCommon.registrationLogsCaption }}
+
+
+
@@ -139,7 +156,7 @@ import {
} from '@/pages/admin/custom-emojis-manager.impl.js';
import { GridCellValueChangeEvent, GridEvent } from '@/components/grid/grid-event.js';
import MkFolder from '@/components/MkFolder.vue';
-import XRegisterLogsFolder from '@/pages/admin/custom-emojis-manager.logs-folder.vue';
+import XRegisterLogs from '@/pages/admin/custom-emojis-manager.logs.vue';
import * as os from '@/os.js';
import { GridSetting } from '@/components/grid/grid.js';
import { deviceKind } from '@/scripts/device-kind.js';
@@ -246,6 +263,7 @@ const queryHost = ref(null);
const queryLicense = ref(null);
const queryUri = ref(null);
const queryPublicUrl = ref(null);
+const queryLimit = ref(25);
const previousQuery = ref(undefined);
const sortOrders = ref[]>([]);
const requestLogs = ref([]);
@@ -325,7 +343,7 @@ async function importEmojis(targets: GridItem[]) {
if (failedItems.length > 0) {
await os.alert({
type: 'error',
- title: i18n.ts._customEmojisManager._gridCommon.alertEmojisRegisterFailedTitle,
+ title: i18n.ts.somethingHappened,
text: i18n.ts._customEmojisManager._gridCommon.alertEmojisRegisterFailedDescription,
});
}
@@ -355,7 +373,7 @@ async function refreshCustomEmojis() {
}
const result = await loadingHandler.scope(() => misskeyApi('v2/admin/emoji/list', {
- limit: 100,
+ limit: queryLimit.value,
query: query,
page: currentPage.value,
sortKeys: sortOrders.value.map(({ key, direction }) => `${direction}${key}`) as never[],
diff --git a/packages/frontend/src/pages/admin/custom-emojis-manager2.vue b/packages/frontend/src/pages/admin/custom-emojis-manager2.vue
index a952a5a3d1..fb930064ff 100644
--- a/packages/frontend/src/pages/admin/custom-emojis-manager2.vue
+++ b/packages/frontend/src/pages/admin/custom-emojis-manager2.vue
@@ -5,12 +5,11 @@ SPDX-License-Identifier: AGPL-3.0-only
-
-
+
-
+
@@ -40,5 +39,13 @@ const headerTabs = computed(() => [{
definePageMetadata(computed(() => ({
title: i18n.ts.customEmojis,
icon: 'ti ti-icons',
+ needWideArea: true,
})));
+
+
diff --git a/packages/frontend/src/pages/admin/index.vue b/packages/frontend/src/pages/admin/index.vue
index 969ca8b9e8..ea5fa457f2 100644
--- a/packages/frontend/src/pages/admin/index.vue
+++ b/packages/frontend/src/pages/admin/index.vue
@@ -34,6 +34,7 @@ SPDX-License-Identifier: AGPL-3.0-only
import { onActivated, onMounted, onUnmounted, provide, watch, ref, computed } from 'vue';
import { i18n } from '@/i18n.js';
import MkSuperMenu from '@/components/MkSuperMenu.vue';
+import type { SuperMenuDef } from '@/components/MkSuperMenu.vue';
import MkInfo from '@/components/MkInfo.vue';
import { instance } from '@/instance.js';
import { lookup } from '@/scripts/lookup.js';
@@ -55,7 +56,7 @@ const indexInfo = {
provide('shouldOmitHeaderTitle', false);
-const INFO = ref(indexInfo);
+const INFO = ref(indexInfo);
const childInfo = ref(null);
const narrow = ref(false);
const view = ref(null);
@@ -81,7 +82,7 @@ const ro = new ResizeObserver((entries, observer) => {
narrow.value = entries[0].borderBoxSize[0].inlineSize < NARROW_THRESHOLD;
});
-const menuDef = computed(() => [{
+const menuDef = computed(() => [{
title: i18n.ts.quickAction,
items: [{
type: 'button',
@@ -89,7 +90,7 @@ const menuDef = computed(() => [{
text: i18n.ts.lookup,
action: adminLookup,
}, ...(instance.disableRegistration ? [{
- type: 'button',
+ type: 'button' as const,
icon: 'ti ti-user-plus',
text: i18n.ts.createInviteCode,
action: invite,
@@ -333,12 +334,14 @@ defineExpose({
height: 100%;
> .nav {
+ position: sticky;
+ top: 0;
width: 32%;
max-width: 280px;
box-sizing: border-box;
border-right: solid 0.5px var(--MI_THEME-divider);
overflow: auto;
- height: 100%;
+ height: 100dvh;
}
> .main {
diff --git a/packages/frontend/src/pages/settings/index.vue b/packages/frontend/src/pages/settings/index.vue
index 96a95f1635..b5a6d719d1 100644
--- a/packages/frontend/src/pages/settings/index.vue
+++ b/packages/frontend/src/pages/settings/index.vue
@@ -44,7 +44,7 @@ const indexInfo = {
icon: 'ti ti-settings',
hideHeader: true,
};
-const INFO = ref(indexInfo);
+const INFO = ref(indexInfo);
const el = shallowRef(null);
const childInfo = ref(null);
diff --git a/packages/frontend/src/ui/universal.vue b/packages/frontend/src/ui/universal.vue
index d739c2e1cd..94998b7be6 100644
--- a/packages/frontend/src/ui/universal.vue
+++ b/packages/frontend/src/ui/universal.vue
@@ -22,7 +22,7 @@ SPDX-License-Identifier: AGPL-3.0-only
-
+