cm-admin 0.2.0 → 0.3.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.
Files changed (117) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +12 -0
  3. data/.rspec +3 -0
  4. data/.travis.yml +6 -0
  5. data/Gemfile +6 -1
  6. data/Gemfile.lock +118 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +6 -40
  9. data/app/assets/images/logo.png +0 -0
  10. data/{lib/generators/cm_admin/templates/assets/stylesheets → app/assets/stylesheets/cm_admin}/base/auth.scss +16 -6
  11. data/app/assets/stylesheets/cm_admin/base/common.scss +237 -0
  12. data/app/assets/stylesheets/cm_admin/base/filters.scss +199 -0
  13. data/app/assets/stylesheets/cm_admin/base/form.scss +262 -0
  14. data/app/assets/stylesheets/cm_admin/base/main-nav.scss +47 -0
  15. data/app/assets/stylesheets/cm_admin/base/navbar.scss +67 -0
  16. data/app/assets/stylesheets/cm_admin/base/quicksearch.scss +69 -0
  17. data/app/assets/stylesheets/cm_admin/base/scaffold.scss +61 -0
  18. data/app/assets/stylesheets/cm_admin/base/show.scss +54 -0
  19. data/app/assets/stylesheets/cm_admin/base/sidebar.scss +225 -0
  20. data/app/assets/stylesheets/cm_admin/base/table.scss +303 -0
  21. data/app/assets/stylesheets/cm_admin/base/tabs.scss +26 -0
  22. data/app/assets/stylesheets/cm_admin/cm_admin.css.scss +26 -0
  23. data/app/assets/stylesheets/cm_admin/components/_alerts.scss +101 -0
  24. data/app/assets/stylesheets/cm_admin/components/_buttons.scss +135 -0
  25. data/app/assets/stylesheets/cm_admin/components/_dropdown-popup.scss +141 -0
  26. data/app/assets/stylesheets/cm_admin/components/_input.scss +274 -0
  27. data/app/assets/stylesheets/cm_admin/components/_modal.scss +34 -0
  28. data/app/assets/stylesheets/cm_admin/components/_range.scss +20 -0
  29. data/app/assets/stylesheets/cm_admin/components/_status-tag.scss +67 -0
  30. data/app/assets/stylesheets/cm_admin/components/index.scss +7 -0
  31. data/app/assets/stylesheets/cm_admin/dependency/bootstrap.min.css +7 -0
  32. data/app/assets/stylesheets/cm_admin/helpers/_mixins.scss +20 -0
  33. data/app/assets/stylesheets/cm_admin/helpers/_variable.scss +86 -0
  34. data/app/assets/stylesheets/cm_admin/helpers/index.scss +2 -0
  35. data/app/controllers/cm_admin/application_controller.rb +6 -0
  36. data/app/controllers/cm_admin/exports_controller.rb +16 -0
  37. data/app/controllers/cm_admin/main_controller.rb +8 -0
  38. data/app/helpers/cm_admin/application_helper.rb +11 -0
  39. data/app/javascript/packs/cm_admin/application.js +9 -0
  40. data/app/javascript/packs/cm_admin/filters.js +32 -0
  41. data/app/javascript/packs/cm_admin/scaffolds.js +14 -0
  42. data/app/views/cm_admin/main/_cm_pagy_nav.html.slim +23 -0
  43. data/app/views/cm_admin/main/_filters.html.slim +10 -0
  44. data/app/views/cm_admin/main/_table.html.slim +59 -0
  45. data/app/views/cm_admin/main/_top_navbar.html.slim +25 -0
  46. data/app/views/cm_admin/main/dashboard.html.slim +1 -0
  47. data/app/views/cm_admin/main/edit.html.slim +19 -0
  48. data/app/views/cm_admin/main/index.html.slim +9 -0
  49. data/app/views/cm_admin/main/new.html.slim +22 -0
  50. data/app/views/cm_admin/main/show.html.slim +13 -0
  51. data/app/views/layouts/_left_sidebar_nav.html.slim +30 -0
  52. data/app/views/layouts/cm_admin.html.slim +18 -0
  53. data/bin/console +1 -0
  54. data/bin/webpack +18 -0
  55. data/bin/webpack-dev-server +18 -0
  56. data/cm_admin.gemspec +20 -31
  57. data/{lib → config}/.DS_Store +0 -0
  58. data/config/initializers/active_record_extension.rb +9 -0
  59. data/config/routes.rb +18 -0
  60. data/config/webpack/development.js +5 -0
  61. data/config/webpack/environment.js +12 -0
  62. data/config/webpack/production.js +5 -0
  63. data/config/webpack/test.js +5 -0
  64. data/config/webpacker.yml +92 -0
  65. data/lib/c.png +0 -0
  66. data/lib/cm_admin.rb +31 -2
  67. data/lib/cm_admin/constants.rb +33 -0
  68. data/lib/cm_admin/engine.rb +38 -0
  69. data/lib/cm_admin/model.rb +262 -0
  70. data/lib/cm_admin/models/action.rb +22 -0
  71. data/lib/cm_admin/models/actions/blocks.rb +25 -0
  72. data/lib/cm_admin/models/blocks.rb +19 -0
  73. data/lib/cm_admin/models/column.rb +16 -0
  74. data/lib/cm_admin/models/export.rb +43 -0
  75. data/lib/cm_admin/models/field.rb +14 -0
  76. data/lib/cm_admin/models/filter.rb +30 -0
  77. data/lib/cm_admin/utils.rb +67 -0
  78. data/lib/cm_admin/version.rb +1 -1
  79. data/lib/cm_admin/view_helpers.rb +72 -0
  80. data/lib/cm_admin/view_helpers/field_column_helper.rb +23 -0
  81. data/lib/cm_admin/view_helpers/form_field_helper.rb +16 -0
  82. data/lib/cm_admin/view_helpers/form_helper.rb +55 -0
  83. data/lib/cm_admin/view_helpers/navigation_helper.rb +18 -0
  84. data/lib/cm_admin/view_helpers/page_info_helper.rb +21 -0
  85. data/lib/generators/cm_admin/install_generator.rb +10 -32
  86. data/lib/generators/cm_admin/templates/cm_admin_initializer.rb +4 -0
  87. data/lib/tasks/webpack_install.rake +63 -0
  88. data/package.json +18 -0
  89. data/postcss.config.js +12 -0
  90. data/yarn-error.log +44 -0
  91. data/yarn.lock +6903 -0
  92. metadata +123 -48
  93. data/CODE_OF_CONDUCT.md +0 -74
  94. data/lib/generators/cm_admin/USAGE +0 -8
  95. data/lib/generators/cm_admin/templates/assets/images/cm.png +0 -0
  96. data/lib/generators/cm_admin/templates/assets/stylesheets/application.css.scss +0 -33
  97. data/lib/generators/cm_admin/templates/assets/stylesheets/base/_variable.scss +0 -14
  98. data/lib/generators/cm_admin/templates/assets/stylesheets/base/form.scss +0 -125
  99. data/lib/generators/cm_admin/templates/assets/stylesheets/base/input-styles.scss +0 -72
  100. data/lib/generators/cm_admin/templates/assets/stylesheets/base/main-nav.scss +0 -79
  101. data/lib/generators/cm_admin/templates/assets/stylesheets/base/scaffold.scss +0 -95
  102. data/lib/generators/cm_admin/templates/assets/stylesheets/base/show.scss +0 -88
  103. data/lib/generators/cm_admin/templates/assets/stylesheets/base/sidebar.scss +0 -69
  104. data/lib/generators/cm_admin/templates/assets/stylesheets/base/table.scss +0 -246
  105. data/lib/generators/cm_admin/templates/layouts/_navbar.html.slim +0 -8
  106. data/lib/generators/cm_admin/templates/layouts/_side_navbar.html.slim +0 -12
  107. data/lib/generators/cm_admin/templates/layouts/application.html.slim +0 -20
  108. data/lib/generators/cm_admin/templates/layouts/initializer.rb +0 -2
  109. data/lib/generators/cm_admin/templates/views/_form.erb +0 -67
  110. data/lib/generators/cm_admin/templates/views/_table.erb +0 -22
  111. data/lib/generators/cm_admin/templates/views/edit.erb +0 -10
  112. data/lib/generators/cm_admin/templates/views/index.erb +0 -11
  113. data/lib/generators/cm_admin/templates/views/new.erb +0 -10
  114. data/lib/generators/cm_admin/templates/views/reset_password.erb +0 -12
  115. data/lib/generators/cm_admin/templates/views/show.erb +0 -18
  116. data/lib/generators/cm_admin/templates/views/sign_in.erb +0 -18
  117. data/lib/generators/cm_admin/view_generator.rb +0 -78
@@ -0,0 +1,25 @@
1
+ .cm-navbar
2
+ .cm-navbar__lhs
3
+ .bread-crumb-area
4
+ = yield :bread_crumb
5
+ .nav-title-area
6
+ p.title-text = @model.current_action.page_title
7
+ p.title-sub-text = @model.current_action.page_description
8
+ - if @model.current_action.name == 'index'
9
+ .cm-navbar__rhs
10
+ .export-container
11
+ .dropdown
12
+ button.secondary-btn type="button" data-toggle="dropdown"
13
+ span
14
+ i.fa.fa-arrow-down
15
+ span
16
+ | Export
17
+ span
18
+ i.fa.fa-angle-down
19
+ ul.dropdown-menu.export-popup
20
+ li
21
+ .popup-option.pointer data-toggle="modal" data-target="#exportmodal"
22
+ span Export
23
+
24
+ a.primary-btn.ml-2 href="#{page_url('new')}"
25
+ | Add
@@ -0,0 +1 @@
1
+ | This is the dashboard page
@@ -0,0 +1,19 @@
1
+ == render 'cm_admin/main/top_navbar'
2
+ .form-page
3
+ .form-page__inner
4
+ .form-wrapper
5
+ .flag-alert.mb-4
6
+ p.alert-header
7
+ span
8
+ i.fa.fa-exclamation-triangle
9
+ | Attention
10
+ .alert-body
11
+ p.body-title
12
+ | Error heading
13
+ p.body-info
14
+ | The details of the error would be explained in this line. It could also be listed out as points on below the other if there are multiple reasons.
15
+ .form-container
16
+ p.form-title
17
+ | Section heading
18
+ .form-container__inner
19
+ = generate_form(@ar_object, @model)
@@ -0,0 +1,9 @@
1
+ == render 'cm_admin/main/top_navbar'
2
+ .index-page
3
+ - if @model.filters.present?
4
+ .index-page__filters
5
+ == render partial: 'cm_admin/main/filters', locals: { filters: @model.filters }
6
+ .index-page__table-container
7
+ == render 'cm_admin/main/table'
8
+
9
+ = column_pop_up(@model)
@@ -0,0 +1,22 @@
1
+ == render 'cm_admin/main/top_navbar'
2
+ .form-page
3
+ .form-page__inner
4
+ .form-wrapper
5
+ - if @ar_object.errors.present?
6
+ .flag-alert.mb-4
7
+ p.alert-header
8
+ span
9
+ i.fa.fa-exclamation-triangle
10
+ | Attention
11
+ .alert-body
12
+ p.body-title
13
+ | Error saving #{@ar_object.class}
14
+ p.body-info
15
+ ul
16
+ - @ar_object.errors.full_messages.each do |error_message|
17
+ li = error_message
18
+ .form-container
19
+ p.form-title
20
+ | Section heading
21
+ .form-container__inner
22
+ = generate_form(@ar_object, @model)
@@ -0,0 +1,13 @@
1
+ == render 'cm_admin/main/top_navbar'
2
+ .show-page
3
+ .show-page__inner
4
+ .info-section
5
+ p.section-heading
6
+ | Section heading
7
+ .paper
8
+ - @model.available_fields[:show].each do |field|
9
+ .info-split
10
+ .info-split__lhs
11
+ p = field.label.present? ? field.label.to_s : field.field_name.to_s.titleize
12
+ .info-split__rhs
13
+ p = @ar_object.send(field.field_name)
@@ -0,0 +1,30 @@
1
+ .cm-sidebar
2
+ .cm-sidebar__logo-header
3
+ = image_tag('/assets/logo.png', alt: 'logo image')
4
+
5
+ .cm-sidebar__quick-search
6
+ span
7
+ i.fa.fa-search
8
+ input type="text" placeholder="Quick Links"
9
+
10
+ .cm-sidebar__menu-wrapper
11
+ = sidebar_navigation
12
+
13
+ .cm-sidebar__footer
14
+ .profile-name
15
+ span.profile-avatar J
16
+ | John Doe
17
+ .profile-popup.hidden
18
+ .profile-info
19
+ .profile-info__left
20
+ p.name-text John Doe
21
+ p.email-text johndoe@commutatus.com
22
+ .profile-info__right J
23
+ .page-options
24
+ = link_to '/', class: 'page-link'
25
+ | Profile
26
+ = link_to '', class: 'page-link'
27
+ | Settings
28
+ .auth-option
29
+ = link_to '/sign-out', method: :delete, class: 'auth-link'
30
+ | Logout
@@ -0,0 +1,18 @@
1
+ doctype html
2
+ html
3
+ head
4
+ title
5
+ | Admin
6
+ meta[name="viewport" content="width=device-width,initial-scale=1"]
7
+ = csrf_meta_tags
8
+ = csp_meta_tag
9
+ = stylesheet_link_tag 'cm_admin/cm_admin', media: 'all', 'data-turbolinks-track': 'reload'
10
+ = javascript_pack_tag 'cm_admin/application', 'data-turbolinks-track': 'reload'
11
+ body
12
+ - flash.each do |type, msg|
13
+ .alert class="alert-#{type}"
14
+ = msg
15
+ .cm-admin
16
+ = render 'layouts/left_sidebar_nav'
17
+ .panel-area
18
+ = yield
data/bin/console CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require "bundler/setup"
4
+ require "cm_admin"
4
5
 
5
6
  # You can add fixtures and/or initialization code here to make experimenting
6
7
  # with your gem easier. You can also use a different console, if you like.
data/bin/webpack ADDED
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ ENV["RAILS_ENV"] ||= ENV["RACK_ENV"] || "development"
4
+ ENV["NODE_ENV"] ||= "development"
5
+
6
+ require "pathname"
7
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
8
+ Pathname.new(__FILE__).realpath)
9
+
10
+ require "bundler/setup"
11
+
12
+ require "webpacker"
13
+ require "webpacker/webpack_runner"
14
+
15
+ APP_ROOT = File.expand_path("..", __dir__)
16
+ Dir.chdir(APP_ROOT) do
17
+ Webpacker::WebpackRunner.run(ARGV)
18
+ end
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ ENV["RAILS_ENV"] ||= ENV["RACK_ENV"] || "development"
4
+ ENV["NODE_ENV"] ||= "development"
5
+
6
+ require "pathname"
7
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
8
+ Pathname.new(__FILE__).realpath)
9
+
10
+ require "bundler/setup"
11
+
12
+ require "webpacker"
13
+ require "webpacker/dev_server_runner"
14
+
15
+ APP_ROOT = File.expand_path("..", __dir__)
16
+ Dir.chdir(APP_ROOT) do
17
+ Webpacker::DevServerRunner.run(ARGV)
18
+ end
data/cm_admin.gemspec CHANGED
@@ -1,44 +1,33 @@
1
-
2
- lib = File.expand_path("../lib", __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "cm_admin/version"
1
+ require_relative 'lib/cm_admin/version'
5
2
 
6
3
  Gem::Specification.new do |spec|
7
4
  spec.name = "cm-admin"
8
5
  spec.version = CmAdmin::VERSION
9
- spec.date = '2020-05-08'
10
- spec.authors = ["Anbazhagan Palani"]
11
- spec.email = ["anbu@commutatus.com"]
6
+ spec.authors = ["sajinmp", "anbublacky", "manikandan0603"]
7
+ spec.email = ["sajinprasadkm@gmail.com", "anbublacky@gmail.com"]
12
8
 
13
- spec.summary = "Setup basic requied components for admin management."
9
+ spec.summary = %q{This is an admin panel gem}
10
+ spec.description = %q{This is an admin panel gem}
14
11
  spec.homepage = "https://github.com/commutatus/cm-admin"
15
12
  spec.license = "MIT"
13
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
16
14
 
17
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
18
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
19
- end
15
+ # spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
20
16
 
21
- # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
22
- # to allow pushing to a single host or delete this section to allow pushing to any host.
23
- # if spec.respond_to?(:metadata)
24
- # spec.metadata["allowed_push_host"] = "Set to 'http://mygemserver.com'"
25
- #
26
- # spec.metadata["homepage_uri"] = spec.homepage
27
- # spec.metadata["source_code_uri"] = "Put your gem's public repo URL here."
28
- # spec.metadata["changelog_uri"] = "Put your gem's CHANGELOG.md URL here."
29
- # else
30
- # raise "RubyGems 2.0 or newer is required to protect against " \
31
- # "public gem pushes."
32
- # end
17
+ spec.metadata["homepage_uri"] = spec.homepage
18
+ spec.metadata["source_code_uri"] = "https://github.com/commutatus/cm-admin"
19
+ # spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
33
20
 
34
21
  # Specify which files should be added to the gem when it is released.
35
22
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
36
-
37
- # spec.bindir = "exe"
38
- # spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
39
- # spec.require_paths = ["lib"]
40
-
41
- spec.add_development_dependency "bundler", "~> 2.0"
42
- spec.add_development_dependency "rake", "~> 10.0"
43
- spec.add_development_dependency "rspec", "~> 3.0"
23
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
24
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
25
+ end
26
+ spec.bindir = "exe"
27
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
+ spec.require_paths = ["lib"]
29
+ spec.add_runtime_dependency 'pagy', '~> 3.13'
30
+ spec.add_runtime_dependency 'slim', '~> 4.1.0'
31
+ spec.add_runtime_dependency 'webpacker', '~> 5.2.1'
32
+ spec.add_runtime_dependency 'axlsx_rails', '~> 0.6.1'
44
33
  end
Binary file
@@ -0,0 +1,9 @@
1
+ ActiveSupport.on_load(:active_record) do
2
+ module ActiveRecord
3
+ class Base
4
+ def self.cm_admin(&block)
5
+ CmAdmin.config(self, &block)
6
+ end
7
+ end
8
+ end
9
+ end
data/config/routes.rb ADDED
@@ -0,0 +1,18 @@
1
+ CmAdmin::Engine.routes.draw do
2
+ controller 'main' do
3
+ get '/', action: 'dashboard'
4
+ end
5
+
6
+ controller 'exports' do
7
+ post '/export_to_file', action: 'export'
8
+ end
9
+
10
+ # Defining action routes for each model
11
+ CmAdmin.cm_admin_models.each do |model|
12
+ model.available_actions.each do |act|
13
+ scope model.name.tableize do
14
+ send(act.verb, act.path.present? ? act.path : act.name, to: "#{model.name.underscore}##{act.name}")
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,5 @@
1
+ process.env.NODE_ENV = process.env.NODE_ENV || 'development'
2
+
3
+ const environment = require('./environment')
4
+
5
+ module.exports = environment.toWebpackConfig()
@@ -0,0 +1,12 @@
1
+ const { environment } = require('@rails/webpacker')
2
+
3
+ const webpack = require('webpack')
4
+ environment.plugins.prepend('Provide',
5
+ new webpack.ProvidePlugin({
6
+ $: 'jquery/src/jquery',
7
+ jQuery: 'jquery/src/jquery',
8
+ Popper: ['popper.js', 'default']
9
+ })
10
+ )
11
+
12
+ module.exports = environment
@@ -0,0 +1,5 @@
1
+ process.env.NODE_ENV = process.env.NODE_ENV || 'production'
2
+
3
+ const environment = require('./environment')
4
+
5
+ module.exports = environment.toWebpackConfig()
@@ -0,0 +1,5 @@
1
+ process.env.NODE_ENV = process.env.NODE_ENV || 'development'
2
+
3
+ const environment = require('./environment')
4
+
5
+ module.exports = environment.toWebpackConfig()
@@ -0,0 +1,92 @@
1
+ # Note: You must restart bin/webpack-dev-server for changes to take effect
2
+
3
+ default: &default
4
+ source_path: app/javascript
5
+ source_entry_path: packs
6
+ public_root_path: public
7
+ public_output_path: cm-admin-packs
8
+ cache_path: tmp/cache/webpacker
9
+ webpack_compile_output: true
10
+
11
+ # Additional paths webpack should lookup modules
12
+ # ['app/assets', 'engine/foo/app/assets']
13
+ additional_paths: []
14
+
15
+ # Reload manifest.json on all requests so we reload latest compiled packs
16
+ cache_manifest: false
17
+
18
+ # Extract and emit a css file
19
+ extract_css: false
20
+
21
+ static_assets_extensions:
22
+ - .jpg
23
+ - .jpeg
24
+ - .png
25
+ - .gif
26
+ - .tiff
27
+ - .ico
28
+ - .svg
29
+ - .eot
30
+ - .otf
31
+ - .ttf
32
+ - .woff
33
+ - .woff2
34
+
35
+ extensions:
36
+ - .mjs
37
+ - .js
38
+ - .sass
39
+ - .scss
40
+ - .css
41
+ - .module.sass
42
+ - .module.scss
43
+ - .module.css
44
+ - .png
45
+ - .svg
46
+ - .gif
47
+ - .jpeg
48
+ - .jpg
49
+
50
+ development:
51
+ <<: *default
52
+ compile: true
53
+
54
+ # Reference: https://webpack.js.org/configuration/dev-server/
55
+ dev_server:
56
+ https: false
57
+ host: localhost
58
+ port: 3035
59
+ public: localhost:3035
60
+ hmr: false
61
+ # Inline should be set to true if using HMR
62
+ inline: true
63
+ overlay: true
64
+ compress: true
65
+ disable_host_check: true
66
+ use_local_ip: false
67
+ quiet: false
68
+ pretty: false
69
+ headers:
70
+ 'Access-Control-Allow-Origin': '*'
71
+ watch_options:
72
+ ignored: '**/node_modules/**'
73
+
74
+
75
+ test:
76
+ <<: *default
77
+ compile: true
78
+
79
+ # Compile test packs to a separate directory
80
+ public_output_path: packs-test
81
+
82
+ production:
83
+ <<: *default
84
+
85
+ # Production depends on precompilation of packs prior to booting for performance.
86
+ compile: false
87
+
88
+ # Extract and emit a css file
89
+ extract_css: true
90
+
91
+ # Cache manifest.json for performance
92
+ cache_manifest: true
data/lib/c.png ADDED
Binary file
data/lib/cm_admin.rb CHANGED
@@ -1,6 +1,35 @@
1
- require "cm_admin/version"
1
+ require 'slim'
2
+ require 'cm_admin/version'
3
+ require 'cm_admin/engine'
4
+ require 'cm_admin/model'
5
+ require 'cm_admin/view_helpers'
6
+ require 'cm_admin/utils'
2
7
 
3
8
  module CmAdmin
4
9
  class Error < StandardError; end
5
- # Your code goes here...
10
+
11
+ mattr_accessor :layout
12
+ mattr_accessor :included_models, :cm_admin_models
13
+ @@included_models ||= []
14
+ @@cm_admin_models ||= []
15
+
16
+ class << self
17
+ def webpacker
18
+ @webpacker ||= ::Webpacker::Instance.new(
19
+ root_path: CmAdmin::Engine.root,
20
+ config_path: CmAdmin::Engine.root.join('config', 'webpacker.yml')
21
+ )
22
+ end
23
+
24
+ def setup
25
+ yield self
26
+ end
27
+
28
+ def config(entity, &block)
29
+ if entity.is_a?(Class)
30
+ @@cm_admin_models << CmAdmin::Model.new(entity, &block)
31
+ end
32
+ end
33
+ end
34
+
6
35
  end