brick 1.0.117 → 1.0.118
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.
- checksums.yaml +4 -4
- data/lib/brick/extensions.rb +9 -8
- data/lib/brick/frameworks/rails/engine.rb +66 -25
- data/lib/brick/version_number.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bc284b8783ca27862ff567079ba680a238690e3779a57d705ee67a54ed016ab2
|
4
|
+
data.tar.gz: 812044a88cff33dbf4fe7dbfa37a80e91b1b1a94980091590f4665a123529e80
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9a5f82a5956b40beeaa8aeca2861672561ea552b3b21cb85ebf9b426a31bdbd4025f4c047131ae962cdefb31378c8845c9bea947a50dfc34cf497cd9b68ae6b9
|
7
|
+
data.tar.gz: 83e1c1399045dc67d6c5dcd98347d2c84a7dec4ac474b5cc09da43b86ce21859d01204844be75d6764a5653c7ea1c220f3887835d07f703c789a82b6311bfad0
|
data/lib/brick/extensions.rb
CHANGED
@@ -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(
|
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
|
-
|
1038
|
-
|
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)
|
1043
|
-
|
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
|
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,
|
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
|
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
|
-
|
1573
|
-
|
1574
|
-
|
1575
|
-
|
1576
|
-
|
1577
|
-
|
1578
|
-
|
1579
|
-
|
1580
|
-
|
1581
|
-
|
1582
|
-
|
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
|
-
|
1585
|
-
|
1586
|
-
|
1587
|
-
|
1588
|
-
|
1589
|
-
|
1590
|
-
|
1591
|
-
|
1592
|
-
|
1593
|
-
|
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
|
-
<%
|
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\">
|
data/lib/brick/version_number.rb
CHANGED
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.
|
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-
|
11
|
+
date: 2023-03-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|