Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/pages/projects/forks/new/components/fork_form.vue')
-rw-r--r--app/assets/javascripts/pages/projects/forks/new/components/fork_form.vue50
1 files changed, 49 insertions, 1 deletions
diff --git a/app/assets/javascripts/pages/projects/forks/new/components/fork_form.vue b/app/assets/javascripts/pages/projects/forks/new/components/fork_form.vue
index 9659c927fbf..e3d50e900ca 100644
--- a/app/assets/javascripts/pages/projects/forks/new/components/fork_form.vue
+++ b/app/assets/javascripts/pages/projects/forks/new/components/fork_form.vue
@@ -7,6 +7,7 @@ import {
GlFormGroup,
GlFormTextarea,
GlButton,
+ GlSprintf,
GlFormRadio,
GlFormRadioGroup,
} from '@gitlab/ui';
@@ -56,6 +57,7 @@ export default {
GlIcon,
GlLink,
GlButton,
+ GlSprintf,
GlFormInput,
GlFormTextarea,
GlFormGroup,
@@ -91,6 +93,9 @@ export default {
projectDescription: {
default: '',
},
+ projectDefaultBranch: {
+ default: '',
+ },
projectVisibility: {
default: '',
},
@@ -116,6 +121,7 @@ export default {
required: false,
skipValidation: true,
}),
+ branches: initFormField({ value: '', required: true, skipValidation: true }),
visibility: initFormField({ value: null }),
},
};
@@ -168,6 +174,18 @@ export default {
return allowedLevels;
},
+ branchesOptions() {
+ return [
+ {
+ text: s__('ForkProject|All branches'),
+ value: '',
+ },
+ {
+ text: s__(`ForkProject|Only the default branch %{defaultBranch}`),
+ value: this.projectDefaultBranch,
+ },
+ ];
+ },
visibilityLevels() {
return [
{
@@ -245,7 +263,7 @@ export default {
this.form.showValidation = false;
const { projectId } = this;
- const { name, slug, description, visibility, namespace } = this.form.fields;
+ const { name, slug, description, branches, visibility, namespace } = this.form.fields;
const postParams = {
id: projectId,
@@ -253,6 +271,7 @@ export default {
namespace_id: namespace.value.id,
path: slug.value,
description: description.value,
+ branches: branches.value,
visibility: visibility.value,
};
@@ -263,6 +282,7 @@ export default {
const { data } = await axios.post(url, postParams);
redirectTo(data.web_url); // eslint-disable-line import/no-deprecated
} catch (error) {
+ this.isSaving = false;
createAlert({
message: s__(
'ForkProject|An error occurred while forking the project. Please try again.',
@@ -348,6 +368,34 @@ export default {
/>
</gl-form-group>
+ <gl-form-group>
+ <label>
+ {{ s__('ForkProject|Branches to include') }}
+ </label>
+ <gl-form-radio-group
+ v-model="form.fields.branches.value"
+ data-testid="fork-branches-radio-group"
+ name="branches"
+ :aria-label="__('branches')"
+ required
+ >
+ <gl-form-radio
+ v-for="{ text, value } in branchesOptions"
+ :key="value"
+ :value="value"
+ :data-testid="`radio-${value}`"
+ >
+ <div>
+ <gl-sprintf :message="text">
+ <template #defaultBranch>
+ <code class="gl-ml-2">{{ projectDefaultBranch }}</code>
+ </template>
+ </gl-sprintf>
+ </div>
+ </gl-form-radio>
+ </gl-form-radio-group>
+ </gl-form-group>
+
<gl-form-group
v-validation:[form.showValidation]
:invalid-feedback="s__('ForkProject|Please select a visibility level')"