simple-admin 0.2.0.pre.alpha → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +0 -5
- data/Gemfile +1 -20
- data/LICENSE.txt +1 -1
- data/README.md +11 -93
- data/app/controllers/api/v1/simple_admin/base_controller.rb +6 -0
- data/app/controllers/api/v1/simple_admin/credentials_controller.rb +17 -0
- data/app/controllers/api/v1/simple_admin/entities_controller.rb +28 -0
- data/app/controllers/api/v1/simple_admin/resources_controller.rb +105 -0
- data/lib/simple-admin.rb +0 -34
- data/lib/simple_admin/engine.rb +0 -10
- data/lib/simple_admin/routes.rb +7 -12
- data/lib/simple_admin/version.rb +1 -1
- data/simple-admin.gemspec +1 -6
- metadata +8 -175
- data/.codeclimate.yml +0 -3
- data/.gitattributes +0 -1
- data/.hound.yml +0 -2
- data/.inch.yml +0 -4
- data/.rspec +0 -2
- data/.rubocop.yml +0 -68
- data/.travis.yml +0 -11
- data/CHANGELOG.md +0 -37
- data/CODE_OF_CONDUCT.md +0 -74
- data/CONTRIBUTING.md +0 -51
- data/ISSUE_TEMPLATE.md +0 -19
- data/app/assets/fonts/Simple-Line-Icons.woff +0 -0
- data/app/assets/javascripts/simple_admin/application.js +0 -18
- data/app/assets/javascripts/simple_admin/components/notification.js +0 -7
- data/app/assets/javascripts/simple_admin/components/tabs.js +0 -7
- data/app/assets/javascripts/simple_admin/components/tags.js +0 -11
- data/app/assets/stylesheets/simple_admin/application.scss +0 -48
- data/app/assets/stylesheets/simple_admin/global/buttons.css +0 -473
- data/app/assets/stylesheets/simple_admin/global/errors.css +0 -12
- data/app/assets/stylesheets/simple_admin/global/fontawesome-icons.css +0 -3024
- data/app/assets/stylesheets/simple_admin/global/fonts.css +0 -560
- data/app/assets/stylesheets/simple_admin/global/jquery.dataTables.css +0 -169
- data/app/assets/stylesheets/simple_admin/global/pagination.css +0 -11
- data/app/assets/stylesheets/simple_admin/global/reset.css +0 -197
- data/app/assets/stylesheets/simple_admin/global/simple-line-icons.css +0 -672
- data/app/assets/stylesheets/simple_admin/global/table.css +0 -214
- data/app/assets/stylesheets/simple_admin/global/tags.css +0 -87
- data/app/assets/stylesheets/simple_admin/page/aside.css +0 -324
- data/app/assets/stylesheets/simple_admin/page/header.css +0 -332
- data/app/assets/stylesheets/simple_admin/page/main-container.css +0 -222
- data/app/assets/stylesheets/simple_admin/page/sign_in.css +0 -15
- data/app/assets/stylesheets/simple_admin/tabs.css +0 -26
- data/app/controllers/simple_admin/admin/application_controller.rb +0 -21
- data/app/controllers/simple_admin/admin/search_controller.rb +0 -29
- data/app/controllers/simple_admin/admin/system/entities_controller.rb +0 -37
- data/app/controllers/simple_admin/admin/system/entity_field_types_controller.rb +0 -31
- data/app/controllers/simple_admin/admin/system/entity_fields_controller.rb +0 -20
- data/app/helpers/simple_admin_helper.rb +0 -11
- data/app/models/simple_admin/base.rb +0 -14
- data/app/models/simple_admin/entity.rb +0 -50
- data/app/models/simple_admin/entity_field.rb +0 -77
- data/app/models/simple_admin/entity_field_setting.rb +0 -5
- data/app/models/simple_admin/entity_field_type.rb +0 -77
- data/app/views/kaminari/_next_page.html.erb +0 -5
- data/app/views/kaminari/_page.html.erb +0 -3
- data/app/views/kaminari/_paginator.html.erb +0 -26
- data/app/views/kaminari/_prev_page.html.erb +0 -5
- data/app/views/layouts/simple_admin.html.erb +0 -28
- data/app/views/simple_admin/admin/resource/_form.html.erb +0 -19
- data/app/views/simple_admin/admin/resource/edit.html.erb +0 -21
- data/app/views/simple_admin/admin/resource/index.html.erb +0 -13
- data/app/views/simple_admin/admin/resource/new.html.erb +0 -21
- data/app/views/simple_admin/admin/search/index.html.erb +0 -55
- data/app/views/simple_admin/admin/shared/_aside.html.erb +0 -46
- data/app/views/simple_admin/admin/shared/_footer.html.erb +0 -5
- data/app/views/simple_admin/admin/shared/_header.html.erb +0 -7
- data/app/views/simple_admin/admin/shared/collection/_header.html.erb +0 -12
- data/app/views/simple_admin/admin/shared/collection/_table_body.html.erb +0 -29
- data/app/views/simple_admin/admin/shared/collection/_table_header.html.erb +0 -11
- data/app/views/simple_admin/admin/shared/components/_logout.html.erb +0 -6
- data/app/views/simple_admin/admin/shared/components/_search.html.erb +0 -14
- data/app/views/simple_admin/admin/shared/messages/_errors.html.erb +0 -9
- data/app/views/simple_admin/admin/shared/messages/_flash.html.erb +0 -8
- data/app/views/simple_admin/admin/system/entities/_form.html.erb +0 -32
- data/app/views/simple_admin/admin/system/entities/edit.html.erb +0 -27
- data/app/views/simple_admin/admin/system/entities/entity_fields/_form.html.erb +0 -62
- data/app/views/simple_admin/admin/system/entities/entity_fields/edit.html.erb +0 -9
- data/app/views/simple_admin/admin/system/entities/entity_fields/index.html.erb +0 -39
- data/app/views/simple_admin/admin/system/entities/entity_fields/new.html.erb +0 -12
- data/app/views/simple_admin/admin/system/entities/index.html.erb +0 -59
- data/app/views/simple_admin/admin/system/entities/new.html.erb +0 -21
- data/app/views/simple_admin/admin/system/entity_field_types/_form.html.erb +0 -21
- data/app/views/simple_admin/admin/system/entity_field_types/edit.html.erb +0 -24
- data/app/views/simple_admin/admin/system/entity_field_types/index.html.erb +0 -55
- data/app/views/simple_admin/admin/system/entity_field_types/new.html.erb +0 -21
- data/app/views/simple_admin/admin/system/entity_fields/create.js.erb +0 -18
- data/app/views/simple_admin/admin/system/entity_fields/destroy.js.erb +0 -18
- data/app/views/simple_admin/admin/system/entity_fields/update.js.erb +0 -1
- data/app/views/simple_admin/fields/boolean/_form.html.erb +0 -6
- data/app/views/simple_admin/fields/boolean/_index.html.erb +0 -5
- data/app/views/simple_admin/fields/image/_collection.html.erb +0 -5
- data/app/views/simple_admin/fields/image/_form.html.erb +0 -6
- data/app/views/simple_admin/fields/number/_collection.html.erb +0 -5
- data/app/views/simple_admin/fields/number/_form.html.erb +0 -6
- data/app/views/simple_admin/fields/password/_form.html.erb +0 -6
- data/app/views/simple_admin/fields/relation/_collection.html.erb +0 -3
- data/app/views/simple_admin/fields/relation/_form.html.erb +0 -6
- data/app/views/simple_admin/fields/select/_form.html.erb +0 -8
- data/app/views/simple_admin/fields/select/_index.html.erb +0 -5
- data/app/views/simple_admin/fields/string/_collection.html.erb +0 -3
- data/app/views/simple_admin/fields/string/_form.html.erb +0 -6
- data/app/views/simple_admin/fields/tags/_collection.html.erb +0 -3
- data/app/views/simple_admin/fields/tags/_form.html.erb +0 -6
- data/app/views/simple_admin/fields/text/_collection.html.erb +0 -3
- data/app/views/simple_admin/fields/text/_form.html.erb +0 -6
- data/codecov.yml +0 -21
- data/config/locales/en.yml +0 -37
- data/config/locales/ru.yml +0 -20
- data/lib/generators/simple_admin/install_generator.rb +0 -34
- data/lib/generators/simple_admin/migration_generator.rb +0 -24
- data/lib/generators/simple_admin/model_entities_generator.rb +0 -49
- data/lib/generators/templates/application_controller.rb +0 -20
- data/lib/generators/templates/initializers/simple_admin.rb.erb +0 -3
- data/lib/generators/templates/migrations/core_data_migration.rb +0 -12
- data/lib/generators/templates/migrations/core_migrations/entities_migration.rb +0 -13
- data/lib/generators/templates/migrations/core_migrations/entity_field_settings_migration.rb +0 -12
- data/lib/generators/templates/migrations/core_migrations/entity_field_types_migration.rb +0 -12
- data/lib/generators/templates/migrations/core_migrations/entity_fields_migration.rb +0 -18
- data/lib/generators/templates/views/devise/registrations/new.html.erb +0 -46
- data/lib/generators/templates/views/devise/sessions/new.html.erb +0 -35
- data/lib/generators/templates/views/devise/shared/_footer.html.erb +0 -3
- data/lib/simple_admin/config.rb +0 -19
- data/lib/simple_admin/helpers/boolean_helper.rb +0 -36
- data/lib/simple_admin/helpers/url_helper.rb +0 -29
- data/lib/simple_admin/refinements/boolean.rb +0 -36
- data/lib/simple_admin/resource_controller/actions_builder.rb +0 -40
- data/lib/simple_admin/resource_controller/controller_builder.rb +0 -31
- data/lib/simple_admin/resource_controller/crudify.rb +0 -111
- data/lib/simple_admin/resource_controller/crudify_dynamic_resource.rb +0 -55
- data/lib/simple_admin/resource_controller/dynamic_fields.rb +0 -53
- data/lib/simple_admin/search.rb +0 -23
- data/vendor/assets/fonts/Simple-Line-Icons.eot +0 -0
- data/vendor/assets/fonts/Simple-Line-Icons.ttf +0 -0
- data/vendor/assets/fonts/Simple-Line-Icons.woff +0 -0
- data/vendor/assets/fonts/fontawesome-webfont.eot +0 -0
- data/vendor/assets/fonts/fontawesome-webfont.svg +0 -2671
- data/vendor/assets/fonts/fontawesome-webfont.ttf +0 -0
- data/vendor/assets/fonts/fontawesome-webfont.woff +0 -0
- data/vendor/assets/fonts/fontawesome-webfont.woff2 +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b313a9b07cb42d38afd189ed5f9d36547e8f7a54
|
4
|
+
data.tar.gz: e01f13bcff49f9b858f74d191368bfb5e711838d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e000b24abaec6f299f952fb4d4813fb047c4dbae220f19f47e0442b05702955893784a16be0c9b48d0b49e29d96d0d40c6356eaf9de5822f00a136f2cedbc3d
|
7
|
+
data.tar.gz: ec4b4028579748601636afdc285aa5d91be4c3888921c0f944532098fe2f1228befc55862ff8dde548fc940acae690b934b1806b5d64768cc535abdcaae9fe82
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
@@ -4,24 +4,5 @@ gemspec
|
|
4
4
|
|
5
5
|
ruby '2.4.1'
|
6
6
|
|
7
|
-
gem 'rails', '~> 5.0.
|
8
|
-
|
7
|
+
gem 'rails', '~> 5.0.6'
|
9
8
|
gem 'pg', '~> 0.18'
|
10
|
-
gem 'rdoc', require: false
|
11
|
-
|
12
|
-
group :development, :test do
|
13
|
-
gem 'factory_bot_rails'
|
14
|
-
gem 'rspec-rails'
|
15
|
-
end
|
16
|
-
|
17
|
-
group :test do
|
18
|
-
gem 'codecov', require: false
|
19
|
-
gem 'simplecov', require: false
|
20
|
-
|
21
|
-
gem 'database_cleaner'
|
22
|
-
gem 'faker'
|
23
|
-
gem 'rails-controller-testing'
|
24
|
-
gem 'sprockets-rails', require: 'sprockets/railtie'
|
25
|
-
|
26
|
-
gem 'pry'
|
27
|
-
end
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -4,110 +4,33 @@
|
|
4
4
|
[![codecov](https://codecov.io/gh/evil-raccoon/simple_admin/branch/master/graph/badge.svg)](https://codecov.io/gh/evil-raccoon/simple_admin)
|
5
5
|
[![Inline docs](http://inch-ci.org/github/evil-raccoon/simple_admin.svg)](http://inch-ci.org/github/evil-raccoon/simple_admin)
|
6
6
|
|
7
|
-
A
|
8
|
-
[Try the demo][demo].
|
7
|
+
A small API library to connect your application with SimpleAdmin service and create admin dashboards in an instant.
|
9
8
|
|
10
9
|
## Getting started
|
11
|
-
Add SimpleAdmin to your Gemfile and run bundle:
|
12
10
|
|
13
11
|
![simple_admin](https://i.imgur.com/s1fGVRq.png)
|
14
12
|
|
15
|
-
|
16
|
-
gem 'simple-admin'
|
17
|
-
```
|
18
|
-
|
19
|
-
The following generators will create rolify initializer and core migrations.
|
20
|
-
|
21
|
-
```ruby
|
22
|
-
rails generate simple_admin:install
|
23
|
-
rails generate simple_admin:migration
|
24
|
-
|
25
|
-
rails db:migrate
|
26
|
-
```
|
27
|
-
|
28
|
-
Restart your server, and visit [http://localhost:3000/admin/system/entities](http://localhost:3000/admin/system/entities) for authentication.
|
29
|
-
|
30
|
-
### Authentication
|
31
|
-
|
32
|
-
Simple admin is very flexible solution, so you can use any gems for that purposes, all you need is just create `app/controllers/simple_admin/admin/application_controller.rb` and remove current_user and authenticate_user! methods with `raise NotImplemented` error and keep the following.
|
33
|
-
|
34
|
-
```ruby
|
35
|
-
# app/controllers/simple_admin/admin/application_controller.rb
|
36
|
-
|
37
|
-
module SimpleAdmin
|
38
|
-
module Admin
|
39
|
-
class ApplicationController < ActionController::Base
|
40
|
-
layout 'simple_admin'
|
41
|
-
|
42
|
-
# use here you authentication before action
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
```
|
47
|
-
|
48
|
-
After that create next partial:
|
49
|
-
|
50
|
-
```ruby
|
51
|
-
# app/views/simple_admin/admin/shared/components/_logout.html.erb
|
52
|
-
|
53
|
-
<ul class="nav-header pull-right">
|
54
|
-
<li>
|
55
|
-
<%= link_to t('simple_admin.actions.logout'), destroy_user_session_path, method: :delete %>
|
56
|
-
</li>
|
57
|
-
</ul>
|
58
|
-
```
|
59
|
-
|
60
|
-
### Devise integration
|
61
|
-
Simple Admin supports devise, you need to add into the Gemfile `gem 'devise'` and run `rails generate simple_admin:install`. This will create view templates for authentication and registration, after that you need to create layout:
|
13
|
+
Add SimpleAdmin to your Gemfile and run bundle:
|
62
14
|
|
63
15
|
```ruby
|
64
|
-
|
65
|
-
|
66
|
-
<!DOCTYPE html>
|
67
|
-
<html>
|
68
|
-
<head>
|
69
|
-
<title>Exampleapp</title>
|
70
|
-
<%= csrf_meta_tags %>
|
71
|
-
|
72
|
-
<%= stylesheet_link_tag 'simple_admin/application', media: 'all', 'data-turbolinks-track': 'reload' %>
|
73
|
-
<%= javascript_include_tag 'simple_admin/application', 'data-turbolinks-track': 'reload' %>
|
74
|
-
</head>
|
75
|
-
|
76
|
-
<body>
|
77
|
-
<%= yield %>
|
78
|
-
</body>
|
79
|
-
</html>
|
16
|
+
gem 'simple-admin'
|
80
17
|
```
|
81
18
|
|
82
|
-
|
19
|
+
After that, you need to mount simple admin built-in routes:
|
83
20
|
|
84
21
|
```ruby
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
Devise::SessionsController.layout 'devise'
|
89
|
-
end
|
90
|
-
end
|
22
|
+
# config/routes.rb
|
23
|
+
Rails.application.routes.draw do
|
24
|
+
mount_for_simple_admin
|
91
25
|
end
|
92
26
|
```
|
93
27
|
|
94
|
-
|
95
|
-
You have two different ways to customize admin panel entities and fields, first way it's to use built in generator, it automatically create all fields for form and collection pages (excepting timestamps and id). All you need is run next command:
|
28
|
+
Create initializer, add your secret key and restart server
|
96
29
|
|
97
30
|
```ruby
|
98
|
-
|
31
|
+
# config/initializers/simpleadmin.rb
|
32
|
+
ENV['SIMPLE_ADMIN_SECRET_KEY'] = 'SECRET_KEY'
|
99
33
|
```
|
100
|
-
Next way is to create entity in administrative panel and fields for it, you can do it on the entities page (http://localhost:3000/admin/system/entities).
|
101
|
-
|
102
|
-
## Dependencies
|
103
|
-
|
104
|
-
We try to minimize the use of third-party libraries, but Simple Admin built with the following open source projects:
|
105
|
-
|
106
|
-
Tool | Description
|
107
|
-
--------------------- | -----------
|
108
|
-
[Kaminari] | Paginator for Ruby webapps
|
109
|
-
|
110
|
-
[Kaminari]: https://github.com/kaminari/kaminari
|
111
34
|
|
112
35
|
## Contributing
|
113
36
|
|
@@ -117,13 +40,8 @@ Tool | Description
|
|
117
40
|
4. Push to the branch (`git push origin my-new-feature`)
|
118
41
|
5. Create a new Pull Request
|
119
42
|
|
120
|
-
|
121
|
-
[CanCanCan]: https://github.com/CanCanCommunity/cancancan
|
122
|
-
|
123
43
|
## Copyright
|
124
44
|
|
125
45
|
Released under MIT License.
|
126
46
|
|
127
|
-
Copyright ©
|
128
|
-
|
129
|
-
[demo]: https://simpleadmin.herokuapp.com
|
47
|
+
Copyright © 2018 Evil Raccoon.
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Api::V1
|
2
|
+
module SimpleAdmin
|
3
|
+
class CredentialsController < BaseController
|
4
|
+
def verify_key
|
5
|
+
render json: {
|
6
|
+
secret_key_valid: secret_key_valid?
|
7
|
+
}
|
8
|
+
end
|
9
|
+
|
10
|
+
private
|
11
|
+
|
12
|
+
def secret_key_valid?
|
13
|
+
ENV['SIMPLE_ADMIN_SECRET_KEY'] == params[:secret_key]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Api::V1
|
2
|
+
module SimpleAdmin
|
3
|
+
class EntitiesController < BaseController
|
4
|
+
before_action :load_models
|
5
|
+
|
6
|
+
def index
|
7
|
+
render json: {
|
8
|
+
entities_names: ApplicationRecord.descendants.map { |model| model.name }
|
9
|
+
}
|
10
|
+
end
|
11
|
+
|
12
|
+
def show
|
13
|
+
resource_klass = params[:id].capitalize.constantize
|
14
|
+
|
15
|
+
render json: {
|
16
|
+
name: resource_klass.name,
|
17
|
+
column_names: resource_klass.column_names
|
18
|
+
}
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def load_models
|
24
|
+
Rails.application.eager_load!
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,105 @@
|
|
1
|
+
module Api::V1
|
2
|
+
module SimpleAdmin
|
3
|
+
class ResourcesController < BaseController
|
4
|
+
def index
|
5
|
+
model_klass = params[:model_klass_name].constantize
|
6
|
+
model_fields = params[:model_fields].map { |field_attributes| field_attributes[:field_name] }
|
7
|
+
|
8
|
+
per_page = params[:per_page].to_i
|
9
|
+
page = params[:page].to_i if params[:page].present?
|
10
|
+
total = model_klass.count
|
11
|
+
|
12
|
+
resources = model_klass.limit(per_page)
|
13
|
+
|
14
|
+
if params[:query].present?
|
15
|
+
search_result = search(params[:query], model_klass, params[:model_attributes])
|
16
|
+
|
17
|
+
resources = search_result[:resources]
|
18
|
+
total = search_result[:total]
|
19
|
+
end
|
20
|
+
|
21
|
+
resources = resources.offset((per_page * page) - per_page) if page.present?
|
22
|
+
resources = resources.order(params[:sort][:column_name] => params[:sort][:order]) if params[:sort].present?
|
23
|
+
|
24
|
+
resources = resources.map do |resource|
|
25
|
+
_resource = {}
|
26
|
+
|
27
|
+
resource.attributes.each do |attribute_name, attribute_value|
|
28
|
+
next unless model_fields.include?(attribute_name)
|
29
|
+
|
30
|
+
if params[:model_fields].find { |field_attributes| field_attributes[:field_name] == attribute_name && field_attributes[:field_type] == 'image' }.present?
|
31
|
+
_resource[attribute_name] = "#{ENV['HOST']}/#{resource.public_send(attribute_name).url}"
|
32
|
+
else
|
33
|
+
_resource[attribute_name] = attribute_value
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
_resource
|
38
|
+
end
|
39
|
+
|
40
|
+
render json: {
|
41
|
+
resources: resources,
|
42
|
+
total: total
|
43
|
+
}
|
44
|
+
end
|
45
|
+
|
46
|
+
def show
|
47
|
+
model_klass = params[:model_klass_name].constantize
|
48
|
+
model_fields = params[:model_fields].split(',')
|
49
|
+
|
50
|
+
resource = model_klass.find(params[:id]).attributes.slice(*model_fields)
|
51
|
+
|
52
|
+
render json: resource
|
53
|
+
end
|
54
|
+
|
55
|
+
def create
|
56
|
+
model_klass = params[:model_klass_name].constantize
|
57
|
+
|
58
|
+
resource = model_klass.new(resource_params)
|
59
|
+
resource.image = CarrierStringIO.new(Base64.decode64(resource_params[:image]))
|
60
|
+
|
61
|
+
if resource.save
|
62
|
+
render json: resource
|
63
|
+
else
|
64
|
+
render json: resource.errors
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def update
|
69
|
+
model_klass = params[:model_klass_name].constantize
|
70
|
+
resource = model_klass.find(params[:id])
|
71
|
+
|
72
|
+
if resource.update(resource_params)
|
73
|
+
render json: resource
|
74
|
+
else
|
75
|
+
render json: resource.errors
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def destroy
|
80
|
+
model_klass = params[:model_klass_name].constantize
|
81
|
+
resource = model_klass.find(params[:id])
|
82
|
+
|
83
|
+
resource.destroy
|
84
|
+
end
|
85
|
+
|
86
|
+
private
|
87
|
+
|
88
|
+
def search(search_query, model_klass, model_attributes)
|
89
|
+
return [] if model_attributes.empty?
|
90
|
+
|
91
|
+
query = model_attributes.map { |model_attribute| "#{model_attribute} LIKE ?" }.join(' OR ')
|
92
|
+
query_arguments = model_attributes.map { "%#{search_query}%" }
|
93
|
+
|
94
|
+
{
|
95
|
+
resources: model_klass.where(query, *query_arguments),
|
96
|
+
total: model_klass.where(query, *query_arguments).count
|
97
|
+
}
|
98
|
+
end
|
99
|
+
|
100
|
+
def resource_params
|
101
|
+
params.require(:resource).permit!
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
data/lib/simple-admin.rb
CHANGED
@@ -2,38 +2,4 @@ require 'simple_admin/version'
|
|
2
2
|
require 'simple_admin/engine'
|
3
3
|
|
4
4
|
module SimpleAdmin
|
5
|
-
module Refinements
|
6
|
-
require 'simple_admin/refinements/boolean'
|
7
|
-
end
|
8
|
-
|
9
|
-
module ResourceController
|
10
|
-
require 'simple_admin/resource_controller/actions_builder'
|
11
|
-
require 'simple_admin/resource_controller/controller_builder'
|
12
|
-
|
13
|
-
require 'simple_admin/resource_controller/crudify'
|
14
|
-
require 'simple_admin/resource_controller/crudify_dynamic_resource'
|
15
|
-
|
16
|
-
require 'simple_admin/resource_controller/dynamic_fields'
|
17
|
-
end
|
18
|
-
|
19
|
-
module Helpers
|
20
|
-
require 'simple_admin/helpers/url_helper'
|
21
|
-
require 'simple_admin/helpers/boolean_helper'
|
22
|
-
end
|
23
|
-
|
24
|
-
require 'simple_admin/config'
|
25
|
-
require 'simple_admin/search'
|
26
|
-
|
27
|
-
class << self
|
28
|
-
def mount_entities!(routing_mapper)
|
29
|
-
SimpleAdmin::Entity.resource_attributes.each do |resource_name, model_klass_name|
|
30
|
-
routing_mapper.resources(resource_name)
|
31
|
-
|
32
|
-
controller_builder = SimpleAdmin::ResourceController::ControllerBuilder.new(resource_name)
|
33
|
-
controller_builder.build!
|
34
|
-
|
35
|
-
SimpleAdmin::ResourceController::ActionsBuilder.initialize_actions!(controller_builder.controller_klass, model_klass_name)
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
5
|
end
|
data/lib/simple_admin/engine.rb
CHANGED
@@ -1,16 +1,6 @@
|
|
1
|
-
require 'bootstrap-sass'
|
2
|
-
require 'jquery-ui-rails'
|
3
|
-
require 'kaminari'
|
4
|
-
|
5
1
|
require 'simple_admin/routes'
|
6
2
|
|
7
3
|
module SimpleAdmin
|
8
4
|
class Engine < Rails::Engine
|
9
|
-
initializer 'simple_admin.precompile', group: :all do |app|
|
10
|
-
app.config.assets.precompile += [
|
11
|
-
'simple_admin/application.css',
|
12
|
-
'simple_admin/application.js'
|
13
|
-
]
|
14
|
-
end
|
15
5
|
end
|
16
6
|
end
|
data/lib/simple_admin/routes.rb
CHANGED
@@ -10,21 +10,16 @@ module ActionDispatch::Routing
|
|
10
10
|
# mount_for_simple_admin
|
11
11
|
# end
|
12
12
|
#
|
13
|
-
# @since 0.
|
13
|
+
# @since 1.0.0
|
14
14
|
|
15
15
|
def mount_for_simple_admin
|
16
|
-
|
17
|
-
namespace :
|
18
|
-
|
16
|
+
namespace :api do
|
17
|
+
namespace :v1 do
|
18
|
+
namespace :simple_admin do
|
19
|
+
resources :entities, only: [:index, :show]
|
20
|
+
resources :resources
|
19
21
|
|
20
|
-
|
21
|
-
|
22
|
-
SimpleAdmin.mount_entities!(self) if ActiveRecord::Base.connection.table_exists?(:simple_admin_entities)
|
23
|
-
|
24
|
-
namespace :system do
|
25
|
-
resources :entities
|
26
|
-
resources :entity_field_types
|
27
|
-
resources :entity_fields, only: %i[create update destroy]
|
22
|
+
post 'verify_key' => 'credentials#verify_key'
|
28
23
|
end
|
29
24
|
end
|
30
25
|
end
|
data/lib/simple_admin/version.rb
CHANGED