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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
# frozen_string_literal: true
module AppearancesHelper
include MarkupHelper
include Gitlab::Utils::StrongMemoize
def appearance_pwa_icon_path_scaled(width)
return unless Appearance::ALLOWED_PWA_ICON_SCALER_WIDTHS.include?(width)
append_root_path((current_appearance&.pwa_icon_path_scaled(width) || "/-/pwa-icons/logo-#{width}.png"))
end
def appearance_maskable_logo
append_root_path('/-/pwa-icons/maskable-logo.png')
end
def append_root_path(path)
Gitlab::Utils.append_path(Gitlab.config.gitlab.relative_url_root, path)
end
def brand_title
current_appearance&.title.presence || default_brand_title
end
def appearance_pwa_name
current_appearance&.pwa_name.presence || _('GitLab')
end
def appearance_pwa_short_name
current_appearance&.pwa_short_name.presence || _('GitLab')
end
def appearance_pwa_description
current_appearance&.pwa_description.presence ||
_("The complete DevOps platform. " \
"One application with endless possibilities. " \
"Organizations rely on GitLab’s source code management, " \
"CI/CD, security, and more to deliver software rapidly.")
end
def default_brand_title
# This resides in a separate method so that EE can easily redefine it.
_('GitLab Community Edition')
end
def brand_image
image_tag(brand_image_path, alt: brand_title, class: 'gl-w-10')
end
def brand_image_path
return current_appearance.logo_path if current_appearance&.logo?
image_path('logo.svg')
end
def brand_text
markdown_field(current_appearance, :description)
end
def brand_new_project_guidelines
markdown_field(current_appearance, :new_project_guidelines)
end
def brand_profile_image_guidelines
markdown_field(current_appearance, :profile_image_guidelines)
end
def current_appearance
strong_memoize(:current_appearance) do
Appearance.current
end
end
def brand_header_logo(options = {})
add_gitlab_white_text = options[:add_gitlab_white_text] || false
add_gitlab_black_text = options[:add_gitlab_black_text] || false
if current_appearance&.header_logo?
image_tag current_appearance.header_logo_path, class: 'brand-header-logo'
elsif add_gitlab_white_text
render partial: 'shared/logo_with_white_text', formats: :svg
elsif add_gitlab_black_text
render partial: 'shared/logo_with_black_text', formats: :svg
else
render partial: 'shared/logo', formats: :svg
end
end
def header_message
return unless current_appearance&.show_header?
class_names = []
class_names << 'with-performance-bar' if performance_bar_enabled?
render_message(:header_message, class_names: class_names)
end
def footer_message
return unless current_appearance&.show_footer?
render_message(:footer_message)
end
private
def render_message(field_sym, class_names: [], style: message_style)
class_names << field_sym.to_s.dasherize
content_tag :div, class: class_names, style: style do
markdown_field(current_appearance, field_sym)
end
end
def message_style
style = []
style << "background-color: #{current_appearance.message_background_color};"
style << "color: #{current_appearance.message_font_color}"
style.join
end
end
AppearancesHelper.prepend_mod
|