feat: add setting for infinite nesting
This commit is contained in:
@ -23,6 +23,7 @@
|
||||
:project="project"
|
||||
:is-loading="projectUpdating[project.id]"
|
||||
:can-collapse="canCollapse"
|
||||
:level="level"
|
||||
/>
|
||||
</template>
|
||||
</draggable>
|
||||
@ -44,6 +45,7 @@ const props = defineProps<{
|
||||
modelValue?: IProject[],
|
||||
canEditOrder: boolean,
|
||||
canCollapse?: boolean,
|
||||
level?: number,
|
||||
}>()
|
||||
const emit = defineEmits(['update:modelValue'])
|
||||
|
||||
|
@ -46,10 +46,11 @@
|
||||
<span class="list-setting-spacer" v-else></span>
|
||||
</section>
|
||||
<ProjectsNavigation
|
||||
v-if="childProjectsOpen && canCollapse"
|
||||
v-if="canNestDeeper && childProjectsOpen && canCollapse"
|
||||
v-model="childProjects"
|
||||
:can-edit-order="true"
|
||||
:can-collapse="canCollapse"
|
||||
:level="level + 1"
|
||||
/>
|
||||
</li>
|
||||
</template>
|
||||
@ -71,6 +72,7 @@ const props = defineProps<{
|
||||
project: IProject,
|
||||
isLoading?: boolean,
|
||||
canCollapse?: boolean,
|
||||
level?: number,
|
||||
}>()
|
||||
|
||||
const projectStore = useProjectStore()
|
||||
@ -80,10 +82,21 @@ const currentProject = computed(() => baseStore.currentProject)
|
||||
const childProjectsOpen = ref(true)
|
||||
|
||||
const childProjects = computed(() => {
|
||||
if (!canNestDeeper.value) {
|
||||
return []
|
||||
}
|
||||
|
||||
return projectStore.getChildProjects(props.project.id)
|
||||
.sort((a, b) => a.position - b.position)
|
||||
})
|
||||
|
||||
const canNestDeeper = computed(() => {
|
||||
if (props.level < 2) {
|
||||
return true
|
||||
}
|
||||
|
||||
return props.level >= 2 && window.INFINITE_PROJECT_NESTING_ENABLED
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
@ -55,7 +55,12 @@
|
||||
</nav>
|
||||
|
||||
<nav class="menu">
|
||||
<ProjectsNavigation :model-value="projects" :can-edit-order="true" :can-collapse="true"/>
|
||||
<ProjectsNavigation
|
||||
:model-value="projects"
|
||||
:can-edit-order="true"
|
||||
:can-collapse="true"
|
||||
:level="1"
|
||||
/>
|
||||
</nav>
|
||||
</template>
|
||||
|
||||
@ -140,7 +145,7 @@ const favoriteProjects = computed(() => projectStore.favoriteProjects
|
||||
}
|
||||
}
|
||||
|
||||
.menu + .menu{
|
||||
.menu + .menu {
|
||||
padding-top: math.div($navbar-padding, 2);
|
||||
}
|
||||
</style>
|
||||
|
@ -23,6 +23,7 @@ declare global {
|
||||
API_URL: string;
|
||||
SENTRY_ENABLED: boolean;
|
||||
SENTRY_DSN: string;
|
||||
INFINITE_PROJECT_NESTING_ENABLED: boolean;
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user