module SocialStream::Views::Location

Public Instance Methods

location(*stack) click to toggle source

Renders the location stack for your view. You can add as many stack levels as you wish.

Usage:

<%= location(level1,leve2,level3,level4,.…) %>

Output: base > level1 > level2 > level3 > level 4

Default configuration: base => “You are here” (“location.base” on config/locales) separator => “>” (“location.separator” on config/locales)

Styles and HTML wrapping: partial => location/_location.html.erb

Example:

Render a location with two leves depth:

<%= location(link_to(leve1.name, level1.url),link_to(leve2.name, level2.url)) %>
# File lib/social_stream/views/location.rb, line 24
      def location(*stack)
        
        location_body = render :partial => "location/location_body", :locals=>{:stack => stack}
        
        location_div = capture do
          render :partial => "location/location", :locals=>{:location_body => location_body}
        end
        
        case request.format
          when Mime::JS
          response = <<-EOJ

              $('#map_location').html("#{ escape_javascript(location_div) }");
              EOJ
          
          response.html_safe
        else
          content_for(:location) do
            location_div
          end
        end
      end