Sha256: 44bdc24f4e9576701a74b2ffafbd7af12f8529cc3e6f696debdb8387d37c7ad7

Contents?: true

Size: 1.92 KB

Versions: 1

Compression:

Stored size: 1.92 KB

Contents

# -*- encoding : utf-8 -*-
module RademadeAdmin
  module Input
    class RelatedSelectInput
      module RelatedList

        private

        def related_list_html
          template.content_tag(:ul, related_list_items_html, {
            :class => 'select2-items-list',
            :data => {
              :sortable => related_data_item.relation.sortable?
            }
          })
        end

        def related_list_items_html
          serialized_values = Autocomplete::BaseSerializer.new(related_value).as_json
          html = serialized_values.map do |serialized_value|
            template.content_tag(:li, related_list_item_html(serialized_value), :'data-id' => serialized_value[:id])
          end
          RademadeAdmin::HtmlBuffer.new(html)
        end

        def related_list_item_html(serialized_value)
          RademadeAdmin::HtmlBuffer.new([
            related_list_item_title_html(serialized_value),
            related_list_item_edit_html(serialized_value),
            related_list_item_remove_html
          ])
        end

        def related_list_item_title_html(serialized_value)
          template.content_tag(:span, serialized_value[:text])
        end

        def related_list_item_edit_html(serialized_value)
          template.content_tag(:button, I18n.t('rademade_admin.edit'), :'data-edit' => serialized_value[:edit_url])
        end

        def related_list_item_remove_html
          template.content_tag(:button, I18n.t('rademade_admin.destroy'), :'data-remove' => '')
        end

        def related_list_link_html
          if multiple?
            relation_name = RademadeAdmin::Model::Graph.instance.model_info(related_to).item_name
            url = admin_related_item(model, relation_getter)
            template.content_tag(:a, relation_name, {
              :href => url,
              :class => 'related-link'
            }) + related_list_html if url
          end
        end

      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rademade_admin-0.1.0 lib/rademade_admin/input/related_select_input/related_list.rb