Class: Layouts::CrudComponent

Inherits:
ViewComponent::Base
  • Object
show all
Defined in:
app/components/layouts/crud_component.rb

Instance Method Summary collapse

Constructor Details

#initialize(title, description: nil, count: nil, icon: nil, icon_class: nil, toggle_text: nil, options: {}, count_options: {}, body_options: {}, form_options: {}, toggle_options: {}, footer_options: {}) ⇒ CrudComponent

Returns a new instance of CrudComponent.

Parameters:

  • title (String)
  • description (String) (defaults to: nil)
  • count (Number) (defaults to: nil)
  • icon (String) (defaults to: nil)
  • icon_class (String) (defaults to: nil)
  • toggle_text (String) (defaults to: nil)
  • options (Hash) (defaults to: {})
  • count_options (Hash) (defaults to: {})
  • body_options (Hash) (defaults to: {})
  • form_options (Hash) (defaults to: {})
  • toggle_options (Hash) (defaults to: {})
  • footer_options (Hash) (defaults to: {})


17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'app/components/layouts/crud_component.rb', line 17

def initialize(
  title, description: nil, count: nil, icon: nil, icon_class: nil,
  toggle_text: nil, options: {}, count_options: {}, body_options: {},
  form_options: {}, toggle_options: {}, footer_options: {}
)
  @title = title
  @description = description
  @count = count
  @icon = icon
  @icon_class = icon_class
  @toggle_text = toggle_text
  @options = options
  @count_options = count_options
  @body_options = body_options
  @form_options = form_options
  @toggle_options = toggle_options
  @footer_options = footer_options
end

Instance Method Details

#body_options_attrsObject



43
44
45
46
47
48
49
# File 'app/components/layouts/crud_component.rb', line 43

def body_options_attrs
  default_testid = 'crud-body'
  default_classes = [
    ('gl-rounded-b-base' unless footer)
  ]
  @body_options.merge(default_attrs(@body_options, default_testid, default_classes))
end


66
67
68
69
# File 'app/components/layouts/crud_component.rb', line 66

def footer_options_attrs
  default_testid = 'crud-footer'
  @footer_options.merge(default_attrs(@footer_options, default_testid))
end

#form_options_attrsObject



57
58
59
60
61
62
63
64
# File 'app/components/layouts/crud_component.rb', line 57

def form_options_attrs
  default_testid = 'crud-form'
  default_classes = [
    ('js-toggle-content' if @toggle_text),
    ('gl-hidden' if @toggle_text && !@form_options[:form_errors])
  ]
  @form_options.merge(default_attrs(@form_options, default_testid, default_classes))
end

#toggle_button_options_attrsObject



51
52
53
54
55
# File 'app/components/layouts/crud_component.rb', line 51

def toggle_button_options_attrs
  default_testid = 'crud-action-toggle'
  default_classes = ['js-toggle-button js-toggle-content']
  @toggle_options.merge(default_attrs(@toggle_options, default_testid, default_classes))
end