1
0

feat: add setting for infinite nesting

This commit is contained in:
kolaente
2023-04-03 13:53:28 +02:00
parent 0dd6f82a0e
commit cb218ec0c3
7 changed files with 29 additions and 3 deletions

View File

@ -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'])

View File

@ -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>

View File

@ -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>

View File

@ -23,6 +23,7 @@ declare global {
API_URL: string;
SENTRY_ENABLED: boolean;
SENTRY_DSN: string;
INFINITE_PROJECT_NESTING_ENABLED: boolean;
}
}