Sha256: a994c67367ea03b5432a0d7f09c4c372f55d356f94b095a9e0786e19b36cdd18

Contents?: true

Size: 1.46 KB

Versions: 64

Compression:

Stored size: 1.46 KB

Contents

module Tenon
  module ItemVersionHelper
    def autosaving_form_for(obj, opts = {}, &blk)
      data = build_data(obj, opts)

      default_opts = {
        builder: Tenon::FormBuilder,
        data: data
      }

      form_for(obj, default_opts.merge(opts), &blk)
    end

    def save_draft_button(obj)
      path = new_item_version_path(item_type: obj.class.to_s, item_id: obj.id)
      css_class = 'btn btn-primary btn-block draft'
      data = {
        'modal-remote' => true,
        'modal-handler' => 'Tenon.features.NewItemVersionHandler',
        'modal-title' => 'Save Draft'
      }
      link_to 'Save Draft', path, class: css_class, data: data
    end

    def clear_draft_link
      path = url_for(version: nil)
      link_to 'Load Active Version', path, class: 'delete-link'
    end

    def load_draft_link(obj)
      path = item_versions_path(item_type: obj.class.to_s, item_id: obj.id)
      data = {
        'modal-remote' => true,
        'modal-title' => 'Load Draft',
        'modal-handler' => 'Tenon.features.ItemVersionIndexHandler'
      }
      link_to 'Load Draft', path, class: 'delete-link', data: data
    end

    private

    def build_data(obj, opts)
      data = {
        'item-type' => obj.class.to_s,
        'item-id' => obj.id,
        'autosave' => !params[:version],
        'version-create-path' => item_versions_path
      }

      if opts[:data]
        data = data.merge(opts[:data])
        opts.delete(:data)
      end

      data
    end
  end
end

Version data entries

64 entries across 64 versions & 1 rubygems

Version Path
tenon-1.0.65 app/helpers/tenon/item_version_helper.rb
tenon-1.0.64 app/helpers/tenon/item_version_helper.rb
tenon-1.0.63 app/helpers/tenon/item_version_helper.rb
tenon-1.0.62 app/helpers/tenon/item_version_helper.rb
tenon-1.0.61 app/helpers/tenon/item_version_helper.rb
tenon-1.0.60 app/helpers/tenon/item_version_helper.rb
tenon-1.0.59 app/helpers/tenon/item_version_helper.rb
tenon-1.0.57 app/helpers/tenon/item_version_helper.rb
tenon-1.0.56 app/helpers/tenon/item_version_helper.rb
tenon-1.0.55 app/helpers/tenon/item_version_helper.rb
tenon-1.0.54 app/helpers/tenon/item_version_helper.rb
tenon-1.0.53 app/helpers/tenon/item_version_helper.rb
tenon-1.0.52 app/helpers/tenon/item_version_helper.rb
tenon-1.0.51 app/helpers/tenon/item_version_helper.rb
tenon-1.0.50 app/helpers/tenon/item_version_helper.rb
tenon-1.0.49 app/helpers/tenon/item_version_helper.rb
tenon-1.0.48 app/helpers/tenon/item_version_helper.rb
tenon-1.0.47 app/helpers/tenon/item_version_helper.rb
tenon-1.0.46 app/helpers/tenon/item_version_helper.rb
tenon-1.0.45 app/helpers/tenon/item_version_helper.rb