flexi_admin 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 (74) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +254 -18
  3. data/lib/flexi_admin/components/helpers/action_helper.rb +21 -0
  4. data/lib/flexi_admin/components/helpers/frontend_helper.rb +23 -0
  5. data/lib/flexi_admin/components/helpers/link_helper.rb +35 -2
  6. data/lib/flexi_admin/components/helpers/resource_helper.rb +79 -14
  7. data/lib/flexi_admin/components/helpers/url_helper.rb +15 -0
  8. data/lib/flexi_admin/components/nav/breadcrumbs_component.html.slim +13 -0
  9. data/lib/flexi_admin/components/nav/breadcrumbs_component.rb +86 -0
  10. data/lib/flexi_admin/components/resource/autocomplete_component.html.slim +19 -7
  11. data/lib/flexi_admin/components/resource/autocomplete_component.rb +41 -11
  12. data/lib/flexi_admin/components/resource/button_select_component.html.slim +2 -2
  13. data/lib/flexi_admin/components/resource/button_select_component.rb +8 -1
  14. data/lib/flexi_admin/components/resource/filter_component.html.slim +47 -0
  15. data/lib/flexi_admin/components/resource/filter_component.rb +51 -0
  16. data/lib/flexi_admin/components/resource/form_component.rb +16 -1
  17. data/lib/flexi_admin/components/resource/form_element_component.rb +1 -1
  18. data/lib/flexi_admin/components/resource/form_mixin.rb +186 -42
  19. data/lib/flexi_admin/components/resource/link_action_component.html.slim +2 -2
  20. data/lib/flexi_admin/components/resource/link_action_component.rb +3 -2
  21. data/lib/flexi_admin/components/resource/view_component.html.slim +14 -4
  22. data/lib/flexi_admin/components/resource/view_component.rb +11 -2
  23. data/lib/flexi_admin/components/resources/bulk_action/button_component.rb +8 -1
  24. data/lib/flexi_admin/components/resources/bulk_action/modal_component.html.slim +21 -15
  25. data/lib/flexi_admin/components/resources/bulk_action/modal_component.rb +16 -8
  26. data/lib/flexi_admin/components/resources/bulk_action/row_action_button_component.html.slim +16 -0
  27. data/lib/flexi_admin/components/resources/bulk_action/row_action_button_component.rb +78 -0
  28. data/lib/flexi_admin/components/resources/bulk_action/row_actions_dropdown_component.html.slim +15 -0
  29. data/lib/flexi_admin/components/resources/bulk_action/row_actions_dropdown_component.rb +33 -0
  30. data/lib/flexi_admin/components/resources/grid_view/card_component.html.slim +4 -1
  31. data/lib/flexi_admin/components/resources/grid_view/card_component.rb +4 -1
  32. data/lib/flexi_admin/components/resources/grid_view/grid_component.html.slim +3 -1
  33. data/lib/flexi_admin/components/resources/grid_view/grid_component.rb +4 -2
  34. data/lib/flexi_admin/components/resources/grid_view_component.rb +7 -2
  35. data/lib/flexi_admin/components/resources/index_page_component.html.slim +5 -4
  36. data/lib/flexi_admin/components/resources/index_page_component.rb +1 -0
  37. data/lib/flexi_admin/components/resources/list_view/table_component.html.slim +1 -1
  38. data/lib/flexi_admin/components/resources/list_view_component.rb +2 -1
  39. data/lib/flexi_admin/components/resources/pagination_component.html.slim +51 -39
  40. data/lib/flexi_admin/components/resources/pagination_component.rb +52 -47
  41. data/lib/flexi_admin/components/resources/switch_view_component.html.slim +2 -2
  42. data/lib/flexi_admin/components/resources/view_component.html.slim +15 -6
  43. data/lib/flexi_admin/components/shared/medium_component.html.slim +1 -1
  44. data/lib/flexi_admin/components/shared/table/header_item_component.html.slim +1 -1
  45. data/lib/flexi_admin/components/shared/table/header_item_component.rb +59 -61
  46. data/lib/flexi_admin/components/shared/tabs_component.html.slim +26 -0
  47. data/lib/flexi_admin/components/shared/tabs_component.rb +68 -0
  48. data/lib/flexi_admin/components.rb +11 -3
  49. data/lib/flexi_admin/config.rb +21 -3
  50. data/lib/flexi_admin/controllers/modals_controller.rb +4 -2
  51. data/lib/flexi_admin/controllers/resources_controller.rb +246 -51
  52. data/lib/flexi_admin/engine.rb +4 -0
  53. data/lib/flexi_admin/helpers/application_helper.rb +3 -0
  54. data/lib/flexi_admin/javascript/controllers/add_row_controller.js +118 -0
  55. data/lib/flexi_admin/javascript/controllers/autocomplete_controller.js +17 -1
  56. data/lib/flexi_admin/javascript/controllers/bulk_action_controller.js +192 -33
  57. data/lib/flexi_admin/javascript/controllers/copy_to_clipboard_controller.js +16 -0
  58. data/lib/flexi_admin/javascript/controllers/datalist_controller.js +1 -1
  59. data/lib/flexi_admin/javascript/controllers/delete_controller.js +40 -0
  60. data/lib/flexi_admin/javascript/controllers/expandable_field_controller.js +15 -0
  61. data/lib/flexi_admin/javascript/controllers/filter_auto_submit_controller.js +93 -0
  62. data/lib/flexi_admin/javascript/controllers/index.js +18 -0
  63. data/lib/flexi_admin/javascript/controllers/pagination_controller.js +8 -0
  64. data/lib/flexi_admin/javascript/controllers/tabs_controller.js +24 -0
  65. data/lib/flexi_admin/models/concerns/application_resource.rb +6 -0
  66. data/lib/flexi_admin/models/concerns/parentable.rb +3 -0
  67. data/lib/flexi_admin/models/context_params.rb +35 -10
  68. data/lib/flexi_admin/models/resources/context.rb +4 -0
  69. data/lib/flexi_admin/routes.rb +7 -1
  70. data/lib/flexi_admin/services/create_resource.rb +6 -6
  71. data/lib/flexi_admin/version.rb +1 -1
  72. data/lib/flexi_admin/views/shared/_reload_frame.slim +19 -0
  73. data/lib/flexi_admin.rb +0 -3
  74. metadata +171 -10
@@ -4,6 +4,10 @@ module FlexiAdmin::Models::Resources
4
4
  class Context
5
5
  attr_reader :resources, :scope, :params, :options
6
6
 
7
+ def scope_id
8
+ scope&.tr('/', '_')
9
+ end
10
+
7
11
  def initialize(resources, scope, params, options)
8
12
  @resources = resources
9
13
  @scope = scope
@@ -4,11 +4,17 @@ module FlexiAdmin
4
4
  module Routes
5
5
  def self.extended(router)
6
6
  router.instance_eval do
7
- concern :flexi_admin_resourceful do
7
+ concern :resourceful do
8
8
  post :bulk_action, on: :collection
9
9
  get :datalist, on: :collection
10
10
  get :autocomplete, on: :collection
11
11
  end
12
+
13
+ namespace :flexi_admin do
14
+ resources :modals, only: [], controller: "controllers/modals" do
15
+ get :show, on: :collection
16
+ end
17
+ end
12
18
  end
13
19
  end
14
20
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class FlexiAdmin::Services::CreateResource
4
- attr_reader :params, :resource_class, :errors
4
+ attr_reader :params, :resource_class, :resource, :errors
5
5
 
6
6
  def initialize(params:, resource_class:)
7
7
  @params = params
@@ -14,12 +14,12 @@ class FlexiAdmin::Services::CreateResource
14
14
  end
15
15
 
16
16
  def run
17
- resource = resource_class.new(params)
17
+ @resource = resource_class.new(params)
18
18
 
19
- if resource.save
20
- resource
19
+ if @resource.save
20
+ @resource
21
21
  else
22
- @errors.merge!(resource.errors)
22
+ @errors.merge!(@resource.errors)
23
23
  nil
24
24
  end
25
25
 
@@ -27,6 +27,6 @@ class FlexiAdmin::Services::CreateResource
27
27
  end
28
28
 
29
29
  def valid?
30
- resource.present? && errors.valid?
30
+ resource.present? && errors.empty?
31
31
  end
32
32
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module FlexiAdmin
4
4
  VERSION_FILE = ".gem-version"
5
- VERSION = "0.0.5"
5
+ VERSION = "0.0.6"
6
6
 
7
7
  def self.version
8
8
  VERSION
@@ -0,0 +1,19 @@
1
+ javascript:
2
+ (function() {
3
+ document.querySelectorAll('.modal.show').forEach(function(el) {
4
+ var instance = bootstrap.Modal.getInstance(el);
5
+ if (instance) instance.hide();
6
+ });
7
+ document.querySelectorAll('.modal-backdrop').forEach(function(el) { el.remove(); });
8
+ document.body.classList.remove('modal-open');
9
+ document.body.style.removeProperty('overflow');
10
+ document.body.style.removeProperty('padding-right');
11
+
12
+ var frame = document.getElementById('#{scope}');
13
+ if (frame) {
14
+ frame.src = null;
15
+ frame.src = '#{referrer}';
16
+ } else {
17
+ window.location.reload();
18
+ }
19
+ })();
data/lib/flexi_admin.rb CHANGED
@@ -41,9 +41,6 @@ rescue LoadError
41
41
  end
42
42
 
43
43
  module FlexiAdmin
44
- # Temporary fix to solve admin files namespaced in Admin namespace
45
- NAMESPACE = "Admin"
46
-
47
44
  class Error < StandardError; end
48
45
 
49
46
  class << self
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flexi_admin
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
  - Tomas Landovsky
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2025-02-22 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: actionview
@@ -78,20 +77,34 @@ dependencies:
78
77
  - - ">="
79
78
  - !ruby/object:Gem::Version
80
79
  version: '0'
80
+ - !ruby/object:Gem::Dependency
81
+ name: turbo-rails
82
+ requirement: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ type: :runtime
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
81
94
  - !ruby/object:Gem::Dependency
82
95
  name: view_component
83
96
  requirement: !ruby/object:Gem::Requirement
84
97
  requirements:
85
- - - '='
98
+ - - "~>"
86
99
  - !ruby/object:Gem::Version
87
- version: '3.20'
100
+ version: '3.24'
88
101
  type: :runtime
89
102
  prerelease: false
90
103
  version_requirements: !ruby/object:Gem::Requirement
91
104
  requirements:
92
- - - '='
105
+ - - "~>"
93
106
  - !ruby/object:Gem::Version
94
- version: '3.20'
107
+ version: '3.24'
95
108
  - !ruby/object:Gem::Dependency
96
109
  name: will_paginate
97
110
  requirement: !ruby/object:Gem::Requirement
@@ -120,6 +133,48 @@ dependencies:
120
133
  - - ">="
121
134
  - !ruby/object:Gem::Version
122
135
  version: '0'
136
+ - !ruby/object:Gem::Dependency
137
+ name: capybara
138
+ requirement: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - "~>"
141
+ - !ruby/object:Gem::Version
142
+ version: '3.39'
143
+ type: :development
144
+ prerelease: false
145
+ version_requirements: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - "~>"
148
+ - !ruby/object:Gem::Version
149
+ version: '3.39'
150
+ - !ruby/object:Gem::Dependency
151
+ name: database_cleaner-active_record
152
+ requirement: !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - "~>"
155
+ - !ruby/object:Gem::Version
156
+ version: '2.1'
157
+ type: :development
158
+ prerelease: false
159
+ version_requirements: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - "~>"
162
+ - !ruby/object:Gem::Version
163
+ version: '2.1'
164
+ - !ruby/object:Gem::Dependency
165
+ name: factory_bot_rails
166
+ requirement: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - "~>"
169
+ - !ruby/object:Gem::Version
170
+ version: '6.4'
171
+ type: :development
172
+ prerelease: false
173
+ version_requirements: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - "~>"
176
+ - !ruby/object:Gem::Version
177
+ version: '6.4'
123
178
  - !ruby/object:Gem::Dependency
124
179
  name: pry-rails
125
180
  requirement: !ruby/object:Gem::Requirement
@@ -134,8 +189,42 @@ dependencies:
134
189
  - - "~>"
135
190
  - !ruby/object:Gem::Version
136
191
  version: 0.3.10
192
+ - !ruby/object:Gem::Dependency
193
+ name: rails
194
+ requirement: !ruby/object:Gem::Requirement
195
+ requirements:
196
+ - - ">="
197
+ - !ruby/object:Gem::Version
198
+ version: '7.1'
199
+ - - "<"
200
+ - !ruby/object:Gem::Version
201
+ version: '9'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '7.1'
209
+ - - "<"
210
+ - !ruby/object:Gem::Version
211
+ version: '9'
137
212
  - !ruby/object:Gem::Dependency
138
213
  name: rspec-rails
214
+ requirement: !ruby/object:Gem::Requirement
215
+ requirements:
216
+ - - "~>"
217
+ - !ruby/object:Gem::Version
218
+ version: '6.1'
219
+ type: :development
220
+ prerelease: false
221
+ version_requirements: !ruby/object:Gem::Requirement
222
+ requirements:
223
+ - - "~>"
224
+ - !ruby/object:Gem::Version
225
+ version: '6.1'
226
+ - !ruby/object:Gem::Dependency
227
+ name: selenium-webdriver
139
228
  requirement: !ruby/object:Gem::Requirement
140
229
  requirements:
141
230
  - - ">="
@@ -162,6 +251,62 @@ dependencies:
162
251
  - - ">="
163
252
  - !ruby/object:Gem::Version
164
253
  version: '0'
254
+ - !ruby/object:Gem::Dependency
255
+ name: simplecov
256
+ requirement: !ruby/object:Gem::Requirement
257
+ requirements:
258
+ - - "~>"
259
+ - !ruby/object:Gem::Version
260
+ version: '0.22'
261
+ type: :development
262
+ prerelease: false
263
+ version_requirements: !ruby/object:Gem::Requirement
264
+ requirements:
265
+ - - "~>"
266
+ - !ruby/object:Gem::Version
267
+ version: '0.22'
268
+ - !ruby/object:Gem::Dependency
269
+ name: sprockets-rails
270
+ requirement: !ruby/object:Gem::Requirement
271
+ requirements:
272
+ - - ">="
273
+ - !ruby/object:Gem::Version
274
+ version: '0'
275
+ type: :development
276
+ prerelease: false
277
+ version_requirements: !ruby/object:Gem::Requirement
278
+ requirements:
279
+ - - ">="
280
+ - !ruby/object:Gem::Version
281
+ version: '0'
282
+ - !ruby/object:Gem::Dependency
283
+ name: sqlite3
284
+ requirement: !ruby/object:Gem::Requirement
285
+ requirements:
286
+ - - "~>"
287
+ - !ruby/object:Gem::Version
288
+ version: '2.0'
289
+ type: :development
290
+ prerelease: false
291
+ version_requirements: !ruby/object:Gem::Requirement
292
+ requirements:
293
+ - - "~>"
294
+ - !ruby/object:Gem::Version
295
+ version: '2.0'
296
+ - !ruby/object:Gem::Dependency
297
+ name: puma
298
+ requirement: !ruby/object:Gem::Requirement
299
+ requirements:
300
+ - - "~>"
301
+ - !ruby/object:Gem::Version
302
+ version: '6.0'
303
+ type: :development
304
+ prerelease: false
305
+ version_requirements: !ruby/object:Gem::Requirement
306
+ requirements:
307
+ - - "~>"
308
+ - !ruby/object:Gem::Version
309
+ version: '6.0'
165
310
  description: FlexiAdmin is a flexible and extensible admin framework for Rails applications.
166
311
  email:
167
312
  - landovsky@gmail.com
@@ -186,18 +331,23 @@ files:
186
331
  - lib/flexi_admin/components/form/text_input_component.rb
187
332
  - lib/flexi_admin/components/helpers/action_button_helper.rb
188
333
  - lib/flexi_admin/components/helpers/action_helper.rb
334
+ - lib/flexi_admin/components/helpers/frontend_helper.rb
189
335
  - lib/flexi_admin/components/helpers/icon_helper.rb
190
336
  - lib/flexi_admin/components/helpers/link_helper.rb
191
337
  - lib/flexi_admin/components/helpers/resource_helper.rb
192
338
  - lib/flexi_admin/components/helpers/selectable.rb
193
339
  - lib/flexi_admin/components/helpers/url_helper.rb
194
340
  - lib/flexi_admin/components/helpers/value_formatter.rb
341
+ - lib/flexi_admin/components/nav/breadcrumbs_component.html.slim
342
+ - lib/flexi_admin/components/nav/breadcrumbs_component.rb
195
343
  - lib/flexi_admin/components/nav/floating_toc_component.html.slim
196
344
  - lib/flexi_admin/components/nav/floating_toc_component.rb
197
345
  - lib/flexi_admin/components/resource/autocomplete_component.html.slim
198
346
  - lib/flexi_admin/components/resource/autocomplete_component.rb
199
347
  - lib/flexi_admin/components/resource/button_select_component.html.slim
200
348
  - lib/flexi_admin/components/resource/button_select_component.rb
349
+ - lib/flexi_admin/components/resource/filter_component.html.slim
350
+ - lib/flexi_admin/components/resource/filter_component.rb
201
351
  - lib/flexi_admin/components/resource/form_component.rb
202
352
  - lib/flexi_admin/components/resource/form_element_component.html.slim
203
353
  - lib/flexi_admin/components/resource/form_element_component.rb
@@ -211,6 +361,10 @@ files:
211
361
  - lib/flexi_admin/components/resources/bulk_action/button_component.rb
212
362
  - lib/flexi_admin/components/resources/bulk_action/modal_component.html.slim
213
363
  - lib/flexi_admin/components/resources/bulk_action/modal_component.rb
364
+ - lib/flexi_admin/components/resources/bulk_action/row_action_button_component.html.slim
365
+ - lib/flexi_admin/components/resources/bulk_action/row_action_button_component.rb
366
+ - lib/flexi_admin/components/resources/bulk_action/row_actions_dropdown_component.html.slim
367
+ - lib/flexi_admin/components/resources/bulk_action/row_actions_dropdown_component.rb
214
368
  - lib/flexi_admin/components/resources/grid_view/card_component.html.slim
215
369
  - lib/flexi_admin/components/resources/grid_view/card_component.rb
216
370
  - lib/flexi_admin/components/resources/grid_view/grid_component.html.slim
@@ -243,6 +397,8 @@ files:
243
397
  - lib/flexi_admin/components/shared/medium_component.rb
244
398
  - lib/flexi_admin/components/shared/table/header_item_component.html.slim
245
399
  - lib/flexi_admin/components/shared/table/header_item_component.rb
400
+ - lib/flexi_admin/components/shared/tabs_component.html.slim
401
+ - lib/flexi_admin/components/shared/tabs_component.rb
246
402
  - lib/flexi_admin/components/shared/trix_component.html.slim
247
403
  - lib/flexi_admin/components/shared/trix_component.rb
248
404
  - lib/flexi_admin/config.rb
@@ -252,11 +408,16 @@ files:
252
408
  - lib/flexi_admin/engine.rb
253
409
  - lib/flexi_admin/helpers.rb
254
410
  - lib/flexi_admin/helpers/application_helper.rb
411
+ - lib/flexi_admin/javascript/controllers/add_row_controller.js
255
412
  - lib/flexi_admin/javascript/controllers/application.js
256
413
  - lib/flexi_admin/javascript/controllers/autocomplete_controller.js
257
414
  - lib/flexi_admin/javascript/controllers/bulk_action_controller.js
258
415
  - lib/flexi_admin/javascript/controllers/button_select_controller.js
416
+ - lib/flexi_admin/javascript/controllers/copy_to_clipboard_controller.js
259
417
  - lib/flexi_admin/javascript/controllers/datalist_controller.js
418
+ - lib/flexi_admin/javascript/controllers/delete_controller.js
419
+ - lib/flexi_admin/javascript/controllers/expandable_field_controller.js
420
+ - lib/flexi_admin/javascript/controllers/filter_auto_submit_controller.js
260
421
  - lib/flexi_admin/javascript/controllers/floating_toc_controller.js
261
422
  - lib/flexi_admin/javascript/controllers/form_controller.js
262
423
  - lib/flexi_admin/javascript/controllers/form_validation_controller.js
@@ -264,6 +425,7 @@ files:
264
425
  - lib/flexi_admin/javascript/controllers/pagination_controller.js
265
426
  - lib/flexi_admin/javascript/controllers/sorting_controller.js
266
427
  - lib/flexi_admin/javascript/controllers/switch_view_controller.js
428
+ - lib/flexi_admin/javascript/controllers/tabs_controller.js
267
429
  - lib/flexi_admin/javascript/controllers/toast_controller.js
268
430
  - lib/flexi_admin/javascript/controllers/trix_controller.js
269
431
  - lib/flexi_admin/javascript/controllers/uploads_controller.js
@@ -290,6 +452,7 @@ files:
290
452
  - lib/flexi_admin/version.rb
291
453
  - lib/flexi_admin/views/shared/_redirect.slim
292
454
  - lib/flexi_admin/views/shared/_reload.slim
455
+ - lib/flexi_admin/views/shared/_reload_frame.slim
293
456
  - lib/flexi_admin/views/shared/_toasts.slim
294
457
  - lib/flexi_admin/views/shared/not_authorized.slim
295
458
  - lib/tasks/flexi_admin.rake
@@ -302,7 +465,6 @@ metadata:
302
465
  homepage_uri: https://github.com/landovsky/flexi_admin
303
466
  source_code_uri: https://github.com/landovsky/flexi_admin
304
467
  changelog_uri: https://github.com/landovsky/flexi_admin/blob/main/CHANGELOG.md
305
- post_install_message:
306
468
  rdoc_options: []
307
469
  require_paths:
308
470
  - lib
@@ -326,8 +488,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
326
488
  - !ruby/object:Gem::Version
327
489
  version: '0'
328
490
  requirements: []
329
- rubygems_version: 3.5.16
330
- signing_key:
491
+ rubygems_version: 3.6.9
331
492
  specification_version: 4
332
493
  summary: FlexiAdmin - just another admin framework
333
494
  test_files: []