simpleadmin 1.4.0 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|