solidcrud 0.1.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 (70) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +1285 -0
  4. data/app/assets/javascripts/controllers/dashboard_controller.js +96 -0
  5. data/app/assets/javascripts/controllers/modal_controller.js +217 -0
  6. data/app/assets/javascripts/controllers/navigation_controller.js +117 -0
  7. data/app/assets/javascripts/controllers/notification_controller.js +85 -0
  8. data/app/assets/javascripts/controllers/search_controller.js +189 -0
  9. data/app/assets/javascripts/controllers/table_controller.js +272 -0
  10. data/app/assets/javascripts/solidcrud/application.js +9475 -0
  11. data/app/assets/stylesheets/solidcrud/_components.scss +267 -0
  12. data/app/assets/stylesheets/solidcrud/_forms.scss +69 -0
  13. data/app/assets/stylesheets/solidcrud/_layout.scss +149 -0
  14. data/app/assets/stylesheets/solidcrud/_tables.scss +90 -0
  15. data/app/assets/stylesheets/solidcrud/_variables.scss +21 -0
  16. data/app/assets/stylesheets/solidcrud/application.css +10 -0
  17. data/app/assets/stylesheets/solidcrud/application.css.map +1 -0
  18. data/app/assets/stylesheets/solidcrud/application.scss +10 -0
  19. data/app/assets/stylesheets/solidcrud/temp.css.map +1 -0
  20. data/app/assets/stylesheets/solidcrud/temp2.css.map +1 -0
  21. data/app/assets/stylesheets/solidcrud/webfonts/fa-brands-400.ttf +0 -0
  22. data/app/assets/stylesheets/solidcrud/webfonts/fa-brands-400.woff2 +0 -0
  23. data/app/assets/stylesheets/solidcrud/webfonts/fa-regular-400.ttf +0 -0
  24. data/app/assets/stylesheets/solidcrud/webfonts/fa-regular-400.woff2 +0 -0
  25. data/app/assets/stylesheets/solidcrud/webfonts/fa-solid-900.ttf +0 -0
  26. data/app/assets/stylesheets/solidcrud/webfonts/fa-solid-900.woff2 +0 -0
  27. data/app/assets/stylesheets/solidcrud/webfonts/fa-v4compatibility.ttf +0 -0
  28. data/app/assets/stylesheets/solidcrud/webfonts/fa-v4compatibility.woff2 +0 -0
  29. data/app/assets/stylesheets/webfonts/fa-brands-400.ttf +0 -0
  30. data/app/assets/stylesheets/webfonts/fa-brands-400.woff2 +0 -0
  31. data/app/assets/stylesheets/webfonts/fa-regular-400.ttf +0 -0
  32. data/app/assets/stylesheets/webfonts/fa-regular-400.woff2 +0 -0
  33. data/app/assets/stylesheets/webfonts/fa-solid-900.ttf +0 -0
  34. data/app/assets/stylesheets/webfonts/fa-solid-900.woff2 +0 -0
  35. data/app/assets/stylesheets/webfonts/fa-v4compatibility.ttf +0 -0
  36. data/app/assets/stylesheets/webfonts/fa-v4compatibility.woff2 +0 -0
  37. data/app/controllers/solidcrud/admin_controller.rb +215 -0
  38. data/app/controllers/solidcrud/application_controller.rb +19 -0
  39. data/app/controllers/solidcrud/assets_controller.rb +59 -0
  40. data/app/controllers/solidcrud/sessions_controller.rb +84 -0
  41. data/app/helpers/solidcrud/application_helper.rb +153 -0
  42. data/app/javascript/solidcrud/application.js +14 -0
  43. data/app/javascript/solidcrud/controllers/crud_controller.js +64 -0
  44. data/app/javascript/solidcrud/controllers/index.js +33 -0
  45. data/app/views/layouts/solidcrud/application.html.erb +70 -0
  46. data/app/views/solidcrud/admin/edit.html.erb +294 -0
  47. data/app/views/solidcrud/admin/index.html.erb +128 -0
  48. data/app/views/solidcrud/admin/model.html.erb +353 -0
  49. data/app/views/solidcrud/admin/new.html.erb +275 -0
  50. data/app/views/solidcrud/admin/shared/_dashboard_stats.html.erb +49 -0
  51. data/app/views/solidcrud/admin/shared/_edit_form_sidebar.html.erb +9 -0
  52. data/app/views/solidcrud/admin/shared/_flash_messages.html.erb +27 -0
  53. data/app/views/solidcrud/admin/shared/_full_sidebar.html.erb +56 -0
  54. data/app/views/solidcrud/admin/shared/_modal.html.erb +45 -0
  55. data/app/views/solidcrud/admin/shared/_new_form_sidebar.html.erb +6 -0
  56. data/app/views/solidcrud/admin/shared/_record_row.html.erb +35 -0
  57. data/app/views/solidcrud/admin/shared/_records_table.html.erb +85 -0
  58. data/app/views/solidcrud/sessions/new.html.erb +262 -0
  59. data/config/routes.rb +24 -0
  60. data/lib/generators/solidcrud/install/install_generator.rb +21 -0
  61. data/lib/generators/solidcrud/install/templates/INSTALL.md +80 -0
  62. data/lib/generators/solidcrud/install/templates/solidcrud.rb +31 -0
  63. data/lib/generators/solidcrud/install_generator.rb +17 -0
  64. data/lib/generators/solidcrud/templates/solidcrud.rb +4 -0
  65. data/lib/solidcrud/authentication.rb +143 -0
  66. data/lib/solidcrud/configuration.rb +64 -0
  67. data/lib/solidcrud/engine.rb +49 -0
  68. data/lib/solidcrud/version.rb +5 -0
  69. data/lib/solidcrud.rb +10 -0
  70. metadata +177 -0
@@ -0,0 +1,80 @@
1
+ # SolidCRUD Installation Guide
2
+
3
+ ## Authentication Configuration
4
+
5
+ SolidCRUD supports multiple authentication methods. Choose the one that best fits your application:
6
+
7
+ ### Option 1: Basic HTTP Authentication (Simplest)
8
+
9
+ Add this to `config/initializers/solidcrud.rb`:
10
+
11
+ ```ruby
12
+ Solidcrud.setup do |config|
13
+ config.basic_auth_username = 'admin'
14
+ config.basic_auth_password = 'secure_password_here'
15
+ end
16
+ ```
17
+
18
+ ### Option 2: Custom Authentication Method
19
+
20
+ For integration with existing authentication systems:
21
+
22
+ ```ruby
23
+ Solidcrud.setup do |config|
24
+ config.authenticate_with do
25
+ # Your authentication logic here
26
+ # Return true if authenticated, false otherwise
27
+
28
+ # Example with Devise:
29
+ if defined?(Devise)
30
+ authenticate_user!
31
+ true
32
+ else
33
+ false
34
+ end
35
+ end
36
+ end
37
+ ```
38
+
39
+ ### Option 3: Automatic Devise Integration
40
+
41
+ If you have Devise installed, SolidCRUD will automatically detect and use it. No configuration needed!
42
+
43
+ ### Option 4: No Authentication (Development Only)
44
+
45
+ For development/testing, you can disable authentication:
46
+
47
+ ```ruby
48
+ Solidcrud.setup do |config|
49
+ # No authentication configured - allows access without login
50
+ # WARNING: Not recommended for production!
51
+ end
52
+ ```
53
+
54
+ ## Routes
55
+
56
+ SolidCRUD mounts at `/admin` by default. Add this to your `config/routes.rb`:
57
+
58
+ ```ruby
59
+ Rails.application.routes.draw do
60
+ mount Solidcrud::Engine => '/admin'
61
+ # ... your other routes
62
+ end
63
+ ```
64
+
65
+ ## Usage
66
+
67
+ After configuration, visit `/admin` to access the SolidCRUD interface.
68
+
69
+ ## Security Notes
70
+
71
+ - Always configure authentication for production environments
72
+ - Use strong passwords for basic auth
73
+ - Consider using HTTPS in production
74
+ - Regularly rotate credentials
75
+
76
+ ## Troubleshooting
77
+
78
+ - If you see "Authentication not configured" - check your initializer
79
+ - For Devise integration issues - ensure your user model includes authentication
80
+ - Session issues - check that sessions are enabled in your Rails app
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Configure SolidCRUD authentication
4
+ Solidcrud.setup do |config|
5
+ # Exclude models from admin interface (optional)
6
+ # config.models_exclude = ['ModelName']
7
+
8
+ # Configure authentication methods (choose one or more):
9
+
10
+ # Option 1: Basic HTTP Authentication (simple username/password)
11
+ # config.basic_auth_username = 'admin'
12
+ # config.basic_auth_password = 'password'
13
+
14
+ # Option 2: Custom authentication method (for integration with existing auth systems)
15
+ # config.authenticate_with do
16
+ # # Your custom authentication logic here
17
+ # # Return true if authenticated, false otherwise
18
+ # # This block has access to controller methods like current_user, session, etc.
19
+ #
20
+ # # Example with Devise:
21
+ # # authenticate_user! if defined?(Devise)
22
+ #
23
+ # # Example with custom auth:
24
+ # # redirect_to login_path unless session[:user_id]
25
+ #
26
+ # true # or false
27
+ # end
28
+
29
+ # Option 3: Automatic Devise integration (if Devise is installed)
30
+ # No configuration needed - SolidCRUD will automatically detect and use Devise
31
+ end
@@ -0,0 +1,17 @@
1
+ require 'rails/generators'
2
+
3
+ module Solidcrud
4
+ module Generators
5
+ class InstallGenerator < Rails::Generators::Base
6
+ source_root File.expand_path('templates', __dir__)
7
+
8
+ def mount_engine
9
+ route "mount Solidcrud::Engine => '/admin'"
10
+ end
11
+
12
+ def copy_initializer
13
+ template 'solidcrud.rb', 'config/initializers/solidcrud.rb'
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,4 @@
1
+ # Configure SolidCRUD
2
+ Solidcrud.setup do |config|
3
+ # Example: config.models_exclude = ["ActiveStorage::Blob"]
4
+ end
@@ -0,0 +1,143 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Solidcrud
4
+ module Authentication
5
+ extend ActiveSupport::Concern
6
+
7
+ included do
8
+ before_action :authenticate_solidcrud_user!
9
+ helper_method :current_solidcrud_user, :solidcrud_user_signed_in?
10
+ end
11
+
12
+ private
13
+
14
+ def authenticate_solidcrud_user!
15
+ return if solidcrud_user_signed_in?
16
+
17
+ # Check authentication based on configured type
18
+ case Solidcrud.config.auth_type
19
+ when :basic_auth
20
+ authenticate_with_basic_auth
21
+ when :devise
22
+ authenticate_with_devise
23
+ when :jwt
24
+ authenticate_with_jwt
25
+ when :custom
26
+ authenticate_with_custom_method
27
+ else
28
+ # Fallback to legacy behavior
29
+ if respond_to?(:authenticate_with_devise, true) && authenticate_with_devise
30
+ return
31
+ elsif respond_to?(:authenticate_with_custom_method, true) && authenticate_with_custom_method
32
+ return
33
+ elsif Solidcrud.config.basic_auth_enabled?
34
+ authenticate_with_basic_auth
35
+ else
36
+ # No authentication configured - allow access (for development)
37
+ Rails.logger.warn "SolidCRUD: No authentication configured. Consider setting up authentication for production use."
38
+ end
39
+ end
40
+ end
41
+
42
+ def current_solidcrud_user
43
+ @current_solidcrud_user ||= begin
44
+ user = nil
45
+
46
+ # Try different methods to get current user
47
+ if respond_to?(:current_user, true)
48
+ user = current_user
49
+ elsif respond_to?(:current_admin_user, true)
50
+ user = current_admin_user
51
+ elsif respond_to?(:current_solidcrud_user_from_session, true)
52
+ user = current_solidcrud_user_from_session
53
+ end
54
+
55
+ user
56
+ end
57
+ end
58
+
59
+ def solidcrud_user_signed_in?
60
+ current_solidcrud_user.present?
61
+ end
62
+
63
+ def authenticate_with_devise
64
+ return false unless defined?(Devise)
65
+
66
+ # Check if there's a user signed in via Devise
67
+ if respond_to?(:authenticate_user!, true)
68
+ authenticate_user!
69
+ return true
70
+ elsif respond_to?(:authenticate_admin_user!, true)
71
+ authenticate_admin_user!
72
+ return true
73
+ end
74
+
75
+ false
76
+ end
77
+
78
+ def authenticate_with_custom_method
79
+ # Allow host app to define custom authentication
80
+ if Solidcrud.config.authenticate_method.is_a?(Proc)
81
+ instance_exec(&Solidcrud.config.authenticate_method)
82
+ return true
83
+ end
84
+
85
+ false
86
+ end
87
+
88
+ def authenticate_with_jwt
89
+ return false unless Solidcrud.config.jwt_enabled?
90
+
91
+ # Check for JWT in Authorization header
92
+ auth_header = request.headers['Authorization']
93
+ if auth_header&.match?(/^Bearer /)
94
+ token = auth_header.sub(/^Bearer /, '')
95
+ begin
96
+ # Decode and verify JWT
97
+ payload = JWT.decode(token, Solidcrud.config.jwt_secret)[0]
98
+
99
+ # Check token expiration
100
+ if payload['exp'] && payload['exp'] < Time.now.to_i
101
+ Rails.logger.warn "SolidCRUD: JWT token expired"
102
+ return false
103
+ end
104
+
105
+ # Store user info in session for current request
106
+ session[:solidcrud_user_id] = payload['user_id'] || payload['sub'] || 'jwt_user'
107
+ session[:solidcrud_user_email] = payload['email']
108
+ session[:solidcrud_user_role] = payload['role']
109
+
110
+ return true
111
+ rescue JWT::DecodeError => e
112
+ Rails.logger.warn "SolidCRUD: JWT decode error: #{e.message}"
113
+ return false
114
+ end
115
+ end
116
+
117
+ false
118
+ end
119
+
120
+ def current_solidcrud_user_from_session
121
+ # Simple session-based authentication for basic auth
122
+ return unless session[:solidcrud_user_id]
123
+
124
+ # For basic auth, we just store a flag
125
+ { id: session[:solidcrud_user_id], authenticated: true }
126
+ end
127
+
128
+ def sign_in_solidcrud_user(user = nil)
129
+ if user
130
+ session[:solidcrud_user_id] = user.try(:id) || 'basic_auth_user'
131
+ @current_solidcrud_user = user
132
+ else
133
+ session[:solidcrud_user_id] = 'basic_auth_user'
134
+ @current_solidcrud_user = { id: 'basic_auth_user', authenticated: true }
135
+ end
136
+ end
137
+
138
+ def sign_out_solidcrud_user
139
+ session.delete(:solidcrud_user_id)
140
+ @current_solidcrud_user = nil
141
+ end
142
+ end
143
+ end
@@ -0,0 +1,64 @@
1
+ module Solidcrud
2
+ class << self
3
+ attr_accessor :config
4
+
5
+ def setup
6
+ self.config ||= Configuration.new
7
+ yield(config)
8
+ end
9
+ end
10
+
11
+ class Configuration
12
+ attr_accessor :models_exclude
13
+ attr_accessor :authenticate_method
14
+ attr_accessor :basic_auth_username, :basic_auth_password
15
+ attr_accessor :auth_type
16
+ attr_accessor :jwt_secret
17
+ attr_accessor :devise_scope
18
+
19
+ def initialize
20
+ @models_exclude = []
21
+ @authenticate_method = nil
22
+ @basic_auth_username = nil
23
+ @basic_auth_password = nil
24
+ @auth_type = :custom # Default to custom authentication
25
+ @jwt_secret = nil
26
+ @devise_scope = :user
27
+ end
28
+
29
+ def basic_auth_enabled?
30
+ @basic_auth_username.present? && @basic_auth_password.present?
31
+ end
32
+
33
+ def jwt_enabled?
34
+ @jwt_secret.present?
35
+ end
36
+
37
+ def devise_enabled?
38
+ @auth_type == :devise
39
+ end
40
+
41
+ def authenticate_with(&block)
42
+ @authenticate_method = block
43
+ end
44
+
45
+ # Authentication type setters
46
+ def use_basic_auth
47
+ @auth_type = :basic_auth
48
+ end
49
+
50
+ def use_devise(scope: :user)
51
+ @auth_type = :devise
52
+ @devise_scope = scope
53
+ end
54
+
55
+ def use_jwt
56
+ @auth_type = :jwt
57
+ end
58
+
59
+ def use_custom(&block)
60
+ @auth_type = :custom
61
+ @authenticate_method = block
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails/engine'
4
+ require 'turbo-rails'
5
+
6
+ module Solidcrud
7
+ class Engine < ::Rails::Engine
8
+ isolate_namespace Solidcrud
9
+
10
+ config.paths['db/migrate'] = 'lib/solidcrud/db/migrate'
11
+
12
+ config.autoload_paths << root.join('lib')
13
+
14
+ # Register turbo_stream MIME type
15
+ Mime::Type.register "text/vnd.turbo-stream.html", :turbo_stream
16
+
17
+ initializer "solidcrud.assets" do |app|
18
+ # Add SolidCRUD assets to the asset paths if assets are enabled
19
+ if app.config.respond_to?(:assets)
20
+ app.config.assets.paths << root.join('app', 'assets').to_s
21
+ end
22
+
23
+ # Enable asset serving for API-only apps
24
+ app.config.serve_static_files = true
25
+ end
26
+
27
+ initializer "solidcrud.asset_routes" do |app|
28
+ # Asset routes are now defined in config/routes.rb
29
+ # This initializer is kept for future asset configuration
30
+ end
31
+
32
+ initializer "solidcrud.view_helpers" do
33
+ ActiveSupport.on_load(:action_view) do
34
+ include Solidcrud::ApplicationHelper
35
+ end
36
+ end
37
+
38
+ initializer "solidcrud.csrf_protection" do |app|
39
+ # Enable CSRF protection for SolidCRUD routes
40
+ app.config.action_controller.forgery_protection_origin_check = false
41
+ app.config.action_controller.allow_forgery_protection = true
42
+ end
43
+
44
+ initializer "solidcrud.configuration" do |app|
45
+ # Initialize configuration
46
+ Solidcrud.config ||= Solidcrud::Configuration.new
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Solidcrud
4
+ VERSION = "0.1.0"
5
+ end
data/lib/solidcrud.rb ADDED
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+
4
+ require "solidcrud/version"
5
+ require "solidcrud/engine"
6
+ require "solidcrud/configuration"
7
+
8
+ module Solidcrud
9
+ # Your code goes here...
10
+ end
metadata ADDED
@@ -0,0 +1,177 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: solidcrud
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - SolidCRUD Team
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: rails
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '6.0'
19
+ - - "<"
20
+ - !ruby/object:Gem::Version
21
+ version: '9.0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ version: '6.0'
29
+ - - "<"
30
+ - !ruby/object:Gem::Version
31
+ version: '9.0'
32
+ - !ruby/object:Gem::Dependency
33
+ name: turbo-rails
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '1.0'
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: '1.0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: stimulus-rails
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: '1.0'
53
+ type: :runtime
54
+ prerelease: false
55
+ version_requirements: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '1.0'
60
+ - !ruby/object:Gem::Dependency
61
+ name: jwt
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '2.0'
67
+ type: :runtime
68
+ prerelease: false
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: '2.0'
74
+ description: SolidCRUD provides a plug-and-play /admin dashboard for Rails applications.
75
+ It auto-detects all ActiveRecord models and provides a complete CRUD interface with
76
+ a modern, responsive Bootstrap UI. Features include search, pagination, intelligent
77
+ form fields, and zero configuration required.
78
+ email:
79
+ - hello@solidcrud.com
80
+ executables: []
81
+ extensions: []
82
+ extra_rdoc_files: []
83
+ files:
84
+ - LICENSE
85
+ - README.md
86
+ - app/assets/javascripts/controllers/dashboard_controller.js
87
+ - app/assets/javascripts/controllers/modal_controller.js
88
+ - app/assets/javascripts/controllers/navigation_controller.js
89
+ - app/assets/javascripts/controllers/notification_controller.js
90
+ - app/assets/javascripts/controllers/search_controller.js
91
+ - app/assets/javascripts/controllers/table_controller.js
92
+ - app/assets/javascripts/solidcrud/application.js
93
+ - app/assets/stylesheets/solidcrud/_components.scss
94
+ - app/assets/stylesheets/solidcrud/_forms.scss
95
+ - app/assets/stylesheets/solidcrud/_layout.scss
96
+ - app/assets/stylesheets/solidcrud/_tables.scss
97
+ - app/assets/stylesheets/solidcrud/_variables.scss
98
+ - app/assets/stylesheets/solidcrud/application.css
99
+ - app/assets/stylesheets/solidcrud/application.css.map
100
+ - app/assets/stylesheets/solidcrud/application.scss
101
+ - app/assets/stylesheets/solidcrud/temp.css.map
102
+ - app/assets/stylesheets/solidcrud/temp2.css.map
103
+ - app/assets/stylesheets/solidcrud/webfonts/fa-brands-400.ttf
104
+ - app/assets/stylesheets/solidcrud/webfonts/fa-brands-400.woff2
105
+ - app/assets/stylesheets/solidcrud/webfonts/fa-regular-400.ttf
106
+ - app/assets/stylesheets/solidcrud/webfonts/fa-regular-400.woff2
107
+ - app/assets/stylesheets/solidcrud/webfonts/fa-solid-900.ttf
108
+ - app/assets/stylesheets/solidcrud/webfonts/fa-solid-900.woff2
109
+ - app/assets/stylesheets/solidcrud/webfonts/fa-v4compatibility.ttf
110
+ - app/assets/stylesheets/solidcrud/webfonts/fa-v4compatibility.woff2
111
+ - app/assets/stylesheets/webfonts/fa-brands-400.ttf
112
+ - app/assets/stylesheets/webfonts/fa-brands-400.woff2
113
+ - app/assets/stylesheets/webfonts/fa-regular-400.ttf
114
+ - app/assets/stylesheets/webfonts/fa-regular-400.woff2
115
+ - app/assets/stylesheets/webfonts/fa-solid-900.ttf
116
+ - app/assets/stylesheets/webfonts/fa-solid-900.woff2
117
+ - app/assets/stylesheets/webfonts/fa-v4compatibility.ttf
118
+ - app/assets/stylesheets/webfonts/fa-v4compatibility.woff2
119
+ - app/controllers/solidcrud/admin_controller.rb
120
+ - app/controllers/solidcrud/application_controller.rb
121
+ - app/controllers/solidcrud/assets_controller.rb
122
+ - app/controllers/solidcrud/sessions_controller.rb
123
+ - app/helpers/solidcrud/application_helper.rb
124
+ - app/javascript/solidcrud/application.js
125
+ - app/javascript/solidcrud/controllers/crud_controller.js
126
+ - app/javascript/solidcrud/controllers/index.js
127
+ - app/views/layouts/solidcrud/application.html.erb
128
+ - app/views/solidcrud/admin/edit.html.erb
129
+ - app/views/solidcrud/admin/index.html.erb
130
+ - app/views/solidcrud/admin/model.html.erb
131
+ - app/views/solidcrud/admin/new.html.erb
132
+ - app/views/solidcrud/admin/shared/_dashboard_stats.html.erb
133
+ - app/views/solidcrud/admin/shared/_edit_form_sidebar.html.erb
134
+ - app/views/solidcrud/admin/shared/_flash_messages.html.erb
135
+ - app/views/solidcrud/admin/shared/_full_sidebar.html.erb
136
+ - app/views/solidcrud/admin/shared/_modal.html.erb
137
+ - app/views/solidcrud/admin/shared/_new_form_sidebar.html.erb
138
+ - app/views/solidcrud/admin/shared/_record_row.html.erb
139
+ - app/views/solidcrud/admin/shared/_records_table.html.erb
140
+ - app/views/solidcrud/sessions/new.html.erb
141
+ - config/routes.rb
142
+ - lib/generators/solidcrud/install/install_generator.rb
143
+ - lib/generators/solidcrud/install/templates/INSTALL.md
144
+ - lib/generators/solidcrud/install/templates/solidcrud.rb
145
+ - lib/generators/solidcrud/install_generator.rb
146
+ - lib/generators/solidcrud/templates/solidcrud.rb
147
+ - lib/solidcrud.rb
148
+ - lib/solidcrud/authentication.rb
149
+ - lib/solidcrud/configuration.rb
150
+ - lib/solidcrud/engine.rb
151
+ - lib/solidcrud/version.rb
152
+ homepage: https://github.com/solidcrud/solidcrud
153
+ licenses:
154
+ - MIT
155
+ metadata:
156
+ homepage_uri: https://github.com/solidcrud/solidcrud
157
+ source_code_uri: https://github.com/solidcrud/solidcrud
158
+ changelog_uri: https://github.com/solidcrud/solidcrud/blob/main/CHANGELOG.md
159
+ bug_tracker_uri: https://github.com/solidcrud/solidcrud/issues
160
+ rdoc_options: []
161
+ require_paths:
162
+ - lib
163
+ required_ruby_version: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: 2.7.0
168
+ required_rubygems_version: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ requirements: []
174
+ rubygems_version: 3.6.9
175
+ specification_version: 4
176
+ summary: Zero-config admin dashboard for Rails 6-8 with CRUD for all models.
177
+ test_files: []