feat: allow selecting a parent project when creating a project
continuous-integration/drone/pr Build is failing Details

This commit is contained in:
kolaente 2023-03-29 17:05:09 +02:00
parent 56b607ef8e
commit 6d4c746586
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
3 changed files with 15 additions and 1 deletions

View File

@ -12,7 +12,7 @@
>
<template #searchResult="{option}">
<span class="has-text-grey">
{{ projectStore.getParentProjects(option).filter(p => p.id !== option.id).map(p => getProjectTitle(p) ).join(' &gt; ') }} &gt;
{{ projectStore.getParentProjects(option).filter(p => p.id !== option.id).map(p => getProjectTitle(p)).join(' &gt; ') }} &gt;
</span>
{{ getProjectTitle(option) }}
</template>

View File

@ -169,6 +169,7 @@
"title": "Project Title",
"color": "Color",
"projects": "Projects",
"parent": "Parent Project",
"search": "Type to search for a project…",
"searchSelect": "Click or press enter to select this project",
"shared": "Shared Projects",

View File

@ -22,6 +22,12 @@
<p class="help is-danger" v-if="showError && project.title === ''">
{{ $t('project.create.addTitleRequired') }}
</p>
<div class="field">
<label class="label">{{ $t('project.parent') }}</label>
<div class="control">
<project-search v-model="parentProject"/>
</div>
</div>
<div class="field">
<label class="label">{{ $t('project.color') }}</label>
<div class="control">
@ -44,6 +50,8 @@ import ColorPicker from '@/components/input/ColorPicker.vue'
import {success} from '@/message'
import {useTitle} from '@/composables/useTitle'
import {useProjectStore} from '@/stores/projects'
import ProjectSearch from '@/components/tasks/partials/projectSearch.vue'
import type {IProject} from '@/modelTypes/IProject'
const {t} = useI18n({useScope: 'global'})
const router = useRouter()
@ -55,6 +63,7 @@ const showError = ref(false)
const project = reactive(new ProjectModel())
const projectService = shallowReactive(new ProjectService())
const projectStore = useProjectStore()
const parentProject = ref<IProject | null>(null)
async function createNewProject() {
if (project.title === '') {
@ -62,6 +71,10 @@ async function createNewProject() {
return
}
showError.value = false
if (parentProject.value) {
project.parentProjectId = parentProject.value.id
}
const newProject = await projectStore.createProject(project)
await router.push({