Sha256: 0c4e18013bff89e238570a28f17a57ffa3a4e16ff9caaefff9c7736a30a3023e

Contents?: true

Size: 1.5 KB

Versions: 15

Compression:

Stored size: 1.5 KB

Contents

class ConfigurationItem < ActiveRecord::Base
  belongs_to :configuration
  belongs_to :configuration_item_type
  has_and_belongs_to_many :configuration_options

  alias :config :configuration
  alias :options :configuration_options
  alias :type :configuration_item_type

  def category
    self.type.category
  end

  def to_js_hash
    {:id => self.id,
      :configruationItemType => self.type.to_js_hash,
      :configurationOptions => options.collect(&:to_js_hash)
    }
  end

  def clear_options
    self.options.each{|option|option.destroy} if self.configuration_item_type.allow_user_defined_options?
    self.options.destroy_all
    self.save
  end

  def set_options(internal_identifiers_or_value)
    if self.configuration_item_type.allow_user_defined_options?
      value = internal_identifiers_or_value.first
      unless value.blank?
        option = ConfigurationOption.find_by_value_and_user_defined(value, true)
        self.options << (option ? option : ConfigurationOption.create(:value => value, :user_defined => true))
      end
    elsif self.configuration_item_type.is_multi_optional?
      internal_identifiers_or_value.each do |value|
        self.options << self.configuration_item_type.find_configuration_option(value) unless value.blank?
      end
    else
      value = internal_identifiers_or_value.first
      self.options << self.configuration_item_type.find_configuration_option(internal_identifiers_or_value) unless value.blank?
    end

    self.save
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
erp_app-3.0.16 app/models/configuration_item.rb
erp_app-3.0.15 app/models/configuration_item.rb
erp_app-3.0.14 app/models/configuration_item.rb
erp_app-3.0.13 app/models/configuration_item.rb
erp_app-3.0.12 app/models/configuration_item.rb
erp_app-3.0.10 app/models/configuration_item.rb
erp_app-3.0.9 app/models/configuration_item.rb
erp_app-3.0.8 app/models/configuration_item.rb
erp_app-3.0.7 app/models/configuration_item.rb
erp_app-3.0.6 app/models/configuration_item.rb
erp_app-3.0.5 app/models/configuration_item.rb
erp_app-3.0.4 app/models/configuration_item.rb
erp_app-3.0.3 app/models/configuration_item.rb
erp_app-3.0.2 app/models/configuration_item.rb
erp_app-3.0.1 app/models/configuration_item.rb