Sha256: c97638c7071dcec59d3f6495cc43edf362e18bad735b7f17f1c5786b5ab93e78

Contents?: true

Size: 1.68 KB

Versions: 6

Compression:

Stored size: 1.68 KB

Contents

# a virtual pointer to the sets that a user is following.
# (data is stored in preferences: `[Set]+[User]+:follow`)

include_set Abstract::Pointer
def virtual?
  new?
end

# def content
#   item_names.map { |name| "[[#{name}]]" }
# end

# overrides pointer default
def item_names _args={}
  if (user = left)
    Card.preference_names user.name, "follow"
  else
    []
  end
end

def suggestions
  Card[:follow_suggestions]&.item_names || []
end

def current_user?
  Auth.signed_in? && Auth.current_id == left.id
end

format :html do
  view :one_line_content do
    ""
  end

  view :edit do
    render :open
  end

  # renders follow tab and ignore tab
  view :core do
    lazy_loading_tabs({ "follow_tab" => "Follow", "ignore_tab" => "Ignore" },
                      "follow_tab") do
      render_follow_tab
    end
  end

  view :follow_tab, cache: :never do
    haml :follow_editor, items_method: :following_rules_and_options
  end

  view :ignore_tab, cache: :never do
    haml :follow_editor, items_method: :ignoring_rules_and_options
  end

  def show_button?
    card.current_user? || Auth.always_ok?
  end

  def pointer_items args
    voo.items[:view] ||= :link
    super(args)
  end

  # TODO: research and generalize
  # this does not look specific to following!
  view :errors, perms: :none do
    return unless card.errors.any?

    if card.errors.find { |attrib, _msg| attrib == :permission_denied }
      Env.save_interrupted_action(request.env["REQUEST_URI"])
      voo.title = "Problems with #{card.name}"
      class_up "d0-card-frame", "card card-warning card-inverse"
      frame do
        "Please #{link_to_card :signin, 'sign in'}" # " #{to_task}"
      end
    else
      super()
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
card-1.99.5 mod/follow/set/type_plus_right/user/follow.rb
card-1.99.4 mod/follow/set/type_plus_right/user/follow.rb
card-1.99.3 mod/follow/set/type_plus_right/user/follow.rb
card-1.99.2 mod/follow/set/type_plus_right/user/follow.rb
card-1.99.1 mod/follow/set/type_plus_right/user/follow.rb
card-1.99.0 mod/follow/set/type_plus_right/user/follow.rb