Sha256: 2952dd3eb8cc6c565869d2bf09473aa0cc17d53608788403db2996503f81a664

Contents?: true

Size: 630 Bytes

Versions: 1

Compression:

Stored size: 630 Bytes

Contents

class TabbedContentWidget < Widget
  attribute :tabs, :widgetlist

  DEFAULT_TABS = 2

  def self.valid_widget_classes_for(field_name)
    %w[TabbedContentTabWidget]
  end

  def description_for_editor
    "Tabbed Content"
  end

  def tabs_with_default
    _tabs = tabs.clone
    missing_tabs.times do
      _tabs << PlaceholderTabWidgetElement.new
    end
    _tabs
  end

  private

  def missing_tabs
    DEFAULT_TABS - tabs.size
  end

  class PlaceholderTabWidgetElement

    def id
      @id ||= SecureRandom.hex(2)
    end

    def headline
      'Widget Placeholder'
    end

    def content
      []
    end

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
scrivito_tabbed_content_widget-0.0.60 app/models/tabbed_content_widget.rb