simple-admin 0.1.0.pre.alpha

Sign up to get free protection for your applications and to get access to all the features.
Files changed (139) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +3 -0
  3. data/.gitattributes +1 -0
  4. data/.gitignore +17 -0
  5. data/.hound.yml +2 -0
  6. data/.inch.yml +4 -0
  7. data/.rspec +2 -0
  8. data/.rubocop.yml +68 -0
  9. data/.travis.yml +11 -0
  10. data/CODE_OF_CONDUCT.md +74 -0
  11. data/CONTRIBUTING.md +51 -0
  12. data/Gemfile +27 -0
  13. data/LICENSE.txt +21 -0
  14. data/README.md +87 -0
  15. data/Rakefile +20 -0
  16. data/app/assets/fonts/Simple-Line-Icons.woff +0 -0
  17. data/app/assets/javascripts/simple_admin/application.js +28 -0
  18. data/app/assets/stylesheets/simple_admin/application.scss +48 -0
  19. data/app/assets/stylesheets/simple_admin/global/buttons.css +473 -0
  20. data/app/assets/stylesheets/simple_admin/global/errors.css +12 -0
  21. data/app/assets/stylesheets/simple_admin/global/fontawesome-icons.css +3024 -0
  22. data/app/assets/stylesheets/simple_admin/global/fonts.css +560 -0
  23. data/app/assets/stylesheets/simple_admin/global/jquery.dataTables.css +169 -0
  24. data/app/assets/stylesheets/simple_admin/global/pagination.css +11 -0
  25. data/app/assets/stylesheets/simple_admin/global/reset.css +197 -0
  26. data/app/assets/stylesheets/simple_admin/global/simple-line-icons.css +672 -0
  27. data/app/assets/stylesheets/simple_admin/global/table.css +214 -0
  28. data/app/assets/stylesheets/simple_admin/global/tags.css +87 -0
  29. data/app/assets/stylesheets/simple_admin/page/aside.css +324 -0
  30. data/app/assets/stylesheets/simple_admin/page/header.css +332 -0
  31. data/app/assets/stylesheets/simple_admin/page/main-container.css +222 -0
  32. data/app/assets/stylesheets/simple_admin/page/sign_in.css +15 -0
  33. data/app/assets/stylesheets/simple_admin/tabs.css +26 -0
  34. data/app/controllers/simple_admin/admin/application_controller.rb +21 -0
  35. data/app/controllers/simple_admin/admin/search_controller.rb +29 -0
  36. data/app/controllers/simple_admin/admin/system/entities_controller.rb +37 -0
  37. data/app/controllers/simple_admin/admin/system/entity_field_types_controller.rb +31 -0
  38. data/app/controllers/simple_admin/admin/system/entity_fields_controller.rb +20 -0
  39. data/app/helpers/simple_admin_helper.rb +15 -0
  40. data/app/models/simple_admin/base.rb +14 -0
  41. data/app/models/simple_admin/entity.rb +50 -0
  42. data/app/models/simple_admin/entity_field.rb +77 -0
  43. data/app/models/simple_admin/entity_field_setting.rb +5 -0
  44. data/app/models/simple_admin/entity_field_type.rb +79 -0
  45. data/app/views/kaminari/_next_page.html.erb +5 -0
  46. data/app/views/kaminari/_page.html.erb +3 -0
  47. data/app/views/kaminari/_paginator.html.erb +26 -0
  48. data/app/views/kaminari/_prev_page.html.erb +5 -0
  49. data/app/views/layouts/devise.html.erb +11 -0
  50. data/app/views/layouts/simple_admin.html.erb +28 -0
  51. data/app/views/simple_admin/admin/resource/_form.html.erb +19 -0
  52. data/app/views/simple_admin/admin/resource/edit.html.erb +21 -0
  53. data/app/views/simple_admin/admin/resource/index.html.erb +13 -0
  54. data/app/views/simple_admin/admin/resource/new.html.erb +21 -0
  55. data/app/views/simple_admin/admin/search/index.html.erb +55 -0
  56. data/app/views/simple_admin/admin/shared/_aside.html.erb +46 -0
  57. data/app/views/simple_admin/admin/shared/_footer.html.erb +5 -0
  58. data/app/views/simple_admin/admin/shared/_header.html.erb +7 -0
  59. data/app/views/simple_admin/admin/shared/collection/_header.html.erb +12 -0
  60. data/app/views/simple_admin/admin/shared/collection/_table_body.html.erb +29 -0
  61. data/app/views/simple_admin/admin/shared/collection/_table_header.html.erb +11 -0
  62. data/app/views/simple_admin/admin/shared/components/_logout.html.erb +6 -0
  63. data/app/views/simple_admin/admin/shared/components/_search.html.erb +14 -0
  64. data/app/views/simple_admin/admin/shared/messages/_errors.html.erb +9 -0
  65. data/app/views/simple_admin/admin/shared/messages/_flash.html.erb +8 -0
  66. data/app/views/simple_admin/admin/system/entities/_form.html.erb +32 -0
  67. data/app/views/simple_admin/admin/system/entities/edit.html.erb +27 -0
  68. data/app/views/simple_admin/admin/system/entities/entity_fields/_form.html.erb +62 -0
  69. data/app/views/simple_admin/admin/system/entities/entity_fields/edit.html.erb +9 -0
  70. data/app/views/simple_admin/admin/system/entities/entity_fields/index.html.erb +39 -0
  71. data/app/views/simple_admin/admin/system/entities/entity_fields/new.html.erb +12 -0
  72. data/app/views/simple_admin/admin/system/entities/index.html.erb +59 -0
  73. data/app/views/simple_admin/admin/system/entities/new.html.erb +21 -0
  74. data/app/views/simple_admin/admin/system/entity_field_types/_form.html.erb +21 -0
  75. data/app/views/simple_admin/admin/system/entity_field_types/edit.html.erb +24 -0
  76. data/app/views/simple_admin/admin/system/entity_field_types/index.html.erb +55 -0
  77. data/app/views/simple_admin/admin/system/entity_field_types/new.html.erb +21 -0
  78. data/app/views/simple_admin/admin/system/entity_fields/create.js.erb +18 -0
  79. data/app/views/simple_admin/admin/system/entity_fields/destroy.js.erb +18 -0
  80. data/app/views/simple_admin/admin/system/entity_fields/update.js.erb +1 -0
  81. data/app/views/simple_admin/fields/boolean/_form.html.erb +6 -0
  82. data/app/views/simple_admin/fields/boolean/_index.html.erb +5 -0
  83. data/app/views/simple_admin/fields/image/_collection.html.erb +5 -0
  84. data/app/views/simple_admin/fields/image/_form.html.erb +6 -0
  85. data/app/views/simple_admin/fields/number/_collection.html.erb +5 -0
  86. data/app/views/simple_admin/fields/number/_form.html.erb +6 -0
  87. data/app/views/simple_admin/fields/password/_form.html.erb +6 -0
  88. data/app/views/simple_admin/fields/relation/_collection.html.erb +3 -0
  89. data/app/views/simple_admin/fields/relation/_form.html.erb +6 -0
  90. data/app/views/simple_admin/fields/select/_form.html.erb +8 -0
  91. data/app/views/simple_admin/fields/select/_index.html.erb +5 -0
  92. data/app/views/simple_admin/fields/string/_collection.html.erb +3 -0
  93. data/app/views/simple_admin/fields/string/_form.html.erb +6 -0
  94. data/app/views/simple_admin/fields/tags/_collection.html.erb +3 -0
  95. data/app/views/simple_admin/fields/tags/_form.html.erb +6 -0
  96. data/app/views/simple_admin/fields/text/_collection.html.erb +3 -0
  97. data/app/views/simple_admin/fields/text/_form.html.erb +6 -0
  98. data/bin/bundle +4 -0
  99. data/bin/rails +5 -0
  100. data/codecov.yml +21 -0
  101. data/config/locales/en.yml +23 -0
  102. data/config/locales/ru.yml +20 -0
  103. data/config/routes.rb +19 -0
  104. data/lib/generators/simple_admin/install_generator.rb +41 -0
  105. data/lib/generators/simple_admin/migration_generator.rb +24 -0
  106. data/lib/generators/templates/application_controller.rb +20 -0
  107. data/lib/generators/templates/initializers/simple_admin.rb.erb +3 -0
  108. data/lib/generators/templates/migrations/core_data_migration.rb +12 -0
  109. data/lib/generators/templates/migrations/core_migrations/entities_migration.rb +13 -0
  110. data/lib/generators/templates/migrations/core_migrations/entity_field_settings_migration.rb +12 -0
  111. data/lib/generators/templates/migrations/core_migrations/entity_field_types_migration.rb +12 -0
  112. data/lib/generators/templates/migrations/core_migrations/entity_fields_migration.rb +18 -0
  113. data/lib/generators/templates/user.rb +24 -0
  114. data/lib/generators/templates/views/devise/registrations/new.html.erb +46 -0
  115. data/lib/generators/templates/views/devise/sessions/new.html.erb +35 -0
  116. data/lib/generators/templates/views/devise/shared/_footer.html.erb +3 -0
  117. data/lib/simple_admin.rb +39 -0
  118. data/lib/simple_admin/config.rb +19 -0
  119. data/lib/simple_admin/engine.rb +15 -0
  120. data/lib/simple_admin/helpers/boolean_helper.rb +36 -0
  121. data/lib/simple_admin/helpers/url_helper.rb +29 -0
  122. data/lib/simple_admin/refinements/boolean.rb +36 -0
  123. data/lib/simple_admin/resource_controller/actions_builder.rb +40 -0
  124. data/lib/simple_admin/resource_controller/controller_builder.rb +31 -0
  125. data/lib/simple_admin/resource_controller/crudify.rb +111 -0
  126. data/lib/simple_admin/resource_controller/crudify_dynamic_resource.rb +55 -0
  127. data/lib/simple_admin/resource_controller/dynamic_fields.rb +53 -0
  128. data/lib/simple_admin/search.rb +23 -0
  129. data/lib/simple_admin/version.rb +3 -0
  130. data/simple_admin.gemspec +38 -0
  131. data/vendor/assets/fonts/Simple-Line-Icons.eot +0 -0
  132. data/vendor/assets/fonts/Simple-Line-Icons.ttf +0 -0
  133. data/vendor/assets/fonts/Simple-Line-Icons.woff +0 -0
  134. data/vendor/assets/fonts/fontawesome-webfont.eot +0 -0
  135. data/vendor/assets/fonts/fontawesome-webfont.svg +2671 -0
  136. data/vendor/assets/fonts/fontawesome-webfont.ttf +0 -0
  137. data/vendor/assets/fonts/fontawesome-webfont.woff +0 -0
  138. data/vendor/assets/fonts/fontawesome-webfont.woff2 +0 -0
  139. metadata +307 -0
@@ -0,0 +1,21 @@
1
+ ---
2
+
3
+ codecov:
4
+ notify:
5
+ require_ci_to_pass: true
6
+
7
+ comment: off
8
+
9
+ coverage:
10
+ precision: 2
11
+
12
+ range:
13
+ - 70.0
14
+ - 100.0
15
+
16
+ round: down
17
+
18
+ status:
19
+ changes: false
20
+
21
+ patch: true
@@ -0,0 +1,23 @@
1
+ en:
2
+ simple_admin:
3
+ form_fields:
4
+ empty: '* That page empty, because you need to define form fields'
5
+ create: Create Entity Fields
6
+ table:
7
+ actions: Actions
8
+ actions:
9
+ confirm: Are you sure?
10
+ logout: Log out
11
+ resource:
12
+ index:
13
+ title: '%{resource_name}'
14
+ new:
15
+ title: 'New %{resource_name}'
16
+ edit:
17
+ title: 'Edit %{resource_name}'
18
+ update:
19
+ success: '%{resource_name} has been successfully updated!'
20
+ create:
21
+ success: '%{resource_name} has been successfully created!'
22
+ destroy:
23
+ success: '%{resource_name} has been successfully destroyed!'
@@ -0,0 +1,20 @@
1
+ ru:
2
+ simple_admin:
3
+ table:
4
+ actions: Действия
5
+ actions:
6
+ confirm: Вы уверены?
7
+ logout: Выйти
8
+ resource:
9
+ index:
10
+ title: '%{resource_name}'
11
+ new:
12
+ title: 'Создать %{resource_name}'
13
+ edit:
14
+ title: 'Редактировать %{resource_name}'
15
+ update:
16
+ success: '%{resource_name} был успешно обновлен!'
17
+ create:
18
+ success: '%{resource_name} был успешно создан!'
19
+ destroy:
20
+ success: '%{resource_name} был успешно удален!'
@@ -0,0 +1,19 @@
1
+ Rails.application.routes.draw do
2
+ scope module: :simple_admin do
3
+ namespace :admin do
4
+ root 'system/users#index'
5
+
6
+ get :search, to: 'search#index'
7
+
8
+ if ActiveRecord::Base.connection.table_exists?(:simple_admin_entities)
9
+ SimpleAdmin.mount_entities!(self)
10
+ end
11
+
12
+ namespace :system do
13
+ resources :entities
14
+ resources :entity_field_types
15
+ resources :entity_fields, only: [:create, :update, :destroy]
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,41 @@
1
+ require 'rails/generators/base'
2
+
3
+ module SimpleAdmin
4
+ module Generators
5
+ class InstallGenerator < Rails::Generators::Base
6
+ source_root File.expand_path('../../templates', __FILE__)
7
+
8
+ def copy_initializer
9
+ template 'initializers/simple_admin.rb.erb', 'config/initializers/simple_admin.rb'
10
+ end
11
+
12
+ def create_application_controller
13
+ copy_file(
14
+ 'application_controller.rb',
15
+ 'app/controllers/simple_admin/admin/application_controller.rb'
16
+ )
17
+ end
18
+
19
+ def create_user_model
20
+ copy_file(
21
+ 'user.rb',
22
+ 'app/models/simple_admin/user.rb'
23
+ )
24
+ end
25
+
26
+ def create_views
27
+ if defined?(Devise)
28
+ create_devise_views!
29
+ end
30
+ end
31
+
32
+ private
33
+
34
+ def create_devise_views!
35
+ copy_file('views/devise/registrations/new.html.erb', 'app/views/devise/registrations/new.html.erb')
36
+ copy_file('views/devise/sessions/new.html.erb', 'app/views/devise/sessions/new.html.erb')
37
+ copy_file('views/devise/shared/_footer.html.erb', 'app/views/devise/shared/_footer.html.erb')
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,24 @@
1
+ require 'rails/generators/active_record'
2
+
3
+ module SimpleAdmin
4
+ module Generators
5
+ class MigrationGenerator < ActiveRecord::Generators::Base
6
+ source_root File.expand_path('../../templates', __FILE__)
7
+
8
+ argument :name, default: 'simple_admin'
9
+
10
+ def copy_simple_admin_migration
11
+ migration_template 'migrations/core_migrations/entities_migration.rb', 'db/migrate/create_simple_admin_entities.rb'
12
+
13
+ migration_template 'migrations/core_migrations/entity_fields_migration.rb',
14
+ 'db/migrate/create_simple_admin_entity_fields.rb'
15
+ migration_template 'migrations/core_migrations/entity_field_types_migration.rb',
16
+ 'db/migrate/create_simple_admin_entity_field_types.rb'
17
+ migration_template 'migrations/core_migrations/entity_field_settings_migration.rb',
18
+ 'db/migrate/create_simple_admin_entity_field_settings.rb'
19
+
20
+ migration_template 'migrations/core_data_migration.rb', 'db/migrate/create_simple_admin_core_data_migration.rb'
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,20 @@
1
+ module SimpleAdmin
2
+ module Admin
3
+ class ApplicationController < ActionController::Base
4
+ layout 'simple_admin'
5
+
6
+ before_action :authenticate_user!
7
+
8
+ def current_user
9
+ # TODO Add authenticated user here
10
+ raise NotImplementedError
11
+ end
12
+
13
+ private
14
+ def authenticate_user!
15
+ # TODO Add authentication logic here
16
+ raise NotImplementedError
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,3 @@
1
+ SimpleAdmin::Config.setup do |config|
2
+ config.per_page = 10
3
+ end
@@ -0,0 +1,12 @@
1
+ class CreateSimpleAdminCoreDataMigration < ActiveRecord::Migration[5.0]
2
+ def change
3
+ SimpleAdmin::EntityFieldType.create(name: :boolean, template: 'simple_admin/fields/boolean')
4
+ SimpleAdmin::EntityFieldType.create(name: :number, template: 'simple_admin/fields/number')
5
+ SimpleAdmin::EntityFieldType.create(name: :select, template: 'simple_admin/fields/select')
6
+ SimpleAdmin::EntityFieldType.create(name: :string, template: 'simple_admin/fields/string')
7
+ SimpleAdmin::EntityFieldType.create(name: :text, template: 'simple_admin/fields/text')
8
+ SimpleAdmin::EntityFieldType.create(name: :image, template: 'simple_admin/fields/image')
9
+ SimpleAdmin::EntityFieldType.create(name: :tags, template: 'simple_admin/fields/tags')
10
+ SimpleAdmin::EntityFieldType.create(name: :relation, template: 'simple_admin/fields/relation')
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ class CreateSimpleAdminEntities < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :simple_admin_entities do |t|
4
+ t.string :model_klass_name, null: false
5
+ t.string :label
6
+
7
+ t.boolean :status, default: true
8
+ t.boolean :inbuilt, default: false
9
+
10
+ t.timestamps null: false
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ class CreateSimpleAdminEntityFieldSettings < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :simple_admin_entity_field_settings do |t|
4
+ t.string :name
5
+ t.string :value
6
+
7
+ t.integer :entity_field_id, null: false
8
+
9
+ t.timestamps null: false
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ class CreateSimpleAdminEntityFieldTypes < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :simple_admin_entity_field_types do |t|
4
+ t.string :name
5
+ t.string :template
6
+
7
+ t.boolean :inbuilt, default: false
8
+
9
+ t.timestamps null: false
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,18 @@
1
+ class CreateSimpleAdminEntityFields < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :simple_admin_entity_fields do |t|
4
+ t.string :name
5
+ t.string :label
6
+
7
+ t.integer :entity_field_type_id, null: false
8
+ t.integer :entity_id, null: false
9
+
10
+ t.integer :presentation
11
+ t.integer :sort_order, default: 0
12
+
13
+ t.boolean :search_indexable, default: false
14
+
15
+ t.timestamps null: false
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,24 @@
1
+ module SimpleAdmin
2
+ class User < Base
3
+ has_one :profile, dependent: :destroy
4
+
5
+ has_many :posts
6
+ has_many :comments
7
+
8
+ accepts_nested_attributes_for :profile, update_only: true
9
+ delegate :avatar, :first_name, :last_name, to: :profile, allow_nil: true
10
+
11
+ after_create :create_profile!
12
+
13
+ def full_name
14
+ "#{first_name} #{last_name}"
15
+ end
16
+
17
+ private
18
+
19
+ def create_profile!
20
+ profile = build_profile
21
+ profile.save
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,46 @@
1
+ <div class="bg-white pulldown">
2
+ <div class="content content-boxed overflow-hidden">
3
+ <div class="row">
4
+ <div class="col-sm-8 col-sm-offset-2 col-md-6 col-md-offset-3 col-lg-4 col-lg-offset-4">
5
+ <div class="push-30-t push-20 animated fadeIn">
6
+ <div class="text-center">
7
+ <h1 class="h3 push-10-t">Create Account</h1>
8
+ </div>
9
+ <%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { class: 'js-validation-register form-horizontal push-50-t push-50' }) do |f| %>
10
+ <div class="form-group">
11
+ <div class="col-xs-12">
12
+ <div class="form-material form-material-success">
13
+ <%= f.email_field :email, autofocus: true, class: 'form-control' %>
14
+ <%= f.label :email %>
15
+ </div>
16
+ </div>
17
+ </div>
18
+ <div class="form-group">
19
+ <div class="col-xs-12">
20
+ <div class="form-material form-material-success">
21
+ <%= f.password_field :password, autocomplete: "off", class: 'form-control' %>
22
+ <%= f.label :password %>
23
+ </div>
24
+ </div>
25
+ </div>
26
+ <div class="form-group">
27
+ <div class="col-xs-12">
28
+ <div class="form-material form-material-success">
29
+ <%= f.password_field :password_confirmation, autocomplete: "off", class: 'form-control' %>
30
+ <%= f.label :password_confirmation %>
31
+ </div>
32
+ </div>
33
+ </div>
34
+ <div class="form-group">
35
+ <div class="col-xs-12 col-sm-6 col-sm-offset-3">
36
+ <%= f.submit "Sign up", class: 'btn btn-sm btn-block btn-success' %>
37
+ </div>
38
+ </div>
39
+ <% end %>
40
+ </div>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ </div>
45
+
46
+ <%= render 'devise/shared/footer' %>
@@ -0,0 +1,35 @@
1
+ <div class="bg-white pulldown">
2
+ <div class="content content-boxed overflow-hidden">
3
+ <div class="row">
4
+ <div class="col-sm-8 col-sm-offset-2 col-md-6 col-md-offset-3 col-lg-4 col-lg-offset-4">
5
+ <div class="push-30-t push-50 animated fadeIn">
6
+ <%= form_for(resource, as: resource_name, url: session_path(resource_name), html: { class: 'js-validation-login form-horizontal push-30-t' }) do |f| %>
7
+ <div class="form-group">
8
+ <div class="col-xs-12">
9
+ <div class="form-material form-material-primary floating">
10
+ <%= f.email_field :email, autofocus: true, class: 'form-control' %>
11
+ <%= f.label :email %>
12
+ </div>
13
+ </div>
14
+ </div>
15
+ <div class="form-group">
16
+ <div class="col-xs-12">
17
+ <div class="form-material form-material-primary floating">
18
+ <%= f.password_field :password, autocomplete: "off", class: 'form-control' %>
19
+ <%= f.label :password %>
20
+ </div>
21
+ </div>
22
+ </div>
23
+ <div class="form-group push-30-t">
24
+ <div class="col-xs-12 col-sm-6 col-sm-offset-3 col-md-4 col-md-offset-4">
25
+ <%= f.submit "Log in", class: 'btn btn-sm btn-block btn-primary' %>
26
+ </div>
27
+ </div>
28
+ <% end %>
29
+ </div>
30
+ </div>
31
+ </div>
32
+ </div>
33
+ </div>
34
+
35
+ <%= render 'devise/shared/footer' %>
@@ -0,0 +1,3 @@
1
+ <div class="pulldown push-30-t text-center animated fadeInUp">
2
+ <small class="text-muted"><span class="js-year-copy">2017</span> © Simple Admin <%= SimpleAdmin::VERSION %></small>
3
+ </div>
@@ -0,0 +1,39 @@
1
+ require 'simple_admin/version'
2
+ require 'simple_admin/engine'
3
+
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
+ end
@@ -0,0 +1,19 @@
1
+ require 'singleton'
2
+
3
+ module SimpleAdmin
4
+ class Config
5
+ include Singleton
6
+
7
+ attr_accessor :per_page
8
+
9
+ class << self
10
+ def setup
11
+ yield(instance)
12
+ end
13
+
14
+ def per_page
15
+ instance.per_page
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,15 @@
1
+ require 'kaminari'
2
+
3
+ require 'bootstrap-sass'
4
+ require 'jquery-ui-rails'
5
+
6
+ module SimpleAdmin
7
+ class Engine < Rails::Engine
8
+ initializer 'simple_admin.precompile', group: :all do |app|
9
+ app.config.assets.precompile += [
10
+ 'simple_admin/application.css',
11
+ 'simple_admin/application.js'
12
+ ]
13
+ end
14
+ end
15
+ end