super 0.0.5 → 0.0.6

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 (60) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +2 -1
  3. data/README.md +55 -23
  4. data/app/assets/javascripts/super/application.js +1062 -261
  5. data/app/assets/stylesheets/super/application.css +72775 -50711
  6. data/app/controllers/super/application_controller.rb +39 -50
  7. data/app/helpers/super/application_helper.rb +24 -17
  8. data/app/views/layouts/super/application.html.erb +4 -0
  9. data/app/views/super/application/{_resources_header.html.erb → _collection_header.html.erb} +5 -6
  10. data/app/views/super/application/_flash.html.erb +13 -13
  11. data/app/views/super/application/_form_field_select.html.erb +1 -1
  12. data/app/views/super/application/_form_has_many.html.erb +1 -1
  13. data/app/views/super/application/{_resource_header.html.erb → _member_header.html.erb} +6 -6
  14. data/app/views/super/application/_super_layout.html.erb +7 -12
  15. data/app/views/super/application/_super_panel.html.erb +2 -6
  16. data/app/views/super/application/_super_schema_display_actions.html.erb +5 -0
  17. data/app/views/super/application/_super_schema_display_index.html.erb +39 -0
  18. data/app/views/super/application/_super_schema_display_show.html.erb +8 -0
  19. data/app/views/super/application/{_form.html.erb → _super_schema_form.html.erb} +2 -4
  20. data/app/views/super/application/edit.html.erb +2 -2
  21. data/app/views/super/application/index.html.erb +2 -2
  22. data/app/views/super/application/new.html.erb +2 -2
  23. data/app/views/super/application/show.html.erb +2 -2
  24. data/app/views/super/feather/{_chevron_down.svg → _chevron_down.html} +0 -0
  25. data/config/locales/en.yml +5 -0
  26. data/docs/cheat.md +41 -0
  27. data/docs/webpacker.md +1 -1
  28. data/frontend/super-frontend/dist/application.css +72775 -50711
  29. data/frontend/super-frontend/dist/application.js +1062 -261
  30. data/frontend/super-frontend/package.json +1 -1
  31. data/frontend/super-frontend/src/javascripts/super/apply_template_controller.ts +6 -8
  32. data/frontend/super-frontend/tailwind.config.js +7 -1
  33. data/frontend/super-frontend/yarn.lock +1103 -1195
  34. data/lib/generators/super/install/install_generator.rb +16 -0
  35. data/lib/super.rb +2 -2
  36. data/lib/super/action_inquirer.rb +2 -2
  37. data/lib/super/client_error.rb +43 -0
  38. data/lib/super/configuration.rb +1 -1
  39. data/lib/super/controls.rb +17 -101
  40. data/lib/super/controls/optional.rb +65 -0
  41. data/lib/super/controls/required.rb +41 -0
  42. data/lib/super/controls/steps.rb +115 -0
  43. data/lib/super/display/schema_types.rb +45 -2
  44. data/lib/super/error.rb +8 -9
  45. data/lib/super/form.rb +48 -0
  46. data/lib/super/form/schema_types.rb +8 -1
  47. data/lib/super/layout.rb +28 -0
  48. data/lib/super/link.rb +55 -32
  49. data/lib/super/panel.rb +13 -0
  50. data/lib/super/partial/resolving.rb +24 -0
  51. data/lib/super/schema.rb +19 -5
  52. data/lib/super/version.rb +1 -1
  53. data/lib/super/view_helper.rb +1 -1
  54. metadata +40 -15
  55. data/app/views/super/application/_index.html.erb +0 -45
  56. data/app/views/super/application/_show.html.erb +0 -10
  57. data/docs/controls.md +0 -39
  58. data/lib/super/display.rb +0 -9
  59. data/lib/super/step.rb +0 -36
  60. data/lib/tasks/super_tasks.rake +0 -4
@@ -14,7 +14,7 @@ module Super
14
14
  raise %(Expected exactly two elements (["class", some_condition]), got: #{c.inspect})
15
15
  end
16
16
 
17
- c if c.last
17
+ c.first if c.last
18
18
  end
19
19
  end
20
20
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: super
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
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-06-02 00:00:00.000000000 Z
11
+ date: 2020-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -70,16 +70,22 @@ dependencies:
70
70
  name: puma
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '4.3'
73
76
  - - ">="
74
77
  - !ruby/object:Gem::Version
75
- version: '0'
78
+ version: 4.3.6
76
79
  type: :development
77
80
  prerelease: false
78
81
  version_requirements: !ruby/object:Gem::Requirement
79
82
  requirements:
83
+ - - "~>"
84
+ - !ruby/object:Gem::Version
85
+ version: '4.3'
80
86
  - - ">="
81
87
  - !ruby/object:Gem::Version
82
- version: '0'
88
+ version: 4.3.6
83
89
  - !ruby/object:Gem::Dependency
84
90
  name: sqlite3
85
91
  requirement: !ruby/object:Gem::Requirement
@@ -164,6 +170,20 @@ dependencies:
164
170
  - - ">="
165
171
  - !ruby/object:Gem::Version
166
172
  version: '0'
173
+ - !ruby/object:Gem::Dependency
174
+ name: i18n-debug
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ type: :development
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
167
187
  description:
168
188
  email:
169
189
  - engineering@zachahn.com
@@ -181,8 +201,8 @@ files:
181
201
  - app/controllers/super/application_controller.rb
182
202
  - app/helpers/super/application_helper.rb
183
203
  - app/views/layouts/super/application.html.erb
204
+ - app/views/super/application/_collection_header.html.erb
184
205
  - app/views/super/application/_flash.html.erb
185
- - app/views/super/application/_form.html.erb
186
206
  - app/views/super/application/_form_field__destroy.html.erb
187
207
  - app/views/super/application/_form_field_select.html.erb
188
208
  - app/views/super/application/_form_field_text.html.erb
@@ -190,22 +210,24 @@ files:
190
210
  - app/views/super/application/_form_has_many.html.erb
191
211
  - app/views/super/application/_form_has_one.html.erb
192
212
  - app/views/super/application/_form_inline_errors.html.erb
193
- - app/views/super/application/_index.html.erb
194
- - app/views/super/application/_resource_header.html.erb
195
- - app/views/super/application/_resources_header.html.erb
196
- - app/views/super/application/_show.html.erb
213
+ - app/views/super/application/_member_header.html.erb
197
214
  - app/views/super/application/_super_layout.html.erb
198
215
  - app/views/super/application/_super_panel.html.erb
216
+ - app/views/super/application/_super_schema_display_actions.html.erb
217
+ - app/views/super/application/_super_schema_display_index.html.erb
218
+ - app/views/super/application/_super_schema_display_show.html.erb
219
+ - app/views/super/application/_super_schema_form.html.erb
199
220
  - app/views/super/application/edit.html.erb
200
221
  - app/views/super/application/index.html.erb
201
222
  - app/views/super/application/new.html.erb
202
223
  - app/views/super/application/nothing.html.erb
203
224
  - app/views/super/application/show.html.erb
204
225
  - app/views/super/feather/README.md
205
- - app/views/super/feather/_chevron_down.svg
226
+ - app/views/super/feather/_chevron_down.html
227
+ - config/locales/en.yml
206
228
  - config/routes.rb
207
229
  - docs/README.md
208
- - docs/controls.md
230
+ - docs/cheat.md
209
231
  - docs/faq.md
210
232
  - docs/quick_start.md
211
233
  - docs/webpacker.md
@@ -236,13 +258,17 @@ files:
236
258
  - lib/super.rb
237
259
  - lib/super/action_inquirer.rb
238
260
  - lib/super/assets.rb
261
+ - lib/super/client_error.rb
239
262
  - lib/super/compatibility.rb
240
263
  - lib/super/configuration.rb
241
264
  - lib/super/controls.rb
242
- - lib/super/display.rb
265
+ - lib/super/controls/optional.rb
266
+ - lib/super/controls/required.rb
267
+ - lib/super/controls/steps.rb
243
268
  - lib/super/display/schema_types.rb
244
269
  - lib/super/engine.rb
245
270
  - lib/super/error.rb
271
+ - lib/super/form.rb
246
272
  - lib/super/form/schema_types.rb
247
273
  - lib/super/layout.rb
248
274
  - lib/super/link.rb
@@ -250,12 +276,11 @@ files:
250
276
  - lib/super/pagination.rb
251
277
  - lib/super/panel.rb
252
278
  - lib/super/partial.rb
279
+ - lib/super/partial/resolving.rb
253
280
  - lib/super/plugin.rb
254
281
  - lib/super/schema.rb
255
- - lib/super/step.rb
256
282
  - lib/super/version.rb
257
283
  - lib/super/view_helper.rb
258
- - lib/tasks/super_tasks.rake
259
284
  homepage:
260
285
  licenses:
261
286
  - LGPL-3.0-only
@@ -275,7 +300,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
275
300
  - !ruby/object:Gem::Version
276
301
  version: '0'
277
302
  requirements: []
278
- rubygems_version: 3.1.3
303
+ rubygems_version: 3.1.4
279
304
  signing_key:
280
305
  specification_version: 4
281
306
  summary: A simple, powerful, zero dependency Rails admin framework
@@ -1,45 +0,0 @@
1
- <% schema = controls.display_schema(action: action_inquirer) %>
2
-
3
- <div class="mt-4 -mx-5 overflow-x-auto">
4
- <table class="w-full">
5
- <thead>
6
- <tr class="text-left text-sm uppercase font-bold tracking-wide">
7
- <% schema.field_keys.each do |column| %>
8
- <th class="p-2 first:pl-5"><%= column.to_s.humanize %></th>
9
- <% end %>
10
- <th class="p-2 pr-5">Actions</th>
11
- </tr>
12
- </thead>
13
- <tbody class="border-gray-400 border-solid border-t-2">
14
- <% @resources.each do |resource| %>
15
- <tr id="resource-pk-<%= resource.id %>" class="border-b border-gray-400">
16
- <% schema.field_keys.each do |column| %>
17
- <td class="p-2 first:pl-5"><%= Super::Display.format(schema, resource, column) %></td>
18
- <% end %>
19
- <td class="p-2 pr-5" style="word-spacing: 0.25rem">
20
- <% controls.resource_actions(resource, params: params, action: action_inquirer).each do |link| %>
21
- <%= link_to(link.text, link.href, link.options) %>
22
- <% end %>
23
- </td>
24
- </tr>
25
- <% end %>
26
- </tbody>
27
- </table>
28
- </div>
29
-
30
- <% if @pagination.necessary? %>
31
- <div class="flex justify-end mr-2">
32
- <div class="mt-4">
33
- <% @pagination.each do |page_query_params, is_current_page, display| %>
34
- <%= link_to(
35
- display,
36
- polymorphic_path(
37
- Super.configuration.path_parts(controls.model),
38
- page_query_params
39
- ),
40
- class: "inline-block ml-2 text-lg #{is_current_page ? " text-gray-900" : ""}"
41
- ) %>
42
- <% end %>
43
- </div>
44
- </div>
45
- <% end %>
@@ -1,10 +0,0 @@
1
- <% schema = controls.display_schema(action: action_inquirer) %>
2
-
3
- <table class="max-w-full leading-loose mt-4">
4
- <% schema.field_keys.each do |column| %>
5
- <tr>
6
- <th class="text-right px-4"><%= column.to_s.humanize %></th>
7
- <td><%= Super::Display.format(schema, @resource, column) %></td>
8
- </tr>
9
- <% end %>
10
- </table>
@@ -1,39 +0,0 @@
1
- <!--
2
- # @title Controls
3
- -->
4
-
5
- # Controls
6
-
7
- Controls are the primary way to "control" the behavior of your admin pages.
8
-
9
- Controls have several required and optional methods.
10
-
11
- <dl>
12
- <dt><code>#model</code> (required)</dt>
13
- <dd>The model</dd>
14
-
15
- <dt><code>#permitted_params</code> (required)</dt>
16
- <dd>The strong parameters definition</dd>
17
-
18
- <dt><code>#display_schema</code> (required)</dt>
19
- <dd>The display definition for the <code>#index</code> and <code>#show</code> pages</dd>
20
-
21
- <dt><code>#form_schema</code> (required)</dt>
22
- <dd>The form definition for the <code>#new</code> and <code>#edit</code> pages</dd>
23
-
24
- <dt><code>#title</code> (optional)</dt>
25
- <dd>The title to show on the main panel</dd>
26
-
27
- <dt><code>#resources_actions</code> (optional)</dt>
28
- <dd>The list of collection-level links</dd>
29
-
30
- <dt><code>#resource_actions</code> (optional)</dt>
31
- <dd>The list of member-level links</dd>
32
-
33
- <dt><code>#scope</code> (optional)</dt>
34
- <dd>The starting point of the query/relation. Defaults to <code>#all</code></dd>
35
- </dl>
36
-
37
-
38
- For more information, it may be helpful to look at the implementation of
39
- `Super::Controls`.
@@ -1,9 +0,0 @@
1
- module Super
2
- class Display
3
- def self.format(schema, resource, column)
4
- value = resource.public_send(column)
5
-
6
- schema.fields[column].present(value)
7
- end
8
- end
9
- end
@@ -1,36 +0,0 @@
1
- module Super
2
- module Step
3
- module_function
4
-
5
- def load_resources(controls, _params, action_inquirer)
6
- controls.scope(action: action_inquirer)
7
- end
8
-
9
- def initialize_pagination(resources, query_params, limit: Super.configuration.index_resources_per_page)
10
- Pagination.new(
11
- total_count: resources.size,
12
- limit: limit,
13
- query_params: query_params,
14
- page_query_param: :page
15
- )
16
- end
17
-
18
- def paginate_resources(resources, pagination)
19
- resources
20
- .limit(pagination.limit)
21
- .offset(pagination.offset)
22
- end
23
-
24
- def load_resource(controls, params, action_inquirer)
25
- controls.scope(action: action_inquirer).find(params[:id])
26
- end
27
-
28
- def build_resource(controls, action_inquirer)
29
- controls.scope(action: action_inquirer).build
30
- end
31
-
32
- def build_resource_with_params(controls, action_inquirer, create_permitted_params)
33
- controls.scope(action: action_inquirer).build(create_permitted_params)
34
- end
35
- end
36
- end
@@ -1,4 +0,0 @@
1
- # desc "Explaining what the task does"
2
- # task :super do
3
- # # Task goes here
4
- # end