summaryrefslogtreecommitdiff
path: root/app/views/shared/access_tokens/_form.html.haml
blob: 6435475a9a37354dc34b8c8527fffb7522b4230d (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
- 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)
- project = local_assigns.fetch(:project, 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 }

= 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
          = 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.')

  .row
    .form-group.col-md-6
      = f.label :expires_at, _('Expiration date'), class: 'label-bold'
      .input-icon-wrapper

        = render_if_exists 'personal_access_tokens/callout_max_personal_access_token_lifetime'

        .js-access-tokens-expires-at
          = 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 project
    .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 project-access-select 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'
    = render 'shared/tokens/scopes_form', prefix: prefix, token: token, scopes: scopes

  - 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' }