# -*- encoding : utf-8 -*-
class Card; module Set; class Type; module Cardtype; extend Card::Set
# ~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/standard/set/type/cardtype.rb ~~
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?
%(
Sorry, this card must remain a Cardtype so long as there are
#{card.name} cards.
)
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
# ~~ below autogenerated; above pulled from /Users/ethan/dev/wagn/gem/card/mod/standard/set/type/cardtype.rb ~~
end;end;end;end;