simpleadmin 1.4.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.gitignore +0 -3
- data/.rspec +0 -2
- data/.rubocop.yml +10 -58
- data/.travis.yml +1 -11
- data/Gemfile +3 -17
- data/Gemfile.lock +14 -150
- data/LICENSE.txt +21 -0
- data/README.md +35 -19
- data/Rakefile +2 -4
- data/bin/console +4 -3
- data/lib/simpleadmin.rb +104 -2
- data/lib/simpleadmin/adapters/base.rb +50 -0
- data/lib/simpleadmin/adapters/postgres.rb +132 -0
- data/lib/simpleadmin/config.rb +83 -0
- data/lib/simpleadmin/database_connector.rb +35 -0
- data/lib/simpleadmin/decorators/fields/base.rb +34 -0
- data/lib/simpleadmin/decorators/fields/image.rb +19 -0
- data/lib/simpleadmin/decorators/fields_decorator.rb +44 -0
- data/lib/simpleadmin/version.rb +3 -1
- data/simpleadmin.gemspec +18 -14
- metadata +29 -35
- data/CODE_OF_CONDUCT.md +0 -74
- data/app/controllers/simple_admin/base_controller.rb +0 -15
- data/app/controllers/simple_admin/entities_controller.rb +0 -26
- data/app/controllers/simple_admin/entity_field_type_actions_controller.rb +0 -13
- data/app/controllers/simple_admin/resources_controller.rb +0 -80
- data/app/controllers/simple_admin/versions_controller.rb +0 -9
- data/app/services/entity_field_types/status_field.rb +0 -8
- data/app/services/entity_service.rb +0 -33
- data/app/services/resource_search_service.rb +0 -22
- data/app/services/resource_service.rb +0 -43
- data/lib/rails/application.rb +0 -13
- data/lib/simpleadmin/application.rb +0 -11
- data/lib/simpleadmin/engine.rb +0 -6
- data/lib/simpleadmin/routes.rb +0 -17
@@ -1,33 +0,0 @@
|
|
1
|
-
class EntityService
|
2
|
-
def index_action
|
3
|
-
models = []
|
4
|
-
|
5
|
-
ApplicationRecord.descendants.each do |model|
|
6
|
-
name = model.name
|
7
|
-
columns = model.columns.map do |column|
|
8
|
-
{
|
9
|
-
name: column.name,
|
10
|
-
type: column.sql_type.parameterize.underscore
|
11
|
-
}
|
12
|
-
end
|
13
|
-
|
14
|
-
models.push(
|
15
|
-
name: name,
|
16
|
-
columns: columns
|
17
|
-
)
|
18
|
-
end
|
19
|
-
|
20
|
-
{
|
21
|
-
models: models
|
22
|
-
}
|
23
|
-
end
|
24
|
-
|
25
|
-
def show_action(resource_klass)
|
26
|
-
{
|
27
|
-
name: resource_klass.name,
|
28
|
-
column_names: resource_klass.column_names,
|
29
|
-
columns: resource_klass.columns.map { |column| { name: column.name, type: column.sql_type.parameterize.underscore } },
|
30
|
-
reflections: resource_klass.reflections.keys
|
31
|
-
}
|
32
|
-
end
|
33
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
class ResourceSearchService
|
2
|
-
attr_reader :search_query, :model_klass, :model_attributes
|
3
|
-
|
4
|
-
def initialize(search_query, model_klass, model_attributes)
|
5
|
-
@search_query = search_query
|
6
|
-
|
7
|
-
@model_klass = model_klass
|
8
|
-
@model_attributes = model_attributes
|
9
|
-
end
|
10
|
-
|
11
|
-
def run
|
12
|
-
return [] if model_attributes.empty?
|
13
|
-
|
14
|
-
query = model_attributes.map { |model_attribute| "#{model_attribute} LIKE ?" }.join(' OR ')
|
15
|
-
query_arguments = model_attributes.map { "%#{search_query}%" }
|
16
|
-
|
17
|
-
OpenStruct.new(
|
18
|
-
resources: model_klass.where(query, *query_arguments),
|
19
|
-
total: model_klass.where(query, *query_arguments).count
|
20
|
-
)
|
21
|
-
end
|
22
|
-
end
|
@@ -1,43 +0,0 @@
|
|
1
|
-
class ResourceService
|
2
|
-
attr_reader :model_klass, :model_fields
|
3
|
-
|
4
|
-
def initialize(model_klass, model_fields)
|
5
|
-
@model_klass = model_klass
|
6
|
-
@model_fields = model_fields
|
7
|
-
end
|
8
|
-
|
9
|
-
def index_action(per_page, page, sort, query, model_attributes, reflection_tables, reflection_columns)
|
10
|
-
per_page = per_page.to_i
|
11
|
-
page = page.to_i if page.present?
|
12
|
-
|
13
|
-
total = model_klass.count
|
14
|
-
|
15
|
-
resources = model_klass.limit(per_page)
|
16
|
-
|
17
|
-
if reflection_tables.present?
|
18
|
-
resources = resources.includes(reflection_tables)
|
19
|
-
model_fields.push(*reflection_columns)
|
20
|
-
end
|
21
|
-
|
22
|
-
if query.present?
|
23
|
-
resource_search_service_instance = ResourceSearchService.new(query, model_klass_name, model_attributes)
|
24
|
-
resource_search_service_result = resource_search_service_instance.run
|
25
|
-
|
26
|
-
resources = resource_search_service_result.resources
|
27
|
-
total = resource_search_service_result.total
|
28
|
-
end
|
29
|
-
|
30
|
-
resources = resources.offset((per_page * page) - per_page) if page.present?
|
31
|
-
|
32
|
-
resources = if sort.present?
|
33
|
-
resources.order(sort[:column_name] => sort[:order])
|
34
|
-
else
|
35
|
-
resources.order(id: :asc)
|
36
|
-
end
|
37
|
-
|
38
|
-
{
|
39
|
-
resources: resources.pluck(*model_fields).map { |resource| model_fields.zip(resource).to_h },
|
40
|
-
total: total
|
41
|
-
}
|
42
|
-
end
|
43
|
-
end
|
data/lib/rails/application.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
module Rails
|
2
|
-
class Application
|
3
|
-
def load_models!
|
4
|
-
load_path = 'app/models'
|
5
|
-
|
6
|
-
matcher = /\A#{Regexp.escape(load_path.to_s)}\/(.*)\.rb\Z/
|
7
|
-
|
8
|
-
Dir.glob("#{load_path}/**/*.rb").sort.each do |file|
|
9
|
-
require_dependency file.sub(matcher, '\1')
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
data/lib/simpleadmin/engine.rb
DELETED
data/lib/simpleadmin/routes.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
module ActionDispatch::Routing
|
2
|
-
class Mapper
|
3
|
-
def mount_simpleadmin
|
4
|
-
namespace :simple_admin do
|
5
|
-
resources :entities, only: %i[index show]
|
6
|
-
resources :entity_field_type_actions, only: :create
|
7
|
-
|
8
|
-
resources :resources do
|
9
|
-
get :show_by, on: :collection
|
10
|
-
get :show_total, on: :collection
|
11
|
-
end
|
12
|
-
|
13
|
-
get 'version', to: 'versions#show'
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|