Sha256: 0cad5757ba4e58609a7f255aee9b3c2de5420101f02c57fae28aabf7c4c3c956

Contents?: true

Size: 1.7 KB

Versions: 12

Compression:

Stored size: 1.7 KB

Contents

module Katello
  class ComponentViewPresenter < SimpleDelegator
    attr_accessor :view, :component_view

    def initialize(composite_cv, component_content_view = nil, content_view_component = nil)
      @view = component_content_view
      cv_component_record = content_view_component || Katello::ContentViewComponent.where(composite_content_view_id: composite_cv.id, content_view_id: @view.id).first
      @component_view = cv_component_record || Katello::ContentViewComponent.new(composite_content_view_id: composite_cv.id, content_view_id: @view.id, latest: true)
      super(@component_view)
    end

    def self.component_presenter(composite_cv, status, views:)
      case status
      when 'All'
        views.map { |component_content_view| ComponentViewPresenter.new(composite_cv, component_content_view) }
      when 'Added'
        added_cvs = views.map { |component_content_view| Katello::ContentViewComponent.where(composite_content_view_id: composite_cv.id, content_view_id: component_content_view.id).first }
        added_cvs.compact.map { |content_view| ComponentViewPresenter.new(composite_cv, nil, content_view) }
      when 'Not added'
        not_added_cvs = views.reject { |component_content_view| Katello::ContentViewComponent.where(composite_content_view_id: composite_cv.id, content_view_id: component_content_view.id).first }
        not_added_cvs.map { |component_content_view| ComponentViewPresenter.new(composite_cv, nil, Katello::ContentViewComponent.where(composite_content_view_id: composite_cv.id, content_view_id: component_content_view.id, latest: true).new) }
      else
        views.map { |component_content_view| ComponentViewPresenter.new(cv, component_content_view) }
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
katello-4.2.2 app/services/katello/component_view_presenter.rb
katello-4.3.0.rc4 app/services/katello/component_view_presenter.rb
katello-4.3.0.rc3 app/services/katello/component_view_presenter.rb
katello-4.3.0.rc2.1 app/services/katello/component_view_presenter.rb
katello-4.3.0.rc2 app/services/katello/component_view_presenter.rb
katello-4.3.0.rc1 app/services/katello/component_view_presenter.rb
katello-4.2.1 app/services/katello/component_view_presenter.rb
katello-4.2.0.1 app/services/katello/component_view_presenter.rb
katello-4.2.0.1.rc3 app/services/katello/component_view_presenter.rb
katello-4.2.0.1.rc2 app/services/katello/component_view_presenter.rb
katello-4.2.0.rc2 app/services/katello/component_view_presenter.rb
katello-4.2.0.rc1 app/services/katello/component_view_presenter.rb