Sha256: 3122578d578106fc798e5a8462593616f6ee1e5e7931e74c7f29aba6c93298fe

Contents?: true

Size: 1.48 KB

Versions: 3

Compression:

Stored size: 1.48 KB

Contents

module Edgarj
  module Drawer
    # PopupDrawer is the same as Drawer to draw 'belongs_to' model
    # to popup window.
    #
    # For example, AuthorPopupDrawer is to draw Author popup,
    # which is called from Book page.
    #
    # * options
    #   * list_drawer_options   - options for Edgarj::ListDrawer::Normal
    class Popup < Base
      def draw_row(record, &block)
        @vc.content_tag(:tr,
            class:  "list_line#{@line_color} edgarj_row edgarj_popup_list_row",
            data:   {id: record.id, name: record.name}) do
          yield
        end
      end

      def draw_list(list)
        @line_color = 1
        d           = Edgarj::ListDrawer::Normal.new(
            self,
            @options[:list_drawer_options] || {})

        @vc.content_tag(:table, width: '100%', class: 'list') do
          @vc.content_tag(:tr) do
            ''.html_safe.tap do |result|
              for col in columns_for(list_columns) do
                result << d.draw_column_header(col, id_target: @params[:id_target])
              end
            end
          end +
          ''.html_safe.tap do |trs|
            for rec in list do
              @line_color = 1 - @line_color
              trs << draw_row(rec) do
                ''.html_safe.tap do |cols|
                  for col in columns_for(list_columns) do
                    cols << d.draw_column(rec, col)
                  end
                end
              end
            end
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
edgarj-4.02.00 app/helpers/edgarj/drawer/popup.rb
edgarj-4.01.01 app/helpers/edgarj/drawer/popup.rb
edgarj-4.01.00 app/helpers/edgarj/drawer/popup.rb