summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/pages/groups/new/components/app.vue
blob: 167f56bbfcf9cb2b728e0d24ca0363c869928771 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<script>
import importGroupIllustration from '@gitlab/svgs/dist/illustrations/group-import.svg?raw';
import newGroupIllustration from '@gitlab/svgs/dist/illustrations/group-new.svg?raw';

import { s__ } from '~/locale';
import NewNamespacePage from '~/vue_shared/new_namespace/new_namespace_page.vue';
import createGroupDescriptionDetails from './create_group_description_details.vue';

export default {
  components: {
    NewNamespacePage,
  },
  props: {
    rootPath: {
      type: String,
      required: true,
    },
    groupsUrl: {
      type: String,
      required: true,
    },
    parentGroupUrl: {
      type: String,
      required: false,
      default: null,
    },
    parentGroupName: {
      type: String,
      required: false,
      default: '',
    },
    importExistingGroupPath: {
      type: String,
      required: false,
      default: '',
    },
    hasErrors: {
      type: Boolean,
      required: false,
      default: false,
    },
  },
  computed: {
    initialBreadcrumbs() {
      return this.parentGroupUrl
        ? [
            { text: this.parentGroupName, href: this.parentGroupUrl },
            { text: s__('GroupsNew|New subgroup'), href: '#' },
          ]
        : [
            { text: s__('Navigation|Your work'), href: this.rootPath },
            { text: s__('GroupsNew|Groups'), href: this.groupsUrl },
            { text: s__('GroupsNew|New group'), href: '#' },
          ];
    },
    panels() {
      return [
        {
          name: 'create-group-pane',
          selector: '#create-group-pane',
          title: this.parentGroupName
            ? s__('GroupsNew|Create subgroup')
            : s__('GroupsNew|Create group'),
          description: s__(
            'GroupsNew|Assemble related projects together and grant members access to several projects at once.',
          ),
          illustration: newGroupIllustration,
          details: createGroupDescriptionDetails,
          detailProps: {
            parentGroupName: this.parentGroupName,
            importExistingGroupPath: this.importExistingGroupPath,
          },
        },
        {
          name: 'import-group-pane',
          selector: '#import-group-pane',
          title: s__('GroupsNew|Import group'),
          description: s__(
            'GroupsNew|Import a group and related data from another GitLab instance.',
          ),
          illustration: importGroupIllustration,
          details: 'Migrate your existing groups from another instance of GitLab.',
        },
      ];
    },
  },
};
</script>

<template>
  <new-namespace-page
    :jump-to-last-persisted-panel="hasErrors"
    :initial-breadcrumbs="initialBreadcrumbs"
    :panels="panels"
    :title="s__('GroupsNew|Create new group')"
    persistence-key="new_group_last_active_tab"
  />
</template>