summaryrefslogtreecommitdiff
path: root/app/views/shared/access_tokens/_form.html.haml
blob: d4106ba4e5d16f78e22b524cc5063a7b48f99a1d (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
- title = local_assigns.fetch(:title, _('Add a %{type}') % { type: type })
- prefix = local_assigns.fetch(:prefix, :personal_access_token)
- help_path = local_assigns.fetch(:help_path)
- resource = local_assigns.fetch(:resource, false)
- access_levels = local_assigns.fetch(:access_levels, false)
- default_access_level = local_assigns.fetch(:default_access_level, false)

%h5.gl-mt-0
  = title
%p.profile-settings-content
  = _("Enter the name of your application, and we'll return a unique %{type}.") % { type: type }

= gitlab_ui_form_for token, as: prefix, url: path, method: :post, html: { class: 'js-requires-input' } do |f|

  = form_errors(token)

  .row
    .form-group.col
      .row
        = f.label :name, _('Token name'), class: 'label-bold col-md-12'
        .col-md-6
          - resource_type = resource.is_a?(Group) ? "group" : "project"
          = f.text_field :name, class: 'form-control gl-form-input', required: true, data: { qa_selector: 'access_token_name_field' }, :'aria-describedby' => 'access_token_help_text'
        %span.form-text.text-muted.col-md-12#access_token_help_text= _("For example, the application using the token or the purpose of the token. Do not give sensitive information for the name of the token, as it will be visible to all %{resource_type} members.") % { resource_type: resource_type }

  .row
    .col
      .js-access-tokens-expires-at{ data: expires_at_field_data }
        = f.text_field :expires_at, class: 'datepicker gl-datepicker-input form-control gl-form-input', placeholder: 'YYYY-MM-DD', autocomplete: 'off', data: { js_name: 'expiresAt' }

  - if resource
    .row
      .form-group.col-md-6
        = label_tag :access_level, _("Select a role"), class: "label-bold"
        .select-wrapper
          = select_tag :"#{prefix}[access_level]", options_for_select(access_levels, default_access_level), class: "form-control select-control", data: { qa_selector: 'access_token_access_level' }
          = sprite_icon('chevron-down', css_class: "gl-icon gl-absolute gl-top-3 gl-right-3 gl-text-gray-200")

  .form-group
    %b{ :'aria-describedby' => 'select_scope_help_text' }
      = s_('Tokens|Select scopes')
    %p.text-secondary#select_scope_help_text
      = s_('Tokens|Scopes set the permission levels granted to the token.')
      = link_to _("Learn more."), help_path, target: '_blank', rel: 'noopener noreferrer'
    = render 'shared/tokens/scopes_form', prefix: prefix, token: token, scopes: scopes, f: f

  - if prefix == :personal_access_token && Feature.enabled?(:personal_access_tokens_scoped_to_projects, current_user)
    .js-access-tokens-projects
      %input{ type: 'hidden', name: 'personal_access_token[projects]', id: 'personal_access_token_projects', data: { js_name: 'projects' } }

  .gl-mt-3
    = f.submit _('Create %{type}') % { type: type }, class: 'gl-button btn btn-confirm', data: { qa_selector: 'create_token_button' }