Module: Tramway::Admin
- Defined in:
- lib/tramway/admin.rb,
lib/tramway/admin/engine.rb,
lib/tramway/admin/version.rb,
app/jobs/tramway/admin/application_job.rb,
lib/tramway/admin/record_routes_helper.rb,
app/helpers/tramway/admin/inputs_helper.rb,
app/helpers/tramway/admin/navbar_helper.rb,
app/helpers/tramway/admin/records_helper.rb,
app/helpers/tramway/admin/application_helper.rb,
app/mailers/tramway/admin/application_mailer.rb,
app/helpers/tramway/admin/russian_cases_helper.rb,
app/controllers/tramway/admin/records_controller.rb,
app/controllers/tramway/admin/welcome_controller.rb,
app/controllers/tramway/admin/singletons_controller.rb,
app/controllers/tramway/admin/application_controller.rb
Defined Under Namespace
Modules: AdditionalButtonsBuilder, ApplicationHelper, FocusGeneratorHelper, InputsHelper, NavbarHelper, RecordRoutesHelper, RecordsHelper, RussianCasesHelper, SingletonHelper
Classes: ApplicationController, ApplicationJob, ApplicationMailer, Engine, RecordsController, SingletonsController, WelcomeController
Constant Summary
collapse
- VERSION =
'1.9'
Class Method Summary
collapse
Class Method Details
69
70
71
|
# File 'lib/tramway/admin.rb', line 69
def additional_buttons(view: nil, record: nil, project: nil)
@additional_buttons&.dig record, view
end
|
.available_models ⇒ Object
34
35
36
37
38
39
40
41
|
# File 'lib/tramway/admin.rb', line 34
def available_models
if @available_models
@available_models.values.flatten
else
error = Tramway::Error.new(plugin: :admin, method: :available_models, message: ('List of available_models is empty. You should add some of them using `::Tramway::Admin.set_available_models(*list_of_classes, project: :your_project_name)` in `config/initializers/tramway.rb`'))
raise error.message
end
end
|
.available_models_for(project) ⇒ Object
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/tramway/admin.rb', line 15
def available_models_for(project)
if project_is_engine?(project)
get_models_by_key(@available_models, project) + engine_class(project).dependencies.map do |dependency|
if @available_models[dependency].present?
@available_models[dependency]
else
error = Tramway::Error.new(
plugin: :admin,
method: :available_models_for,
message: "There is no dependency `#{dependency}` for plugin: #{project}. Please, check file `tramway-#{project}/lib/tramway/#{project}/#{project}.rb`"
)
raise error
end
end.flatten.compact
else
get_models_by_key(@available_models, project)
end
end
|
.customized_admin_navbar ⇒ Object
73
74
75
|
# File 'lib/tramway/admin.rb', line 73
def customized_admin_navbar
@customized_admin_navbar
end
|
.engine_class(project) ⇒ Object
77
78
79
80
|
# File 'lib/tramway/admin.rb', line 77
def engine_class(project)
class_name = "::Tramway::#{project.to_s.camelize}"
class_name.classify.safe_constantize
end
|
.get_models_by_key(checked_models, project) ⇒ Object
86
87
88
|
# File 'lib/tramway/admin.rb', line 86
def get_models_by_key(checked_models, project)
checked_models && checked_models != [] && checked_models[project.to_sym] || []
end
|
.project_is_engine?(project) ⇒ Boolean
82
83
84
|
# File 'lib/tramway/admin.rb', line 82
def project_is_engine?(project)
engine_class(project)
end
|
63
64
65
66
67
|
# File 'lib/tramway/admin.rb', line 63
def set_additional_buttons(buttons, project:)
@additional_buttons ||= {}
@additional_buttons[project] ||= {}
@additional_buttons[project].merge! buttons
end
|
.set_available_models(*models, project:) ⇒ Object
9
10
11
12
13
|
# File 'lib/tramway/admin.rb', line 9
def set_available_models(*models, project:)
@available_models ||= {}
@available_models[project] ||= []
@available_models[project] += models
end
|
.set_singleton_models(*models, project:) ⇒ Object
43
44
45
46
47
|
# File 'lib/tramway/admin.rb', line 43
def set_singleton_models(*models, project:)
@singleton_models ||= {}
@singleton_models[project] ||= []
@singleton_models[project] += models
end
|
.singleton_models ⇒ Object
59
60
61
|
# File 'lib/tramway/admin.rb', line 59
def singleton_models
@singleton_models&.values&.flatten || []
end
|
.singleton_models_for(project) ⇒ Object
49
50
51
52
53
54
55
56
57
|
# File 'lib/tramway/admin.rb', line 49
def singleton_models_for(project)
if project_is_engine?(project)
get_models_by_key(@singleton_models, project) + engine_class(project).dependencies.map do |dependency|
@singleton_models[dependency]
end.flatten.compact
else
get_models_by_key(@singleton_models, project)
end
end
|