Class: Ecoportal::API::V2::Page::Component::ReferenceField

Inherits:
Ecoportal::API::V2::Page::Component show all
Defined in:
lib/ecoportal/api/v2/page/component/reference_field.rb

Constant Summary

Constants included from Common::Content::StringDigest

Common::Content::StringDigest::MAX_HASH_LABEL

Constants inherited from Common::Content::DoubleModel

Common::Content::DoubleModel::NOT_USED

Constants included from Common::Content::ClassHelpers

Common::Content::ClassHelpers::NOT_USED

Instance Attribute Summary

Attributes inherited from Common::Content::DoubleModel

#_key, #_parent

Instance Method Summary collapse

Methods inherited from Ecoportal::API::V2::Page::Component

#attached?, get_class, #indexable_label, #multi_section?, new_doc, #ooze, #ref, #ref_backend, #section

Methods included from Common::Content::StringDigest

#hash_label, #indexable_label

Methods inherited from Common::Content::DoubleModel

#_doc_key, #as_json, #as_update, #consolidate!, #dirty?, #doc, embeds_many, embeds_one, enforce!, #initialize, #key, #key=, key?, new_uuid, #original_doc, pass_reader, pass_writer, passarray, passboolean, passdate, passforced, passkey, passthrough, #print_pretty, #replace_doc, #reset!, #root, #to_json

Methods included from Common::Content::ClassHelpers

#inheritable_attrs, #inheritable_class_vars, #inherited, #instance_variable_name, #new_class, #resolve_class, #to_constant, #to_time, #used_param?

Constructor Details

This class inherits a constructor from Ecoportal::API::Common::Content::DoubleModel

Instance Method Details

#add(ref_id) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/ecoportal/api/v2/page/component/reference_field.rb', line 19

def add(ref_id)
  doc["references"].push({
    "id" => ref_id,
    "weight" => 0,
    "patch_ver" => 0
  })
end

#configure(*conf) ⇒ Object

Quick config helper

Parameters:

  • conf (Symbol, Array<Symbol>)
    • :show_fields specify if the public register fields should be shown (requires register_id)
    • :create specify if the NEW button should appear
    • :attach specify if the ATTACH button should appear
    • :metadata specify if metadata should be shown (i.e. status)


37
38
39
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 37

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 = [:create, :attach, :metadata]
      unless (rest = hash_except(cnf.dup, *supported)).empty?
        unused.push(rest)
      end
      if cnf.key?(:create)   then self.hide_create = !cnf[:create] end
      if cnf.key?(:attach)   then self.hide_attach = !cnf[:attach] end
      if cnf.key?(:metadata) then self. = !cnf[:metadata] end
    else
      unused.push(cnf)
    end
  end.yield_self do |unused|
    super(*unused)
  end
end

#reference_idsObject



13
14
15
16
17
# File 'lib/ecoportal/api/v2/page/component/reference_field.rb', line 13

def reference_ids
  references.map do |ref|
    ref["id"]
  end
end

#to_s(delimiter: "\n") ⇒ Object



27
28
29
# File 'lib/ecoportal/api/v2/page/component/reference_field.rb', line 27

def to_s(delimiter: "\n")
  reference_ids.to_a.join(delimiter)
end