super 0.0.3 → 0.0.8

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 (120) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +11 -0
  3. data/CONTRIBUTING.md +56 -0
  4. data/README.md +65 -76
  5. data/STABILITY.md +50 -0
  6. data/app/assets/javascripts/super/application.js +1186 -11151
  7. data/app/assets/stylesheets/super/application.css +93514 -27381
  8. data/app/controllers/super/application_controller.rb +49 -72
  9. data/app/views/layouts/super/application.html.erb +24 -14
  10. data/app/views/super/application/_collection_header.html.erb +15 -0
  11. data/app/views/super/application/_filter.html.erb +14 -0
  12. data/app/views/super/application/_filter_type_select.html.erb +31 -0
  13. data/app/views/super/application/_filter_type_text.html.erb +22 -0
  14. data/app/views/super/application/_filter_type_timestamp.html.erb +35 -0
  15. data/app/views/super/application/_flash.html.erb +13 -13
  16. data/app/views/super/application/_form_field__destroy.html.erb +7 -3
  17. data/app/views/super/application/_form_field_select.html.erb +14 -8
  18. data/app/views/super/application/_form_field_text.html.erb +13 -5
  19. data/app/views/super/application/_form_fieldset.html.erb +1 -1
  20. data/app/views/super/application/_form_has_many.html.erb +5 -5
  21. data/app/views/super/application/_form_inline_errors.html.erb +1 -1
  22. data/app/views/super/application/_member_header.html.erb +16 -0
  23. data/app/views/super/application/_super_layout.html.erb +29 -0
  24. data/app/views/super/application/_super_pagination.html.erb +16 -0
  25. data/app/views/super/application/_super_panel.html.erb +7 -0
  26. data/app/views/super/application/_super_schema_display_actions.html.erb +5 -0
  27. data/app/views/super/application/_super_schema_display_index.html.erb +24 -0
  28. data/app/views/super/application/_super_schema_display_show.html.erb +8 -0
  29. data/app/views/super/application/_super_schema_form.html.erb +15 -0
  30. data/app/views/super/application/edit.html.erb +1 -6
  31. data/app/views/super/application/index.html.erb +1 -1
  32. data/app/views/super/application/new.html.erb +1 -6
  33. data/app/views/super/application/show.html.erb +1 -1
  34. data/app/views/super/feather/{_chevron_down.svg → _chevron_down.html} +0 -0
  35. data/config/locales/en.yml +5 -0
  36. data/docs/README.md +6 -0
  37. data/docs/cheat.md +41 -0
  38. data/docs/faq.md +44 -0
  39. data/docs/quick_start.md +45 -0
  40. data/docs/webpacker.md +17 -0
  41. data/docs/yard_customizations.rb +41 -0
  42. data/frontend/super-frontend/build.js +12 -12
  43. data/frontend/super-frontend/dist/application.css +93514 -27381
  44. data/frontend/super-frontend/dist/application.js +1186 -11151
  45. data/frontend/super-frontend/package.json +8 -4
  46. data/frontend/super-frontend/postcss.config.js +4 -4
  47. data/frontend/super-frontend/src/javascripts/super/application.ts +11 -9
  48. data/frontend/super-frontend/src/javascripts/super/apply_template_controller.ts +19 -0
  49. data/frontend/super-frontend/src/javascripts/super/rails__ujs.d.ts +1 -1
  50. data/frontend/super-frontend/src/javascripts/super/toggle_pending_destruction_controller.ts +15 -0
  51. data/frontend/super-frontend/src/stylesheets/super/application.css +63 -0
  52. data/frontend/super-frontend/tailwind.config.js +12 -4
  53. data/frontend/super-frontend/yarn.lock +1429 -1372
  54. data/lib/generators/super/install/install_generator.rb +16 -0
  55. data/lib/generators/super/resource/templates/resources_controller.rb.tt +1 -31
  56. data/lib/generators/super/webpacker/webpacker_generator.rb +10 -1
  57. data/lib/super.rb +26 -5
  58. data/lib/super/action_inquirer.rb +2 -2
  59. data/lib/super/assets.rb +108 -38
  60. data/lib/super/client_error.rb +43 -0
  61. data/lib/super/compatibility.rb +25 -0
  62. data/lib/super/configuration.rb +21 -69
  63. data/lib/super/controls.rb +9 -37
  64. data/lib/super/controls/optional.rb +79 -0
  65. data/lib/super/controls/required.rb +13 -0
  66. data/lib/super/controls/steps.rb +114 -0
  67. data/lib/super/display.rb +66 -3
  68. data/lib/super/display/guesser.rb +34 -0
  69. data/lib/super/display/schema_types.rb +55 -25
  70. data/lib/super/engine.rb +7 -1
  71. data/lib/super/error.rb +9 -9
  72. data/lib/super/filter.rb +12 -0
  73. data/lib/super/filter/form_object.rb +97 -0
  74. data/lib/super/filter/guesser.rb +30 -0
  75. data/lib/super/filter/operator.rb +103 -0
  76. data/lib/super/filter/plugin.rb +47 -0
  77. data/lib/super/filter/schema_types.rb +112 -0
  78. data/lib/super/form.rb +35 -0
  79. data/lib/super/form/builder.rb +48 -0
  80. data/lib/super/form/guesser.rb +27 -0
  81. data/lib/super/form/schema_types.rb +20 -23
  82. data/lib/super/form/strong_params.rb +29 -0
  83. data/lib/super/layout.rb +47 -0
  84. data/lib/super/link.rb +110 -0
  85. data/lib/super/pagination.rb +74 -8
  86. data/lib/super/panel.rb +30 -0
  87. data/lib/super/partial.rb +23 -0
  88. data/lib/super/partial/resolving.rb +24 -0
  89. data/lib/super/plugin.rb +34 -63
  90. data/lib/super/schema.rb +12 -22
  91. data/lib/super/schema/common.rb +25 -0
  92. data/lib/super/schema/guesser.rb +77 -0
  93. data/lib/super/version.rb +1 -1
  94. data/lib/super/view_helper.rb +43 -0
  95. metadata +133 -33
  96. data/app/views/super/application/_form.html.erb +0 -14
  97. data/app/views/super/application/_index.html.erb +0 -60
  98. data/app/views/super/application/_show.html.erb +0 -12
  99. data/frontend/super-frontend/src/javascripts/super/nested_attributes_controller.ts +0 -33
  100. data/lib/super/inline_callback.rb +0 -82
  101. data/lib/super/test_support/copy_app_templates/controllers/favorite_things_controller.rb +0 -50
  102. data/lib/super/test_support/copy_app_templates/controllers/members_controller.rb +0 -57
  103. data/lib/super/test_support/copy_app_templates/controllers/ships_controller.rb +0 -47
  104. data/lib/super/test_support/copy_app_templates/migrations/20190216224956_create_members.rb +0 -11
  105. data/lib/super/test_support/copy_app_templates/migrations/20190803143320_create_ships.rb +0 -11
  106. data/lib/super/test_support/copy_app_templates/migrations/20190806014121_add_ship_to_members.rb +0 -5
  107. data/lib/super/test_support/copy_app_templates/migrations/20191126050453_create_favorite_things.rb +0 -10
  108. data/lib/super/test_support/copy_app_templates/models/favorite_thing.rb +0 -7
  109. data/lib/super/test_support/copy_app_templates/models/member.rb +0 -23
  110. data/lib/super/test_support/copy_app_templates/models/ship.rb +0 -3
  111. data/lib/super/test_support/copy_app_templates/routes.rb +0 -11
  112. data/lib/super/test_support/copy_app_templates/seeds.rb +0 -2
  113. data/lib/super/test_support/fixtures/favorite_things.yml +0 -9
  114. data/lib/super/test_support/fixtures/members.yml +0 -336
  115. data/lib/super/test_support/fixtures/ships.yml +0 -10
  116. data/lib/super/test_support/generate_copy_app.rb +0 -41
  117. data/lib/super/test_support/generate_dummy.rb +0 -93
  118. data/lib/super/test_support/starfleet_seeder.rb +0 -50
  119. data/lib/super/view.rb +0 -25
  120. data/lib/tasks/super_tasks.rake +0 -4
@@ -0,0 +1,30 @@
1
+ require "super/partial/resolving"
2
+
3
+ module Super
4
+ class Panel
5
+ include Super::Partial::Resolving
6
+
7
+ def initialize(*parts)
8
+ if block_given?
9
+ @parts = Array.new(yield)
10
+ end
11
+
12
+ @parts = parts
13
+ end
14
+
15
+ attr_reader :parts
16
+
17
+ def resolve(template, block)
18
+ @resolved_parts ||= resolve_for_rendering(template, parts, block)
19
+ self
20
+ end
21
+
22
+ def resolved_parts
23
+ @resolved_parts || []
24
+ end
25
+
26
+ def to_partial_path
27
+ "super_panel"
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,23 @@
1
+ module Super
2
+ class Partial
3
+ def self.render(partialish, template:)
4
+ if partialish.respond_to?(:to_partial_path)
5
+ if partialish.respond_to?(:locals)
6
+ template.render(partialish, partialish.locals)
7
+ else
8
+ template.render(partialish)
9
+ end
10
+ else
11
+ partialish
12
+ end
13
+ end
14
+
15
+ def initialize(path, locals: {})
16
+ @to_partial_path = path
17
+ @locals = locals
18
+ end
19
+
20
+ attr_reader :to_partial_path
21
+ attr_reader :locals
22
+ end
23
+ end
@@ -0,0 +1,24 @@
1
+ module Super
2
+ class Partial
3
+ module Resolving
4
+ module_function
5
+
6
+ def resolve_for_rendering(template, partials, block)
7
+ if block
8
+ partials = [block.call, *parts]
9
+ end
10
+
11
+ partials =
12
+ partials.map do |partial|
13
+ if partial.is_a?(Symbol)
14
+ template.instance_variable_get(partial)
15
+ else
16
+ partial
17
+ end
18
+ end
19
+
20
+ partials.compact
21
+ end
22
+ end
23
+ end
24
+ end
@@ -1,88 +1,59 @@
1
1
  module Super
2
- class Pluggable < Module
3
- def initialize(registry_name)
4
- @registry_name = registry_name
5
- end
6
-
7
- def included(base)
8
- super
9
-
10
- PluginRegistry.base_set(@registry_name, base)
11
-
12
- plugins = PluginRegistry.plugins_for(@registry_name)
13
-
14
- plugins.each do |klass, method_name|
15
- base.public_send(method_name, klass)
2
+ module Plugin
3
+ class Registry
4
+ class << self
5
+ def controller
6
+ @controller ||= Registry.new
7
+ end
16
8
  end
17
- end
18
- end
19
9
 
20
- class PluginRegistry
21
- class << self
22
- def include_to(name, klass)
23
- plugin_push(name.to_sym, :include, klass)
10
+ def initialize
11
+ @registry = {}
12
+ @ordering = Hash.new { |hash, key| hash[key] = [] }
24
13
  end
25
14
 
26
- def prepend_to(name, klass)
27
- plugin_push(name.to_sym, :prepend, klass)
15
+ def use(include: nil, prepend: nil)
16
+ register(include: include, prepend: prepend, before: [], after: [])
28
17
  end
29
18
 
30
- def plugins_for(name)
31
- name = name.to_sym
32
-
33
- plugins.fetch(name) { {} }
19
+ def insert_before(*before, include: nil, prepend: nil)
20
+ register(include: include, prepend: prepend, before: before, after: [])
34
21
  end
35
22
 
36
- def base_set(name, klass)
37
- name = name.to_sym
38
-
39
- if !klass.kind_of?(Class)
40
- raise Error::InvalidPluginArgument,
41
- "Received `#{klass}` which must be a class"
42
- end
43
-
44
- bases[name] = klass
45
-
46
- true
23
+ def insert_after(*after, include: nil, prepend: nil)
24
+ register(include: include, prepend: prepend, before: [], after: after)
47
25
  end
48
26
 
49
- def base_get(name)
50
- name = name.to_sym
27
+ def classes_ordered
28
+ each_node = -> (&b) { @ordering.each_key(&b) }
29
+ each_child = -> (cb, &b) { @ordering[cb].each(&b) }
51
30
 
52
- bases[name]
31
+ TSort.tsort(each_node, each_child)
53
32
  end
54
33
 
55
- private
56
-
57
- def plugin_push(name, method_name, klass)
58
- if ![:include, :prepend].include?(method_name)
59
- raise Error::InvalidPluginArgument,
60
- "Received `#{method_name.inspect}`, must be either :include or :prepend"
34
+ def ordered
35
+ classes_ordered.each do |class_name|
36
+ yield class_name, @registry[class_name]
61
37
  end
38
+ end
62
39
 
63
- if !klass.kind_of?(Module)
64
- raise Error::InvalidPluginArgument,
65
- "Received `#{klass}` which must be a module"
66
- end
40
+ private
67
41
 
68
- plugins[name] ||= {}
69
- plugins[name][klass] = method_name
42
+ def register(include:, prepend:, before: [], after: [])
43
+ raise Error::InvalidPluginArgument, "only one of :include or :prepend can be filled out" if include && prepend
44
+ raise Error::InvalidPluginArgument, "at least one of :include or :prepend must be filled out" if include.nil? && prepend.nil?
70
45
 
71
- base = base_get(name)
46
+ klass = include || prepend
47
+ @registry[klass] = :include if include
48
+ @registry[klass] = :prepend if prepend
72
49
 
73
- if base
74
- base.public_send(method_name, klass)
50
+ before.each do |b|
51
+ @ordering[b].push(klass)
75
52
  end
76
53
 
77
- true
78
- end
79
-
80
- def plugins
81
- @plugins ||= {}
82
- end
54
+ @ordering[klass].push(*after)
83
55
 
84
- def bases
85
- @bases ||= {}
56
+ nil
86
57
  end
87
58
  end
88
59
  end
@@ -5,26 +5,10 @@ module Super
5
5
  #
6
6
  # The various "schema types" are likely of more interest
7
7
  class Schema
8
- # @param schema_type [Display::SchemaTypes, Form::SchemaTypes]
9
- def initialize(schema_type)
10
- @schema_type = schema_type
11
- @fields = Fields.new
12
-
13
- if @schema_type.respond_to?(:setup)
14
- @schema_type.setup(fields: @fields)
15
- end
16
-
17
- if block_given?
18
- yield(@fields, @schema_type)
19
- end
20
- end
21
-
22
- attr_reader :fields
23
-
24
- def field_keys
25
- fields.keys
26
- end
27
-
8
+ # This class can be thought of as a Hash, where the keys usually refer to
9
+ # the model's column name and the value refers to the column type. Note
10
+ # though that this isn't always the case—different `SchemaTypes` can do
11
+ # whatever makes sense in their context
28
12
  class Fields
29
13
  include Enumerable
30
14
 
@@ -44,9 +28,13 @@ module Super
44
28
  @backing.keys
45
29
  end
46
30
 
47
- def each
31
+ def values
32
+ @backing.values
33
+ end
34
+
35
+ def each(&block)
48
36
  if block_given?
49
- return @backing.each(&Proc.new)
37
+ return @backing.each(&block)
50
38
  end
51
39
 
52
40
  enum_for(:each)
@@ -65,6 +53,8 @@ module Super
65
53
  inside = {}
66
54
  @backing = inside
67
55
  yield
56
+ return inside
57
+ ensure
68
58
  @backing = outside
69
59
  inside
70
60
  end
@@ -0,0 +1,25 @@
1
+ module Super
2
+ class Schema
3
+ module Common
4
+ def each_attribute_name
5
+ if block_given?
6
+ @fields.keys.each do |key|
7
+ yield(key)
8
+ end
9
+ end
10
+
11
+ enum_for(:each_attribute_name)
12
+ end
13
+
14
+ def each_attribute
15
+ if block_given?
16
+ @fields.each do |key, value|
17
+ yield(key, value)
18
+ end
19
+ end
20
+
21
+ enum_for(:each_attribute)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,77 @@
1
+ module Super
2
+ class Schema
3
+ class Guesser
4
+ def initialize(model:, fields:, type:)
5
+ @model = model
6
+ @fields = fields
7
+ @type = type
8
+ @rejects = []
9
+ end
10
+
11
+ def limit
12
+ @limit = yield
13
+ self
14
+ end
15
+
16
+ def reject(&block)
17
+ @rejects.push(block)
18
+ self
19
+ end
20
+
21
+ def ignore_foreign_keys
22
+ @rejects.push(-> (attribute_name) { is_foreign_key[attribute_name] })
23
+ self
24
+ end
25
+
26
+ def assign_type(&block)
27
+ @assign_type = block
28
+ self
29
+ end
30
+
31
+ def call
32
+ result = sorted_attribute_names
33
+ result = @rejects.reduce(result) do |intermediary_result, rejection_proc|
34
+ intermediary_result.reject(&rejection_proc)
35
+ end
36
+
37
+ result = result.first(@limit) if @limit && @limit != Float::INFINITY
38
+
39
+ result.each do |name|
40
+ @fields[name] = @assign_type.call(name)
41
+ end
42
+ end
43
+
44
+ private
45
+
46
+ def sorted_attribute_names
47
+ @model
48
+ .attribute_names
49
+ .sort_by { |name| sort_weight[name] }
50
+ end
51
+
52
+ def sort_weight
53
+ @sort_weight ||= Hash.new do |hash, name|
54
+ hash[name] =
55
+ case name
56
+ when "id" then 0
57
+ when "title" then 1000
58
+ when "name" then 1300
59
+ when "created_at" then 9500
60
+ when "updated_at" then 9750
61
+ else
62
+ 2000 + hash.size
63
+ end
64
+ end
65
+ end
66
+
67
+ def is_foreign_key
68
+ @is_foreign_key ||=
69
+ @model
70
+ .reflect_on_all_associations
71
+ .select { |a| a.macro == :belongs_to }
72
+ .map { |a| [a.foreign_key, true] }
73
+ .to_h
74
+ end
75
+ end
76
+ end
77
+ end
@@ -1,3 +1,3 @@
1
1
  module Super
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.8"
3
3
  end
@@ -0,0 +1,43 @@
1
+ module Super
2
+ module ViewHelper
3
+ module_function
4
+
5
+ # For example, calling `classes("always", ["sometimes", condition])` would
6
+ # return the string "always sometimes" or "always"
7
+ def classes(*list)
8
+ result = list.map do |c|
9
+ case c
10
+ when String
11
+ c
12
+ when Array
13
+ if c.size != 2
14
+ raise %(Expected exactly two elements (["class", some_condition]), got: #{c.inspect})
15
+ end
16
+
17
+ c.first if c.last
18
+ end
19
+ end
20
+
21
+ result.compact.join(" ")
22
+ end
23
+
24
+ def errors_accounting_for_reflections(model_instance, column_or_association)
25
+ errable_fields(model_instance, column_or_association)
26
+ .flat_map { |field| Compatability.errable_fields(field) }
27
+ .flat_map { |field| model_instance.errors.full_messages_for(field) }
28
+ .uniq
29
+ end
30
+
31
+ def errable_fields(model_instance, column_or_association)
32
+ column_or_association = column_or_association.to_s
33
+ reflection = model_instance.class.reflect_on_association(column_or_association)
34
+ reflection ||= model_instance.class.reflections.values.find { |r| r.foreign_key == column_or_association }
35
+
36
+ if reflection
37
+ [reflection.name.to_s, reflection.foreign_key.to_s]
38
+ else
39
+ [column_or_association]
40
+ end
41
+ end
42
+ end
43
+ end
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: super
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zach Ahn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-25 00:00:00.000000000 Z
11
+ date: 2020-12-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
14
+ name: railties
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
@@ -24,20 +24,82 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '5.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rails
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '5.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '5.0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: capybara
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.18'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.18'
55
+ - !ruby/object:Gem::Dependency
56
+ name: selenium-webdriver
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.142'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.142'
69
+ - !ruby/object:Gem::Dependency
70
+ name: webdrivers
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '4.3'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '4.3'
83
+ - !ruby/object:Gem::Dependency
84
+ name: puma
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '4.3'
31
90
  - - ">="
32
91
  - !ruby/object:Gem::Version
33
- version: '0'
92
+ version: 4.3.6
34
93
  type: :development
35
94
  prerelease: false
36
95
  version_requirements: !ruby/object:Gem::Requirement
37
96
  requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: '4.3'
38
100
  - - ">="
39
101
  - !ruby/object:Gem::Version
40
- version: '0'
102
+ version: 4.3.6
41
103
  - !ruby/object:Gem::Dependency
42
104
  name: sqlite3
43
105
  requirement: !ruby/object:Gem::Requirement
@@ -122,6 +184,20 @@ dependencies:
122
184
  - - ">="
123
185
  - !ruby/object:Gem::Version
124
186
  version: '0'
187
+ - !ruby/object:Gem::Dependency
188
+ name: i18n-debug
189
+ requirement: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ version: '0'
194
+ type: :development
195
+ prerelease: false
196
+ version_requirements: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - ">="
199
+ - !ruby/object:Gem::Version
200
+ version: '0'
125
201
  description:
126
202
  email:
127
203
  - engineering@zachahn.com
@@ -129,16 +205,23 @@ executables: []
129
205
  extensions: []
130
206
  extra_rdoc_files: []
131
207
  files:
208
+ - ".yardopts"
209
+ - CONTRIBUTING.md
132
210
  - LICENSE
133
211
  - README.md
134
212
  - Rakefile
213
+ - STABILITY.md
135
214
  - app/assets/config/super_manifest.js
136
215
  - app/assets/javascripts/super/application.js
137
216
  - app/assets/stylesheets/super/application.css
138
217
  - app/controllers/super/application_controller.rb
139
218
  - app/views/layouts/super/application.html.erb
219
+ - app/views/super/application/_collection_header.html.erb
220
+ - app/views/super/application/_filter.html.erb
221
+ - app/views/super/application/_filter_type_select.html.erb
222
+ - app/views/super/application/_filter_type_text.html.erb
223
+ - app/views/super/application/_filter_type_timestamp.html.erb
140
224
  - app/views/super/application/_flash.html.erb
141
- - app/views/super/application/_form.html.erb
142
225
  - app/views/super/application/_form_field__destroy.html.erb
143
226
  - app/views/super/application/_form_field_select.html.erb
144
227
  - app/views/super/application/_form_field_text.html.erb
@@ -146,24 +229,38 @@ files:
146
229
  - app/views/super/application/_form_has_many.html.erb
147
230
  - app/views/super/application/_form_has_one.html.erb
148
231
  - app/views/super/application/_form_inline_errors.html.erb
149
- - app/views/super/application/_index.html.erb
150
- - app/views/super/application/_show.html.erb
232
+ - app/views/super/application/_member_header.html.erb
233
+ - app/views/super/application/_super_layout.html.erb
234
+ - app/views/super/application/_super_pagination.html.erb
235
+ - app/views/super/application/_super_panel.html.erb
236
+ - app/views/super/application/_super_schema_display_actions.html.erb
237
+ - app/views/super/application/_super_schema_display_index.html.erb
238
+ - app/views/super/application/_super_schema_display_show.html.erb
239
+ - app/views/super/application/_super_schema_form.html.erb
151
240
  - app/views/super/application/edit.html.erb
152
241
  - app/views/super/application/index.html.erb
153
242
  - app/views/super/application/new.html.erb
154
243
  - app/views/super/application/nothing.html.erb
155
244
  - app/views/super/application/show.html.erb
156
245
  - app/views/super/feather/README.md
157
- - app/views/super/feather/_chevron_down.svg
246
+ - app/views/super/feather/_chevron_down.html
247
+ - config/locales/en.yml
158
248
  - config/routes.rb
249
+ - docs/README.md
250
+ - docs/cheat.md
251
+ - docs/faq.md
252
+ - docs/quick_start.md
253
+ - docs/webpacker.md
254
+ - docs/yard_customizations.rb
159
255
  - frontend/super-frontend/build.js
160
256
  - frontend/super-frontend/dist/application.css
161
257
  - frontend/super-frontend/dist/application.js
162
258
  - frontend/super-frontend/package.json
163
259
  - frontend/super-frontend/postcss.config.js
164
260
  - frontend/super-frontend/src/javascripts/super/application.ts
165
- - frontend/super-frontend/src/javascripts/super/nested_attributes_controller.ts
261
+ - frontend/super-frontend/src/javascripts/super/apply_template_controller.ts
166
262
  - frontend/super-frontend/src/javascripts/super/rails__ujs.d.ts
263
+ - frontend/super-frontend/src/javascripts/super/toggle_pending_destruction_controller.ts
167
264
  - frontend/super-frontend/src/stylesheets/super/application.css
168
265
  - frontend/super-frontend/tailwind.config.js
169
266
  - frontend/super-frontend/tsconfig.json
@@ -181,39 +278,42 @@ files:
181
278
  - lib/super.rb
182
279
  - lib/super/action_inquirer.rb
183
280
  - lib/super/assets.rb
281
+ - lib/super/client_error.rb
282
+ - lib/super/compatibility.rb
184
283
  - lib/super/configuration.rb
185
284
  - lib/super/controls.rb
285
+ - lib/super/controls/optional.rb
286
+ - lib/super/controls/required.rb
287
+ - lib/super/controls/steps.rb
186
288
  - lib/super/display.rb
289
+ - lib/super/display/guesser.rb
187
290
  - lib/super/display/schema_types.rb
188
291
  - lib/super/engine.rb
189
292
  - lib/super/error.rb
293
+ - lib/super/filter.rb
294
+ - lib/super/filter/form_object.rb
295
+ - lib/super/filter/guesser.rb
296
+ - lib/super/filter/operator.rb
297
+ - lib/super/filter/plugin.rb
298
+ - lib/super/filter/schema_types.rb
299
+ - lib/super/form.rb
300
+ - lib/super/form/builder.rb
301
+ - lib/super/form/guesser.rb
190
302
  - lib/super/form/schema_types.rb
191
- - lib/super/inline_callback.rb
303
+ - lib/super/form/strong_params.rb
304
+ - lib/super/layout.rb
305
+ - lib/super/link.rb
192
306
  - lib/super/navigation/automatic.rb
193
307
  - lib/super/pagination.rb
308
+ - lib/super/panel.rb
309
+ - lib/super/partial.rb
310
+ - lib/super/partial/resolving.rb
194
311
  - lib/super/plugin.rb
195
312
  - lib/super/schema.rb
196
- - lib/super/test_support/copy_app_templates/controllers/favorite_things_controller.rb
197
- - lib/super/test_support/copy_app_templates/controllers/members_controller.rb
198
- - lib/super/test_support/copy_app_templates/controllers/ships_controller.rb
199
- - lib/super/test_support/copy_app_templates/migrations/20190216224956_create_members.rb
200
- - lib/super/test_support/copy_app_templates/migrations/20190803143320_create_ships.rb
201
- - lib/super/test_support/copy_app_templates/migrations/20190806014121_add_ship_to_members.rb
202
- - lib/super/test_support/copy_app_templates/migrations/20191126050453_create_favorite_things.rb
203
- - lib/super/test_support/copy_app_templates/models/favorite_thing.rb
204
- - lib/super/test_support/copy_app_templates/models/member.rb
205
- - lib/super/test_support/copy_app_templates/models/ship.rb
206
- - lib/super/test_support/copy_app_templates/routes.rb
207
- - lib/super/test_support/copy_app_templates/seeds.rb
208
- - lib/super/test_support/fixtures/favorite_things.yml
209
- - lib/super/test_support/fixtures/members.yml
210
- - lib/super/test_support/fixtures/ships.yml
211
- - lib/super/test_support/generate_copy_app.rb
212
- - lib/super/test_support/generate_dummy.rb
213
- - lib/super/test_support/starfleet_seeder.rb
313
+ - lib/super/schema/common.rb
314
+ - lib/super/schema/guesser.rb
214
315
  - lib/super/version.rb
215
- - lib/super/view.rb
216
- - lib/tasks/super_tasks.rake
316
+ - lib/super/view_helper.rb
217
317
  homepage:
218
318
  licenses:
219
319
  - LGPL-3.0-only
@@ -233,8 +333,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
233
333
  - !ruby/object:Gem::Version
234
334
  version: '0'
235
335
  requirements: []
236
- rubygems_version: 3.0.3
336
+ rubygems_version: 3.1.4
237
337
  signing_key:
238
338
  specification_version: 4
239
- summary: A simple, powerful, zero* dependency Rails admin framework
339
+ summary: A simple, powerful, zero dependency Rails admin framework
240
340
  test_files: []