avo 2.14.2 → 2.14.3.pre.1.branding
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of avo might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Gemfile.lock +3 -1
- data/app/assets/stylesheets/avo.css +1 -34
- data/app/assets/stylesheets/css/fields/progress.css +3 -3
- data/app/assets/stylesheets/css/pagination.css +0 -4
- data/app/assets/stylesheets/css/search.css +1 -1
- data/app/assets/stylesheets/css/sidebar.css +1 -1
- data/app/assets/stylesheets/css/tags.css +7 -0
- data/app/assets/svgs/failed_to_load.svg +4 -5
- data/app/assets/svgs/grid-empty-state.svg +10 -11
- data/app/assets/svgs/table-empty-state.svg +11 -12
- data/app/components/avo/actions_component.html.erb +2 -2
- data/app/components/avo/actions_component.rb +1 -1
- data/app/components/avo/button_component.rb +2 -2
- data/app/components/avo/fields/boolean_field/edit_component.html.erb +1 -1
- data/app/components/avo/fields/common/progress_bar_component.html.erb +1 -1
- data/app/components/avo/fields/common/progress_bar_component.rb +11 -1
- data/app/components/avo/fields/common/single_file_viewer_component.html.erb +1 -1
- data/app/components/avo/fields/progress_bar_field/index_component.html.erb +1 -1
- data/app/components/avo/fields/progress_bar_field/show_component.html.erb +1 -1
- data/app/components/avo/fields/tags_field/edit_component.html.erb +1 -1
- data/app/components/avo/index/resource_grid_component.html.erb +2 -1
- data/app/components/avo/index/resource_table_component.html.erb +2 -1
- data/app/components/avo/profile_item_component.html.erb +1 -1
- data/app/components/avo/sidebar_component.html.erb +1 -1
- data/app/components/avo/sidebar_profile_component.html.erb +1 -1
- data/app/helpers/avo/resources_helper.rb +20 -16
- data/app/javascript/avo.js +0 -1
- data/app/javascript/js/controllers/fields/trix_field_controller.js +4 -3
- data/app/javascript/js/controllers/item_select_all_controller.js +16 -9
- data/app/javascript/js/controllers/item_selector_controller.js +1 -1
- data/app/views/avo/actions/show.html.erb +2 -2
- data/app/views/avo/associations/new.html.erb +2 -2
- data/app/views/avo/base/_multiple_select_filter.html.erb +1 -1
- data/app/views/avo/base/_text_filter.html.erb +1 -1
- data/app/views/avo/partials/_branding.html.erb +5 -0
- data/app/views/avo/partials/_header.html.erb +1 -1
- data/app/views/avo/partials/_logo.html.erb +2 -2
- data/app/views/avo/private/_links_and_buttons.html.erb +1 -1
- data/app/views/avo/private/design.html.erb +3 -3
- data/app/views/layouts/avo/application.html.erb +1 -0
- data/config/master.key +1 -0
- data/lib/avo/configuration/branding.rb +70 -0
- data/lib/avo/configuration.rb +5 -0
- data/lib/avo/dashboards/chartkick_card.rb +1 -1
- data/lib/avo/licensing/pro_license.rb +1 -0
- data/lib/avo/version.rb +1 -1
- data/lib/generators/avo/templates/initializer/avo.tt +15 -0
- data/public/avo-assets/avo.css +298 -284
- data/public/avo-assets/avo.js +2 -2
- data/public/avo-assets/avo.js.map +2 -2
- metadata +6 -11
- data/app/components/avo/button_component.html.erb +0 -1
- data/app/helpers/avo/actions_helper.rb +0 -4
- data/app/helpers/avo/attachments_helper.rb +0 -4
- data/app/views/kaminari/_first_page.html.erb +0 -3
- data/app/views/kaminari/_last_page.html.erb +0 -3
- data/app/views/kaminari/_next_page.html.erb +0 -9
- data/app/views/kaminari/_page.html.erb +0 -12
- data/app/views/kaminari/_prev_page.html.erb +0 -9
@@ -12,7 +12,7 @@
|
|
12
12
|
'data-multiple-select-filter-target': 'selector'
|
13
13
|
%>
|
14
14
|
<div class="flex justify-end">
|
15
|
-
<%= a_button class: 'mt-4', color: :
|
15
|
+
<%= a_button class: 'mt-4', color: :primary, size: :xs, data: { action: "multiple-select-filter#changeFilter" } do %>
|
16
16
|
Filter by <%=filter.name %>
|
17
17
|
<% end %>
|
18
18
|
</div>
|
@@ -13,7 +13,7 @@
|
|
13
13
|
'data-action': 'keypress->text-filter#tryToSubmit'
|
14
14
|
%>
|
15
15
|
<div class="flex justify-end">
|
16
|
-
<%= a_button class: 'mt-4', color: :
|
16
|
+
<%= a_button class: 'mt-4', color: :primary, data: { action: "text-filter#changeFilter" }, size: :xs do %>
|
17
17
|
<%= filter.button_label || "Filter by #{filter.name}" %>
|
18
18
|
<% end %>
|
19
19
|
</div>
|
@@ -1 +1 @@
|
|
1
|
-
<%= link_to Avo.configuration.app_name, '/', class: 'text-
|
1
|
+
<%= link_to Avo.configuration.app_name, '/', class: 'text-primary-500 font-semibold', target: :_blank %>
|
@@ -1,4 +1,4 @@
|
|
1
1
|
<%= link_to root_path, class: 'logo-placeholder h-full w-full flex justify-start' do %>
|
2
|
-
<%= image_tag
|
3
|
-
<%= image_tag
|
2
|
+
<%= image_tag Avo.configuration.branding.logo, class: 'hidden sm:block object-contain', title: 'Avo' %>
|
3
|
+
<%= image_tag Avo.configuration.branding.logomark, class: 'sm:hidden object-contain', title: 'Avo' %>
|
4
4
|
<% end %>
|
@@ -2,7 +2,7 @@
|
|
2
2
|
entities = [:button, :link]
|
3
3
|
sizes = [:xl, :lg, :md, :sm, :xs].reverse
|
4
4
|
styles = [:primary, :outline, :text]
|
5
|
-
colors = [:primary, :gray, :red, :orange, :green]
|
5
|
+
colors = [:primary, :blue, :gray, :red, :orange, :green]
|
6
6
|
states = [:regular, :hover, :disabled, :active]
|
7
7
|
%>
|
8
8
|
<div class="px-6 space-y-4">
|
@@ -6,15 +6,15 @@
|
|
6
6
|
<% end %>
|
7
7
|
|
8
8
|
<%= a_link('/admin', icon: 'arrow-left', style: :outline, is_link: true) do %>
|
9
|
-
|
9
|
+
Outline
|
10
10
|
<% end %>
|
11
11
|
|
12
12
|
<%= a_link('/admin', icon: 'arrow-left', style: :outline, color: :red, is_link: true) do %>
|
13
13
|
Red
|
14
14
|
<% end %>
|
15
15
|
|
16
|
-
<%= a_link('/admin', icon: 'arrow-left', style: :
|
17
|
-
|
16
|
+
<%= a_link('/admin', icon: 'arrow-left', style: :text, color: :orange, is_link: true) do %>
|
17
|
+
Text
|
18
18
|
<% end %>
|
19
19
|
<% end %>
|
20
20
|
|
@@ -7,6 +7,7 @@
|
|
7
7
|
<%= csp_meta_tag %>
|
8
8
|
<%= render partial: 'avo/partials/javascript' %>
|
9
9
|
<%= render partial: 'avo/partials/head' %>
|
10
|
+
<%= render partial: 'avo/partials/branding' %>
|
10
11
|
<% if Avo::PACKED %>
|
11
12
|
<%= javascript_include_tag "/avo-assets/avo", "data-turbo-track": "reload", defer: true %>
|
12
13
|
<%= stylesheet_link_tag "/avo-assets/avo", "data-turbo-track": "reload", defer: true %>
|
data/config/master.key
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2aeb23d82b909d9c6b5abb62f7058c2a
|
@@ -0,0 +1,70 @@
|
|
1
|
+
class Avo::Configuration::Branding
|
2
|
+
def initialize(colors: nil, chart_colors: nil, logo: nil, logomark: nil)
|
3
|
+
@colors = colors
|
4
|
+
@chart_colors = chart_colors
|
5
|
+
@logo = logo
|
6
|
+
@logomark = logomark
|
7
|
+
|
8
|
+
@default_colors = {
|
9
|
+
background: "#F6F6F7",
|
10
|
+
100 => "206 231 248",
|
11
|
+
400 => "57 158 229",
|
12
|
+
500 => "8 134 222",
|
13
|
+
600 => "6 107 178"
|
14
|
+
}
|
15
|
+
@default_chart_colors = ["#0B8AE2", "#34C683", "#2AB1EE", "#34C6A8"]
|
16
|
+
@default_logo = "/avo-assets/logo.png"
|
17
|
+
@default_logomark = "/avo-assets/logomark.png"
|
18
|
+
end
|
19
|
+
|
20
|
+
def css_colors
|
21
|
+
rgb_colors.map do |color, value|
|
22
|
+
if color == :background
|
23
|
+
"--color-application-#{color}: #{value};"
|
24
|
+
else
|
25
|
+
"--color-primary-#{color}: #{value};"
|
26
|
+
end
|
27
|
+
end.join("\n")
|
28
|
+
end
|
29
|
+
|
30
|
+
def logo
|
31
|
+
return @default_logo if Avo::App.license.lacks_with_trial(:branding)
|
32
|
+
|
33
|
+
@logo || @default_logo
|
34
|
+
end
|
35
|
+
|
36
|
+
def logomark
|
37
|
+
return @default_logomark if Avo::App.license.lacks_with_trial(:branding)
|
38
|
+
|
39
|
+
@logomark || @default_logomark
|
40
|
+
end
|
41
|
+
|
42
|
+
def chart_colors
|
43
|
+
return @default_chart_colors if Avo::App.license.lacks_with_trial(:branding)
|
44
|
+
|
45
|
+
@chart_colors || @default_chart_colors
|
46
|
+
end
|
47
|
+
|
48
|
+
private
|
49
|
+
|
50
|
+
def colors
|
51
|
+
return @default_colors if Avo::App.license.lacks_with_trial(:branding)
|
52
|
+
|
53
|
+
@default_colors.merge(@colors) || @default_colors
|
54
|
+
end
|
55
|
+
|
56
|
+
def rgb_colors
|
57
|
+
colors.map do |key, value|
|
58
|
+
rgb_value = is_hex?(value) ? hex_to_rgb(value) : value
|
59
|
+
[key, rgb_value]
|
60
|
+
end.to_h
|
61
|
+
end
|
62
|
+
|
63
|
+
def is_hex?(value)
|
64
|
+
value.include? "#"
|
65
|
+
end
|
66
|
+
|
67
|
+
def hex_to_rgb(value)
|
68
|
+
value.to_s.match(/^#(..)(..)(..)$/).captures.map(&:hex).join(" ")
|
69
|
+
end
|
70
|
+
end
|
data/lib/avo/configuration.rb
CHANGED
@@ -35,6 +35,7 @@ module Avo
|
|
35
35
|
attr_accessor :main_menu
|
36
36
|
attr_accessor :profile_menu
|
37
37
|
attr_accessor :tabs_style
|
38
|
+
attr_writer :branding
|
38
39
|
|
39
40
|
def initialize
|
40
41
|
@root_path = "/avo"
|
@@ -123,6 +124,10 @@ module Avo
|
|
123
124
|
def feature_enabled?(feature)
|
124
125
|
!@disabled_features.map(&:to_sym).include?(feature.to_sym)
|
125
126
|
end
|
127
|
+
|
128
|
+
def branding
|
129
|
+
Avo::Configuration::Branding.new(**@branding || {})
|
130
|
+
end
|
126
131
|
end
|
127
132
|
|
128
133
|
def self.configuration
|
@@ -29,7 +29,7 @@ module Avo
|
|
29
29
|
default = {
|
30
30
|
# figure our the available height for the chart
|
31
31
|
height: "#{(rows * card_height) - card_heading}px",
|
32
|
-
colors:
|
32
|
+
colors: ::Avo.configuration.branding.chart_colors,
|
33
33
|
library: {
|
34
34
|
discrete: false,
|
35
35
|
points: false,
|
data/lib/avo/version.rb
CHANGED
@@ -53,6 +53,21 @@ Avo.configure do |config|
|
|
53
53
|
# config.disabled_features = []
|
54
54
|
# config.resource_controls = :right
|
55
55
|
# config.tabs_style = :tabs # can be :tabs or :pills
|
56
|
+
# config.buttons_on_form_footers = true
|
57
|
+
|
58
|
+
## == Branding ==
|
59
|
+
# config.branding = {
|
60
|
+
# colors: {
|
61
|
+
# background: "248 246 242",
|
62
|
+
# 100 => "#CEE7F8",
|
63
|
+
# 400 => "#399EE5",
|
64
|
+
# 500 => "#0886DE",
|
65
|
+
# 600 => "#066BB2",
|
66
|
+
# },
|
67
|
+
# chart_colors: ["#0B8AE2", "#34C683", "#2AB1EE", "#34C6A8"],
|
68
|
+
# logo: "/avo-assets/logo.png"
|
69
|
+
# logomark: "/avo-assets/logomark.png",
|
70
|
+
# }
|
56
71
|
|
57
72
|
|
58
73
|
## == Breadcrumbs ==
|