Commit 71a7f3cd397590026408ab25dc2d51da4f171adc

Authored by Daniela Feitosa
1 parent 6da3d1f1

Add class on body when viewing a profile homepage

(ActionItem1988)
app/models/profile.rb
... ... @@ -809,6 +809,14 @@ private :generate_url, :url_options
809 809 "#{jid(options)}/#{short_name}"
810 810 end
811 811  
  812 + def is_on_homepage?(url, page=nil)
  813 + if page
  814 + page == self.home_page
  815 + else
  816 + url == '/' + self.identifier
  817 + end
  818 + end
  819 +
812 820 protected
813 821  
814 822 def followed_by?(person)
... ...
app/views/layouts/application-ng.rhtml
... ... @@ -22,7 +22,8 @@
22 22 # Identify the current controller and action for the CSS:
23 23 " controller-"+ @controller.controller_name() +
24 24 " action-"+ @controller.controller_name() +"-"+ @controller.action_name() +
25   - " template-"+ ( profile.nil? ? "default" : profile.layout_template )
  25 + " template-"+ ( profile.nil? ? "default" : profile.layout_template ) +
  26 + (!profile.nil? && profile.is_on_homepage?(request.path,@page) ? " profile-homepage" : "")
26 27 %>" >
27 28  
28 29 <a href="#content" id="link-go-content"><span><%= _("Go to the content") %></span></a>
... ...
test/functional/content_viewer_controller_test.rb
... ... @@ -1405,4 +1405,20 @@ class ContentViewerControllerTest &lt; Test::Unit::TestCase
1405 1405 assert_tag :tag => 'div', :attributes => { :id => 'article-header' }
1406 1406 end
1407 1407  
  1408 + should 'add class to body tag if is on profile homepage' do
  1409 + profile = fast_create(Profile)
  1410 + blog = fast_create(Blog, :profile_id => profile.id, :path => 'blog')
  1411 + profile.home_page = blog
  1412 + profile.save
  1413 + get :view_page, :profile => profile.identifier, :page => ['blog']
  1414 + assert_tag :tag => 'body', :attributes => { :class => /profile-homepage/ }
  1415 + end
  1416 +
  1417 + should 'not add class to body tag if is not on profile homepage' do
  1418 + profile = fast_create(Profile)
  1419 + blog = fast_create(Blog, :profile_id => profile.id, :path => 'blog')
  1420 + get :view_page, :profile => profile.identifier, :page => ['blog']
  1421 + assert_no_tag :tag => 'body', :attributes => { :class => /profile-homepage/ }
  1422 + end
  1423 +
1408 1424 end
... ...
test/unit/profile_test.rb
... ... @@ -1691,6 +1691,25 @@ class ProfileTest &lt; Test::Unit::TestCase
1691 1691 assert_includes Profile.find_by_contents('thing'), p2
1692 1692 end
1693 1693  
  1694 + should 'know if url is the profile homepage' do
  1695 + profile = fast_create(Profile)
  1696 +
  1697 + assert !profile.is_on_homepage?("/#{profile.identifier}/any_page")
  1698 + assert profile.is_on_homepage?("/#{profile.identifier}")
  1699 + end
  1700 +
  1701 + should 'know if page is the profile homepage' do
  1702 + profile = fast_create(Profile)
  1703 + not_homepage = fast_create(Article, :profile_id => profile.id)
  1704 +
  1705 + homepage = fast_create(Article, :profile_id => profile.id)
  1706 + profile.home_page = homepage
  1707 + profile.save
  1708 +
  1709 + assert !profile.is_on_homepage?("/#{profile.identifier}/#{not_homepage.slug}",not_homepage)
  1710 + assert profile.is_on_homepage?("/#{profile.identifier}/#{homepage.slug}", homepage)
  1711 + end
  1712 +
1694 1713 private
1695 1714  
1696 1715 def assert_invalid_identifier(id)
... ...