brightcontent-core 2.1.1 → 2.1.2
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/app/views/brightcontent/base/form_fields/_belongs_to.html.erb +1 -0
- data/app/views/brightcontent/base/form_fields/_has_and_belongs_to_many.html.erb +1 -0
- data/app/views/brightcontent/base/form_fields/_has_many.html.erb +1 -0
- data/app/views/brightcontent/base/list_fields/_has_and_belongs_to_many.html.erb +1 -0
- data/app/views/brightcontent/base/list_fields/_has_many.html.erb +1 -0
- data/lib/brightcontent/view_lookup/{abstract.rb → base.rb} +21 -4
- data/lib/brightcontent/view_lookup/filter_field.rb +1 -13
- data/lib/brightcontent/view_lookup/form_field.rb +1 -1
- data/lib/brightcontent/view_lookup/list_field.rb +1 -5
- data/lib/brightcontent/view_lookup.rb +1 -1
- data/lib/generators/brightcontent/templates/initializer.rb +4 -0
- data/spec/lib/brightcontent/view_lookup/{abstract_spec.rb → base_spec.rb} +17 -6
- metadata +10 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1d98fd17e22933bb39e638dd9a3b39b878eef6cc
|
4
|
+
data.tar.gz: bca0e21e04d7d73fc2dd0478332981de55001219
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ebc862b8bde39b48d1988696dc3d044be451fe311571fd8e91d334e8fc169fe706968f8db905a3538dbcd03474fd907b929a811719b96800175d84821c8e9a76
|
7
|
+
data.tar.gz: 353c844ed0587227aaa8d7dbb78f67941c01d49a913c8e7afd728d353c94a19582bcdf80a2e530bfc6d29e00fa62258d48a3f26b22953811d3a84e633436e1af
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= form.association field.to_sym %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= form.association field.to_sym, as: :check_boxes %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= form.association field.to_sym, as: :check_boxes %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= item.send(field).count %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= item.send(field).count %>
|
@@ -2,7 +2,7 @@ require 'active_support/inflector'
|
|
2
2
|
|
3
3
|
module Brightcontent
|
4
4
|
module ViewLookup
|
5
|
-
class
|
5
|
+
class Base
|
6
6
|
attr_reader :options, :view_context
|
7
7
|
|
8
8
|
def initialize(view_context, options)
|
@@ -11,7 +11,7 @@ module Brightcontent
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def call
|
14
|
-
render_by_field_name || render_by_type || render_default
|
14
|
+
render_by_field_name || render_by_type || render_by_association_type || render_default
|
15
15
|
end
|
16
16
|
|
17
17
|
private
|
@@ -22,7 +22,12 @@ module Brightcontent
|
|
22
22
|
|
23
23
|
def render_by_type
|
24
24
|
return unless field_type
|
25
|
-
render
|
25
|
+
render "brightcontent/base/#{name.pluralize}/#{field_type}", options
|
26
|
+
end
|
27
|
+
|
28
|
+
def render_by_association_type
|
29
|
+
return unless association_type
|
30
|
+
render "brightcontent/base/#{name.pluralize}/#{association_type}", options
|
26
31
|
end
|
27
32
|
|
28
33
|
def render_default
|
@@ -30,7 +35,11 @@ module Brightcontent
|
|
30
35
|
end
|
31
36
|
|
32
37
|
def field_type
|
33
|
-
|
38
|
+
resource_class.columns_hash[options[:field].to_s].try :type
|
39
|
+
end
|
40
|
+
|
41
|
+
def association_type
|
42
|
+
association.try :macro
|
34
43
|
end
|
35
44
|
|
36
45
|
def name
|
@@ -41,6 +50,14 @@ module Brightcontent
|
|
41
50
|
options[:item].send(options[:field])
|
42
51
|
end
|
43
52
|
|
53
|
+
def association
|
54
|
+
resource_class.reflect_on_association options[:field].to_sym
|
55
|
+
end
|
56
|
+
|
57
|
+
def resource_class
|
58
|
+
view_context.send :resource_class
|
59
|
+
end
|
60
|
+
|
44
61
|
def render(*args)
|
45
62
|
view_context.render_if_exists(*args)
|
46
63
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Brightcontent
|
2
2
|
module ViewLookup
|
3
|
-
class FilterField <
|
3
|
+
class FilterField < Base
|
4
4
|
def render_default
|
5
5
|
raise "invalid filter field: #{options[:field]}" unless field_name
|
6
6
|
[
|
@@ -9,10 +9,6 @@ module Brightcontent
|
|
9
9
|
].join(" ").html_safe
|
10
10
|
end
|
11
11
|
|
12
|
-
def field_type
|
13
|
-
resource_class.columns_hash[options[:field]].try :type
|
14
|
-
end
|
15
|
-
|
16
12
|
private
|
17
13
|
|
18
14
|
def field?
|
@@ -44,14 +40,6 @@ module Brightcontent
|
|
44
40
|
def raw_options
|
45
41
|
resource_class.uniq.pluck(field_name)
|
46
42
|
end
|
47
|
-
|
48
|
-
def association
|
49
|
-
resource_class.reflect_on_association options[:field].to_sym
|
50
|
-
end
|
51
|
-
|
52
|
-
def resource_class
|
53
|
-
view_context.send :resource_class
|
54
|
-
end
|
55
43
|
end
|
56
44
|
end
|
57
45
|
end
|
@@ -1,13 +1,9 @@
|
|
1
1
|
module Brightcontent
|
2
2
|
module ViewLookup
|
3
|
-
class ListField <
|
3
|
+
class ListField < Base
|
4
4
|
def render_default
|
5
5
|
view_context.strip_tags(field_value.to_s).truncate(50)
|
6
6
|
end
|
7
|
-
|
8
|
-
def field_type
|
9
|
-
options[:item].column_for_attribute(options[:field]).try(:type)
|
10
|
-
end
|
11
7
|
end
|
12
8
|
end
|
13
9
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Brightcontent
|
2
2
|
module ViewLookup
|
3
|
-
autoload :
|
3
|
+
autoload :Base, 'brightcontent/view_lookup/base'
|
4
4
|
autoload :FormField, 'brightcontent/view_lookup/form_field'
|
5
5
|
autoload :ListField, 'brightcontent/view_lookup/list_field'
|
6
6
|
autoload :FilterField, 'brightcontent/view_lookup/filter_field'
|
@@ -23,4 +23,8 @@ Brightcontent.setup do |config|
|
|
23
23
|
# It has to implement an authenticate method.
|
24
24
|
# config.user_model = "Brightcontent::AdminUser"
|
25
25
|
|
26
|
+
# brightcontent-pages provides a Brightcontent::Page model which is used
|
27
|
+
# by default. If you want to user another model for pages (eg. to avoid
|
28
|
+
# the namespace) you can specify it as a string or class.
|
29
|
+
# config.page_model = "Brightcontent::Page"
|
26
30
|
end
|
@@ -1,19 +1,20 @@
|
|
1
|
-
require 'brightcontent/view_lookup/
|
1
|
+
require 'brightcontent/view_lookup/base'
|
2
2
|
|
3
3
|
module Brightcontent::ViewLookup
|
4
|
-
describe
|
5
|
-
class FakeFormField <
|
4
|
+
describe Base do
|
5
|
+
class FakeFormField < Base
|
6
6
|
def field_type
|
7
7
|
:string
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
-
let(:
|
11
|
+
let(:resource_class) { double(:resource_class, reflect_on_association: nil) }
|
12
|
+
let(:view_context) { double(:view_context, resource_class: resource_class) }
|
12
13
|
let(:item) { double(:item, name: 'Item name') }
|
13
14
|
let(:fake_form_field) { FakeFormField.new(view_context, field: 'name', item: item) }
|
14
15
|
|
15
16
|
context 'with specific field partial' do
|
16
|
-
it 'renders the
|
17
|
+
it 'renders the partial' do
|
17
18
|
expect(view_context).to receive(:render_if_exists)
|
18
19
|
.with("fake_form_field_name", {field: 'name', item: item}) { "Result" }
|
19
20
|
fake_form_field.call
|
@@ -21,7 +22,7 @@ module Brightcontent::ViewLookup
|
|
21
22
|
end
|
22
23
|
|
23
24
|
context 'with specific field type partial' do
|
24
|
-
it 'renders the
|
25
|
+
it 'renders the partial' do
|
25
26
|
expect(view_context).to receive(:render_if_exists).once
|
26
27
|
expect(view_context).to receive(:render_if_exists)
|
27
28
|
.with("brightcontent/base/fake_form_fields/string", {field: 'name', item: item}) { "Result" }
|
@@ -29,6 +30,16 @@ module Brightcontent::ViewLookup
|
|
29
30
|
end
|
30
31
|
end
|
31
32
|
|
33
|
+
context 'with association type' do
|
34
|
+
it 'renders the partial' do
|
35
|
+
allow(resource_class).to receive(:reflect_on_association).with(:name) { double(macro: "has_one") }
|
36
|
+
expect(view_context).to receive(:render_if_exists).twice
|
37
|
+
expect(view_context).to receive(:render_if_exists)
|
38
|
+
.with("brightcontent/base/fake_form_fields/has_one", {field: 'name', item: item}) { "Result" }
|
39
|
+
fake_form_field.call
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
32
43
|
context 'without partial' do
|
33
44
|
it 'renders the default value' do
|
34
45
|
expect(view_context).to receive(:render_if_exists).once
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brightcontent-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Developers at Brightin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-08-
|
11
|
+
date: 2014-08-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -311,10 +311,15 @@ files:
|
|
311
311
|
- app/views/brightcontent/base/_list_header.html.erb
|
312
312
|
- app/views/brightcontent/base/_list_item.html.erb
|
313
313
|
- app/views/brightcontent/base/edit.html.erb
|
314
|
+
- app/views/brightcontent/base/form_fields/_belongs_to.html.erb
|
314
315
|
- app/views/brightcontent/base/form_fields/_file.html.erb
|
316
|
+
- app/views/brightcontent/base/form_fields/_has_and_belongs_to_many.html.erb
|
317
|
+
- app/views/brightcontent/base/form_fields/_has_many.html.erb
|
315
318
|
- app/views/brightcontent/base/index.csv.erb
|
316
319
|
- app/views/brightcontent/base/index.html.erb
|
317
320
|
- app/views/brightcontent/base/list_fields/_boolean.html.erb
|
321
|
+
- app/views/brightcontent/base/list_fields/_has_and_belongs_to_many.html.erb
|
322
|
+
- app/views/brightcontent/base/list_fields/_has_many.html.erb
|
318
323
|
- app/views/brightcontent/base/new.html.erb
|
319
324
|
- app/views/brightcontent/sessions/new.html.erb
|
320
325
|
- app/views/layouts/brightcontent/application.html.erb
|
@@ -341,7 +346,7 @@ files:
|
|
341
346
|
- lib/brightcontent/resources.rb
|
342
347
|
- lib/brightcontent/routes_parser.rb
|
343
348
|
- lib/brightcontent/view_lookup.rb
|
344
|
-
- lib/brightcontent/view_lookup/
|
349
|
+
- lib/brightcontent/view_lookup/base.rb
|
345
350
|
- lib/brightcontent/view_lookup/filter_field.rb
|
346
351
|
- lib/brightcontent/view_lookup/form_field.rb
|
347
352
|
- lib/brightcontent/view_lookup/list_field.rb
|
@@ -411,7 +416,7 @@ files:
|
|
411
416
|
- spec/lib/brightcontent/resource_spec.rb
|
412
417
|
- spec/lib/brightcontent/resources_spec.rb
|
413
418
|
- spec/lib/brightcontent/routes_parser_spec.rb
|
414
|
-
- spec/lib/brightcontent/view_lookup/
|
419
|
+
- spec/lib/brightcontent/view_lookup/base_spec.rb
|
415
420
|
- spec/spec_helper.rb
|
416
421
|
- spec/support/acceptance_helper.rb
|
417
422
|
homepage: http://brightin.nl
|
@@ -499,6 +504,6 @@ test_files:
|
|
499
504
|
- spec/lib/brightcontent/resource_spec.rb
|
500
505
|
- spec/lib/brightcontent/resources_spec.rb
|
501
506
|
- spec/lib/brightcontent/routes_parser_spec.rb
|
502
|
-
- spec/lib/brightcontent/view_lookup/
|
507
|
+
- spec/lib/brightcontent/view_lookup/base_spec.rb
|
503
508
|
- spec/spec_helper.rb
|
504
509
|
- spec/support/acceptance_helper.rb
|