|
@ -25,21 +25,43 @@ |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
$: { |
|
|
$: { |
|
|
if ($projectGroupStore.groups.length > 0 && groupId === "") { |
|
|
|
|
|
const group = $projectGroupStore.groups[0]; |
|
|
|
|
|
|
|
|
const lastGroupId = localStorage.getItem("stufflog3.questlog.last_group_id") || ""; |
|
|
|
|
|
const lastProjectId = localStorage.getItem("stufflog3.questlog.last_project_id") || ""; |
|
|
|
|
|
|
|
|
if (group.projects.length > 0) { |
|
|
|
|
|
const projects = [...group.projects].sort(sortProjects); |
|
|
|
|
|
|
|
|
if ($projectGroupStore.groups.length > 0) { |
|
|
|
|
|
// Try to restore last selection |
|
|
|
|
|
let group = $projectGroupStore.groups[0]; |
|
|
|
|
|
let preferredProjectId = ""; |
|
|
|
|
|
if (groupId === "") { |
|
|
|
|
|
if (lastGroupId !== "" && lastProjectId !== "") { |
|
|
|
|
|
const lastGroup = $projectGroupStore.groups.find(g => g.id === lastGroupId); |
|
|
|
|
|
|
|
|
navigate(`/questlog/${group.id}/${projects[0].id}`, {replace: true}); |
|
|
|
|
|
|
|
|
if (lastGroup != null) { |
|
|
|
|
|
const lastProject = lastGroup.projects.find(p => p.id === lastProjectId); |
|
|
|
|
|
if (lastProject != null) { |
|
|
|
|
|
group = lastGroup; |
|
|
|
|
|
preferredProjectId = lastProject.id; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// There's some weirdness with navigate. This hack will just do a |
|
|
|
|
|
// groups = [...groups] in the sttore to get the page to update. |
|
|
|
|
|
tick().then(() => { |
|
|
|
|
|
projectGroupStore.fakeRefresh(); |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
if (group.projects.length > 0) { |
|
|
|
|
|
const projects = [...group.projects].sort(sortProjects); |
|
|
|
|
|
const project = projects.find(p => p.id === preferredProjectId) || projects[0]; |
|
|
|
|
|
|
|
|
|
|
|
navigate(`/questlog/${group.id}/${project.id}`, {replace: true}); |
|
|
|
|
|
|
|
|
|
|
|
// There's some weirdness with navigate. This hack will just do a |
|
|
|
|
|
// groups = [...groups] in the sttore to get the page to update. |
|
|
|
|
|
tick().then(() => { |
|
|
|
|
|
projectGroupStore.fakeRefresh(); |
|
|
|
|
|
}) |
|
|
|
|
|
} else { |
|
|
|
|
|
navigate(`/questlog/${group.id}`); |
|
|
|
|
|
} |
|
|
} else { |
|
|
} else { |
|
|
navigate(`/questlog/${group.id}`); |
|
|
|
|
|
|
|
|
localStorage.setItem("stufflog3.questlog.last_group_id", groupId); |
|
|
|
|
|
localStorage.setItem("stufflog3.questlog.last_project_id", projectId); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|