Class: Admin::MembersController::Controls

Inherits:
Object
  • Object
show all
Defined in:
lib/super/test_support/copy_app_templates/controllers/members_controller.rb

Instance Method Summary collapse

Instance Method Details

#display_schema(action:) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/super/test_support/copy_app_templates/controllers/members_controller.rb', line 43

def display_schema(action:)
  Super::Schema.new(Super::Display::SchemaTypes.new) do |fields, type|
    fields[:name] = type.dynamic(&:itself)
    fields[:rank] = type.dynamic(&:itself)
    fields[:position] = type.dynamic(&:itself)
    fields[:ship] = type.dynamic { |ship| "#{ship.name} (Ship ##{ship.id})" }
    fields[:created_at] = type.dynamic(&:iso8601)
    if action.show?
      fields[:updated_at] = type.dynamic(&:iso8601)
    end
  end
end

#form_schema(action:) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/super/test_support/copy_app_templates/controllers/members_controller.rb', line 56

def form_schema(action:)
  Super::Schema.new(Super::Form::SchemaTypes.new) do |fields, type|
    fields[:name] = type.generic("form_field_text")
    fields[:rank] = type.generic("form_field_select", collection: Member.ranks.keys)
    fields[:position] = type.generic("form_field_text")
    fields[:ship_id] = type.generic(
      "form_field_select",
      collection: Ship.all.map { |s| ["#{s.name} (Ship ##{s.id})", s.id] },
    )

    fields[:favorite_things_attributes] = type.has_many(:favorite_things) do
      fields[:name] = type.generic("form_field_text")
      fields[:_destroy] = type._destroy
    end
  end
end

#modelObject



14
15
16
# File 'lib/super/test_support/copy_app_templates/controllers/members_controller.rb', line 14

def model
  Member
end

#permitted_params(params, action:) ⇒ Object



39
40
41
# File 'lib/super/test_support/copy_app_templates/controllers/members_controller.rb', line 39

def permitted_params(params, action:)
  params.require(:member).permit(:name, :rank, :position, :ship_id, favorite_things_attributes: [:id, :name, :_destroy])
end

#scope(action:) ⇒ Object



18
19
20
# File 'lib/super/test_support/copy_app_templates/controllers/members_controller.rb', line 18

def scope(action:)
  Member.all
end

#showObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/super/test_support/copy_app_templates/controllers/members_controller.rb', line 22

def show
  Super::Action.new(
    steps: [
      :load_resource,
    ],
    page: Super::Layout.new(
      mains: [
        Super::Panel.new(
          Super::Partial.new("resource_header"),
          Super::Partial.new("show")
        ),
        Super::Partial.new("favorite_things")
      ]
    )
  )
end

#titleObject



10
11
12
# File 'lib/super/test_support/copy_app_templates/controllers/members_controller.rb', line 10

def title
  Member.name.pluralize
end