Sha256: d0d832e9c5f212b23cf32230f92f269e06898ac19d394bf87c2d1631e1d6993d

Contents?: true

Size: 1.71 KB

Versions: 5

Compression:

Stored size: 1.71 KB

Contents

format :html do
  view :type do |args|
    args[:type_class] = "no-edit" if card.cards_of_type_exist?
    super args
  end

  view :type_formgroup do |args|
    if card.cards_of_type_exist?
      %(
        <div>
          Sorry, this card must remain a Cardtype so long as there are
          <strong>#{card.name}</strong> cards.
        </div>
      )
    else
      super args
    end
  end

  view :add_link do |args|
    args[:title] ||= "Add #{card.name}"
    link_to _render_title(args), _render_add_path(args), class: args[:css_class]
  end

  view :add_button, view: :add_link
  def default_add_button_args args
    args[:css_class] = "btn btn-default"
  end

  view :add_url do |args|
    card_url _render_add_path(args)
  end

  view :add_path do |args|
    path_args = {}
    if args[:params]
      context = ((@parent && @parent.card) || card).name
      Rack::Utils.parse_nested_query(args[:params]).each do |key, value|
        value = value.to_name.to_absolute(context) if value
        key = key.to_name.to_absolute(context)
        path_args[key] = value
      end
    end
    path_args[:action] = "new"
    page_path card.cardname, path_args
  end
end

include Basic

def follow_label
  default_follow_set_card.follow_label
end

def followed_by? user_id=nil
  default_follow_set_card.all_members_followed_by? user_id
end

def default_follow_set_card
  # FIXME: use codename
  Card.fetch("#{name}+*type")
end

def cards_of_type_exist?
  # FIXME: faster test than counting all of type?
  !new_card? && Auth.as_bot { Card.count_by_wql type_id: id } > 0
end

event :check_for_cards_of_type, after: :validate_delete do
  if cards_of_type_exist?
    errors.add :cardtype, "can't alter this type; #{name} cards still exist"
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
card-1.19.4 mod/standard/set/type/cardtype.rb
card-1.19.3 mod/standard/set/type/cardtype.rb
card-1.19.2 mod/standard/set/type/cardtype.rb
card-1.19.1 mod/standard/set/type/cardtype.rb
card-1.19.0 mod/standard/set/type/cardtype.rb