summaryrefslogtreecommitdiff
path: root/app/views/admin/serverless/domains/_form.html.haml
blob: 8f0dd0cab8e8338efbee1e8d653914b3d697d755 (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
99
- form_name = 'js-serverless-domain-settings'
- form_url = @domain.persisted? ? admin_serverless_domain_path(@domain.id, anchor: form_name) : admin_serverless_domains_path(anchor: form_name)
- show_certificate_card = @domain.persisted? && @domain.errors.blank?
= form_for @domain, url: form_url, html: { class: 'fieldset-form' } do |f|
  = form_errors(@domain)

  %fieldset
    - if @domain.persisted?
      - dns_record = "*.#{@domain.domain} CNAME #{Settings.pages.host}."
      - verification_record = "#{@domain.verification_domain} TXT #{@domain.keyed_verification_code}"
      .form-group.row
        .col-sm-6.position-relative
          = f.label :domain, _('Domain'), class: 'label-bold'
          = f.text_field :domain, class: 'form-control has-floating-status-badge', readonly: true
          .status-badge.floating-status-badge
            - text, status = @domain.unverified? ? [_('Unverified'), 'badge-danger'] : [_('Verified'), 'badge-success']
            .badge{ class: status }
              = text
            = link_to sprite_icon("redo"), verify_admin_serverless_domain_path(@domain.id), method: :post, class: "gl-button btn has-tooltip", title: _("Retry verification")

        .col-sm-6
          = f.label :serverless_domain_dns, _('DNS'), class: 'label-bold'
          .input-group
            = text_field_tag :serverless_domain_dns, dns_record , class: "monospace js-select-on-focus form-control", readonly: true
            .input-group-append
              = clipboard_button(target: '#serverless_domain_dns', class: 'btn-default input-group-text d-none d-sm-block')

        .col-sm-12.form-text.text-muted
          = _("To access this domain create a new DNS record")

      .form-group
        = f.label :serverless_domain_verification, _('Verification status'), class: 'label-bold'
        .input-group
          = text_field_tag :serverless_domain_verification, verification_record, class: "monospace js-select-on-focus form-control", readonly: true
          .input-group-append
            = clipboard_button(target: '#serverless_domain_verification', class: 'btn-default d-none d-sm-block')
        %p.form-text.text-muted
          - link_to_help = link_to(_('verify ownership'), help_page_path('user/project/pages/custom_domains_ssl_tls_certification/index.md', anchor: '4-verify-the-domains-ownership'))
          = _("To %{link_to_help} of your domain, add the above key to a TXT record within to your DNS configuration.").html_safe % { link_to_help: link_to_help }

    - else
      .form-group
        = f.label :domain, _('Domain'), class: 'label-bold'
        = f.text_field :domain, class: 'form-control'

    - if show_certificate_card
      .card.js-domain-cert-show
        .card-header
          = _('Certificate')
        .d-flex.justify-content-between.align-items-center.p-3
          %span
            = @domain.subject || _('missing')
          %button.gl-button.btn.btn-danger.btn-sm.js-domain-cert-replace-btn{ type: 'button' }
            = _('Replace')

    .js-domain-cert-inputs{ class: ('hidden' if show_certificate_card) }
      .form-group
        = f.label :user_provided_certificate, _('Certificate (PEM)'), class: 'label-bold'
        = f.text_area :user_provided_certificate, rows: 5, class: 'form-control', value: ''
        %span.form-text.text-muted
          = _("Upload a certificate for your domain with all intermediates")
      .form-group
        = f.label :user_provided_key, _('Key (PEM)'), class: 'label-bold'
        = f.text_area :user_provided_key, rows: 5, class: 'form-control', value: ''
        %span.form-text.text-muted
          = _("Upload a private key for your certificate")

  = f.submit @domain.persisted? ? _('Save changes') : _('Add domain'), class: "gl-button btn btn-success js-serverless-domain-submit", disabled: @domain.persisted?
  - if @domain.persisted?
    %button.gl-button.btn.btn-danger{ type: 'button', data: { toggle: 'modal', target: "#modal-delete-domain" } }
      = _('Delete domain')

-# haml-lint:disable NoPlainNodes
- if @domain.persisted?
  - domain_attached = @domain.serverless_domain_clusters.count > 0
  .modal{ id: "modal-delete-domain", tabindex: -1 }
    .modal-dialog
      .modal-content
        .modal-header
          %h3.page-title= _('Delete serverless domain?')
          %button.close{ type: "button", "data-dismiss": "modal", "aria-label" => _('Close') }
            %span{ "aria-hidden": true } ×

        .modal-body
          - if domain_attached
            = _("You must disassociate %{domain} from all clusters it is attached to before deletion.").html_safe % { domain: "<code>#{@domain.domain}</code>".html_safe }
          - else
            = _("You are about to delete %{domain} from your instance. This domain will no longer be available to any Knative application.").html_safe % { domain: "<code>#{@domain.domain}</code>".html_safe }

        .modal-footer
          %a{ href: '#', data: { dismiss: 'modal' }, class: 'gl-button btn btn-default' }
            = _('Cancel')

          = link_to _('Delete domain'),
            admin_serverless_domain_path(@domain.id),
            title: _('Delete'),
            method: :delete,
            class: "gl-button btn btn-danger",
            disabled: domain_attached