- auto_ssl_available = ::Gitlab::LetsEncrypt.enabled? - auto_ssl_enabled = domain_presenter.auto_ssl_enabled? - auto_ssl_available_and_enabled = auto_ssl_available && auto_ssl_enabled - has_user_defined_certificate = domain_presenter.certificate && domain_presenter.certificate_user_provided? - if auto_ssl_available .form-group.border-section .row .col-sm-2 = _('Certificate') .col-sm-10.js-auto-ssl-toggle-container %label{ for: "pages_domain_auto_ssl_enabled_button" } - lets_encrypt_link_url = "https://letsencrypt.org/" - lets_encrypt_link_start = "".html_safe % { lets_encrypt_link_url: lets_encrypt_link_url } - lets_encrypt_link_end = "".html_safe = _("Automatic certificate management using %{lets_encrypt_link_start}Let's Encrypt%{lets_encrypt_link_end}").html_safe % { lets_encrypt_link_start: lets_encrypt_link_start, lets_encrypt_link_end: lets_encrypt_link_end } %button{ type: "button", id: "pages_domain_auto_ssl_enabled_button", class: "js-project-feature-toggle project-feature-toggle mt-2 #{"is-checked" if auto_ssl_available_and_enabled}", "aria-label": _("Automatic certificate management using Let's Encrypt") } = f.hidden_field :auto_ssl_enabled?, class: "js-project-feature-toggle-input" %span.toggle-icon = sprite_icon("status_success_borderless", size: 18, css_class: "gl-text-blue-500 toggle-status-checked") = sprite_icon("status_failed_borderless", size: 18, css_class: "gl-text-gray-400 toggle-status-unchecked") %p.text-secondary.mt-3 - docs_link_url = help_page_path("user/project/pages/custom_domains_ssl_tls_certification/lets_encrypt_integration.md") - docs_link_start = "".html_safe % { docs_link_url: docs_link_url } - docs_link_end = "".html_safe = _("Let's Encrypt is a free, automated, and open certificate authority (CA) that gives digital certificates in order to enable HTTPS (SSL/TLS) for websites. Learn more about Let's Encrypt configuration by following the %{docs_link_start}documentation on GitLab Pages%{docs_link_end}.").html_safe % { docs_link_url: docs_link_url, docs_link_start: docs_link_start, docs_link_end: docs_link_end } .form-group.border-section.js-shown-unless-auto-ssl{ class: ("d-none" if auto_ssl_available_and_enabled) } - if has_user_defined_certificate .row .col-sm-10.offset-sm-2 .card .card-header = _('Certificate') .d-flex.justify-content-between.align-items-center.p-3 %span = domain_presenter.pages_domain.subject || _('missing') = link_to _('Remove'), clean_certificate_project_pages_domain_path(@project, domain_presenter), data: { confirm: _('Are you sure?') }, class: 'btn btn-remove btn-sm', method: :delete - else .row .col-sm-10.offset-sm-2 = f.label :user_provided_certificate, _("Certificate (PEM)") = f.text_area :user_provided_certificate, rows: 5, class: "form-control js-enabled-unless-auto-ssl", disabled: auto_ssl_available_and_enabled %span.help-inline.text-muted= _("Upload a certificate for your domain with all intermediates") .row .col-sm-10.offset-sm-2 = f.label :user_provided_key, _("Key (PEM)") = f.text_area :user_provided_key, rows: 5, class: "form-control js-enabled-unless-auto-ssl", disabled: auto_ssl_available_and_enabled %span.help-inline.text-muted= _("Upload a private key for your certificate") = render 'lets_encrypt_callout', auto_ssl_available_and_enabled: auto_ssl_available_and_enabled