Sha256: 021c966bc40992b29d882c1e1d9ab6ab956b3f6283a64ed1786573c85080a70a

Contents?: true

Size: 1.6 KB

Versions: 12

Compression:

Stored size: 1.6 KB

Contents

#! no set module
class FollowLink
  attr_reader :format, :rule_content, :link_text, :action, :css_class, :hover_text

  delegate :link_to, to: :format

  def initialize format
    @format = format
    @card = format.card
  end

  def modal_link icon=false
    opts = link_opts.merge(
      "data-path": link_opts[:path],
      "data-toggle": "modal",
      "data-target": "#modal-#{card.name.safe_key}",
      class: css_classes("follow-link", link_opts[:class])
    )
    link_to render_link_text(icon), opts
  end

  def button
    opts = link_opts(:follow_section).merge(
      remote: true,
      class: @format.css_classes("follow-link", link_opts[:class],
                                 "slotter btn btn-sm btn-primary")
    )
    opts["data-update-foreign-slot"] =
      ".d0-card-body > .card-slot.RIGHT-Xfollower.content-view"
    opts["data-hover-text"] = hover_text if hover_text
    link_to render_link_text, opts
  end

  def link_opts success_view=:follow_status
    { title: title,
      path: path(success_view),
      class: css_class }
  end

  def render_link_text icon=false
    verb = %(<span class="follow-verb">#{link_text}</span>)
    icon = icon ? icon_tag(:flag) : ""
    [icon, verb].compact.join.html_safe
  end

  private

  def mark
    @card.follow_set_card.follow_rule_name Auth.current.name
  end

  def path view=:follow_status
    @format.path mark: mark,
                 action: :update,
                 success: { mark: @card.name, view: view },
                 card: { content: "[[#{rule_content}]]" }
  end

  def title
    "#{action} emails about changes to #{@card.follow_label}"
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
card-mod-follow-0.14.2 set/all/follow/follow_link.rb
card-mod-follow-0.14.1 set/all/follow/follow_link.rb
card-mod-follow-0.14.0 set/all/follow/follow_link.rb
card-mod-follow-0.13.4 set/all/follow/follow_link.rb
card-mod-follow-0.13.3 set/all/follow/follow_link.rb
card-mod-follow-0.13.2 set/all/follow/follow_link.rb
card-mod-follow-0.13.1 set/all/follow/follow_link.rb
card-mod-follow-0.13.0 set/all/follow/follow_link.rb
card-mod-follow-0.11.7 set/all/follow/follow_link.rb
card-mod-follow-0.12.0 set/all/follow/follow_link.rb
card-mod-follow-0.11.6 set/all/follow/follow_link.rb
card-mod-follow-0.11.5 set/all/follow/follow_link.rb