Class: Ecoportal::API::V2::Page::Component::ReferenceField
Constant Summary
Common::Content::StringDigest::MAX_HASH_LABEL
Common::Content::DoubleModel::Base::NOT_USED
Instance Attribute Summary
#_parent, #_parent_key
Instance Method Summary
collapse
#attached?, #bindings, #bindings?, #delete!, #forces, get_class, #indexable_label, #move, #multi_section?, new_doc, #ooze, #ref, #ref_backend, #replace, #replace_bindings, #section, #unattach!
#hash_label, #indexable_label
#initialize, new_uuid
#as_update, #dirty?
#include_missing
Instance Method Details
#add(*ref_ids) ⇒ Object
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'lib/ecoportal/api/v2/page/component/reference_field.rb', line 23
def add(*ref_ids)
doc['references'].tap do |refs|
ref_ids.each do |ref_id|
next if reference_ids.include?(ref_id)
refs.push({
'id' => ref_id,
'weight' => 0,
'patch_ver' => 0
})
end
end
end
|
#clear ⇒ Object
36
37
38
|
# File 'lib/ecoportal/api/v2/page/component/reference_field.rb', line 36
def clear
delete(*reference_ids)
end
|
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
# File 'lib/ecoportal/api/v2/page/component/reference_field.rb', line 69
def configure(*conf)
conf.each_with_object([]) do |cnf, unused|
case cnf
when :show_fields
self.display_fields = true
self.display_fields_in_lookup = true
when Hash
supported = i[create attach metadata]
rest = hash_except(cnf.dup, *supported)
unused.push(rest) unless rest.empty?
self.hide_create = !cnf[:create] if cnf.key?(:create)
self.hide_attach = !cnf[:attach] if cnf.key?(:attach)
self.hide_metadata = !cnf[:metadata] if cnf.key?(:metadata)
else
unused.push(cnf)
end
end.then do |unused|
super(*unused)
end
end
|
#delete(*ref_ids) ⇒ Object
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/ecoportal/api/v2/page/component/reference_field.rb', line 40
def delete(*ref_ids)
ref_ids.each do |ref_id|
doc_ref = doc['references'].find do |df|
df['id'] == ref_id
end
next unless doc_ref
ori_ref = original_doc['references'].find do |od|
od['id'] == ref_id
end
ori_ref['patch_ver'] ||= 0
doc['references'].delete(doc_ref)
end
end
|
#empty? ⇒ Boolean
13
14
15
|
# File 'lib/ecoportal/api/v2/page/component/reference_field.rb', line 13
def empty?
reference_ids.empty?
end
|
#reference_ids ⇒ Object
17
18
19
20
21
|
# File 'lib/ecoportal/api/v2/page/component/reference_field.rb', line 17
def reference_ids
references.map do |ref|
ref['id']
end
end
|
#to_s(delimiter: "\n") ⇒ Object
59
60
61
|
# File 'lib/ecoportal/api/v2/page/component/reference_field.rb', line 59
def to_s(delimiter: "\n")
reference_ids.to_a.join(delimiter)
end
|