diff --git a/app/helpers/services_helper.rb b/app/helpers/services_helper.rb index f35f3d9bd..33f5f328b 100644 --- a/app/helpers/services_helper.rb +++ b/app/helpers/services_helper.rb @@ -1,5 +1,16 @@ module ServicesHelper + GSUB_THIS = "FIUSDHVIUSHDVIUBAIUHAPOIUXJM" def contact_proxy(friend) friend.contact || Contact.new(:person => friend.person) end + + # This method memoizes the facebook invite form in order to avoid the overhead of rendering it on every post. + # @param [ServiceUser] friend + # @return [String] The HTML for the form. + def facebook_invite_form friend + @form ||= controller.render_to_string( + :partial => 'services/facebook_invite', + :locals => {:uid => GSUB_THIS}) + @form.gsub(GSUB_THIS, friend.uid).html_safe + end end diff --git a/app/views/services/_remote_friend.html.haml b/app/views/services/_remote_friend.html.haml index a2287069e..330e51814 100644 --- a/app/views/services/_remote_friend.html.haml +++ b/app/views/services/_remote_friend.html.haml @@ -4,14 +4,11 @@ = link_to t('.resend'), service_inviter_path(:uid => friend.uid, :provider => 'facebook', :invitation_id => friend.invitation_id) - elsif friend.on_diaspora? = render 'aspect_memberships/aspect_dropdown', :contact => contact_proxy(friend), :person => friend.person, :hang => 'left' - - else - = form_tag service_inviter_path(:provider => 'facebook') do - = select_tag(:aspect_id, options_from_collection_for_select(all_aspects, 'id', 'name')) - = hidden_field_tag :uid, friend.uid - = submit_tag t('.invite') + - else + = facebook_invite_form(friend) - if friend.on_diaspora? - = person_image_link(friend.person) + = person_image_link(friend.person, :size => :thumb_small) - else = image_tag(friend.photo_url, :class => 'avatar')