summaryrefslogtreecommitdiff
path: root/app/views/projects/_new_project_fields.html.haml
blob: fd25d8609d027c3eebbd14a52c3b1317b8dcb16c (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
- visibility_level = selected_visibility_level(@project, params.dig(:project, :visibility_level))
- ci_cd_only = local_assigns.fetch(:ci_cd_only, false)
- hide_init_with_readme = local_assigns.fetch(:hide_init_with_readme, false)
- track_label = local_assigns.fetch(:track_label, 'blank_project')

.row{ id: project_name_id }
  = f.hidden_field :ci_cd_only, value: ci_cd_only
  .form-group.project-name.col-sm-12
    = f.label :name, class: 'label-bold' do
      %span= _("Project name")
    = f.text_field :name, placeholder: "My awesome project", class: "form-control gl-form-input input-lg", autofocus: true, data: { track_label: "#{track_label}", track_event: "activate_form_input", track_property: "project_name", track_value: "" }, required: true, aria: { required: true }
  .form-group.project-path.col-sm-6
    = f.label :namespace_id, class: 'label-bold' do
      %span= _('Project URL')
    .input-group.gl-flex-nowrap
      - if current_user.can_select_namespace?
        - namespace_id = namespace_id_from(params)
        - if Feature.enabled?(:paginatable_namespace_drop_down_for_project_creation, current_user, default_enabled: :yaml)
          .js-vue-new-project-url-select{ data: { namespace_full_path: GroupFinder.new(current_user).execute(id: namespace_id)&.full_path, namespace_id: namespace_id, root_url: root_url, track_label: track_label } }
        - else
          .input-group-prepend.flex-shrink-0.has-tooltip{ title: root_url }
            .input-group-text
              = root_url
          = f.select(:namespace_id,
                     namespaces_options_with_developer_maintainer_access(selected: namespace_id,
                                                                        display_path: true,
                                                                        extra_group: namespace_id),
                     {},
                     { class: 'select2 js-select-namespace qa-project-namespace-select block-truncated', data: { track_label: "#{track_label}", track_event: "activate_form_input", track_property: "project_path", track_value: "", qa_selector: "select_namespace_dropdown" }})
      - else
        .input-group-prepend.static-namespace.flex-shrink-0.has-tooltip{ title: user_url(current_user.username) + '/' }
          .input-group-text.border-0
            #{user_url(current_user.username)}/
        = f.hidden_field :namespace_id, value: current_user.namespace_id
  .form-group.project-path.col-sm-6
    = f.label :path, class: 'label-bold' do
      %span= _("Project slug")
    = f.text_field :path, placeholder: "my-awesome-project", class: "form-control gl-form-input", required: true, aria: { required: true }
- if current_user.can_create_group?
  .form-text.text-muted
    - link_start_group_path = '<a href="%{path}">' % { path: new_group_path }
    - project_tip = s_('ProjectsNew|Want to house several dependent projects under the same namespace? %{link_start}Create a group.%{link_end}') % { link_start: link_start_group_path, link_end: '</a>' }
    = project_tip.html_safe

.form-group
  = f.label :description, class: 'label-bold' do
    = s_('ProjectsNew|Project description %{tag_start}(optional)%{tag_end}').html_safe % { tag_start: '<span>'.html_safe, tag_end: '</span>'.html_safe }
  = f.text_area :description, placeholder: s_('ProjectsNew|Description format'), class: "form-control gl-form-input", rows: 3, maxlength: 250, data: { track_label: "#{track_label}", track_event: "activate_form_input", track_property: "project_description", track_value: "" }

= f.label :visibility_level, class: 'label-bold' do
  = s_('ProjectsNew|Visibility Level')
  = link_to sprite_icon('question-o'), help_page_path('public_access/public_access'), aria: { label: 'Documentation for Visibility Level' }, target: '_blank', rel: 'noopener noreferrer'
= render 'shared/visibility_level', f: f, visibility_level: visibility_level.to_i, can_change_visibility_level: true, form_model: @project, with_label: false

- if !hide_init_with_readme
  .form-group.row.initialize-with-readme-setting
    %div{ :class => "col-sm-12" }
      .form-check
        = check_box_tag 'project[initialize_with_readme]', '1', true, class: 'form-check-input', data: { qa_selector: "initialize_with_readme_checkbox", track_label: "#{track_label}", track_event: "activate_form_input", track_property: "init_with_readme", track_value: "" }
        = label_tag 'project[initialize_with_readme]', class: 'form-check-label' do
          .option-title
            %strong= s_('ProjectsNew|Initialize repository with a README')
          .option-description
            = s_('ProjectsNew|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository.')

= f.submit _('Create project'), class: "btn gl-button btn-confirm", data: { track_label: "#{track_label}", track_event: "click_button", track_property: "create_project", track_value: "" }
= link_to _('Cancel'), dashboard_projects_path, class: 'btn gl-button btn-default btn-cancel', data: { track_label: "#{track_label}", track_event: "click_button", track_property: "cancel", track_value: "" }