Matchu
3c127569fe
Most of the reasoning is documented in the big comment. In short, we tried to solve the problem with caching, but the caching should hardly be necessary now that the bottleneck should be fixed. We'll see on production if it actually solves the whole problem, but I've confirmed in the console that redefining this function makes random_basic_per_species (as called during rendering) a ton faster. And this way we keep our randomness, woo!
108 lines
4 KiB
Text
108 lines
4 KiB
Text
- title @item.name
|
|
- canonical_path @item
|
|
|
|
- localized_cache "items/#{@item.id} header" do
|
|
%header#item-header
|
|
= image_tag @item.thumbnail_url, :id => 'item-thumbnail'
|
|
%div
|
|
%h2#item-name= @item.name
|
|
= nc_icon_for(@item)
|
|
- unless @item.rarity.blank?
|
|
== #{t '.rarity'}: #{@item.rarity_index} (#{@item.rarity})
|
|
= link_to t('.resources.jn_items'), jn_items_url_for(@item)
|
|
- unless @item.nc?
|
|
= link_to t('.resources.shop_wizard'), shop_wizard_url_for(@item)
|
|
= link_to t('.resources.super_shop_wizard'), super_shop_wizard_url_for(@item)
|
|
= link_to t('.resources.trading_post'), trading_post_url_for(@item)
|
|
= link_to t('.resources.auction_genie'), auction_genie_url_for(@item)
|
|
|
|
- if user_signed_in?
|
|
#closet-hangers
|
|
%h3
|
|
= t '.closet_hangers.header_html',
|
|
:user_items_link => link_to(t('your_items'),
|
|
user_closet_hangers_path(current_user))
|
|
= form_tag update_quantities_user_item_closet_hangers_path(:user_id => current_user, :item_id => @item), :method => :put do
|
|
#closet-hangers-ownership-groups
|
|
- @current_user_lists.each do |owned, lists|
|
|
%div
|
|
%h4= closet_lists_group_name(:you, owned)
|
|
%ul
|
|
- lists.each do |list|
|
|
%li
|
|
= number_field_tag "quantity[#{list.id}]",
|
|
@current_user_quantities[list.id], :min => 0
|
|
= label_tag "quantity[#{list.id}]", list.name
|
|
|
|
%li
|
|
= number_field_tag "quantity[#{owned}]",
|
|
@current_user_quantities[owned], :min => 0
|
|
|
|
- unless lists.empty?
|
|
= label_tag "quantity[#{owned}]",
|
|
t('closet_lists.unlisted_name'),
|
|
:class => 'unlisted'
|
|
- else
|
|
= label_tag "quantity[#{owned}]",
|
|
t('.closet_hangers.quantity_label')
|
|
= submit_tag t('.closet_hangers.submit')
|
|
|
|
- localized_cache "items/#{@item.id} info" do
|
|
%p= @item.description
|
|
|
|
#item-zones
|
|
%p
|
|
%strong #{t '.zones.occupied_header'}:
|
|
= list_zones @occupied_zones, :uncertain_label
|
|
%p
|
|
%strong #{t '.zones.restricted_header'}:
|
|
- if @restricted_zones.empty?
|
|
= t '.zones.none'
|
|
- else
|
|
= list_zones @restricted_zones
|
|
|
|
#trade-hangers
|
|
- [true, false].each do |owned|
|
|
%p
|
|
%strong
|
|
= trading_closet_hangers_header(owned, @trading_closet_hangers_by_owned[owned].size)
|
|
= render_trading_closet_hangers(owned)
|
|
%span.toggle
|
|
%span.more= t '.trading_closet_hangers.show_more'
|
|
%span.less= t '.trading_closet_hangers.show_less'
|
|
|
|
- localized_cache 'items#show preview_header' do
|
|
#item-preview-header
|
|
%h3= t '.preview.header'
|
|
= link_to t('.preview.customize_more'), root_path, :id => 'customize-more',
|
|
:class => 'button'
|
|
|
|
#item-preview
|
|
#item-preview-species
|
|
= standard_species_images_for(@item)
|
|
#item-preview-error
|
|
#item-preview-swf= t '.preview.requirements_not_met'
|
|
|
|
- localized_cache "items/#{@item.id} contributors" do
|
|
- unless @contributors_with_counts.empty?
|
|
#item-contributors
|
|
%header #{t '.contributors.header'}:
|
|
%ul
|
|
- @contributors_with_counts.each do |contributor, count|
|
|
%li= link_to(contributor.name, user_contributions_path(contributor)) + format_contribution_count(count)
|
|
%footer= t '.contributors.footer'
|
|
|
|
:javascript
|
|
var CURRENT_ITEM_ZONES_RESTRICT = #{@item.zones_restrict.inspect},
|
|
IMPRESS_HOST = #{RemoteImpressHost.inspect};
|
|
|
|
%script#swf-assets-not-found-template{:type => 'text/x-jquery-tmpl'}
|
|
= twl '.preview.not_found', :item_name => h(@item.name),
|
|
:species_name => '${species_name}',
|
|
:color_name => '${color_name}',
|
|
:modeling_link_url => root_path
|
|
|
|
- content_for :javascripts do
|
|
= include_javascript_libraries :jquery, :swfobject, :jquery_tmpl
|
|
= javascript_include_tag 'items/show'
|
|
|