diff options
Diffstat (limited to 'app/views/layouts')
23 files changed, 105 insertions, 109 deletions
diff --git a/app/views/layouts/_flash.html.haml b/app/views/layouts/_flash.html.haml index a0b57f8dd52..35fefe40d39 100644 --- a/app/views/layouts/_flash.html.haml +++ b/app/views/layouts/_flash.html.haml @@ -1,6 +1,6 @@ -# We currently only support `alert`, `notice`, `success`, 'toast' - icons = {'alert' => 'error', 'notice' => 'information-o', 'success' => 'check-circle'}; -.flash-container.flash-container-page.sticky +.flash-container.flash-container-page.sticky{ data: { qa_selector: 'flash_container' } } - flash.each do |key, value| - if key == 'toast' && value .js-toast-message{ data: { message: value } } diff --git a/app/views/layouts/_google_tag_manager_body.html.haml b/app/views/layouts/_google_tag_manager_body.html.haml new file mode 100644 index 00000000000..d62e52dc91b --- /dev/null +++ b/app/views/layouts/_google_tag_manager_body.html.haml @@ -0,0 +1,4 @@ +- return unless google_tag_manager_enabled? + +<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=#{extra_config.google_tag_manager_id}" +height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> diff --git a/app/views/layouts/_google_tag_manager_head.html.haml b/app/views/layouts/_google_tag_manager_head.html.haml new file mode 100644 index 00000000000..ab03f1e7670 --- /dev/null +++ b/app/views/layouts/_google_tag_manager_head.html.haml @@ -0,0 +1,8 @@ +- if google_tag_manager_enabled? + = javascript_tag nonce: true do + :plain + (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': + new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], + j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= + 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); + })(window,document,'script','dataLayer','#{extra_config.google_tag_manager_id}'); diff --git a/app/views/layouts/_head.html.haml b/app/views/layouts/_head.html.haml index 9d0c3ad5787..1d12b30c58c 100644 --- a/app/views/layouts/_head.html.haml +++ b/app/views/layouts/_head.html.haml @@ -1,17 +1,4 @@ - page_description brand_title unless page_description - --# Needs a redirect on the client side since it's using an anchor to distinguish --# between sign in and registration. We need to inline the JS to not render --# anything from this page beforehand. --# Part of an experiment to build a new sign up flow. Will be removed again with --# https://gitlab.com/gitlab-org/growth/engineering/issues/64 -- if experiment_enabled?(:signup_flow) && current_path?("sessions#new") - = javascript_tag nonce: true do - :plain - if (window.location.hash === '#register-pane') { - window.location.replace("/users/sign_up") - } - - site_name = "GitLab" %head{ prefix: "og: http://ogp.me/ns#" } %meta{ charset: "utf-8" } diff --git a/app/views/layouts/_mailer.html.haml b/app/views/layouts/_mailer.html.haml index 24b8138078d..74d05be7f95 100644 --- a/app/views/layouts/_mailer.html.haml +++ b/app/views/layouts/_mailer.html.haml @@ -34,13 +34,7 @@ = render_if_exists 'layouts/mailer/additional_text' - %tr.footer - %td - %img{ alt: "GitLab", height: "33", width: "90", src: image_url('mailers/gitlab_footer_logo.gif') } - %div - - manage_notifications_link = link_to(_("Manage all notifications"), profile_notifications_url, class: 'mng-notif-link') - - help_link = link_to(_("Help"), help_url, class: 'help-link') - = _("You're receiving this email because of your account on %{host}. %{manage_notifications_link} · %{help_link}").html_safe % { host: Gitlab.config.gitlab.host, manage_notifications_link: manage_notifications_link, help_link: help_link } + = yield :footer = yield :additional_footer %tr diff --git a/app/views/layouts/_page.html.haml b/app/views/layouts/_page.html.haml index 9b925369660..f6fc49393d8 100644 --- a/app/views/layouts/_page.html.haml +++ b/app/views/layouts/_page.html.haml @@ -4,12 +4,13 @@ .content-wrapper{ class: "#{@content_wrapper_class}" } .mobile-overlay = yield :group_invite_members_banner - .alert-wrapper + .alert-wrapper.gl-force-block-formatting-context = render 'shared/outdated_browser' = render_if_exists "layouts/header/licensed_user_count_threshold" = render_if_exists "layouts/header/token_expiry_notification" = render "layouts/broadcast" = render "layouts/header/read_only_banner" + = render "layouts/header/registration_enabled_callout" = render "layouts/nav/classification_level_banner" = yield :flash_message = render "shared/ping_consent" @@ -20,6 +21,6 @@ - unless @hide_breadcrumbs = render "layouts/nav/breadcrumbs" %div{ class: "#{(container_class unless @no_container)} #{@content_class}" } - .content{ id: "content-body" } + .content{ id: "content-body", **page_itemtype } = render "layouts/flash", extra_flash_class: 'limit-container-width' = yield diff --git a/app/views/layouts/_search.html.haml b/app/views/layouts/_search.html.haml index 0c6932e59a9..c902c687378 100644 --- a/app/views/layouts/_search.html.haml +++ b/app/views/layouts/_search.html.haml @@ -6,14 +6,13 @@ = search_field_tag 'search', nil, placeholder: _('Search or jump to…'), class: 'search-input dropdown-menu-toggle no-outline js-search-dashboard-options', spellcheck: false, - tabindex: '1', autocomplete: 'off', data: { issues_path: issues_dashboard_path, mr_path: merge_requests_dashboard_path, qa_selector: 'search_term_field' }, aria: { label: _('Search or jump to…') } %button.hidden.js-dropdown-search-toggle{ type: 'button', data: { toggle: 'dropdown' } } - .dropdown-menu.dropdown-select.js-dashboard-search-options + .dropdown-menu.dropdown-select{ data: { testid: 'dashboard-search-options' } } = dropdown_content do %ul %li.dropdown-menu-empty-item diff --git a/app/views/layouts/_startup_js.html.haml b/app/views/layouts/_startup_js.html.haml index f312e00c394..9c488e4f40d 100644 --- a/app/views/layouts/_startup_js.html.haml +++ b/app/views/layouts/_startup_js.html.haml @@ -25,7 +25,7 @@ }; gl.startup_graphql_calls = gl.startup_graphql_calls.map(call => ({ - operationName: call.query.match(/^query (.+)\(/)[1], + ...call, fetchCall: fetch(url, { ...opts, credentials: 'same-origin', diff --git a/app/views/layouts/devise_experimental_onboarding_issues.html.haml b/app/views/layouts/devise_experimental_onboarding_issues.html.haml index ec9867f9e1f..f768fba84ca 100644 --- a/app/views/layouts/devise_experimental_onboarding_issues.html.haml +++ b/app/views/layouts/devise_experimental_onboarding_issues.html.haml @@ -1,6 +1,6 @@ !!! 5 %html.devise-layout-html.navless{ class: system_message_class } - - add_page_specific_style 'page_bundles/experimental_separate_sign_up' + - add_page_specific_style 'page_bundles/signup' = render "layouts/head" %body.ui-indigo.signup-page{ class: "#{client_class_list}", data: { page: body_data_page, qa_selector: 'signup_page' } } = render "layouts/header/logo_with_title" diff --git a/app/views/layouts/devise_experimental_separate_sign_up_flow.html.haml b/app/views/layouts/devise_experimental_separate_sign_up_flow.html.haml deleted file mode 100644 index 6be62645768..00000000000 --- a/app/views/layouts/devise_experimental_separate_sign_up_flow.html.haml +++ /dev/null @@ -1,20 +0,0 @@ -!!! 5 -%html.devise-layout-html.navless{ class: system_message_class } - - add_page_specific_style 'page_bundles/experimental_separate_sign_up' - = render "layouts/head" - %body.ui-indigo.signup-page{ class: "#{client_class_list}", data: { page: body_data_page, qa_selector: 'signup_page' } } - = render "layouts/header/logo_with_title" - = render "layouts/init_client_detection_flags" - .page-wrap - .container.signup-box-container.navless-container - = render "layouts/broadcast" - .content - = render "layouts/flash" - = yield - %hr.footer-fixed - .footer-container - .container - .footer-links - = link_to _("Help"), help_path - = link_to _("About GitLab"), "https://about.gitlab.com/" - = footer_message diff --git a/app/views/layouts/experiment_mailer.html.haml b/app/views/layouts/experiment_mailer.html.haml deleted file mode 100644 index 5a342c400d6..00000000000 --- a/app/views/layouts/experiment_mailer.html.haml +++ /dev/null @@ -1,48 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -%html{ lang: "en" } - %head - %meta{ content: "text/html; charset=UTF-8", "http-equiv" => "Content-Type" }/ - %meta{ content: "width=device-width, initial-scale=1", name: "viewport" }/ - %meta{ content: "IE=edge", "http-equiv" => "X-UA-Compatible" }/ - %title= message.subject - - -# Avoid premailer processing of client-specific styles (@media tag not supported) - -# We need to inline the contents here because mail clients (e.g. iOS Mail, Outlook) - -# do not support linked stylesheets. - %style{ type: 'text/css', 'data-premailer': 'ignore' } - = asset_to_string('mailer_client_specific.css').html_safe - - = stylesheet_link_tag 'mailer.css' - %body - %table#body{ border: "0", cellpadding: "0", cellspacing: "0" } - %tbody - %tr.line - %td - %tr.header - %td - = html_header_message - = header_logo - %tr - %td - %table.wrapper{ border: "0", cellpadding: "0", cellspacing: "0" } - %tbody - %tr - %td.wrapper-cell{ style: "padding: 0" } - %table.content{ border: "0", cellpadding: "0", cellspacing: "0" } - %tbody - = yield - - = render_if_exists 'layouts/mailer/additional_text' - - %tr.footer - %td{ style: "padding: 24px 0" } - %img{ alt: "GitLab", height: "33", width: "90", src: image_url('mailers/gitlab_footer_logo.gif') } - %p{ style: "color: #949ba5; max-width: 640px; margin: 0 auto; text-align: left; font-size: 12px;" } - GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way - %br - Development, Security, and Ops teams collaborate. - - = yield :additional_footer - %tr - %td.footer-message - = html_footer_message diff --git a/app/views/layouts/header/_current_user_dropdown.html.haml b/app/views/layouts/header/_current_user_dropdown.html.haml index 4c6bfc0b33c..addf2375222 100644 --- a/app/views/layouts/header/_current_user_dropdown.html.haml +++ b/app/views/layouts/header/_current_user_dropdown.html.haml @@ -2,13 +2,16 @@ %ul %li.current-user - .user-name.bold + .user-name.gl-font-weight-bold = current_user.name + - if current_user&.status && user_status_set_to_busy?(current_user.status) + %span.gl-font-weight-normal.gl-text-gray-500= s_("UserProfile|(Busy)") = current_user.to_reference - if current_user.status .user-status.d-flex.align-items-center.gl-mt-2.has-tooltip{ title: current_user.status.message_html, data: { html: 'true', placement: 'bottom' } } - %span.user-status-emoji.d-flex.align-items-center - = emoji_icon current_user.status.emoji + - if show_status_emoji?(current_user.status) + .user-status-emoji.d-flex.align-items-center + = emoji_icon current_user.status.emoji %span.user-status-message.str-truncated = current_user.status.message_html.html_safe %li.divider diff --git a/app/views/layouts/header/_default.html.haml b/app/views/layouts/header/_default.html.haml index f6dc808aa55..794d1589172 100644 --- a/app/views/layouts/header/_default.html.haml +++ b/app/views/layouts/header/_default.html.haml @@ -1,4 +1,5 @@ - has_impersonation_link = header_link?(:admin_impersonation) +- user_status_data = user_status_properties(current_user) %header.navbar.navbar-gitlab.navbar-expand-sm.js-navbar{ data: { qa_selector: 'navbar' } } %a.sr-only.gl-accessibility{ href: "#content-body", tabindex: "1" } Skip to content @@ -103,4 +104,4 @@ #whats-new-app{ data: { storage_key: whats_new_storage_key } } - if can?(current_user, :update_user_status, current_user) - .js-set-status-modal-wrapper{ data: { current_emoji: current_user.status.present? ? current_user.status.emoji : '', current_message: current_user.status.present? ? current_user.status.message : '' } } + .js-set-status-modal-wrapper{ data: user_status_data } diff --git a/app/views/layouts/header/_registration_enabled_callout.html.haml b/app/views/layouts/header/_registration_enabled_callout.html.haml new file mode 100644 index 00000000000..1b1804edcc7 --- /dev/null +++ b/app/views/layouts/header/_registration_enabled_callout.html.haml @@ -0,0 +1,15 @@ +- return unless show_registration_enabled_user_callout? + +%div{ class: [container_class, @content_class, 'gl-pt-5!'] } + .gl-alert.gl-alert-warning.js-registration-enabled-callout{ role: 'alert', data: { feature_id: UserCalloutsHelper::REGISTRATION_ENABLED_CALLOUT, dismiss_endpoint: user_callouts_path } } + = sprite_icon('warning', size: 16, css_class: 'gl-alert-icon') + %button.gl-alert-dismiss.js-close{ type: 'button', aria: { label: _('Close') }, data: { testid: 'close-registration-enabled-callout' } } + = sprite_icon('close', size: 16) + .gl-alert-title + = _('Open registration is enabled on your instance.') + .gl-alert-body + = html_escape(_('%{anchorOpen}Learn more%{anchorClose} about how you can customize / disable registration on your instance.')) % { anchorOpen: "<a href=\"#{help_page_path('user/admin_area/settings/sign_up_restrictions')}\">".html_safe, anchorClose: '</a>'.html_safe } + .gl-alert-actions + = link_to general_admin_application_settings_path(anchor: 'js-signup-settings'), class: 'btn gl-alert-action btn-info btn-md gl-button' do + %span.gl-button-text + = _('View setting') diff --git a/app/views/layouts/mailer.html.haml b/app/views/layouts/mailer.html.haml index 28dcbce7183..c2eb6b68024 100644 --- a/app/views/layouts/mailer.html.haml +++ b/app/views/layouts/mailer.html.haml @@ -1 +1,10 @@ += content_for :footer do + %tr.footer + %td + %img.footer-logo{ alt: "GitLab", src: image_url('mailers/gitlab_footer_logo.gif') } + %div + - manage_notifications_link = link_to(_("Manage all notifications"), profile_notifications_url, class: 'mng-notif-link') + - help_link = link_to(_("Help"), help_url, class: 'help-link') + = _("You're receiving this email because of your account on %{host}. %{manage_notifications_link} · %{help_link}").html_safe % { host: Gitlab.config.gitlab.host, manage_notifications_link: manage_notifications_link, help_link: help_link } + = render 'layouts/mailer' diff --git a/app/views/layouts/nav/_breadcrumbs.html.haml b/app/views/layouts/nav/_breadcrumbs.html.haml index 547d005a93e..f0cdb3d1a51 100644 --- a/app/views/layouts/nav/_breadcrumbs.html.haml +++ b/app/views/layouts/nav/_breadcrumbs.html.haml @@ -1,5 +1,6 @@ - container = @no_breadcrumb_container ? 'container-fluid' : container_class - hide_top_links = @hide_top_links || false +- push_to_schema_breadcrumb(@breadcrumb_title, breadcrumb_title_link) %nav.breadcrumbs{ role: "navigation", class: [container, @content_class] } .breadcrumbs-container{ class: ("border-bottom-0" if @no_breadcrumb_border) } @@ -17,4 +18,7 @@ = render "layouts/nav/breadcrumbs/collapsed_dropdown", location: :after %li %h2.breadcrumbs-sub-title= link_to @breadcrumb_title, breadcrumb_title_link + %script{ type:'application/ld+json' } + :plain + #{schema_breadcrumb_json} = yield :header_content diff --git a/app/views/layouts/nav/_dashboard.html.haml b/app/views/layouts/nav/_dashboard.html.haml index abaadc89a9e..7cbef6b00b1 100644 --- a/app/views/layouts/nav/_dashboard.html.haml +++ b/app/views/layouts/nav/_dashboard.html.haml @@ -2,7 +2,7 @@ -# https://gitlab.com/gitlab-org/gitlab-foss/issues/49713 for more information. %ul.list-unstyled.navbar-sub-nav - if dashboard_nav_link?(:projects) - = nav_link(path: ['root#index', 'projects#trending', 'projects#starred', 'dashboard/projects#index'], html_options: { id: 'nav-projects-dropdown', class: "home dropdown header-projects qa-projects-dropdown", data: { track_label: "projects_dropdown", track_event: "click_dropdown", track_value: "" } }) do + = nav_link(path: ['root#index', 'projects#trending', 'projects#starred', 'dashboard/projects#index'], html_options: { id: 'nav-projects-dropdown', class: "home dropdown header-projects qa-projects-dropdown", data: { track_label: "projects_dropdown", track_event: "click_dropdown" } }) do %button{ type: 'button', data: { toggle: "dropdown" } } = _('Projects') = sprite_icon('chevron-down', css_class: 'caret-down') @@ -10,7 +10,7 @@ = render "layouts/nav/projects_dropdown/show" - if dashboard_nav_link?(:groups) - = nav_link(controller: ['dashboard/groups', 'explore/groups'], html_options: { id: 'nav-groups-dropdown', class: "d-none d-md-block home dropdown header-groups qa-groups-dropdown", data: { track_label: "groups_dropdown", track_event: "click_dropdown", track_value: "" } }) do + = nav_link(controller: ['dashboard/groups', 'explore/groups'], html_options: { id: 'nav-groups-dropdown', class: "d-none d-md-block home dropdown header-groups qa-groups-dropdown", data: { track_label: "groups_dropdown", track_event: "click_dropdown" } }) do %button{ type: 'button', data: { toggle: "dropdown" } } = _('Groups') = sprite_icon('chevron-down', css_class: 'caret-down') @@ -18,7 +18,7 @@ = render "layouts/nav/groups_dropdown/show" - if any_dashboard_nav_link?([:groups, :milestones, :activity, :snippets]) - %li.header-more.dropdown{ **tracking_attrs('main_navigation', 'click_more_link', 'navigation') } + = nav_link(html_options: { id: 'nav-more-dropdown', class: "header-more dropdown", data: { track_label: "more_dropdown", track_event: "click_more_link" } }) do %a{ href: "#", data: { toggle: "dropdown", qa_selector: 'more_dropdown' } } = _('More') = sprite_icon('chevron-down', css_class: 'caret-down') @@ -71,11 +71,11 @@ - if Feature.enabled?(:user_mode_in_session) - if header_link?(:admin_mode) - = nav_link(controller: 'admin/sessions', html_options: { class: "d-none d-lg-block d-xl-block"}) do + = nav_link(controller: 'admin/sessions', html_options: { class: "d-none d-lg-block"}) do = link_to destroy_admin_session_path, method: :post, title: _('Leave Admin Mode'), aria: { label: _('Leave Admin Mode') }, data: { toggle: 'tooltip', placement: 'bottom', container: 'body' } do = sprite_icon('lock-open', size: 18) - elsif current_user.admin? - = nav_link(controller: 'admin/sessions', html_options: { class: "d-none d-lg-block d-xl-block"}) do + = nav_link(controller: 'admin/sessions', html_options: { class: "d-none d-lg-block"}) do = link_to new_admin_session_path, title: _('Enter Admin Mode'), aria: { label: _('Enter Admin Mode') }, data: { toggle: 'tooltip', placement: 'bottom', container: 'body' } do = sprite_icon('lock', size: 18) diff --git a/app/views/layouts/nav/sidebar/_admin.html.haml b/app/views/layouts/nav/sidebar/_admin.html.haml index 0da4d4f7ddd..1e0e9628c89 100644 --- a/app/views/layouts/nav/sidebar/_admin.html.haml +++ b/app/views/layouts/nav/sidebar/_admin.html.haml @@ -69,7 +69,7 @@ = link_to admin_cohorts_path, title: _('Cohorts') do %span = _('Cohorts') - - if Feature.enabled?(:instance_statistics) + - if Feature.enabled?(:instance_statistics, default_enabled: true) = nav_link(controller: :instance_statistics) do = link_to admin_instance_statistics_path, title: _('Instance Statistics') do %span diff --git a/app/views/layouts/nav/sidebar/_project.html.haml b/app/views/layouts/nav/sidebar/_project.html.haml index d3d71f91176..5ff774d5d9c 100644 --- a/app/views/layouts/nav/sidebar/_project.html.haml +++ b/app/views/layouts/nav/sidebar/_project.html.haml @@ -167,7 +167,7 @@ = render_if_exists "layouts/nav/requirements_link", project: @project - if project_nav_tab? :pipelines - = nav_link(controller: [:pipelines, :builds, :jobs, :pipeline_schedules, :artifacts, :test_cases], unless: -> { current_path?('projects/pipelines#charts') }) do + = nav_link(controller: [:pipelines, :builds, :jobs, :pipeline_schedules, :artifacts, :test_cases, :pipeline_editor], unless: -> { current_path?('projects/pipelines#charts') }) do = link_to project_pipelines_path(@project), class: 'shortcuts-pipelines qa-link-pipelines rspec-link-pipelines', data: { qa_selector: 'ci_cd_link' } do .nav-icon-container = sprite_icon('rocket') @@ -175,7 +175,7 @@ = _('CI / CD') %ul.sidebar-sub-level-items - = nav_link(controller: [:pipelines, :builds, :jobs, :pipeline_schedules, :artifacts, :test_cases], html_options: { class: "fly-out-top-item" }) do + = nav_link(controller: [:pipelines, :builds, :jobs, :pipeline_schedules, :artifacts, :test_cases, :pipeline_editor], html_options: { class: "fly-out-top-item" }) do = link_to project_pipelines_path(@project) do %strong.fly-out-top-item-name = _('CI / CD') @@ -186,6 +186,12 @@ %span = _('Pipelines') + - if can_view_pipeline_editor?(@project) + = nav_link(controller: :pipeline_editor, action: :show) do + = link_to project_ci_pipeline_editor_path(@project), title: s_('Pipelines|Editor') do + %span + = s_('Pipelines|Editor') + - if project_nav_tab? :builds = nav_link(controller: :jobs) do = link_to project_jobs_path(@project), title: _('Jobs'), class: 'shortcuts-builds' do @@ -262,6 +268,12 @@ %span = _('Serverless') + - if project_nav_tab? :terraform + = nav_link(controller: :terraform) do + = link_to project_terraform_index_path(@project), title: _('Terraform') do + %span + = _('Terraform') + - if project_nav_tab? :clusters - show_cluster_hint = show_gke_cluster_integration_callout?(@project) = nav_link(controller: [:clusters, :user, :gcp]) do @@ -272,7 +284,6 @@ .feature-highlight.js-feature-highlight{ disabled: true, data: { trigger: 'manual', container: 'body', - toggle: 'popover', placement: 'right', highlight: UserCalloutsHelper::GKE_CLUSTER_INTEGRATION, highlight_priority: UserCallout.feature_names[:GKE_CLUSTER_INTEGRATION], @@ -369,6 +380,8 @@ %strong.fly-out-top-item-name = _('Members') + = render_if_exists 'projects/invite_members_side_nav_link', project: @project + - if project_nav_tab? :settings = nav_link(path: sidebar_settings_paths) do = link_to edit_project_path(@project) do @@ -412,7 +425,7 @@ = link_to project_settings_ci_cd_path(@project), title: _('CI / CD') do %span = _('CI / CD') - - if !@project.archived? && settings_operations_available? + - if settings_operations_available? = nav_link(controller: [:operations]) do = link_to project_settings_operations_path(@project), title: _('Operations'), data: { qa_selector: 'operations_settings_link' } do = _('Operations') diff --git a/app/views/layouts/project.html.haml b/app/views/layouts/project.html.haml index a0c82380023..62e5431e290 100644 --- a/app/views/layouts/project.html.haml +++ b/app/views/layouts/project.html.haml @@ -2,6 +2,7 @@ - page_description @project.description_html unless page_description - header_title project_title(@project) unless header_title - nav "project" +- page_itemtype 'http://schema.org/SoftwareSourceCode' - display_subscription_banner! - display_namespace_storage_limit_alert! - @left_sidebar = true diff --git a/app/views/layouts/unknown_user_mailer.html.haml b/app/views/layouts/unknown_user_mailer.html.haml new file mode 100644 index 00000000000..2eb7b400604 --- /dev/null +++ b/app/views/layouts/unknown_user_mailer.html.haml @@ -0,0 +1,8 @@ += content_for :footer do + %tr.footer + %td.gitlab-info + %img.footer-logo{ alt: "GitLab", src: image_url('mailers/gitlab_footer_logo.gif') } + %p.gitlab-info-text + = html_escape(_("GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way%{br_tag}Development, Security, and Ops teams collaborate")) % { br_tag: '<br/>'.html_safe } + += render 'layouts/mailer' diff --git a/app/views/layouts/unknown_user_mailer.text.erb b/app/views/layouts/unknown_user_mailer.text.erb new file mode 100644 index 00000000000..f3d8f13b7bf --- /dev/null +++ b/app/views/layouts/unknown_user_mailer.text.erb @@ -0,0 +1,9 @@ +<%= text_header_message %> + +<%= yield -%> + +-- <%# signature marker %> +<%= _("GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way Development, Security, and Ops teams collaborate") %> +<%= render_if_exists 'layouts/mailer/additional_text' %> + +<%= text_footer_message %> diff --git a/app/views/layouts/welcome.html.haml b/app/views/layouts/welcome.html.haml new file mode 100644 index 00000000000..48921e9ff89 --- /dev/null +++ b/app/views/layouts/welcome.html.haml @@ -0,0 +1,8 @@ +!!! 5 +%html.subscriptions-layout-html{ lang: 'en' } + = render 'layouts/head' + %body.ui-indigo.d-flex.vh-100.gl-bg-gray-10 + = render "layouts/header/logo_with_title" + = render "layouts/broadcast" + .container.d-flex.flex-grow-1.m-0 + = yield |