Are you sure you want to remove
- {{ functionValues.length }} project(s) from {{ instance.metadata.name }}?
+ {{ functionValues.length }} project(s) from {{ instance.name }}?
This action cannot be undone.
@@ -338,7 +338,7 @@
>{{ Array.from(projects.values()).filter((x) => x.disabled).length }} disabled
project(s)
- from {{ instance.metadata.name }}?
+ from {{ instance.name }}?
This action
cannot be undone.
@@ -359,7 +359,7 @@
/>
x.team)).catch(handleError),
+ await get_organization_many(modrinthProjects.map((x) => x.organization).filter((x) => !!x)).catch(
+ handleError,
+ ),
+])
+
+const projects = ref([])
+for (const [path, file] of Object.entries(profileProjects)) {
+ if (file.metadata.type === 'modrinth') {
+ const project = modrinthProjects.find((x) => file.metadata.project_id === x.id)
+ const version = modrinthVersions.find((x) => file.metadata.version_id === x.id)
+ const org = project.organization
+ ? modrinthOrganizations.find((x) => x.id === project.organization)
+ : null
+
+ const team = modrinthTeams.find((x) => x[0].team_id === project.team)
+
+ let owner = org ? org.name : team.find((x) => x.is_owner).user.username
+
+ console.log(path)
+ console.log(file)
+ console.log(project)
+ console.log(version)
+ console.log(org)
+ console.log(team)
+
+ projects.value.push({
+ path,
+ name: project.title,
+ slug: project.slug,
+ author: owner,
+ version: version.version_number,
+ file_name: file.file_name,
+ icon: project.icon_url,
+ disabled: file.file_name.endsWith('.disabled'),
+ updateVersion: file.update_version_id,
+ outdated: !!file.update_version_id,
+ project_type: project.project_type,
+ id: project.id,
+ })
+
+ continue
+ }
+
+ if (file.metadata.type === 'inferred') {
+ projects.value.push({
+ path,
+ name: file.metadata.title ?? file.file_name,
+ author: file.metadata.authors[0],
+ version: file.metadata.version,
+ file_name: file.file_name,
+ icon: file.metadata.icon ? convertFileSrc(file.metadata.icon) : null,
+ disabled: file.disabled,
+ outdated: false,
+ project_type: file.metadata.project_type,
+ })
+ } else {
+ projects.value.push({
+ path,
+ name: file.file_name.replace('.disabled', ''),
+ author: '',
+ version: null,
+ file_name: file.file_name,
+ icon: null,
+ disabled: file.file_name.endsWith('.disabled'),
+ outdated: false,
+ project_type: null,
+ })
+ }
+}
+
+console.log(projects.value)
+
+const newSelectionMap = new Map()
+for (const project of projects.value) {
+ newSelectionMap.set(
+ project.path,
+ selectionMap.value.get(project.path) ??
+ selectionMap.value.get(project.path.slice(0, -9)) ??
+ selectionMap.value.get(project.path + '.disabled') ??
+ false,
+ )
+}
+selectionMap.value = newSelectionMap
+
const showingOptions = ref(false)
const isPackLocked = computed(() => {
- return props.instance.metadata.linked_data && props.instance.metadata.linked_data.locked
+ return props.instance.linked_data && props.instance.linked_data.locked
})
const canUpdatePack = computed(() => {
- if (!props.instance.metadata.linked_data) return false
- return props.instance.metadata.linked_data.version_id !== props.instance.modrinth_update_version
+ if (!props.instance.linked_data) return false
+ return props.instance.linked_data.version_id !== props.instance.modrinth_update_version
})
const exportModal = ref(null)
const initProjects = (initInstance) => {
- projects.value = []
- if (!initInstance || !initInstance.projects) return
- for (const [path, project] of Object.entries(initInstance.projects)) {
- if (project.metadata.type === 'modrinth' && !props.offline) {
- let owner = project.metadata.members.find((x) => x.role === 'Owner')
- projects.value.push({
- path,
- name: project.metadata.project.title,
- slug: project.metadata.project.slug,
- author: owner ? owner.user.username : null,
- version: project.metadata.version.version_number,
- file_name: project.file_name,
- icon: project.metadata.project.icon_url,
- disabled: project.disabled,
- updateVersion: project.metadata.update_version,
- outdated: !!project.metadata.update_version,
- project_type: project.metadata.project.project_type,
- id: project.metadata.project.id,
- })
- } else if (project.metadata.type === 'inferred') {
- projects.value.push({
- path,
- name: project.metadata.title ?? project.file_name,
- author: project.metadata.authors[0],
- version: project.metadata.version,
- file_name: project.file_name,
- icon: project.metadata.icon ? convertFileSrc(project.metadata.icon) : null,
- disabled: project.disabled,
- outdated: false,
- project_type: project.metadata.project_type,
- })
- } else {
- projects.value.push({
- path,
- name: project.file_name,
- author: '',
- version: null,
- file_name: project.file_name,
- icon: null,
- disabled: project.disabled,
- outdated: false,
- project_type: null,
- })
- }
- }
-
- const newSelectionMap = new Map()
- for (const project of projects.value) {
- newSelectionMap.set(
- project.path,
- selectionMap.value.get(project.path) ??
- selectionMap.value.get(project.path.slice(0, -9)) ??
- selectionMap.value.get(project.path + '.disabled') ??
- false,
- )
- }
- selectionMap.value = newSelectionMap
+ // projects.value = []
+ // if (!initInstance || !initInstance.projects) return
+ // for (const [path, project] of Object.entries(initInstance.projects)) {
+ // if (project.metadata.type === 'modrinth' && !props.offline) {
+ // let owner = project.metadata.members.find((x) => x.role === 'Owner')
+ // projects.value.push({
+ // path,
+ // name: project.metadata.project.title,
+ // slug: project.metadata.project.slug,
+ // author: owner ? owner.user.username : null,
+ // version: project.metadata.version.version_number,
+ // file_name: project.file_name,
+ // icon: project.metadata.project.icon_url,
+ // updateVersion: project.metadata.update_version,
+ // outdated: !!project.metadata.update_version,
+ // project_type: project.metadata.project.project_type,
+ // id: project.metadata.project.id,
+ // })
+ // } else if (project.metadata.type === 'inferred') {
+ // projects.value.push({
+ // path,
+ // name: project.metadata.title ?? project.file_name,
+ // author: project.metadata.authors[0],
+ // version: project.metadata.version,
+ // file_name: project.file_name,
+ // icon: project.metadata.icon ? convertFileSrc(project.metadata.icon) : null,
+ // disabled: project.disabled,
+ // outdated: false,
+ // project_type: project.metadata.project_type,
+ // })
+ // } else {
+ // projects.value.push({
+ // path,
+ // name: project.file_name,
+ // author: '',
+ // version: null,
+ // file_name: project.file_name,
+ // icon: null,
+ // disabled: project.disabled,
+ // outdated: false,
+ // project_type: null,
+ // })
+ // }
+ // }
+ //
+ // const newSelectionMap = new Map()
+ // for (const project of projects.value) {
+ // newSelectionMap.set(
+ // project.path,
+ // selectionMap.value.get(project.path) ??
+ // selectionMap.value.get(project.path.slice(0, -9)) ??
+ // selectionMap.value.get(project.path + '.disabled') ??
+ // false,
+ // )
+ // }
+ // selectionMap.value = newSelectionMap
}
initProjects(props.instance)
@@ -670,8 +778,8 @@ const updateAll = async () => {
}
mixpanel_track('InstanceUpdateAll', {
- loader: props.instance.metadata.loader,
- game_version: props.instance.metadata.game_version,
+ loader: props.instance.loader,
+ game_version: props.instance.game_version,
count: setProjects.length,
selected: selected.value.length > 1,
})
@@ -696,8 +804,8 @@ const updateProject = async (mod) => {
mod.updateVersion = null
mixpanel_track('InstanceProjectUpdate', {
- loader: props.instance.metadata.loader,
- game_version: props.instance.metadata.game_version,
+ loader: props.instance.loader,
+ game_version: props.instance.game_version,
id: mod.id,
name: mod.name,
project_type: mod.project_type,
@@ -723,8 +831,8 @@ const toggleDisableMod = async (mod) => {
mod.path = newPath
mod.disabled = !mod.disabled
mixpanel_track('InstanceProjectDisable', {
- loader: props.instance.metadata.loader,
- game_version: props.instance.metadata.game_version,
+ loader: props.instance.loader,
+ game_version: props.instance.game_version,
id: mod.id,
name: mod.name,
project_type: mod.project_type,
@@ -744,8 +852,8 @@ const removeMod = async (mod) => {
projects.value = projects.value.filter((x) => mod.path !== x.path)
mixpanel_track('InstanceProjectRemove', {
- loader: props.instance.metadata.loader,
- game_version: props.instance.metadata.game_version,
+ loader: props.instance.loader,
+ game_version: props.instance.game_version,
id: mod.id,
name: mod.name,
project_type: mod.project_type,
@@ -849,7 +957,7 @@ const handleRightClick = (event, mod) => {
const handleContentOptionClick = async (args) => {
if (args.option === 'search') {
await router.push({
- path: `/browse/${props.instance.metadata.loader === 'vanilla' ? 'datapack' : 'mod'}`,
+ path: `/browse/${props.instance.loader === 'vanilla' ? 'datapack' : 'mod'}`,
query: { i: props.instance.path },
})
} else if (args.option === 'from_file') {
diff --git a/apps/app-frontend/src/pages/instance/Options.vue b/apps/app-frontend/src/pages/instance/Options.vue
index 94b38e9c0..71b7e7126 100644
--- a/apps/app-frontend/src/pages/instance/Options.vue
+++ b/apps/app-frontend/src/pages/instance/Options.vue
@@ -147,7 +147,7 @@
autocomplete="off"
maxlength="80"
type="text"
- :disabled="instance.metadata.linked_data"
+ :disabled="instance.linked_data"
/>
@@ -358,7 +358,7 @@
/>
-
+
@@ -366,9 +366,7 @@
-
-