# -*- encoding : utf-8 -*- class Card; module Set; class All # Set: All cards (EditType) # module EditType; extend Card::Set def self.source_location; "/Users/ethan/dev/decko/gem/card-mod-edit/set/all/edit_type.rb"; end module HtmlFormat; module_parent.send :register_set_format, Card::Format::HtmlFormat, self; extend Card::Set::AbstractFormat view :edit_type, cache: :never, perms: :update do frame do _render_edit_type_form end end view :edit_type_form, cache: :never, perms: :update, wrap: :slot do card_form :update, success: edit_type_success do [type_formgroup, render_new_buttons] end end def edit_type_success { view: :core } end view :edit_type_row do return _render_bridge_type_formgroup if voo.visible?(:type_form) { false } edit_row_fixed_width "Type", link_to_card(card.type), :bridge_type_formgroup end view :bridge_type_formgroup, unknown: true, wrap: :slot do type_formgroup href: path(mark: card.id, view: :edit_form, assign: true, slot: { show: :type_form }), class: "live-type-field slotter", 'data-remote': true, 'data-slot-selector': ".card-slot.edit_form-view" end view :type_formgroup do type_formgroup end def type_formgroup args={} add_class args, "type-field" wrap_type_formgroup do type_field args end end def type_field args={} @no_current_type = args.delete :no_current_type # just a test artifact? action_view.select_tag "card[type]", type_field_options, args.merge("data-select2-id": "#{unique_id}-#{Time.now.to_i}") end private def raw_type_options return @raw_type_options if @raw_type_options options = Auth.createable_types if !@no_current_type && card.real? && !options.include?(card.type_name) # current type should be an option on existing cards, # regardless of create perms options.push(card.type_name).sort! end @raw_type_options = ::Set.new options end def wrap_type_formgroup formgroup "Type", input: "type", class: "type-formgroup", help: false do output [yield, hidden_field_tag(:assign, true)] end end def type_field_options if grouped_types.size == 1 simple_type_field_options else multi_type_field_options end end def simple_type_field_options options_for_select grouped_types.flatten[1], current_type_value end def multi_type_field_options grouped_options_for_select grouped_types, current_type_value end def current_type_value return if @no_current_type @current_type_value ||= card.type_name_or_default end def grouped_types groups = Hash.new { |h, k| h[k] = [] } visible_cardtype_groups.each_pair.with_object(groups) do |(name, items), grps| if name == "Custom" custom_grouped_types grps else standard_grouped_types grps, name, items end end end def custom_grouped_types groups Auth.createable_types.each do |type| groups["Custom"] << type unless ::Card::Set::Self::Cardtype::GROUP_MAP[type] end end def standard_grouped_types groups, name, items items.each do |i| groups[name] << i if raw_type_options.include?(i) end end def visible_cardtype_groups ::Card::Set::Self::Cardtype::GROUP end end end;end;end;end; # ~~ generated from /Users/ethan/dev/decko/gem/card-mod-edit/set/all/edit_type.rb ~~