Class: Ecoportal::API::V2::Page::Component::ContractorEntitiesField

Inherits:
Ecoportal::API::V2::Page::Component show all
Defined in:
lib/ecoportal/api/v2/page/component/contractor_entities_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, #_read_only

Instance Method Summary collapse

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

#attached?, #bindings, #bindings?, #delete!, #forces, get_class, #indexable_label, #move, #multi_section?, new_doc, #ooze, #ref, #ref_backend, #replace, #replace_bindings, #section, #unattach!

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, read_only!, read_only?, #read_only?, #replace_doc, #reset!, #resolved_doc_key, #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, #uid, #used_param?

Constructor Details

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

Instance Method Details

#add(*ids) ⇒ Object

Attaches people



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

def add(*ids)
  contractor_entities_ids << ids
end

#configure(*conf) ⇒ Object

Quick config helper

Parameters:

  • conf (Symbol, Array<Symbol>)
    • :snapshot to set mode to snapshot
    • :live to set mode to live
    • :me_button to display ME button
    • :permits to define the permissions
      • :all for entire page/all stages
      • :stages for all stages containing this field
      • :page for page only
      • :stage for only the stage containing this field when attached
      • :restructure
      • :configure
      • :can_permission
      • :create_actions
      • :admin_actions
      • :subscribed
      • :subscribed_to_tasks
    • requires: number to fine the number of required people to be attached


58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/ecoportal/api/v2/page/component/contractor_entities_field.rb', line 58

def configure(*conf)
  conf.each_with_object([]) do |cnf, unused|
    case cnf
    when :me_button
      self.is_me_button = true
    when :singular
      self.singular = true
    when Hash
      supported = [:singular, :permits]
      unless (rest = hash_except(cnf.dup, *supported)).empty?
        unused.push(rest)
      end

      if cnf.key?(:singular) then self.singular = !!cnf[:singular] end
      if cnf.key?(:permits)
        if permits = cnf[:permits]
          self.regular_access = true
          configure_permits(*[permits].flatten.compact)
        else
          self.regular_access = false
        end
      end
      if cnf.key?(:admin_permits)
        if permits = cnf[:permits]
          self.admin_access = true
          configure_permits(*[permits].flatten.compact)
        else
          self.admin_access = false
        end
      end
    else
      unused.push(cnf)
    end
  end.yield_self do |unused|
    super(*unused)
  end
end

#delete(*ids) ⇒ Object

Deletes people



32
33
34
# File 'lib/ecoportal/api/v2/page/component/contractor_entities_field.rb', line 32

def delete(*ids)
  contractor_entities_ids.reject! {|id| ids.include?(id)}
end

#empty?Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/ecoportal/api/v2/page/component/contractor_entities_field.rb', line 22

def empty?
  contractor_entities_ids.empty?
end

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



36
37
38
# File 'lib/ecoportal/api/v2/page/component/contractor_entities_field.rb', line 36

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