From 888137a77da2dd05d059aac0200c3ec5883b0a31 Mon Sep 17 00:00:00 2001 From: Julia Miocene Date: Fri, 7 Feb 2025 15:22:43 +0100 Subject: [PATCH 1/4] Add navigation between first two steps to the new project creation form --- .../projects/new_v2/components/app.vue | 49 +++++++++++++------ .../new_v2/components/blank_project_form.vue | 13 ++--- .../new_v2/components/ci_cd_project_form.vue | 13 ++--- .../new_v2/components/import_project_form.vue | 13 ++--- .../components/template_project_form.vue | 11 +++-- .../javascripts/projects/new_v2/constants.js | 4 ++ 6 files changed, 65 insertions(+), 38 deletions(-) diff --git a/app/assets/javascripts/projects/new_v2/components/app.vue b/app/assets/javascripts/projects/new_v2/components/app.vue index 7de862a21aeafe..a10adb0197da03 100644 --- a/app/assets/javascripts/projects/new_v2/components/app.vue +++ b/app/assets/javascripts/projects/new_v2/components/app.vue @@ -10,10 +10,6 @@ import { OPTIONS } from '../constants'; import NewProjectDestinationSelect from './project_destination_select.vue'; import Breadcrumb from './form_breadcrumb.vue'; import CommandLine from './command_line.vue'; -import BlankProjectForm from './blank_project_form.vue'; -import TemplateProjectForm from './template_project_form.vue'; -import CiCdProjectForm from './ci_cd_project_form.vue'; -import ImportProjectForm from './import_project_form.vue'; export default { OPTIONS, @@ -29,10 +25,6 @@ export default { NewProjectDestinationSelect, Breadcrumb, CommandLine, - BlankProjectForm, - TemplateProjectForm, - CiCdProjectForm, - ImportProjectForm, }, directives: { SafeHtml, @@ -113,6 +105,8 @@ export default { return { selectedNamespace: this.namespaceId && this.canSelectNamespace ? this.namespaceId : this.userNamespaceId, + selectedProjectType: OPTIONS.blank.value, + currentStep: 1, rootUrl: this.rootPath, }; }, @@ -149,6 +143,12 @@ export default { OPTIONS.transfer, ]; }, + selectedProjectOption() { + return this.availableProjectTypes.find((type) => type.value === this.selectedProjectType); + }, + step2Component() { + return this.selectedProjectOption.component; + }, }, methods: { @@ -158,6 +158,15 @@ export default { chooseGroupNamespace() { this.selectedNamespace = null; }, + selectProjectType(value) { + this.selectedProjectType = value; + }, + onBack() { + this.currentStep -= 1; + }, + onNext() { + this.currentStep += 1; + }, }, }; @@ -166,7 +175,11 @@ export default {
- + @@ -233,9 +250,11 @@ export default { - - - - +
diff --git a/app/assets/javascripts/projects/new_v2/components/blank_project_form.vue b/app/assets/javascripts/projects/new_v2/components/blank_project_form.vue index c7a98d71ab745f..6c26efdaf60ca0 100644 --- a/app/assets/javascripts/projects/new_v2/components/blank_project_form.vue +++ b/app/assets/javascripts/projects/new_v2/components/blank_project_form.vue @@ -8,23 +8,24 @@ export default { MultiStepFormTemplate, }, props: { - title: { - type: String, - required: true, + option: { + type: Object, + required: false, + default: () => {}, }, }, };