Sha256: 9d2a628de2d47332a5ffd05d721e03cb02957a9d4da7b504f8515e253e065b95

Contents?: true

Size: 1.29 KB

Versions: 2

Compression:

Stored size: 1.29 KB

Contents

# encoding: utf-8

module PagesCore
  module Admin
    module TagEditorHelper
      def tag_editor_for(
        form_helper, item, field_name = :serialized_tags, options = {}
      )
        tags = options[:tags] || Tag.tags_and_suggestions_for(item, limit: 20)
        tagged = options[:tagged] || item.tags
        options[:placeholder] ||= "Add tag..."
        content_tag(:div, class: "tag-editor clearfix") do
          form_helper.hidden_field(field_name, class: "serialized_tags") +
            tag_check_boxes(tags, tagged) +
            add_tag_button(options)
        end
      end

      private

      def tag_check_boxes(tags, tagged)
        content_tag(:div, class: :tags) do
          tags.map do |tag|
            content_tag(:span, class: :tag) do
              check_box_tag(
                "tag-#{tag.id}",
                1,
                tagged.include?(tag)
              ) + content_tag(:span, tag.name, class: :name)
            end
          end.join.html_safe
        end
      end

      def add_tag_button(options = {})
        content_tag(:div, class: "add-tag-form") do
          text_field_tag(
            "add_tag",
            options[:placeholder],
            class: "add-tag"
          ) + content_tag(:button, "Add", class: "add-tag-button")
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pages_core-3.4.3 app/helpers/pages_core/admin/tag_editor_helper.rb
pages_core-3.4.2 app/helpers/pages_core/admin/tag_editor_helper.rb