adminterface 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.
- checksums.yaml +4 -4
- data/LICENSE.md +19 -109
- data/README.md +33 -27
- data/Rakefile +1 -1
- data/app/assets/stylesheets/adminterface/components/_form.scss +1 -0
- data/app/assets/stylesheets/adminterface/mixins/_utilities.scss +4 -0
- data/app/assets/stylesheets/adminterface/vendors/bootstrap/_all.scss +1 -0
- data/app/assets/stylesheets/adminterface/vendors/bootstrap/components/_breadcrumb.scss +1 -0
- data/app/assets/stylesheets/adminterface/vendors/flatpickr/{main.scss → _main.scss} +6 -0
- data/app/javascript/adminterface/initializers/header_toggler.js +1 -1
- data/app/javascript/adminterface/initializers/plugins/flatpickr.js +1 -1
- data/app/javascript/adminterface/initializers/plugins/input_counter.js +1 -1
- data/app/javascript/adminterface/initializers/plugins/password_visibility.js +1 -1
- data/app/javascript/adminterface/initializers/plugins/tom_select.js +1 -1
- data/app/javascript/adminterface/lib/__tests__/checkbox_toggler.html +5 -0
- data/app/javascript/adminterface/lib/__tests__/checkbox_toggler.spec.js +110 -0
- data/app/javascript/adminterface/lib/__tests__/detached_dropdown.spec.js +69 -70
- data/app/javascript/adminterface/lib/__tests__/filters.spec.js +0 -1
- data/app/javascript/adminterface/lib/__tests__/has_many.html +14 -0
- data/app/javascript/adminterface/lib/__tests__/has_many.spec.js +224 -0
- data/app/javascript/adminterface/lib/__tests__/header_toggler.html +2 -0
- data/app/javascript/adminterface/lib/__tests__/header_toggler.spec.js +212 -0
- data/app/javascript/adminterface/lib/__tests__/per_page.spec.js +75 -0
- data/app/javascript/adminterface/lib/__tests__/utils.spec.js +0 -1
- data/app/javascript/adminterface/lib/has_many.js +41 -38
- data/app/javascript/adminterface/lib/header_toggler.js +10 -8
- data/app/views/layouts/active_admin_logged_out.html.erb +1 -1
- data/lib/adminterface/configs.rb +5 -1
- data/lib/adminterface/engine.rb +0 -7
- data/lib/adminterface/extensions/base_controller.rb +16 -12
- data/lib/adminterface/extensions/namespace_settings.rb +3 -0
- data/lib/adminterface/extensions/view_helpers/alert_helper.rb +3 -1
- data/lib/adminterface/extensions/views/components/dropdown_menu.rb +4 -1
- data/lib/adminterface/extensions/views/components/menu_item.rb +8 -3
- data/lib/adminterface/extensions/views/components/tabs.rb +38 -13
- data/lib/adminterface/extensions/views/header.rb +2 -1
- data/lib/adminterface/extensions/views/pages/base.rb +4 -1
- data/lib/adminterface/initializers/configurations.rb +1 -1
- data/lib/adminterface/version.rb +1 -1
- data/lib/adminterface.rb +0 -31
- data/lib/generators/adminterface/comments/comments_generator.rb +4 -0
- data/lib/generators/adminterface/configs/configs_generator.rb +2 -2
- data/lib/generators/adminterface/install/install_generator.rb +21 -23
- data/lib/generators/adminterface/views/views_generator.rb +2 -2
- data/lib/generators/adminterface/webpacker/webpacker_generator.rb +20 -6
- metadata +16 -14
- data/lib/adminterface/encryption/encryptor.rb +0 -26
- data/lib/adminterface/license.rb +0 -18
- data/lib/adminterface/licensing/base.rb +0 -99
- data/lib/adminterface/licensing/commercial.rb +0 -7
- data/lib/adminterface/licensing/notice.rb +0 -54
- data/lib/adminterface/licensing/personal.rb +0 -13
- data/lib/adminterface/public.pem +0 -9
@@ -9,11 +9,19 @@ module Adminterface
|
|
9
9
|
|
10
10
|
def set_resource_scope
|
11
11
|
session[:resource_scope] = {
|
12
|
-
controller:
|
13
|
-
action: action_name
|
12
|
+
controller: controller_path,
|
13
|
+
action: action_name_pairing(action_name)
|
14
14
|
}
|
15
15
|
end
|
16
16
|
|
17
|
+
def action_name_pairing(name)
|
18
|
+
case name
|
19
|
+
when "create" then "new"
|
20
|
+
when "update" then "edit"
|
21
|
+
else name
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
17
25
|
def reset_tab
|
18
26
|
params.delete(:tab)
|
19
27
|
params.delete(:anchor_id)
|
@@ -26,30 +34,26 @@ module Adminterface
|
|
26
34
|
def same_controller?
|
27
35
|
return true if resource_scope[:controller].blank?
|
28
36
|
|
29
|
-
resource_scope[:controller] ==
|
37
|
+
resource_scope[:controller] == controller_path
|
30
38
|
end
|
31
39
|
|
32
40
|
def same_action?
|
33
|
-
|
34
|
-
|
35
|
-
case resource_scope[:action]
|
36
|
-
when "edit", "update" then %w[edit update].include? action_name
|
37
|
-
else action_name == resource_scope[:action]
|
38
|
-
end
|
41
|
+
resource_scope[:action].presence &&
|
42
|
+
action_name_pairing(action_name).eql?(resource_scope[:action])
|
39
43
|
end
|
40
44
|
|
41
45
|
def resource_scope
|
42
|
-
session.fetch(:resource_scope, {})
|
46
|
+
session.fetch(:resource_scope, {}).with_indifferent_access
|
43
47
|
end
|
44
48
|
end
|
45
49
|
end
|
46
50
|
end
|
47
51
|
|
48
52
|
# Overwrite activeadmin/lib/active_admin/base_controller.rb
|
49
|
-
|
53
|
+
ActiveAdmin.after_load do
|
50
54
|
ActiveAdmin::BaseController.class_eval do
|
51
55
|
prepend Adminterface::Extensions::BaseController
|
52
56
|
before_action :reset_tab, if: :should_reset_tab?
|
53
|
-
|
57
|
+
before_action :set_resource_scope
|
54
58
|
end
|
55
59
|
end
|
@@ -4,7 +4,9 @@ module Adminterface
|
|
4
4
|
module AlertHelper
|
5
5
|
def flashes_html
|
6
6
|
flash.each do |type, msg|
|
7
|
-
concat(content_tag(:div, msg,
|
7
|
+
concat(content_tag(:div, msg,
|
8
|
+
class: "flash flash_#{type} alert #{flash_css_classes[type.to_sym]}".squish,
|
9
|
+
role: "alert"))
|
8
10
|
end
|
9
11
|
nil
|
10
12
|
end
|
@@ -47,7 +47,10 @@ ActiveAdmin::Views::DropdownMenu.class_eval do
|
|
47
47
|
button_options[:class] = "#{button_options[:class]} dropdown-toggle".squish
|
48
48
|
options[:class] = "#{options[:class]} dropdown".squish
|
49
49
|
|
50
|
-
@button = build_button(
|
50
|
+
@button = build_button(
|
51
|
+
name,
|
52
|
+
button_options.merge("data-bs-toggle": "dropdown", role: "button", "aria-expanded": "false")
|
53
|
+
)
|
51
54
|
@menu = build_menu(menu_options)
|
52
55
|
|
53
56
|
super(options)
|
@@ -15,8 +15,13 @@ module Adminterface
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
def
|
19
|
-
|
18
|
+
def current_item_options(item)
|
19
|
+
return {} unless item.current?(assigns[:current_tab])
|
20
|
+
|
21
|
+
{
|
22
|
+
class: "#{item.html_options[:class]} active".squish,
|
23
|
+
"aria-current": "page"
|
24
|
+
}
|
20
25
|
end
|
21
26
|
end
|
22
27
|
end
|
@@ -51,7 +56,7 @@ ActiveAdmin::Views::MenuItem.class_eval do
|
|
51
56
|
end
|
52
57
|
|
53
58
|
if url
|
54
|
-
item_options = item.html_options.merge(
|
59
|
+
item_options = item.html_options.merge(current_item_options(item)).delete_if { |_k, v| v.blank? }
|
55
60
|
text_node link_to(menu_label, url, **item_options)
|
56
61
|
else
|
57
62
|
span menu_label, item.html_options.merge(class: "navbar-text")
|
@@ -6,20 +6,16 @@ module Adminterface
|
|
6
6
|
def build_menu_item(title, options, &_block)
|
7
7
|
fragment = options.fetch(:id, fragmentize(title))
|
8
8
|
html_options = options.fetch(:html_options, {})
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
link_to title, url_for(tab: fragment, anchor: id, anchor_id: id), class: toggler_class(fragment)
|
13
|
-
else
|
14
|
-
link_to title, "##{fragment}", class: toggler_class(fragment), data: {"bs-toggle": "tab", "bs-target": "##{fragment}"}
|
15
|
-
end
|
9
|
+
|
10
|
+
li html_options.merge(class: "nav-item", role: "presentation") do
|
11
|
+
@http ? link_to_http(title, fragment) : link_to_js(title, fragment)
|
16
12
|
end
|
17
13
|
end
|
18
14
|
|
19
15
|
def build_content_item(title, options, &block)
|
20
16
|
fragment = options.fetch(:id, fragmentize(title))
|
21
|
-
options = options.reverse_merge(id:
|
22
|
-
div(options.merge(
|
17
|
+
options = options.reverse_merge(id: fragment, "aria-labelledby": "#{fragment}-tab")
|
18
|
+
div(options.merge(tab_pane_options(fragment)), &block)
|
23
19
|
end
|
24
20
|
|
25
21
|
def default_css_class
|
@@ -39,12 +35,41 @@ module Adminterface
|
|
39
35
|
|
40
36
|
private
|
41
37
|
|
42
|
-
def
|
43
|
-
|
38
|
+
def link_to_js(title, fragment)
|
39
|
+
options = toggler_options(fragment).merge(data: {"bs-toggle": "tab", "bs-target": "##{fragment}"})
|
40
|
+
link_to(title, "##{fragment}", **options)
|
41
|
+
end
|
42
|
+
|
43
|
+
def link_to_http(title, fragment)
|
44
|
+
params[:tab] ||= @default_tab || fragment
|
45
|
+
|
46
|
+
link_to(title,
|
47
|
+
url_for(controller: resource_scope[:controller],
|
48
|
+
action: resource_scope[:action], tab: fragment, anchor: id, anchor_id: id),
|
49
|
+
**toggler_options(fragment))
|
50
|
+
end
|
51
|
+
|
52
|
+
def resource_scope
|
53
|
+
session.fetch(:resource_scope, {}).with_indifferent_access
|
54
|
+
end
|
55
|
+
|
56
|
+
def toggler_options(fragment)
|
57
|
+
defaults = {id: "#{fragment}-tab", "aria-controls": fragment}
|
58
|
+
options =
|
59
|
+
if current_tab?(fragment)
|
60
|
+
{class: "nav-link active", "aria-selected": "true"}
|
61
|
+
else
|
62
|
+
{class: "nav-link", "aria-selected": "false"}
|
63
|
+
end
|
64
|
+
|
65
|
+
defaults.merge(options)
|
44
66
|
end
|
45
67
|
|
46
|
-
def
|
47
|
-
|
68
|
+
def tab_pane_options(fragment)
|
69
|
+
{
|
70
|
+
class: "tab-pane #{current_tab?(fragment) ? "active" : nil}".squish,
|
71
|
+
role: "tabpanel"
|
72
|
+
}
|
48
73
|
end
|
49
74
|
|
50
75
|
def current_tab?(fragment)
|
@@ -26,7 +26,8 @@ module Adminterface
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def navbar_toggler
|
29
|
-
button(class: "navbar-toggler", 'data-bs-target': "##{ID}",
|
29
|
+
button(class: "navbar-toggler", 'data-bs-target': "##{ID}",
|
30
|
+
'data-bs-toggle': "collapse", "aria-expanded": "false") do
|
30
31
|
span class: "navbar-toggler-icon"
|
31
32
|
end
|
32
33
|
end
|
@@ -5,6 +5,8 @@ module Adminterface
|
|
5
5
|
module Base
|
6
6
|
def build(*args)
|
7
7
|
super
|
8
|
+
set_attribute :dir,
|
9
|
+
render_or_call_method_or_proc_on(self, active_admin_config.lang_dir(self))
|
8
10
|
build_breakpoint_helpers
|
9
11
|
build_meta_tags_for_js
|
10
12
|
end
|
@@ -102,7 +104,8 @@ module Adminterface
|
|
102
104
|
div class: "flashes" do
|
103
105
|
flash_messages.each do |type, messages|
|
104
106
|
[*messages].each do |message|
|
105
|
-
div class: "flash flash_#{type} alert #{flash_css_classes[type.to_sym]} #{flash_dismissible_class}".squish
|
107
|
+
div class: "flash flash_#{type} alert #{flash_css_classes[type.to_sym]} #{flash_dismissible_class}".squish,
|
108
|
+
role: "alert" do
|
106
109
|
text_node(message)
|
107
110
|
button(class: "btn-close", "data-bs-dismiss": "alert", "aria-label": "Close") if flash_dismissible?
|
108
111
|
end
|
@@ -25,7 +25,7 @@ module Adminterface
|
|
25
25
|
|
26
26
|
meta_tags = {
|
27
27
|
version: Adminterface::VERSION,
|
28
|
-
viewport: "width=device-width, height=device-height, initial-scale=1.0
|
28
|
+
viewport: "width=device-width, height=device-height, initial-scale=1.0"
|
29
29
|
}
|
30
30
|
|
31
31
|
config.meta_tags_for_logged_out_pages = meta_tags
|
data/lib/adminterface/version.rb
CHANGED
data/lib/adminterface.rb
CHANGED
@@ -7,7 +7,6 @@ module Adminterface
|
|
7
7
|
autoload :VERSION, "adminterface/version"
|
8
8
|
autoload :Configs, "adminterface/configs"
|
9
9
|
autoload :Data, "adminterface/data"
|
10
|
-
autoload :License, "adminterface/license"
|
11
10
|
autoload :Callable, "adminterface/callable"
|
12
11
|
|
13
12
|
# Load Initializers
|
@@ -20,36 +19,6 @@ module Adminterface
|
|
20
19
|
autoload :ViewHelpers, "adminterface/initializers/view_helpers"
|
21
20
|
autoload :Views, "adminterface/initializers/views"
|
22
21
|
end
|
23
|
-
|
24
|
-
module Licensing
|
25
|
-
autoload :Notice, "adminterface/licensing/notice"
|
26
|
-
autoload :Commercial, "adminterface/licensing/commercial"
|
27
|
-
autoload :Personal, "adminterface/licensing/personal"
|
28
|
-
end
|
29
|
-
|
30
|
-
module Encryption
|
31
|
-
autoload :Encryptor, "adminterface/encryption/encryptor"
|
32
|
-
end
|
33
|
-
|
34
|
-
# License key
|
35
|
-
mattr_accessor :license_key
|
36
|
-
@@license_key = nil
|
37
|
-
|
38
|
-
def self.setup
|
39
|
-
yield self
|
40
|
-
end
|
41
|
-
|
42
|
-
def self.rails6_and_up?
|
43
|
-
Rails::VERSION::MAJOR >= 6
|
44
|
-
end
|
45
|
-
|
46
|
-
def self.cache_store
|
47
|
-
if Rails.cache.instance_of?(ActiveSupport::Cache::NullStore)
|
48
|
-
ActiveSupport::Cache::MemoryStore.new
|
49
|
-
else
|
50
|
-
Rails.cache
|
51
|
-
end
|
52
|
-
end
|
53
22
|
end
|
54
23
|
|
55
24
|
require "adminterface/engine"
|
@@ -11,6 +11,10 @@ module Adminterface
|
|
11
11
|
ActiveRecord::Migration.next_migration_number(next_migration_number)
|
12
12
|
end
|
13
13
|
|
14
|
+
def install_action_text
|
15
|
+
rails_command "action_text:install"
|
16
|
+
end
|
17
|
+
|
14
18
|
def create_initializer
|
15
19
|
template "active_admin_comment_action_text.rb",
|
16
20
|
"config/initializers/active_admin_comment_action_text.rb"
|
@@ -2,10 +2,10 @@ module Adminterface
|
|
2
2
|
module Generators
|
3
3
|
class ConfigsGenerator < Rails::Generators::Base
|
4
4
|
desc "Copies config files into a directory for customization"
|
5
|
-
argument :namespace, type: :string, default: "Admin"
|
6
|
-
|
7
5
|
source_root File.expand_path("templates", __dir__)
|
8
6
|
|
7
|
+
argument :namespace, type: :string, default: "Admin"
|
8
|
+
|
9
9
|
def copy
|
10
10
|
directory Adminterface::Engine.root.join("lib/adminterface/fixtures"),
|
11
11
|
"config/adminterface/#{namespace.underscore}/"
|
@@ -4,37 +4,35 @@ module Adminterface
|
|
4
4
|
desc "Installs Adminterface and generates necessary files and migrations"
|
5
5
|
source_root File.expand_path("templates", __dir__)
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
class_option :skip_comments,
|
8
|
+
type: :boolean, default: false,
|
9
|
+
desc: "Skip installation of ActionText for comments"
|
10
|
+
class_option :skip_examples,
|
11
|
+
type: :boolean, default: false,
|
12
|
+
desc: "Skip adding sample admin files"
|
13
|
+
class_option :use_webpacker,
|
14
|
+
type: :boolean, default: true,
|
15
|
+
desc: "Install assets with webpacker"
|
16
|
+
class_option :version,
|
17
|
+
aliases: "-v", type: :string, default: Adminterface::VERSION,
|
18
|
+
desc: "Install with a specific version"
|
10
19
|
|
11
20
|
def install_assets
|
12
|
-
|
13
|
-
generate "adminterface:webpacker"
|
14
|
-
end
|
15
|
-
end
|
21
|
+
return unless options[:use_webpacker]
|
16
22
|
|
17
|
-
|
18
|
-
generate "adminterface:comments"
|
23
|
+
generate "adminterface:webpacker -v #{options[:version]}"
|
19
24
|
end
|
20
25
|
|
21
|
-
def
|
22
|
-
|
23
|
-
end
|
26
|
+
def install_comments
|
27
|
+
return if options[:skip_comments]
|
24
28
|
|
25
|
-
|
29
|
+
generate "adminterface:comments"
|
30
|
+
end
|
26
31
|
|
27
|
-
def
|
28
|
-
return
|
32
|
+
def add_examples
|
33
|
+
return if options[:skip_examples]
|
29
34
|
|
30
|
-
|
31
|
-
if yes?("Install webpacker and continue?")
|
32
|
-
gem "webpacker"
|
33
|
-
rails_command "webpacker:install"
|
34
|
-
yield
|
35
|
-
else
|
36
|
-
puts Rainbow("Installation aborted").red
|
37
|
-
end
|
35
|
+
template "dashboard.rb", "app/admin/dashboard.rb"
|
38
36
|
end
|
39
37
|
end
|
40
38
|
end
|
@@ -2,13 +2,13 @@ module Adminterface
|
|
2
2
|
module Generators
|
3
3
|
class ViewsGenerator < Rails::Generators::Base
|
4
4
|
desc "Copies view templates for customization"
|
5
|
-
|
6
5
|
source_root Adminterface::Engine.root.join("app/views")
|
7
6
|
|
8
7
|
def copy
|
9
8
|
directory "active_admin", "app/views/active_admin"
|
10
9
|
directory "kaminari/active_admin", "app/views/kaminari/active_admin"
|
11
|
-
directory "layouts/active_admin_logged_out.html.erb",
|
10
|
+
directory "layouts/active_admin_logged_out.html.erb",
|
11
|
+
"app/views/layouts/active_admin_logged_out.html.erb"
|
12
12
|
end
|
13
13
|
end
|
14
14
|
end
|
@@ -2,11 +2,24 @@ module Adminterface
|
|
2
2
|
module Generators
|
3
3
|
class WebpackerGenerator < Rails::Generators::Base
|
4
4
|
desc "Install Stylesheets and JavaScripts using Webpacker"
|
5
|
+
source_root File.expand_path("templates", __dir__)
|
6
|
+
|
5
7
|
class_option :version,
|
6
8
|
aliases: "-v", type: :string, default: Adminterface::VERSION,
|
7
9
|
desc: "Install with a specific npm package version"
|
8
10
|
|
9
|
-
|
11
|
+
def install_webpacker
|
12
|
+
return if webpacker_installed?
|
13
|
+
|
14
|
+
puts Rainbow("Adminterface requires webpacker:").yellow
|
15
|
+
if yes?("Install webpacker and continue?")
|
16
|
+
gem "webpacker"
|
17
|
+
rails_command "webpacker:install"
|
18
|
+
else
|
19
|
+
puts Rainbow("Installation aborted").red
|
20
|
+
abort
|
21
|
+
end
|
22
|
+
end
|
10
23
|
|
11
24
|
def install_packages
|
12
25
|
insert_into_file "config/webpack/environment.js", after: /require\(('|")@rails\/webpacker\1\);?\n/ do
|
@@ -18,7 +31,7 @@ module Adminterface
|
|
18
31
|
EOF
|
19
32
|
end
|
20
33
|
|
21
|
-
run "yarn add @cmdbrew/adminterface
|
34
|
+
run "yarn add @cmdbrew/adminterface@#{npm_version}"
|
22
35
|
end
|
23
36
|
|
24
37
|
def install_assets
|
@@ -44,11 +57,12 @@ module Adminterface
|
|
44
57
|
|
45
58
|
private
|
46
59
|
|
47
|
-
def
|
48
|
-
|
49
|
-
|
60
|
+
def webpacker_installed?
|
61
|
+
defined?(Webpacker)
|
62
|
+
end
|
50
63
|
|
51
|
-
|
64
|
+
def npm_version
|
65
|
+
options[:version].gsub(".rc", "-rc")
|
52
66
|
end
|
53
67
|
end
|
54
68
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: adminterface
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- I-Lung Lee
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-11-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activeadmin
|
@@ -80,7 +80,8 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0.18'
|
83
|
-
description:
|
83
|
+
description: A gem that brings Bootstrap 5, advanced customizability, and other goodies
|
84
|
+
into ActiveAdmin
|
84
85
|
email:
|
85
86
|
- ilung@hey.com
|
86
87
|
executables: []
|
@@ -143,6 +144,7 @@ files:
|
|
143
144
|
- app/assets/stylesheets/adminterface/vendors/_all.scss
|
144
145
|
- app/assets/stylesheets/adminterface/vendors/bootstrap/_all.scss
|
145
146
|
- app/assets/stylesheets/adminterface/vendors/bootstrap/_variables.scss
|
147
|
+
- app/assets/stylesheets/adminterface/vendors/bootstrap/components/_breadcrumb.scss
|
146
148
|
- app/assets/stylesheets/adminterface/vendors/bootstrap/components/_buttons.scss
|
147
149
|
- app/assets/stylesheets/adminterface/vendors/bootstrap/components/_dropdowns.scss
|
148
150
|
- app/assets/stylesheets/adminterface/vendors/bootstrap/components/_navs.scss
|
@@ -150,8 +152,8 @@ files:
|
|
150
152
|
- app/assets/stylesheets/adminterface/vendors/bootstrap/content/_tables.scss
|
151
153
|
- app/assets/stylesheets/adminterface/vendors/bootstrap/content/_typography.scss
|
152
154
|
- app/assets/stylesheets/adminterface/vendors/flatpickr/_all.scss
|
155
|
+
- app/assets/stylesheets/adminterface/vendors/flatpickr/_main.scss
|
153
156
|
- app/assets/stylesheets/adminterface/vendors/flatpickr/_variables.scss
|
154
|
-
- app/assets/stylesheets/adminterface/vendors/flatpickr/main.scss
|
155
157
|
- app/assets/stylesheets/adminterface/vendors/tom_select/_all.scss
|
156
158
|
- app/assets/stylesheets/adminterface/vendors/tom_select/_main.scss
|
157
159
|
- app/assets/stylesheets/adminterface/vendors/trix/_actiontext.scss
|
@@ -174,8 +176,15 @@ files:
|
|
174
176
|
- app/javascript/adminterface/initializers/plugins/input_counter.js
|
175
177
|
- app/javascript/adminterface/initializers/plugins/password_visibility.js
|
176
178
|
- app/javascript/adminterface/initializers/plugins/tom_select.js
|
179
|
+
- app/javascript/adminterface/lib/__tests__/checkbox_toggler.html
|
180
|
+
- app/javascript/adminterface/lib/__tests__/checkbox_toggler.spec.js
|
177
181
|
- app/javascript/adminterface/lib/__tests__/detached_dropdown.spec.js
|
178
182
|
- app/javascript/adminterface/lib/__tests__/filters.spec.js
|
183
|
+
- app/javascript/adminterface/lib/__tests__/has_many.html
|
184
|
+
- app/javascript/adminterface/lib/__tests__/has_many.spec.js
|
185
|
+
- app/javascript/adminterface/lib/__tests__/header_toggler.html
|
186
|
+
- app/javascript/adminterface/lib/__tests__/header_toggler.spec.js
|
187
|
+
- app/javascript/adminterface/lib/__tests__/per_page.spec.js
|
179
188
|
- app/javascript/adminterface/lib/__tests__/utils.spec.js
|
180
189
|
- app/javascript/adminterface/lib/batch_actions.js
|
181
190
|
- app/javascript/adminterface/lib/checkbox_toggler.js
|
@@ -234,7 +243,6 @@ files:
|
|
234
243
|
- lib/adminterface/data/base.rb
|
235
244
|
- lib/adminterface/data/countries.rb
|
236
245
|
- lib/adminterface/data/time_zones.rb
|
237
|
-
- lib/adminterface/encryption/encryptor.rb
|
238
246
|
- lib/adminterface/engine.rb
|
239
247
|
- lib/adminterface/extensions/base_controller.rb
|
240
248
|
- lib/adminterface/extensions/batch_actions/resource_extension.rb
|
@@ -329,12 +337,6 @@ files:
|
|
329
337
|
- lib/adminterface/initializers/resource.rb
|
330
338
|
- lib/adminterface/initializers/view_helpers.rb
|
331
339
|
- lib/adminterface/initializers/views.rb
|
332
|
-
- lib/adminterface/license.rb
|
333
|
-
- lib/adminterface/licensing/base.rb
|
334
|
-
- lib/adminterface/licensing/commercial.rb
|
335
|
-
- lib/adminterface/licensing/notice.rb
|
336
|
-
- lib/adminterface/licensing/personal.rb
|
337
|
-
- lib/adminterface/public.pem
|
338
340
|
- lib/adminterface/version.rb
|
339
341
|
- lib/generators/adminterface/comments/comments_generator.rb
|
340
342
|
- lib/generators/adminterface/comments/templates/README
|
@@ -353,7 +355,7 @@ files:
|
|
353
355
|
- lib/tasks/adminterface_tasks.rake
|
354
356
|
homepage: https://adminterface.io
|
355
357
|
licenses:
|
356
|
-
-
|
358
|
+
- MIT
|
357
359
|
metadata:
|
358
360
|
homepage_uri: https://adminterface.io
|
359
361
|
source_code_uri: https://github.com/cmdbrew/adminterface
|
@@ -374,8 +376,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
374
376
|
- !ruby/object:Gem::Version
|
375
377
|
version: '0'
|
376
378
|
requirements: []
|
377
|
-
rubygems_version: 3.2.
|
379
|
+
rubygems_version: 3.2.32
|
378
380
|
signing_key:
|
379
381
|
specification_version: 4
|
380
|
-
summary:
|
382
|
+
summary: Build functional and beautiful web apps faster with ActiveAdmin
|
381
383
|
test_files: []
|
@@ -1,26 +0,0 @@
|
|
1
|
-
module Adminterface
|
2
|
-
module Encryption
|
3
|
-
class Encryptor
|
4
|
-
extend Callable
|
5
|
-
attr_reader :message
|
6
|
-
|
7
|
-
def initialize(message)
|
8
|
-
@message = message
|
9
|
-
end
|
10
|
-
|
11
|
-
def call
|
12
|
-
Base64.encode64(public_key.public_encrypt(message))
|
13
|
-
end
|
14
|
-
|
15
|
-
private
|
16
|
-
|
17
|
-
def public_key_file
|
18
|
-
@public_key_file ||= File.read(Engine.root.join("lib/adminterface/public.pem"))
|
19
|
-
end
|
20
|
-
|
21
|
-
def public_key
|
22
|
-
@public_key ||= OpenSSL::PKey::RSA.new(public_key_file)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
data/lib/adminterface/license.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
module Adminterface
|
2
|
-
class License
|
3
|
-
class_attribute :license, default: {}
|
4
|
-
|
5
|
-
class << self
|
6
|
-
def verify!
|
7
|
-
return if Rails.env.test?
|
8
|
-
|
9
|
-
self.license =
|
10
|
-
if ::Adminterface.license_key.present?
|
11
|
-
::Adminterface::Licensing::Commercial
|
12
|
-
else
|
13
|
-
::Adminterface::Licensing::Personal
|
14
|
-
end.call
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|