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.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.md +19 -109
  3. data/README.md +33 -27
  4. data/Rakefile +1 -1
  5. data/app/assets/stylesheets/adminterface/components/_form.scss +1 -0
  6. data/app/assets/stylesheets/adminterface/mixins/_utilities.scss +4 -0
  7. data/app/assets/stylesheets/adminterface/vendors/bootstrap/_all.scss +1 -0
  8. data/app/assets/stylesheets/adminterface/vendors/bootstrap/components/_breadcrumb.scss +1 -0
  9. data/app/assets/stylesheets/adminterface/vendors/flatpickr/{main.scss → _main.scss} +6 -0
  10. data/app/javascript/adminterface/initializers/header_toggler.js +1 -1
  11. data/app/javascript/adminterface/initializers/plugins/flatpickr.js +1 -1
  12. data/app/javascript/adminterface/initializers/plugins/input_counter.js +1 -1
  13. data/app/javascript/adminterface/initializers/plugins/password_visibility.js +1 -1
  14. data/app/javascript/adminterface/initializers/plugins/tom_select.js +1 -1
  15. data/app/javascript/adminterface/lib/__tests__/checkbox_toggler.html +5 -0
  16. data/app/javascript/adminterface/lib/__tests__/checkbox_toggler.spec.js +110 -0
  17. data/app/javascript/adminterface/lib/__tests__/detached_dropdown.spec.js +69 -70
  18. data/app/javascript/adminterface/lib/__tests__/filters.spec.js +0 -1
  19. data/app/javascript/adminterface/lib/__tests__/has_many.html +14 -0
  20. data/app/javascript/adminterface/lib/__tests__/has_many.spec.js +224 -0
  21. data/app/javascript/adminterface/lib/__tests__/header_toggler.html +2 -0
  22. data/app/javascript/adminterface/lib/__tests__/header_toggler.spec.js +212 -0
  23. data/app/javascript/adminterface/lib/__tests__/per_page.spec.js +75 -0
  24. data/app/javascript/adminterface/lib/__tests__/utils.spec.js +0 -1
  25. data/app/javascript/adminterface/lib/has_many.js +41 -38
  26. data/app/javascript/adminterface/lib/header_toggler.js +10 -8
  27. data/app/views/layouts/active_admin_logged_out.html.erb +1 -1
  28. data/lib/adminterface/configs.rb +5 -1
  29. data/lib/adminterface/engine.rb +0 -7
  30. data/lib/adminterface/extensions/base_controller.rb +16 -12
  31. data/lib/adminterface/extensions/namespace_settings.rb +3 -0
  32. data/lib/adminterface/extensions/view_helpers/alert_helper.rb +3 -1
  33. data/lib/adminterface/extensions/views/components/dropdown_menu.rb +4 -1
  34. data/lib/adminterface/extensions/views/components/menu_item.rb +8 -3
  35. data/lib/adminterface/extensions/views/components/tabs.rb +38 -13
  36. data/lib/adminterface/extensions/views/header.rb +2 -1
  37. data/lib/adminterface/extensions/views/pages/base.rb +4 -1
  38. data/lib/adminterface/initializers/configurations.rb +1 -1
  39. data/lib/adminterface/version.rb +1 -1
  40. data/lib/adminterface.rb +0 -31
  41. data/lib/generators/adminterface/comments/comments_generator.rb +4 -0
  42. data/lib/generators/adminterface/configs/configs_generator.rb +2 -2
  43. data/lib/generators/adminterface/install/install_generator.rb +21 -23
  44. data/lib/generators/adminterface/views/views_generator.rb +2 -2
  45. data/lib/generators/adminterface/webpacker/webpacker_generator.rb +20 -6
  46. metadata +16 -14
  47. data/lib/adminterface/encryption/encryptor.rb +0 -26
  48. data/lib/adminterface/license.rb +0 -18
  49. data/lib/adminterface/licensing/base.rb +0 -99
  50. data/lib/adminterface/licensing/commercial.rb +0 -7
  51. data/lib/adminterface/licensing/notice.rb +0 -54
  52. data/lib/adminterface/licensing/personal.rb +0 -13
  53. 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: controller_name,
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] == controller_name
37
+ resource_scope[:controller] == controller_path
30
38
  end
31
39
 
32
40
  def same_action?
33
- return true if resource_scope[:action].blank?
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
- ActiveSupport.on_load(:active_admin) do
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
- after_action :set_resource_scope
57
+ before_action :set_resource_scope
54
58
  end
55
59
  end
@@ -6,6 +6,9 @@ module Adminterface
6
6
  CONFIGS = Adminterface::Configs::DEFAULTS
7
7
 
8
8
  included do
9
+ # Language direction ltr or rtl
10
+ register :lang_dir, "ltr", :string_symbol_or_proc
11
+
9
12
  # The default component configs
10
13
  register :components, CONFIGS[:components]
11
14
 
@@ -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, class: "flash flash_#{type} alert #{flash_css_classes[type.to_sym]}".squish))
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(name, button_options.merge("data-bs-toggle": "dropdown"))
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 item_class(item)
19
- "#{item.html_options[:class]} #{item.current?(assigns[:current_tab]) ? "active" : nil}".squish
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(class: item_class(item)).delete_if { |_k, v| v.blank? }
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
- li html_options.merge(class: "nav-item") do
10
- if @http
11
- params[:tab] ||= @default_tab || fragment
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: fragmentize(title))
22
- div(options.merge(class: tab_pane_class(fragment)), &block)
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 toggler_class(fragment)
43
- "nav-link #{current_tab?(fragment) ? "active" : nil}".squish
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 tab_pane_class(fragment)
47
- "tab-pane #{current_tab?(fragment) ? "active" : nil}".squish
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}", 'data-bs-toggle': "collapse") do
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 do
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, user-scalable=no"
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
@@ -1,3 +1,3 @@
1
1
  module Adminterface
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
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
- def install_rails_addons
8
- invoke "action_text:install"
9
- end
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
- install_webpacker? do
13
- generate "adminterface:webpacker"
14
- end
15
- end
21
+ return unless options[:use_webpacker]
16
22
 
17
- def install_action_text_for_comments
18
- generate "adminterface:comments"
23
+ generate "adminterface:webpacker -v #{options[:version]}"
19
24
  end
20
25
 
21
- def add_samples
22
- template "dashboard.rb", "app/admin/dashboard.rb"
23
- end
26
+ def install_comments
27
+ return if options[:skip_comments]
24
28
 
25
- private
29
+ generate "adminterface:comments"
30
+ end
26
31
 
27
- def install_webpacker?
28
- return yield if defined?(Webpacker)
32
+ def add_examples
33
+ return if options[:skip_examples]
29
34
 
30
- puts Rainbow("Adminterface requires webpacker:").yellow
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", "app/views/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
- source_root File.expand_path("templates", __dir__)
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@v#{find_npm_version}"
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 find_npm_version
48
- version = options[:version]
49
- return version unless version.include?(".rc")
60
+ def webpacker_installed?
61
+ defined?(Webpacker)
62
+ end
50
63
 
51
- version.gsub(".rc", "-rc")
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.2.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-10-15 00:00:00.000000000 Z
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: An add-on that brings Bootstrap 5 and other goodies into ActiveAdmin.
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
- - See LICENSE in LICENSE.md
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.22
379
+ rubygems_version: 3.2.32
378
380
  signing_key:
379
381
  specification_version: 4
380
- summary: An add-on that brings Bootstrap 5 and other goodies into ActiveAdmin.
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
@@ -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