diff --git a/app/assets/javascripts/pages/projects/pages_domains/form.js b/app/assets/javascripts/pages/projects/pages_domains/form.js index 6836d399fa4628840aa238969d4687eb50834bfa..d8defa0ddcebf86b2cd7760d60f461f9d7b7ca74 100644 --- a/app/assets/javascripts/pages/projects/pages_domains/form.js +++ b/app/assets/javascripts/pages/projects/pages_domains/form.js @@ -3,9 +3,9 @@ import { initToggle } from '~/toggles'; function updateVisibility(selector, isVisible) { Array.from(document.querySelectorAll(selector)).forEach((el) => { if (isVisible) { - el.classList.remove('d-none'); + el.classList.remove('!gl-hidden'); } else { - el.classList.add('d-none'); + el.classList.add('!gl-hidden'); } }); } diff --git a/app/views/projects/pages/_access.html.haml b/app/views/projects/pages/_access.html.haml index e72194eb1bcc4ae7e8ef1189ba9440c636c3a07e..b613c60287a5d0747f46dae5071785b1f556b29f 100644 --- a/app/views/projects/pages/_access.html.haml +++ b/app/views/projects/pages/_access.html.haml @@ -4,15 +4,20 @@ - if Gitlab.config.pages.namespace_in_path - pages_url_text = "#{pages_url} (Beta)" - = render Pajamas::CardComponent.new(card_options: { class: 'gl-mb-5', data: { testid: 'access-page-container' } }, footer_options: { class: 'gl-alert-warning' }) do |c| + = render Pajamas::CardComponent.new(card_options: { class: 'gl-new-card', data: { testid: 'access-page-container' } }, header_options: { class: 'gl-new-card-header' }, body_options: { class: 'gl-new-card-body gl-p-5 gl-flex gl-flex-col gl-gap-3' }, footer_options: { class: 'gl-alert-warning' }) do |c| - c.with_header do - = s_('GitLabPages|Access pages') + .gl-new-card-title-wrapper + %h2.gl-new-card-title + = s_('GitLabPages|Access pages') + .gl-new-card-count + = sprite_icon('doc-text', css_class: 'gl-mr-2') + %span= @project.pages_domains.size + (pages_url ? 1 : 0) - c.with_body do - %p + %p.gl-m-0 = external_link(pages_url_text, pages_url) - @project.pages_domains.each do |domain| - %p + %p.gl-m-0 = external_link(domain.url, domain.url) - unless @project.public_pages? - c.with_footer do diff --git a/app/views/projects/pages/_destroy.haml b/app/views/projects/pages/_destroy.haml index f80c4e361d3de8349d09775b1cd1676bc67885bd..b77a7eb9b4eaf6030aa27df1695e02628f5028d9 100644 --- a/app/views/projects/pages/_destroy.haml +++ b/app/views/projects/pages/_destroy.haml @@ -1,12 +1,12 @@ - if @project.pages_deployed? - if can?(current_user, :remove_pages, @project) - .gl-bg-red-50.gl-shadow-inner-l-3-red-600.gl-py-5.gl-px-6 + .gl-bg-red-50.gl-shadow-inner-l-3-red-600.gl-py-5.gl-px-6.gl-mt-5 %h4.gl-font-lg.gl-mt-0= s_('GitLabPages|Remove pages') - %p= s_('GitLabPages|Removing pages will prevent them from being exposed to the outside world.') + %p= s_('GitLabPages|Removing pages will prevent them from being exposed to the public internet.') = render Pajamas::ButtonComponent.new(href: project_pages_path(@project), variant: :danger, method: :delete, - button_options: {data: { confirm: s_('GitLabPages|Are you sure?'), 'confirm-btn-variant': 'danger'}, "aria-label": s_('GitLabPages|Remove pages')}) do + button_options: { data: { confirm: s_('GitLabPages|Are you sure?'), 'confirm-btn-variant': 'danger' }, "aria-label": s_('GitLabPages|Remove pages') }) do = s_('GitLabPages|Remove pages') - else .nothing-here-block diff --git a/app/views/projects/pages/_header.html.haml b/app/views/projects/pages/_header.html.haml index c34034ccafc7af73272af91ad0754ddc17aae25f..2d62c2dd5e08ad7f78d014801284dfce7c72769d 100644 --- a/app/views/projects/pages/_header.html.haml +++ b/app/views/projects/pages/_header.html.haml @@ -1,8 +1,6 @@ -- @content_class = 'limit-container-width' - -%h4.page-title +%h1.gl-heading-1{ class: "!gl-mt-5" } = s_('GitLabPages|Pages') -%p +%p.gl-text-secondary - docs_link_start = "".html_safe - docs_link_end = ''.html_safe = s_('GitLabPages|With GitLab Pages you can host your static website directly from your GitLab repository. %{docs_link_start}Learn more.%{link_end}').html_safe % { docs_link_start: docs_link_start, link_end: docs_link_end } diff --git a/app/views/projects/pages/_list.html.haml b/app/views/projects/pages/_list.html.haml index 944e6e6b9bb4569d0860d9450f8bd53fc88c5151..539eb2ebbb7cc86682aef3cec0ca331239e3204f 100644 --- a/app/views/projects/pages/_list.html.haml +++ b/app/views/projects/pages/_list.html.haml @@ -2,55 +2,65 @@ - verification_enabled = Gitlab::CurrentSettings.pages_domain_verification_enabled? - if can?(current_user, :update_pages, @project) - = render Pajamas::CardComponent.new(card_options: { class: 'gl-mb-5'}, header_options: { class: 'gl-display-flex gl-align-items-center gl-justify-content-space-between' }) do |c| + = render Pajamas::CardComponent.new(card_options: { class: 'gl-new-card' }, header_options: { class: 'gl-new-card-header gl-flex gl-items-center gl-justify-between' }, body_options: { class: 'gl-new-card-body gl-p-0' }) do |c| - c.with_header do - Domains (#{@domains.size}) + .gl-new-card-title-wrapper + %h2.gl-new-card-title + = s_('GitLabPages|Domains') + .gl-new-card-count + = sprite_icon('earth', css_class: 'gl-mr-2') + %span.js-admin-labels-count= @domains.size - if can_add_new_domain - = render Pajamas::ButtonComponent.new(variant: :confirm, href: new_project_pages_domain_path(@project)) do - = s_('GitLabPages|New Domain') + .gl-new-card-actions + = render Pajamas::ButtonComponent.new(size: :small, href: new_project_pages_domain_path(@project)) do + = s_('GitLabPages|New domain') - c.with_body do - if @domains.any? %ul.list-group.list-group-flush - @domains.each do |domain| - %li.list-group-item.gl-display-flex.gl-justify-content-space-between.gl-align-items-center.gl-p-0 - .gl-display-flex.gl-align-items-center - - if verification_enabled - - tooltip, status = domain.unverified? ? [s_('GitLabPages|Unverified'), 'failed'] : [s_('GitLabPages|Verified'), 'success'] - .domain-status.ci-status-icon.has-tooltip{ class: "gl-mr-5 ci-status-icon-#{status}", title: tooltip } - = sprite_icon("status_#{status}") - .domain-name - = external_link(domain.url, domain.url) - - if domain.certificate - %div - = gl_badge_tag(s_('GitLabPages|Certificate: %{subject}') % { subject: domain.pages_domain.subject }) - - if domain.expired? - = gl_badge_tag s_('GitLabPages|Expired'), variant: :danger - %div - = link_button_to s_('GitLabPages|Edit'), project_pages_domain_path(@project, domain), class: 'btn-grouped', variant: :confirm, category: :secondary, size: :small - = link_button_to s_('GitLabPages|Remove'), project_pages_domain_path(@project, domain), data: { confirm: s_('GitLabPages|Are you sure?'), 'confirm-btn-variant': 'danger'}, "aria-label": s_("GitLabPages|Remove domain"), method: :delete, class: 'btn-grouped', variant: :danger, size: :small - - if domain.needs_verification? - %li.list-group-item.gl-p-0 - - details_link_start = "".html_safe - - details_link_end = ''.html_safe - = render Pajamas::AlertComponent.new(dismissible: false, - variant: :warning, - show_icon: false) do |c| - - c.with_body do - = s_('GitLabPages|%{domain} is not verified. To learn how to verify ownership, visit your %{link_start}domain details%{link_end}.').html_safe % { domain: domain.domain, - link_start: details_link_start, - link_end: details_link_end } - - - if domain.show_auto_ssl_failed_warning? - %li.list-group-item.gl-p-0 - - details_link_start = "".html_safe - - details_link_end = ''.html_safe - = render Pajamas::AlertComponent.new(dismissible: false, - variant: :warning, - show_icon: false) do |c| - - c.with_body do - = s_("GitLabPages|Something went wrong while obtaining the Let's Encrypt certificate for %{domain}. To retry visit your %{link_start}domain details%{link_end}.").html_safe % { domain: domain.domain, + %li.list-group-item.gl-flex.gl-flex-col.gl-bg-transparent + .gl-flex.gl-justify-between.gl-items-baseline + .gl-flex.gl-gap-3 + - if verification_enabled + - tooltip, status = domain.unverified? ? [s_('GitLabPages|Unverified'), 'failed'] : [s_('GitLabPages|Verified'), 'success'] + .domain-status.ci-status-icon.has-tooltip{ class: "ci-status-icon-#{status}", title: tooltip } + = sprite_icon("status_#{status}") + .domain-name + = external_link(domain.url, domain.url) + - if domain.certificate && domain.pages_domain.subject + %div + = gl_badge_tag(s_('GitLabPages|Certificate: %{subject}') % { subject: domain.pages_domain.subject }) + - if domain.expired? + = gl_badge_tag s_('GitLabPages|Expired'), variant: :danger + .gl-flex.gl-gap-2 + = render Pajamas::ButtonComponent.new(href: project_pages_domain_path(@project, domain), + icon: 'pencil', + category: :tertiary, + button_options: { title: s_('GitLabPages|Edit'), data: { toggle: 'tooltip', container: 'body' } }) + = render Pajamas::ButtonComponent.new(href: project_pages_domain_path(@project, domain), + icon: 'remove', + category: :tertiary, + button_options: { title: s_("GitLabPages|Remove domain"), "aria-label": s_("GitLabPages|Remove domain"), data: { method: :delete, confirm: s_('GitLabPages|Are you sure?'), 'confirm-btn-variant': 'danger', toggle: 'tooltip', container: 'body' } }) + - if domain.needs_verification? + .gl-mt-3 + - details_link_start = "".html_safe + - details_link_end = ''.html_safe + = render Pajamas::AlertComponent.new(dismissible: false, + variant: :warning) do |c| + - c.with_body do + = s_('GitLabPages|%{domain} is not verified. To learn how to verify ownership, visit your %{link_start}domain details%{link_end}.').html_safe % { domain: domain.domain, link_start: details_link_start, link_end: details_link_end } + - if domain.show_auto_ssl_failed_warning? + .gl-mt-3 + - details_link_start = "".html_safe + - details_link_end = ''.html_safe + = render Pajamas::AlertComponent.new(dismissible: false, + variant: :warning) do |c| + - c.with_body do + = s_("GitLabPages|Something went wrong while obtaining the Let's Encrypt certificate for %{domain}. To retry visit your %{link_start}domain details%{link_end}.").html_safe % { domain: domain.domain, + link_start: details_link_start, + link_end: details_link_end } - else - .gl-text-center + .gl-text-secondary.gl-text-center.gl-p-5 = s_("You currently have no custom domains.") diff --git a/app/views/projects/pages/_no_domains.html.haml b/app/views/projects/pages/_no_domains.html.haml index 97c3ad11f1abc4a5df25a0297629ade7f460c50c..706c6cc1499acc8b7907252301e45fe5a6646799 100644 --- a/app/views/projects/pages/_no_domains.html.haml +++ b/app/views/projects/pages/_no_domains.html.haml @@ -1,11 +1,13 @@ - can_add_new_domain = can_create_pages_custom_domains?(current_user, @project) - if can?(current_user, :update_pages, @project) - = render Pajamas::CardComponent.new(card_options: { class: 'gl-mb-5'}, body_options: { class: 'gl-text-center nothing-here-block' }) do |c| + = render Pajamas::CardComponent.new(card_options: { class: 'gl-new-card'}, header_options: { class: 'gl-new-card-header' }, body_options: { class: 'gl-new-card-body gl-text-center nothing-here-block gl-p-5' }) do |c| - c.with_header do - = s_('GitLabPages|Domains') + .gl-new-card-title-wrapper + %h4.gl-new-card-title + = s_('GitLabPages|Domains') - if can_add_new_domain = render Pajamas::ButtonComponent.new(variant: :confirm, href: new_project_pages_domain_path(@project)) do - = s_('GitLabPages|New Domain') + = s_('GitLabPages|New domain') - c.with_body do - = s_("GitLabPages|Support for domains and certificates is disabled. Ask your system's administrator to enable it.") + %span.gl-text-secondary= s_("GitLabPages|Support for domains and certificates is disabled. Ask your GitLab administrator to enable it.") diff --git a/app/views/projects/pages/new.html.haml b/app/views/projects/pages/new.html.haml index 56dfc69d740a416ce30bf60bdcc26e2e74ea0033..a7cea8f6c3abeaffbc58e23020f61987955b67c9 100644 --- a/app/views/projects/pages/new.html.haml +++ b/app/views/projects/pages/new.html.haml @@ -1,5 +1,4 @@ - @breadcrumb_link = project_pages_path(@project) - page_title s_('GitLabPages|Pages') - #js-pages{ data: @pipeline_wizard_data } diff --git a/app/views/projects/pages/show.html.haml b/app/views/projects/pages/show.html.haml index 698ce404be89d22ce44581307d9fe177a7e37e26..54ce5bf099d3acefc5b67a95cb0d08dd29ffd3c4 100644 --- a/app/views/projects/pages/show.html.haml +++ b/app/views/projects/pages/show.html.haml @@ -2,19 +2,13 @@ - unless @project.pages_deployed? = render 'waiting' - - else = render 'header' - - %section - = render 'pages_settings' - - %hr.clearfix - = render 'ssl_limitations_warning' if pages_subdomain(@project).include?(".") - = render 'access' - - if Gitlab.config.pages.external_http || Gitlab.config.pages.external_https - = render 'list' - - else - = render 'no_domains' - = render 'destroy' + = render 'ssl_limitations_warning' if pages_subdomain(@project).include?(".") + = render 'access' + - if Gitlab.config.pages.external_http || Gitlab.config.pages.external_https + = render 'list' + - else + = render 'no_domains' + = render 'destroy' diff --git a/app/views/projects/pages_domains/_certificate.html.haml b/app/views/projects/pages_domains/_certificate.html.haml index 265ce0c95890bd3aa5ec0d71b64fe3ecc5d1d65b..a752ee0593624ab341449526d670c5b2cd4ebbcc 100644 --- a/app/views/projects/pages_domains/_certificate.html.haml +++ b/app/views/projects/pages_domains/_certificate.html.haml @@ -4,11 +4,9 @@ - has_user_defined_certificate = domain_presenter.certificate && domain_presenter.certificate_user_provided? - if auto_ssl_available - .form-group.border-section + .form-group .row - .col-sm-2 - = _('Certificate') - .col-sm-10.js-auto-ssl-toggle-container + .col-12.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 } @@ -26,39 +24,40 @@ - 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) } +.form-group.js-shown-unless-auto-ssl{ class: ("!gl-hidden" if auto_ssl_available_and_enabled) } - if has_user_defined_certificate - .row - .col-sm-10.offset-sm-2 - = render Pajamas::CardComponent.new(body_options: { class: 'gl-display-flex gl-align-items-center gl-justify-content-space-between gl-p-5' }) do |c| + .row.gl-mt-5 + .col-12 + = render Pajamas::CardComponent.new(card_options: { class: 'gl-new-card gl-mt-0' }, header_options: { class: 'gl-new-card-header' }, body_options: { class: 'gl-new-card-body gl-flex gl-items-center gl-justify-between gl-px-5 gl-py-4' }) do |c| - c.with_header do - = _('Certificate') + .gl-new-card-title-wrapper + %h2.gl-new-card-title + = _('Certificate') + .gl-new-card-count + = sprite_icon('partner-verified', css_class: 'gl-mr-2') - c.with_body do %span = domain_presenter.pages_domain.subject || _('missing') - = link_button_to _('Remove'), - clean_certificate_project_pages_domain_path(@project, domain_presenter), - data: { confirm: _('Are you sure?'), 'confirm-btn-variant': 'danger' }, - 'aria-label': s_("GitLabPages|Remove certificate"), - variant: :danger, - size: :small, - method: :delete + = render Pajamas::ButtonComponent.new(href: clean_certificate_project_pages_domain_path(@project, domain_presenter), + icon: 'remove', + category: :tertiary, + button_options: { title: s_('GitLabPages|Remove certificate'), "aria-label": s_('GitLabPages|Remove certificate'), data: { method: :delete, confirm: _('Are you sure?'), 'confirm-btn-variant': 'danger', toggle: 'tooltip', container: 'body', testid: 'remove-certificate' } }) - else - .row - .col-sm-10.offset-sm-2 + .row.gl-mt-5 + .col-12 = 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") + %span.help-inline.gl-text-secondary= _("Upload a certificate for your domain with all intermediates") .row - .col-sm-10.offset-sm-2 + .col-12 = 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") + %span.help-inline.gl-text-secondary= _("Upload a private key for your certificate") = render 'lets_encrypt_callout', auto_ssl_available_and_enabled: auto_ssl_available_and_enabled diff --git a/app/views/projects/pages_domains/_dns.html.haml b/app/views/projects/pages_domains/_dns.html.haml index 360ef01620bd305c92603eacee3a4b3272e4bfe4..6098e7092e3e37f32aac3adf7a050957d71a13e6 100644 --- a/app/views/projects/pages_domains/_dns.html.haml +++ b/app/views/projects/pages_domains/_dns.html.haml @@ -1,31 +1,32 @@ - verification_enabled = Gitlab::CurrentSettings.pages_domain_verification_enabled? - dns_record = "#{domain_presenter.domain} ALIAS #{pages_subdomain(domain_presenter.project)}.#{Settings.pages.host}." -.form-group.border-section +.form-group .row - .col-sm-2 - = _("DNS") - .col-sm-10 + .col-12 + %label{ for: "domain_dns" } + = _("DNS") .input-group = text_field_tag :domain_dns, dns_record , class: "monospace js-select-on-focus form-control", readonly: true .input-group-append = clipboard_button(target: '#domain_dns', category: :primary, size: :medium) - %p.form-text.text-muted + %p.form-text.gl-text-secondary = _("To access this domain create a new DNS record") - if verification_enabled - .form-group.border-section + .form-group .row - .col-sm-2 - = _("Verification status") - .col-sm-10 - .gl-mb-3 - - text, status = domain_presenter.unverified? ? [_('Unverified'), :danger] : [_('Verified'), :success] - = gl_badge_tag text, variant: status - = link_button_to sprite_icon("redo"), verify_project_pages_domain_path(@project, domain_presenter), method: :post, class: 'gl-ml-2 has-tooltip', title: _("Retry verification"), size: :small + .col-12 + .gl-flex.gl-items-baseline.gl-gap-3 + %label{ for: "domain_verification" } + = _("Verification status") + .gl-flex.gl-items-baseline.gl-gap-2 + - text, status = domain_presenter.unverified? ? [_('Unverified'), :danger] : [_('Verified'), :success] + = gl_badge_tag text, variant: status + = link_button_to sprite_icon("redo"), verify_project_pages_domain_path(@project, domain_presenter), method: :post, class: 'gl-ml-2 has-tooltip', title: _("Retry verification"), size: :small .input-group = text_field_tag :domain_verification, domain_presenter.verification_record, class: "monospace js-select-on-focus form-control", readonly: true .input-group-append = clipboard_button(target: '#domain_verification', category: :primary, size: :medium) - %p.form-text.text-muted + %p.form-text.gl-text-secondary - link_to_help = link_to(_('verify ownership'), help_page_path('user/project/pages/custom_domains_ssl_tls_certification/index', anchor: '4-verify-the-domains-ownership')) = _("To %{link_to_help} of your domain, add the above key to a TXT record within your DNS configuration within seven days.").html_safe % { link_to_help: link_to_help } diff --git a/app/views/projects/pages_domains/_form.html.haml b/app/views/projects/pages_domains/_form.html.haml index bca955dcdaebd002f6392ce68eaf9e1b4429e8f3..c351fd5e592c91315b6f10e4b6a9d7cea87f8958 100644 --- a/app/views/projects/pages_domains/_form.html.haml +++ b/app/views/projects/pages_domains/_form.html.haml @@ -4,17 +4,15 @@ - domain_presenter.errors.full_messages.each do |msg| = msg -.form-group.border-section +.form-group .row - if domain_presenter.persisted? - .col-sm-2 + .col-12 = _("Domain") - .col-sm-10 = external_link(domain_presenter.url, domain_presenter.url) - else - .col-sm-2 + .col-12 = f.label :domain, _("Domain") - .col-sm-10 .input-group = f.text_field :domain, required: true, autocomplete: "off", class: "form-control" @@ -24,5 +22,5 @@ - if Gitlab.config.pages.external_https = render 'certificate', f: f - else - .border-section.nothing-here-block + .gl-text-secondary.gl-my-5 = _("Support for custom certificates is disabled. Ask your system's administrator to enable it.") diff --git a/app/views/projects/pages_domains/_helper_text.html.haml b/app/views/projects/pages_domains/_helper_text.html.haml index 4ad341c13948ae5db23ef3daff53896945b8c7bb..70519e85518e47e47b52516660724e01201012aa 100644 --- a/app/views/projects/pages_domains/_helper_text.html.haml +++ b/app/views/projects/pages_domains/_helper_text.html.haml @@ -2,4 +2,4 @@ - docs_link_start = "".html_safe % { docs_link_url: docs_link_url } - docs_link_end = "".html_safe -%p= _("Learn more about adding certificates to your project 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 } +%p.gl-text-secondary= _("%{docs_link_start}How to add certificates to your project?%{docs_link_end}").html_safe % { docs_link_url: docs_link_url, docs_link_start: docs_link_start, docs_link_end: docs_link_end } diff --git a/app/views/projects/pages_domains/_lets_encrypt_callout.html.haml b/app/views/projects/pages_domains/_lets_encrypt_callout.html.haml index 8d4aa861736923e3ccc2f38b50c2461a99d0fca9..4957efa2a8ce3325be4d01c8204d641a87413c0b 100644 --- a/app/views/projects/pages_domains/_lets_encrypt_callout.html.haml +++ b/app/views/projects/pages_domains/_lets_encrypt_callout.html.haml @@ -1,7 +1,7 @@ - if domain_presenter.enabled? - if domain_presenter.auto_ssl_enabled - if domain_presenter.show_auto_ssl_failed_warning? - .form-group.border-section.js-shown-if-auto-ssl{ class: ("d-none" unless auto_ssl_available_and_enabled) } + .form-group.border-section.js-shown-if-auto-ssl{ class: ("!gl-hidden" unless auto_ssl_available_and_enabled) } .row .col-sm-10.offset-sm-2 = render Pajamas::AlertComponent.new(dismissible: false, variant: :warning) do |c| @@ -10,14 +10,14 @@ - c.with_actions do = link_button_to s_('GitLabPagesDomains|Retry'), retry_auto_ssl_project_pages_domain_path(@project, domain_presenter), method: :post, size: :small - elsif !domain_presenter.certificate_gitlab_provided? - .form-group.border-section.js-shown-if-auto-ssl{ class: ("d-none" unless auto_ssl_available_and_enabled) } + .form-group.border-section.js-shown-if-auto-ssl{ class: ("!gl-hidden" unless auto_ssl_available_and_enabled) } .row .col-sm-10.offset-sm-2 = render Pajamas::AlertComponent.new(dismissible: false, show_icon: false) do |c| - c.with_body do = _("GitLab is obtaining a Let's Encrypt SSL certificate for this domain. This process can take some time. Please try again later.") - else - .form-group.border-section.js-shown-if-auto-ssl{ class: ("d-none" unless auto_ssl_available_and_enabled) } + .form-group.border-section.js-shown-if-auto-ssl{ class: ("!gl-hidden" unless auto_ssl_available_and_enabled) } .row .col-sm-10.offset-sm-2 = render Pajamas::AlertComponent.new(dismissible: false, variant: :warning, show_icon: false) do |c| diff --git a/app/views/projects/pages_domains/new.html.haml b/app/views/projects/pages_domains/new.html.haml index c58209f880634a68562cf4cad64b5070e281c5d8..94521b891d1c3cb17328dbc044b2e1a495895f8b 100644 --- a/app/views/projects/pages_domains/new.html.haml +++ b/app/views/projects/pages_domains/new.html.haml @@ -1,11 +1,12 @@ - add_to_breadcrumbs _("Pages"), project_pages_path(@project) -- page_title _('New Pages Domain') -%h1.page-title.gl-font-size-h-display - = _("New Pages Domain") -= render 'projects/pages_domains/helper_text' +- page_title _('New pages domain') +%h1.gl-heading-1 + = _("New pages domain") +.gl-text-secondary + = render 'projects/pages_domains/helper_text' %div = gitlab_ui_form_for [@project, domain_presenter], html: { class: 'fieldset-form' } do |f| = render 'form', { f: f } - .form-actions.gl-display-flex - = f.submit _('Create New Domain'), class: 'gl-mr-3', pajamas_button: true + .gl-flex.gl-gap-3.gl-mt-6 + = f.submit _('Create new domain'), pajamas_button: true = link_button_to _('Cancel'), project_pages_path(@project) diff --git a/app/views/projects/pages_domains/show.html.haml b/app/views/projects/pages_domains/show.html.haml index d34650d3f5a0ccb344dc794fcd7e54b06650ca2a..51b931096952d3fc27ff10c10ebf60ee00cbf79b 100644 --- a/app/views/projects/pages_domains/show.html.haml +++ b/app/views/projects/pages_domains/show.html.haml @@ -8,6 +8,6 @@ %div = gitlab_ui_form_for [@project, domain_presenter], html: { class: 'fieldset-form' } do |f| = render 'form', { f: f } - .form-actions.gl-display-flex - = f.submit _('Save Changes'), class: 'gl-mr-3', pajamas_button: true + .gl-flex.gl-gap-3.gl-mt-6 + = f.submit _('Save changes'), pajamas_button: true = link_button_to _('Cancel'), project_pages_path(@project) diff --git a/doc/user/project/pages/custom_domains_ssl_tls_certification/index.md b/doc/user/project/pages/custom_domains_ssl_tls_certification/index.md index 45d1cbf0a522e10c21bc57859ac04d916cd22b5c..76c6966af075a5359bd206e7b855820b4982f15b 100644 --- a/doc/user/project/pages/custom_domains_ssl_tls_certification/index.md +++ b/doc/user/project/pages/custom_domains_ssl_tls_certification/index.md @@ -162,7 +162,7 @@ After you have added all the DNS records: 1. On the left sidebar, select **Search or go to** and find your project. 1. Select **Deploy > Pages**. -1. Next to the domain name, select **Edit**. +1. Next to the domain name, select **Edit** (**{pencil}**). 1. In **Verification status**, select **Retry verification** (**{retry}**). ![Verify your domain](img/retry_domain_verification_v12_0.png) @@ -263,7 +263,7 @@ meet these requirements. 1. On the left sidebar, select **Search or go to** and find your project. 1. On the left sidebar, select **Deploy > Pages**. - 1. Next to the domain name, select **Edit**. + 1. Next to the domain name, select **Edit** (**{pencil}**). 1. In **Certificate**, turn off the **Automatic certificate management using Let's Encrypt** toggle to add an [SSL/TLS certificate](#adding-an-ssltls-certificate-to-pages). 1. Select **Save changes**. @@ -311,7 +311,7 @@ To edit a custom domain: 1. On the left sidebar, select **Search or go to** and find your project. 1. Select **Deploy > Pages**. -1. Next to the domain name, select **Edit**. +1. Next to the domain name, select **Edit** (**{pencil}**). ## Delete a custom domain @@ -321,7 +321,7 @@ To delete and remove a custom domain: 1. On the left sidebar, select **Search or go to** and find your project. 1. Select **Deploy > Pages**. -1. Next to the domain name, select **Remove**. +1. Next to the domain name, select **Remove domain** (**{remove}**) 1. When prompted, select **Remove domain**. ## Troubleshooting diff --git a/doc/user/project/pages/custom_domains_ssl_tls_certification/lets_encrypt_integration.md b/doc/user/project/pages/custom_domains_ssl_tls_certification/lets_encrypt_integration.md index 94dac9a8961620a8556398e4ed4271c11e021a16..1f9f0df0938610f05205557cfdc50d207926e247 100644 --- a/doc/user/project/pages/custom_domains_ssl_tls_certification/lets_encrypt_integration.md +++ b/doc/user/project/pages/custom_domains_ssl_tls_certification/lets_encrypt_integration.md @@ -47,7 +47,7 @@ Once you've met the requirements, enable Let's Encrypt integration: 1. On the left sidebar, select **Search or go to** and find your project. 1. Select **Deploy > Pages**. -1. Next to the domain name, select **Edit**. +1. Next to the domain name, select **Edit** (**{pencil}**). 1. Turn on the **Automatic certificate management using Let's Encrypt** toggle. ![Enable Let's Encrypt](img/lets_encrypt_integration_v12_1.png) @@ -72,7 +72,7 @@ If you get an error **Something went wrong while obtaining the Let's Encrypt cer 1. On the left sidebar, select **Search or go to** and find your project. 1. Select **Deploy > Pages**. -1. Next to the domain name, select **Edit**. +1. Next to the domain name, select **Edit** (**{pencil}**). 1. In **Verification status**, select **Retry verification** (**{retry}**). 1. If you're still getting the same error: 1. Make sure you have properly set only one `CNAME` or `A` DNS record for your domain. diff --git a/ee/app/views/groups/settings/domain_verification/show.html.haml b/ee/app/views/groups/settings/domain_verification/show.html.haml index 16fc788a7289193c72a9b27234f461a15f14c26d..6c6250430dc289856fab4964a864d578602af07b 100644 --- a/ee/app/views/groups/settings/domain_verification/show.html.haml +++ b/ee/app/views/groups/settings/domain_verification/show.html.haml @@ -7,5 +7,5 @@ %div = gitlab_ui_form_for domain_presenter, url: group_settings_domain_verification_path(@group, domain_presenter), html: { name: "domain-form", class: 'fieldset-form' } do |f| = render 'form', { f: f } - = f.submit _('Save Changes'), class: 'gl-mr-3', pajamas_button: true + = f.submit _('Save changes'), class: 'gl-mr-3', pajamas_button: true = link_button_to _('Cancel'), group_settings_domain_verification_index_path(@group) diff --git a/locale/gitlab.pot b/locale/gitlab.pot index e4ec262b43045802c7a2fd2aff65ed32c0f4a8f1..de47af85f8a3e8a994549cc5b7fba843dffb881b 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -753,6 +753,9 @@ msgid_plural "%{digit} total tests" msgstr[0] "" msgstr[1] "" +msgid "%{docs_link_start}How to add certificates to your project?%{docs_link_end}" +msgstr "" + msgid "%{docs_link_start}Learn about visibility levels.%{docs_link_end}" msgstr "" @@ -15097,9 +15100,6 @@ msgstr "" msgid "Create New Directory" msgstr "" -msgid "Create New Domain" -msgstr "" - msgid "Create Self-Hosted Model" msgstr "" @@ -15244,6 +15244,9 @@ msgstr "" msgid "Create new directory" msgstr "" +msgid "Create new domain" +msgstr "" + msgid "Create new emoji" msgstr "" @@ -23498,7 +23501,7 @@ msgstr "" msgid "GitLabPages|Maximum size (MB)" msgstr "" -msgid "GitLabPages|New Domain" +msgid "GitLabPages|New domain" msgstr "" msgid "GitLabPages|Only project maintainers can remove pages" @@ -23507,9 +23510,6 @@ msgstr "" msgid "GitLabPages|Pages" msgstr "" -msgid "GitLabPages|Remove" -msgstr "" - msgid "GitLabPages|Remove certificate" msgstr "" @@ -23519,7 +23519,7 @@ msgstr "" msgid "GitLabPages|Remove pages" msgstr "" -msgid "GitLabPages|Removing pages will prevent them from being exposed to the outside world." +msgid "GitLabPages|Removing pages will prevent them from being exposed to the public internet." msgstr "" msgid "GitLabPages|Save changes" @@ -23531,7 +23531,7 @@ msgstr "" msgid "GitLabPages|Start over" msgstr "" -msgid "GitLabPages|Support for domains and certificates is disabled. Ask your system's administrator to enable it." +msgid "GitLabPages|Support for domains and certificates is disabled. Ask your GitLab administrator to enable it." msgstr "" msgid "GitLabPages|Unverified" @@ -30285,9 +30285,6 @@ msgstr "" msgid "Learn more about X.509 signed commits" msgstr "" -msgid "Learn more about adding certificates to your project by following the %{docs_link_start}documentation on GitLab Pages%{docs_link_end}." -msgstr "" - msgid "Learn more about custom project templates" msgstr "" @@ -33878,9 +33875,6 @@ msgstr "" msgid "New Milestone" msgstr "" -msgid "New Pages Domain" -msgstr "" - msgid "New Pipeline Schedule" msgstr "" @@ -33991,6 +33985,9 @@ msgstr "" msgid "New name" msgstr "" +msgid "New pages domain" +msgstr "" + msgid "New password" msgstr "" diff --git a/spec/features/projects/pages/user_adds_domain_spec.rb b/spec/features/projects/pages/user_adds_domain_spec.rb index 7f6b33cbce469562217fbfe1fc2b4949902c9a99..b83ec4f1babe1c89b768b78b09927510aa440d48 100644 --- a/spec/features/projects/pages/user_adds_domain_spec.rb +++ b/spec/features/projects/pages/user_adds_domain_spec.rb @@ -23,7 +23,7 @@ visit new_project_pages_domain_path(project) fill_in 'Domain', with: 'my.test.domain.com' - click_button 'Create New Domain' + click_button 'Create new domain' expect(page).to have_content('my.test.domain.com') end @@ -32,7 +32,7 @@ it 'allows to add new domain' do visit project_pages_path(project) - expect(page).to have_content('New Domain') + expect(page).to have_content('New domain') end it_behaves_like 'adds new domain' @@ -57,7 +57,7 @@ it 'does not adds new domain and renders error message' do fill_in 'Domain', with: 'my.test.domain.com' - click_button 'Create New Domain' + click_button 'Create new domain' expect(page).to have_content('Domain has already been taken') end @@ -80,7 +80,7 @@ fill_in 'Certificate (PEM)', with: certificate_pem fill_in 'Key (PEM)', with: certificate_key - click_button 'Create New Domain' + click_button 'Create new domain' expect(page).to have_content('my.test.domain.com') end @@ -96,7 +96,7 @@ fill_in 'Certificate (PEM)', with: certificate_pem fill_in 'Key (PEM)', with: certificate_key - click_button 'Create New Domain' + click_button 'Create new domain' expect(page).to have_content('my.test.domain.com') end @@ -107,7 +107,7 @@ visit new_project_pages_domain_path(project) fill_in 'Domain', with: 'my.test.domain.com' - click_button 'Create New Domain' + click_button 'Create new domain' expect(page).to have_content('Domain has already been taken') end @@ -153,7 +153,7 @@ visit project_pages_path(project) within('#content-body') { click_link 'Edit' } - click_button 'Save Changes' + click_button 'Save changes' expect(page).to have_content('Domain was updated') end @@ -169,7 +169,7 @@ within('#content-body') { click_link 'Edit' } fill_in 'Certificate (PEM)', with: 'invalid data' - click_button 'Save Changes' + click_button 'Save changes' expect(page).to have_content('Certificate must be a valid PEM certificate') expect(page).to have_content("Key doesn't match the certificate") @@ -181,7 +181,7 @@ within('#content-body') { click_link 'Edit' } - accept_gl_confirm(button_text: 'Remove certificate') { click_link 'Remove' } + accept_gl_confirm(button_text: 'Remove certificate') { find_by_testid('remove-certificate').click } expect(page).to have_field('Certificate (PEM)', with: '') expect(page).to have_field('Key (PEM)', with: '') diff --git a/spec/features/projects/pages/user_edits_lets_encrypt_settings_spec.rb b/spec/features/projects/pages/user_edits_lets_encrypt_settings_spec.rb index 16e64ade665167add30a1dd14c3e5747764c9fd9..5d0b8862c202f0c9641c01393dac0e2d7ba587fe 100644 --- a/spec/features/projects/pages/user_edits_lets_encrypt_settings_spec.rb +++ b/spec/features/projects/pages/user_edits_lets_encrypt_settings_spec.rb @@ -31,7 +31,7 @@ fill_in 'Domain', with: 'my.test.domain.com' expect(find("#pages_domain_auto_ssl_enabled", visible: false).value).to eq 'true' - click_button 'Create New Domain' + click_button 'Create new domain' expect(page).to have_content('my.test.domain.com') expect(PagesDomain.find_by_domain('my.test.domain.com').auto_ssl_enabled).to eq(true) @@ -57,7 +57,7 @@ expect(page).not_to have_selector '.gl-card-header', text: 'Certificate' expect(page).not_to have_text domain.subject - click_on 'Save Changes' + click_on 'Save changes' expect(domain.reload.auto_ssl_enabled).to eq true end @@ -81,7 +81,7 @@ expect(page).to have_field 'Certificate (PEM)', type: 'textarea' expect(page).to have_field 'Key (PEM)', type: 'textarea' - click_on 'Save Changes' + click_on 'Save changes' expect(domain.reload.auto_ssl_enabled).to eq false end @@ -140,7 +140,7 @@ expect(page).to have_selector '.gl-card-header', text: 'Certificate' expect(page).to have_text domain.subject - within('.gl-card') { click_on 'Remove' } + within('.gl-card') { find_by_testid('remove-certificate').click } accept_gl_confirm(button_text: 'Remove certificate') expect(page).to have_field 'Certificate (PEM)', with: '' expect(page).to have_field 'Key (PEM)', with: '' diff --git a/spec/frontend/pages/projects/pages_domains/form_spec.js b/spec/frontend/pages/projects/pages_domains/form_spec.js index e437121acd20f5ea572de7c388d7017944cb2d0c..0e3292df320e3cd9c1f34c6c13d8d274ca38ec27 100644 --- a/spec/frontend/pages/projects/pages_domains/form_spec.js +++ b/spec/frontend/pages/projects/pages_domains/form_spec.js @@ -6,7 +6,7 @@ const SSL_TOGGLE_CLASS = 'js-enable-ssl-gl-toggle'; const SSL_TOGGLE_INPUT_CLASS = 'js-project-feature-toggle-input'; const SHOW_IF_AUTO_SSL_CLASS = 'js-shown-if-auto-ssl'; const SHOW_UNLESS_AUTO_SSL_CLASS = 'js-shown-unless-auto-ssl'; -const D_NONE_CLASS = 'd-none'; +const D_NONE_CLASS = '!gl-hidden'; describe('Page domains form', () => { let toggle;