Class: Adminsite::AdminConfig::Base

Inherits:
Object
  • Object
show all
Defined in:
app/models/adminsite/admin_config/base.rb

Constant Summary collapse

@@admin_configs =
{}

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#resource_classObject (readonly)

Returns the value of attribute resource_class.



47
48
49
# File 'app/models/adminsite/admin_config/base.rb', line 47

def resource_class
  @resource_class
end

Class Method Details

.admin_config_of_class(class_name, admin_config_class = nil, current_adminsite_admin_user) ⇒ Object



25
26
27
28
29
30
31
32
# File 'app/models/adminsite/admin_config/base.rb', line 25

def admin_config_of_class(class_name, admin_config_class = nil, current_adminsite_admin_user )
  admin_config_class ||= @@admin_configs[class_name.to_s]
  if admin_config_class.blank?
    admin_config_class = admin_default_config_class(class_name.to_s)
    register_admin_configs(class_name.to_s, admin_config_class)
  end
  eval(admin_config_class).new(class_name, current_adminsite_admin_user)
end

.admin_default_config_class(class_name) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'app/models/adminsite/admin_config/base.rb', line 9

def admin_default_config_class(class_name)
  config_class = 'Adminsite::AdminConfig::Base'
  return config_class if class_name.blank?

  config_class_name = class_name.to_s.gsub('::','')
  begin
    # Test if "Adminsite::AdminConfig::#{config_class_name.gsub('::','')}" is defined
    config_class = "Adminsite::#{config_class_name}AdminConfig"
    eval(config_class)
  rescue NameError, LoadError => e
    puts("AdminConfig for #{config_class_name} not found. Use fallback: #{config_class}")
    Rails.logger.warn("AdminConfig for #{config_class_name} not found. Use fallback: #{config_class}")
  end
  config_class
end

.all_registered_admin_configsObject



42
43
44
# File 'app/models/adminsite/admin_config/base.rb', line 42

def all_registered_admin_configs
  @@admin_configs
end

.register_admin_configs(class_name, admin_config, override = true) ⇒ Object



34
35
36
37
38
39
40
# File 'app/models/adminsite/admin_config/base.rb', line 34

def register_admin_configs(class_name, admin_config, override = true)
  if override
    @@admin_configs[class_name] = admin_config
  else
    @@admin_configs[class_name] ||= admin_config
  end
end

Instance Method Details

#actions_indexObject



79
80
81
# File 'app/models/adminsite/admin_config/base.rb', line 79

def actions_index
  [ :new ]
end

#actions_placementObject



83
84
85
# File 'app/models/adminsite/admin_config/base.rb', line 83

def actions_placement
  :right
end

#attributes_edit(resource = nil) ⇒ Object



61
62
63
# File 'app/models/adminsite/admin_config/base.rb', line 61

def attributes_edit(resource = nil)
  @attributes_edit ||= (column_names - ignore_columns)
end

#attributes_indexObject



57
58
59
# File 'app/models/adminsite/admin_config/base.rb', line 57

def attributes_index
  column_names
end

#attributes_searchObject



69
70
71
# File 'app/models/adminsite/admin_config/base.rb', line 69

def attributes_search
  attributes_index
end

#attributes_show(resource = nil) ⇒ Object



65
66
67
# File 'app/models/adminsite/admin_config/base.rb', line 65

def attributes_show(resource = nil)
  attributes_edit
end

#column_namesObject



53
54
55
# File 'app/models/adminsite/admin_config/base.rb', line 53

def column_names
  @column_names ||= resource_class.column_names
end

#default_member_actions(resource = nil) ⇒ Object



73
74
75
76
77
# File 'app/models/adminsite/admin_config/base.rb', line 73

def default_member_actions(resource = nil)
  [ :show,
    :edit,
    :destroy]
end

#ignore_columnsObject



49
50
51
# File 'app/models/adminsite/admin_config/base.rb', line 49

def ignore_columns
  ['created_at', 'updated_at', 'id']
end

#label_attribute(resource = nil) ⇒ Object



87
88
89
# File 'app/models/adminsite/admin_config/base.rb', line 87

def label_attribute(resource = nil)
  :title
end

#scopesObject



91
92
93
# File 'app/models/adminsite/admin_config/base.rb', line 91

def scopes
  [:all]
end