brick 1.0.117 → 1.0.118

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2ed704f637bf6db73f5856be2959ba3490eb721e6de052008914d12cd029a673
4
- data.tar.gz: 327a383fc224aebce1c96ba96b02c8a8a8604136bf61355b13b0029c203ff5c2
3
+ metadata.gz: bc284b8783ca27862ff567079ba680a238690e3779a57d705ee67a54ed016ab2
4
+ data.tar.gz: 812044a88cff33dbf4fe7dbfa37a80e91b1b1a94980091590f4665a123529e80
5
5
  SHA512:
6
- metadata.gz: eec983fb53ff9e5f010473e7a7f1b4f1b6d07f4b8d166f4dccb66b701565a61fb91ebf30c84145dffd585e83ce13bb86c7746906b2751bbb6702ee2dc09eb7a4
7
- data.tar.gz: 339edb3796933184d06de44def59b3ad5fd7d1c37995a73ffab4d62e7bb5dac0d8b63c28cb387e951e9899524ca8513fa938848449460aa234d901c28532f6c5
6
+ metadata.gz: 9a5f82a5956b40beeaa8aeca2861672561ea552b3b21cb85ebf9b426a31bdbd4025f4c047131ae962cdefb31378c8845c9bea947a50dfc34cf497cd9b68ae6b9
7
+ data.tar.gz: 83e1c1399045dc67d6c5dcd98347d2c84a7dec4ac474b5cc09da43b86ce21859d01204844be75d6764a5653c7ea1c220f3887835d07f703c789a82b6311bfad0
@@ -279,7 +279,7 @@ module ActiveRecord
279
279
  end
280
280
 
281
281
  def self.brick_import_template
282
- template = constants.include?(:IMPORT_TEMPLATE) ? self::IMPORT_TEMPLATE : suggest_template(false, false, 0)
282
+ template = constants.include?(:IMPORT_TEMPLATE) ? self::IMPORT_TEMPLATE : suggest_template(0, false, true)
283
283
  # Add the primary key to the template as being unique (unless it's already there)
284
284
  template[:uniques] = [pk = primary_key.to_sym]
285
285
  template[:all].unshift(pk) unless template[:all].include?(pk)
@@ -1034,18 +1034,19 @@ Module.class_exec do
1034
1034
 
1035
1035
  # AVO Resource
1036
1036
  elsif base_module == Object && Object.const_defined?('Avo') && requested.end_with?('Resource') &&
1037
- ['MotorResource'].exclude?(requested) # Expect that anything called MotorResource could be from that administrative gem
1038
- if (model = Object.const_get(requested[0..-9]))
1037
+ # Expect that anything called MotorResource or SpinaResource could be from those administrative gems
1038
+ requested.length > 8 && ['MotorResource', 'SpinaResource'].exclude?(requested)
1039
+ if (model = Object.const_get(requested[0..-9])) && model < ActiveRecord::Base
1039
1040
  require 'generators/avo/resource_generator'
1040
1041
  field_generator = Generators::Avo::ResourceGenerator.new([''])
1041
1042
  field_generator.instance_variable_set(:@model, model)
1042
- fields = field_generator.send(:generate_fields).split("\n")
1043
- .each_with_object([]) do |f, s|
1043
+ fields = field_generator.send(:generate_fields)&.split("\n")
1044
+ &.each_with_object([]) do |f, s|
1044
1045
  if (f = f.strip).start_with?('field ')
1045
1046
  f = f[6..-1].split(',')
1046
1047
  s << [f.first[1..-1].to_sym, [f[1][1..-1].split(': :').map(&:to_sym)].to_h]
1047
1048
  end
1048
- end
1049
+ end || []
1049
1050
  built_resource = Class.new(Avo::BaseResource) do |new_resource_class|
1050
1051
  self.model_class = model
1051
1052
  self.title = :brick_descrip
@@ -2385,11 +2386,11 @@ ORDER BY 1, 2, c.internal_column_id, acc.position"
2385
2386
  "NOT IN ('information_schema', 'pg_catalog', 'pg_toast', 'heroku_ext',
2386
2387
  'INFORMATION_SCHEMA', 'sys')"
2387
2388
  :
2388
- "= '#{ActiveRecord::Base.connection.current_database.tr("'", "''")}'"}#{"
2389
+ "= '#{ActiveRecord::Base.connection.current_database&.tr("'", "''")}'"}#{"
2389
2390
  AND t.table_schema = COALESCE(current_setting('SEARCH_PATH'), 'public')" if is_postgres && schema }
2390
2391
  -- AND t.table_type IN ('VIEW') -- 'BASE TABLE', 'FOREIGN TABLE'
2391
2392
  AND t.table_name NOT IN ('pg_stat_statements', ?, ?)
2392
- ORDER BY 1, t.table_type DESC, 2, kcu.ordinal_position"
2393
+ ORDER BY 1, t.table_type DESC, 2, c.ordinal_position"
2393
2394
  ActiveRecord::Base.execute_sql(sql, *ar_tables)
2394
2395
  end
2395
2396
 
@@ -76,6 +76,11 @@ function linkSchemas() {
76
76
  [... ev.target.getElementsByTagName(\"SELECT\")].forEach(function (select) {
77
77
  if (select.value === \"^^^brick_NULL^^^\") select.value = null;
78
78
  });
79
+ // Take outer <div> tag off the HTML being returned by any Trix editor
80
+ [... document.getElementsByTagName(\"TRIX-EDITOR\")].forEach(function (trix) {
81
+ var trixHidden = trix.inputElement;
82
+ if (trixHidden) trixHidden.value = trixHidden.value.slice(5, -6);
83
+ });
79
84
  return true;
80
85
  });
81
86
  });
@@ -215,16 +220,16 @@ function linkSchemas() {
215
220
  TurboFrameWrapperComponent.class_exec do
216
221
  alias _brick_content content
217
222
  def content
218
- # Avo's logo partial fails if there is not a URL helper called exactly "root_path"
219
- # (Finicky line over there is: avo/app/views/avo/partials/_logo.html.erb:1)
220
223
  if ::Brick.instance_variable_get(:@_brick_avo_js) == view_renderer.object_id
221
224
  _brick_content
222
225
  else
223
226
  ::Brick.instance_variable_set(:@_brick_avo_js, view_renderer.object_id)
227
+ # Avo's logo partial fails if there is not a URL helper called exactly "root_path"
228
+ # (Finicky line over there is: avo/app/views/avo/partials/_logo.html.erb:1)
224
229
  unless ::Rails.application.routes.named_routes.names.include?(:root) || ActionView::Base.respond_to?(:root_path)
225
230
  ActionView::Base.class_exec do
226
231
  def root_path
227
- Avo::App.root_path
232
+ Avo.configuration.root_path
228
233
  end
229
234
  end
230
235
  end
@@ -420,6 +425,32 @@ window.addEventListener(\"popstate\", linkSchemas);
420
425
  end
421
426
  end
422
427
 
428
+ # Unconfigured Mobility gem?
429
+ if Object.const_defined?('Mobility') && Mobility.respond_to?(:translations_class)
430
+ # Find the current defaults
431
+ defs = if Mobility.instance_variable_defined?(:@translations_class)
432
+ ::Mobility.translations_class.defaults
433
+ else
434
+ {}
435
+ end
436
+ # Fill in the blanks for any missing defaults
437
+ ::Mobility.configure do |config|
438
+ config.plugins do
439
+ # Default initializer would also set these:
440
+ # :backend_reader=>true
441
+ # :query=>:i18n
442
+ # :cache=>true
443
+ # :presence=>true
444
+ backend :key_value, type: :string unless defs.key?(:backend)
445
+ reader unless defs.key?(:reader)
446
+ writer unless defs.key?(:writer)
447
+ active_record unless ::Mobility::Plugins.instance_variable_get(:@plugins)&.key?(:active_record)
448
+ fallbacks false unless defs.key?(:fallbacks)
449
+ default nil unless defs.key?(:default)
450
+ end
451
+ end
452
+ end
453
+
423
454
  # ====================================
424
455
  # Dynamically create generic templates
425
456
  # ====================================
@@ -765,6 +796,7 @@ input+svg.revert {
765
796
 
766
797
  <% is_includes_dates = nil
767
798
  is_includes_json = nil
799
+ is_includes_text = nil
768
800
  def is_bcrypt?(val)
769
801
  val.is_a?(String) && val.length == 60 && val.start_with?('$2a$')
770
802
  end
@@ -1569,32 +1601,36 @@ end
1569
1601
  <td>
1570
1602
  <table><tr><td>
1571
1603
  <% dt_pickers = { datetime: 'datetimepicker', timestamp: 'datetimepicker', time: 'timepicker', date: 'datepicker' }
1572
- html_options = {}
1573
- html_options[:class] = 'dimmed' unless val
1574
- is_revert = true
1575
- if bt
1576
- html_options[:prompt] = \"Select #\{bt_name\}\" %>
1577
- <%= f.select k.to_sym, bt[3], { value: val || '^^^brick_NULL^^^' }, html_options %>
1578
- <%= if (bt_obj = bt_class&.find_by(bt_pair[1] => val))
1579
- link_to('⇛', send(\"#\{bt_class.base_class._brick_index(:singular)\}_path\".to_sym, bt_obj.send(bt_class.primary_key.to_sym)), { class: 'show-arrow' })
1580
- elsif val
1581
- \"<span class=\\\"orphan\\\">Orphaned ID: #\{val}</span>\".html_safe
1582
- end %>
1604
+ html_options = {}
1605
+ html_options[:class] = 'dimmed' unless val
1606
+ is_revert = true
1607
+ if bt
1608
+ html_options[:prompt] = \"Select #\{bt_name\}\" %>
1609
+ <%= f.select k.to_sym, bt[3], { value: val || '^^^brick_NULL^^^' }, html_options %>
1610
+ <%= if (bt_obj = bt_class&.find_by(bt_pair[1] => val))
1611
+ link_to('⇛', send(\"#\{bt_class.base_class._brick_index(:singular)\}_path\".to_sym, bt_obj.send(bt_class.primary_key.to_sym)), { class: 'show-arrow' })
1612
+ elsif val
1613
+ \"<span class=\\\"orphan\\\">Orphaned ID: #\{val}</span>\".html_safe
1614
+ end %>
1583
1615
  <% else
1584
- col_type = if ::Brick.config.json_columns[tbl_name]&.include?(k)
1585
- :json
1586
- elsif col&.sql_type == 'geography'
1587
- col.sql_type
1588
- else
1589
- col&.type
1590
- end
1591
- case (col_type ||= col&.sql_type)
1592
- when :string, :text %>
1593
- <% if is_bcrypt?(val) # || .readonly?
1616
+ col_type = if ::Brick.config.json_columns[tbl_name]&.include?(k)
1617
+ :json
1618
+ elsif col&.sql_type == 'geography'
1619
+ col.sql_type
1620
+ else
1621
+ col&.type
1622
+ end
1623
+ case (col_type ||= col&.sql_type)
1624
+ when :string, :text
1625
+ if is_bcrypt?(val) # || .readonly?
1594
1626
  is_revert = false %>
1595
1627
  <%= hide_bcrypt(val, nil, 1000) %>
1596
- <% else %>
1628
+ <% elsif col_type == :string %>
1597
1629
  <%= f.text_field(k.to_sym, html_options) %>
1630
+ <% else
1631
+ is_includes_text = true %>
1632
+ <%= f.hidden_field(k.to_sym, html_options) %>
1633
+ <trix-editor input=\"<%= f.field_id(k) %>\"></trix-editor>
1598
1634
  <% end %>
1599
1635
  <% when :boolean %>
1600
1636
  <%= f.check_box k.to_sym %>
@@ -1739,6 +1775,11 @@ flatpickr(\".timepicker\", {enableTime: true, noCalendar: true});
1739
1775
  <link rel=\"stylesheet\" type=\"text/css\" href=\"https://cdnjs.cloudflare.com/ajax/libs/slim-select/1.27.1/slimselect.min.css\">
1740
1776
  <% end %>
1741
1777
 
1778
+ <% if is_includes_text %>
1779
+ <script src=\"https://cdn.jsdelivr.net/npm/trix@2.0/dist/trix.umd.min.js\"></script>
1780
+ <link rel=\"stylesheet\" type=\"text/css\" href=\"https://cdn.jsdelivr.net/npm/trix@2.0/dist/trix.min.css\">
1781
+ <% end %>
1782
+
1742
1783
  <% # Started with v0.14.4 of vanilla-jsoneditor
1743
1784
  if is_includes_json %>
1744
1785
  <link rel=\"stylesheet\" type=\"text/css\" href=\"https://cdn.jsdelivr.net/npm/vanilla-jsoneditor/themes/jse-theme-default.min.css\">
@@ -5,7 +5,7 @@ module Brick
5
5
  module VERSION
6
6
  MAJOR = 1
7
7
  MINOR = 0
8
- TINY = 117
8
+ TINY = 118
9
9
 
10
10
  # PRE is nil unless it's a pre-release (beta, RC, etc.)
11
11
  PRE = nil
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brick
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.117
4
+ version: 1.0.118
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lorin Thwaits
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-26 00:00:00.000000000 Z
11
+ date: 2023-03-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord