-
+
-
+
-
-
-
- {{ props.server.loader }} {{ props.server.mc_version }}
-
-
-
-
-
-
- {{ props.server.net.domain }}.modrinth.gg
-
-
-
-
-
-
- {{ formattedUptime }}
-
-
-
-
-
- Linked to
-
-
- {{ props.serverProject?.title }}
-
-
+
+
+
+
+
+ {{ item.label }}
+
+
+
+ {{ item.label }}
+
+
@@ -81,16 +51,12 @@
diff --git a/packages/ui/src/layouts/wrapped/hosting/manage/worlds.vue b/packages/ui/src/layouts/wrapped/hosting/manage/[id]/worlds/index.vue
similarity index 95%
rename from packages/ui/src/layouts/wrapped/hosting/manage/worlds.vue
rename to packages/ui/src/layouts/wrapped/hosting/manage/[id]/worlds/index.vue
index 2e6b9a70d2..44d8f787ec 100644
--- a/packages/ui/src/layouts/wrapped/hosting/manage/worlds.vue
+++ b/packages/ui/src/layouts/wrapped/hosting/manage/[id]/worlds/index.vue
@@ -17,7 +17,7 @@
:world="world"
@create="handleCreateWorld"
@edit="handleEditWorld"
- @settings="handleEditWorld"
+ @settings="handleWorldSettings"
/>
@@ -27,7 +27,9 @@
import type { Archon } from '@modrinth/api-client'
import { useQuery } from '@tanstack/vue-query'
import { computed } from 'vue'
+import { useRouter } from 'vue-router'
+import WorldCard from '#ui/components/servers/worlds/WorldCard.vue'
import { defineMessages, useVIntl } from '#ui/composables/i18n'
import {
injectModrinthClient,
@@ -36,8 +38,6 @@ import {
} from '#ui/providers'
import { formatLoaderLabel } from '#ui/utils/loaders'
-import WorldCard from './components/WorldCard.vue'
-
const messages = defineMessages({
worldSlotName: {
id: 'servers.manage.worlds.slot-name',
@@ -84,6 +84,7 @@ const client = injectModrinthClient()
const { serverId, server, isServerRunning } = injectModrinthServerContext()
const { openServerSettings } = injectServerSettingsModal()
const { formatMessage } = useVIntl()
+const router = useRouter()
const worldsQuery = useQuery({
queryKey: computed(() => ['servers', 'worlds', 'summary', 'v1', serverId]),
@@ -272,7 +273,13 @@ function createDummyWorldSlots(): WorldSlot[] {
]
}
-function handleEditWorld() {
+function handleEditWorld(worldId: string) {
+ router.push(
+ `/hosting/manage/${encodeURIComponent(serverId)}/worlds/${encodeURIComponent(worldId)}`,
+ )
+}
+
+function handleWorldSettings() {
openServerSettings({ tabId: 'installation' })
}
diff --git a/packages/ui/src/layouts/wrapped/index.ts b/packages/ui/src/layouts/wrapped/index.ts
index 4916f26783..a56c0400fb 100644
--- a/packages/ui/src/layouts/wrapped/index.ts
+++ b/packages/ui/src/layouts/wrapped/index.ts
@@ -1,8 +1,9 @@
+export { default as ServersManageRootLayout } from './hosting/manage/[id]/index.vue'
export { default as ServerOnboardingPanelPage } from './hosting/manage/[id]/onboarding.vue'
-export { default as ServersManageBackupsPage } from './hosting/manage/backups.vue'
-export { default as ServersManageContentPage } from './hosting/manage/content.vue'
-export { default as ServersManageFilesPage } from './hosting/manage/files.vue'
+export { default as ServersManageOverviewPage } from './hosting/manage/[id]/overview.vue'
+export { default as ServersManageBackupsPage } from './hosting/manage/[id]/worlds/[world-id]/backups.vue'
+export { default as ServersManageContentPage } from './hosting/manage/[id]/worlds/[world-id]/content.vue'
+export { default as ServersManageFilesPage } from './hosting/manage/[id]/worlds/[world-id]/files.vue'
+export { default as ServersManageWorldRootLayout } from './hosting/manage/[id]/worlds/[world-id]/index.vue'
+export { default as ServersManageWorldsPage } from './hosting/manage/[id]/worlds/index.vue'
export { default as ServersManagePageIndex } from './hosting/manage/index.vue'
-export { default as ServersManageOverviewPage } from './hosting/manage/overview.vue'
-export { default as ServersManageRootLayout } from './hosting/manage/root.vue'
-export { default as ServersManageWorldsPage } from './hosting/manage/worlds.vue'
diff --git a/packages/ui/src/locales/en-US/index.json b/packages/ui/src/locales/en-US/index.json
index 626d889c12..34bc39fd29 100644
--- a/packages/ui/src/locales/en-US/index.json
+++ b/packages/ui/src/locales/en-US/index.json
@@ -3425,6 +3425,18 @@
"servers.manage.websocket.reconnecting": {
"defaultMessage": "Hang on, we're reconnecting to your server."
},
+ "servers.manage.world.all-worlds": {
+ "defaultMessage": "All worlds"
+ },
+ "servers.manage.world.fallback-name": {
+ "defaultMessage": "World"
+ },
+ "servers.manage.world.last-active": {
+ "defaultMessage": "Last active {time}"
+ },
+ "servers.manage.world.settings": {
+ "defaultMessage": "World settings"
+ },
"servers.manage.worlds.card.active": {
"defaultMessage": "Active"
},
diff --git a/packages/ui/src/stories/servers/ServerPanelAdmonitions.stories.ts b/packages/ui/src/stories/servers/ServerPanelAdmonitions.stories.ts
index 9afdf5b429..9915f1da93 100644
--- a/packages/ui/src/stories/servers/ServerPanelAdmonitions.stories.ts
+++ b/packages/ui/src/stories/servers/ServerPanelAdmonitions.stories.ts
@@ -22,7 +22,7 @@ const meta = {
setup() {
const router = useRouter()
onMounted(() => {
- router.replace('/hosting/manage/demo-server/content')
+ router.replace('/hosting/manage/demo-server/worlds/demo-world')
})
const server = ref({