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.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/README.md +1285 -0
- data/app/assets/javascripts/controllers/dashboard_controller.js +96 -0
- data/app/assets/javascripts/controllers/modal_controller.js +217 -0
- data/app/assets/javascripts/controllers/navigation_controller.js +117 -0
- data/app/assets/javascripts/controllers/notification_controller.js +85 -0
- data/app/assets/javascripts/controllers/search_controller.js +189 -0
- data/app/assets/javascripts/controllers/table_controller.js +272 -0
- data/app/assets/javascripts/solidcrud/application.js +9475 -0
- data/app/assets/stylesheets/solidcrud/_components.scss +267 -0
- data/app/assets/stylesheets/solidcrud/_forms.scss +69 -0
- data/app/assets/stylesheets/solidcrud/_layout.scss +149 -0
- data/app/assets/stylesheets/solidcrud/_tables.scss +90 -0
- data/app/assets/stylesheets/solidcrud/_variables.scss +21 -0
- data/app/assets/stylesheets/solidcrud/application.css +10 -0
- data/app/assets/stylesheets/solidcrud/application.css.map +1 -0
- data/app/assets/stylesheets/solidcrud/application.scss +10 -0
- data/app/assets/stylesheets/solidcrud/temp.css.map +1 -0
- data/app/assets/stylesheets/solidcrud/temp2.css.map +1 -0
- data/app/assets/stylesheets/solidcrud/webfonts/fa-brands-400.ttf +0 -0
- data/app/assets/stylesheets/solidcrud/webfonts/fa-brands-400.woff2 +0 -0
- data/app/assets/stylesheets/solidcrud/webfonts/fa-regular-400.ttf +0 -0
- data/app/assets/stylesheets/solidcrud/webfonts/fa-regular-400.woff2 +0 -0
- data/app/assets/stylesheets/solidcrud/webfonts/fa-solid-900.ttf +0 -0
- data/app/assets/stylesheets/solidcrud/webfonts/fa-solid-900.woff2 +0 -0
- data/app/assets/stylesheets/solidcrud/webfonts/fa-v4compatibility.ttf +0 -0
- data/app/assets/stylesheets/solidcrud/webfonts/fa-v4compatibility.woff2 +0 -0
- data/app/assets/stylesheets/webfonts/fa-brands-400.ttf +0 -0
- data/app/assets/stylesheets/webfonts/fa-brands-400.woff2 +0 -0
- data/app/assets/stylesheets/webfonts/fa-regular-400.ttf +0 -0
- data/app/assets/stylesheets/webfonts/fa-regular-400.woff2 +0 -0
- data/app/assets/stylesheets/webfonts/fa-solid-900.ttf +0 -0
- data/app/assets/stylesheets/webfonts/fa-solid-900.woff2 +0 -0
- data/app/assets/stylesheets/webfonts/fa-v4compatibility.ttf +0 -0
- data/app/assets/stylesheets/webfonts/fa-v4compatibility.woff2 +0 -0
- data/app/controllers/solidcrud/admin_controller.rb +215 -0
- data/app/controllers/solidcrud/application_controller.rb +19 -0
- data/app/controllers/solidcrud/assets_controller.rb +59 -0
- data/app/controllers/solidcrud/sessions_controller.rb +84 -0
- data/app/helpers/solidcrud/application_helper.rb +153 -0
- data/app/javascript/solidcrud/application.js +14 -0
- data/app/javascript/solidcrud/controllers/crud_controller.js +64 -0
- data/app/javascript/solidcrud/controllers/index.js +33 -0
- data/app/views/layouts/solidcrud/application.html.erb +70 -0
- data/app/views/solidcrud/admin/edit.html.erb +294 -0
- data/app/views/solidcrud/admin/index.html.erb +128 -0
- data/app/views/solidcrud/admin/model.html.erb +353 -0
- data/app/views/solidcrud/admin/new.html.erb +275 -0
- data/app/views/solidcrud/admin/shared/_dashboard_stats.html.erb +49 -0
- data/app/views/solidcrud/admin/shared/_edit_form_sidebar.html.erb +9 -0
- data/app/views/solidcrud/admin/shared/_flash_messages.html.erb +27 -0
- data/app/views/solidcrud/admin/shared/_full_sidebar.html.erb +56 -0
- data/app/views/solidcrud/admin/shared/_modal.html.erb +45 -0
- data/app/views/solidcrud/admin/shared/_new_form_sidebar.html.erb +6 -0
- data/app/views/solidcrud/admin/shared/_record_row.html.erb +35 -0
- data/app/views/solidcrud/admin/shared/_records_table.html.erb +85 -0
- data/app/views/solidcrud/sessions/new.html.erb +262 -0
- data/config/routes.rb +24 -0
- data/lib/generators/solidcrud/install/install_generator.rb +21 -0
- data/lib/generators/solidcrud/install/templates/INSTALL.md +80 -0
- data/lib/generators/solidcrud/install/templates/solidcrud.rb +31 -0
- data/lib/generators/solidcrud/install_generator.rb +17 -0
- data/lib/generators/solidcrud/templates/solidcrud.rb +4 -0
- data/lib/solidcrud/authentication.rb +143 -0
- data/lib/solidcrud/configuration.rb +64 -0
- data/lib/solidcrud/engine.rb +49 -0
- data/lib/solidcrud/version.rb +5 -0
- data/lib/solidcrud.rb +10 -0
- 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,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
|
data/lib/solidcrud.rb
ADDED
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: []
|