Class: EasyAdmin::Dashboard
- Inherits:
-
Object
- Object
- EasyAdmin::Dashboard
- Defined in:
- lib/easy_admin/dashboard.rb
Class Attribute Summary collapse
-
.cards_config ⇒ Object
Returns the value of attribute cards_config.
-
.dashboard_name ⇒ Object
Returns the value of attribute dashboard_name.
-
.grid_columns ⇒ Object
Returns the value of attribute grid_columns.
Class Method Summary collapse
- .card(name, type, **options) ⇒ Object
- .chart_card(name, **options) ⇒ Object
-
.columns ⇒ Object
Grid configuration.
- .columns_class ⇒ Object
- .custom_card(name, **options) ⇒ Object
-
.dashboard(name, **options, &block) ⇒ Object
DSL methods for dashboard configuration.
- .find_card(name) ⇒ Object
- .inherited(subclass) ⇒ Object
-
.method_missing(method_name, *args, &block) ⇒ Object
Data methods - override in subclasses.
- .metric_card(name, **options) ⇒ Object
- .respond_to_missing?(method_name, include_private = false) ⇒ Boolean
- .route_key ⇒ Object
- .table_card(name, **options) ⇒ Object
-
.title ⇒ Object
Helper methods.
- .visible_cards ⇒ Object
Instance Method Summary collapse
- #card_data(card_name) ⇒ Object
-
#initialize(params = {}) ⇒ Dashboard
constructor
Instance methods for data fetching.
Constructor Details
#initialize(params = {}) ⇒ Dashboard
Instance methods for data fetching
93 94 95 |
# File 'lib/easy_admin/dashboard.rb', line 93 def initialize(params = {}) @params = params end |
Class Attribute Details
.cards_config ⇒ Object
Returns the value of attribute cards_config.
4 5 6 |
# File 'lib/easy_admin/dashboard.rb', line 4 def cards_config @cards_config end |
.dashboard_name ⇒ Object
Returns the value of attribute dashboard_name.
4 5 6 |
# File 'lib/easy_admin/dashboard.rb', line 4 def dashboard_name @dashboard_name end |
.grid_columns ⇒ Object
Returns the value of attribute grid_columns.
4 5 6 |
# File 'lib/easy_admin/dashboard.rb', line 4 def grid_columns @grid_columns end |
Class Method Details
.card(name, type, **options) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/easy_admin/dashboard.rb', line 37 def card(name, type, **) self.cards_config += [{ name: name, type: type, title: [:title] || name.to_s.humanize, cols: [:cols] || 1, rows: [:rows] || 1, refresh_every: [:refresh_every], partial: [:partial], data_method: [:data_method] || "#{name}_data", visible: .fetch(:visible, true), ** }] end |
.chart_card(name, **options) ⇒ Object
25 26 27 |
# File 'lib/easy_admin/dashboard.rb', line 25 def chart_card(name, **) card(name, :chart, **) end |
.columns ⇒ Object
Grid configuration
70 71 72 |
# File 'lib/easy_admin/dashboard.rb', line 70 def columns grid_columns end |
.columns_class ⇒ Object
74 75 76 |
# File 'lib/easy_admin/dashboard.rb', line 74 def columns_class "cols-#{grid_columns}" end |
.custom_card(name, **options) ⇒ Object
33 34 35 |
# File 'lib/easy_admin/dashboard.rb', line 33 def custom_card(name, **) card(name, :custom, **) end |
.dashboard(name, **options, &block) ⇒ Object
DSL methods for dashboard configuration
14 15 16 17 18 19 |
# File 'lib/easy_admin/dashboard.rb', line 14 def dashboard(name, **, &block) self.dashboard_name = name self.grid_columns = [:columns] || 4 instance_eval(&block) if block_given? EasyAdmin::DashboardRegistry.register(self) end |
.find_card(name) ⇒ Object
65 66 67 |
# File 'lib/easy_admin/dashboard.rb', line 65 def find_card(name) cards_config.find { |card| card[:name].to_s == name.to_s } end |
.inherited(subclass) ⇒ Object
6 7 8 9 10 11 |
# File 'lib/easy_admin/dashboard.rb', line 6 def inherited(subclass) subclass.cards_config = [] subclass.grid_columns = 4 super # Register will happen after class is fully defined end |
.method_missing(method_name, *args, &block) ⇒ Object
Data methods - override in subclasses
79 80 81 82 83 84 85 |
# File 'lib/easy_admin/dashboard.rb', line 79 def method_missing(method_name, *args, &block) if method_name.to_s.end_with?('_data') {} else super end end |
.metric_card(name, **options) ⇒ Object
21 22 23 |
# File 'lib/easy_admin/dashboard.rb', line 21 def metric_card(name, **) card(name, :metric, **) end |
.respond_to_missing?(method_name, include_private = false) ⇒ Boolean
87 88 89 |
# File 'lib/easy_admin/dashboard.rb', line 87 def respond_to_missing?(method_name, include_private = false) method_name.to_s.end_with?('_data') || super end |
.route_key ⇒ Object
57 58 59 |
# File 'lib/easy_admin/dashboard.rb', line 57 def route_key dashboard_name.to_s.underscore end |
.table_card(name, **options) ⇒ Object
29 30 31 |
# File 'lib/easy_admin/dashboard.rb', line 29 def table_card(name, **) card(name, :table, **) end |
.title ⇒ Object
Helper methods
53 54 55 |
# File 'lib/easy_admin/dashboard.rb', line 53 def title dashboard_name.to_s.humanize end |
.visible_cards ⇒ Object
61 62 63 |
# File 'lib/easy_admin/dashboard.rb', line 61 def visible_cards cards_config.select { |card| card[:visible] } end |
Instance Method Details
#card_data(card_name) ⇒ Object
97 98 99 100 101 102 103 104 |
# File 'lib/easy_admin/dashboard.rb', line 97 def card_data(card_name) method_name = "#{card_name}_data" if self.class.respond_to?(method_name) self.class.send(method_name, @params) else {} end end |