diff -r 2ca61e72c995 app/helpers/my_helper.rb --- a/app/helpers/my_helper.rb Mon Jul 30 01:32:31 2012 +0000 +++ b/app/helpers/my_helper.rb Mon Jul 30 12:54:10 2012 -0400 @@ -18,4 +18,35 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. module MyHelper + + # Renders a tree of projects as a nested set of unordered lists + # The given collection may be a subset of the whole project tree + # (eg. some intermediate nodes are private and can not be seen) + def render_project_hierarchy_notifications(projects) + s = '' + if projects.any? + ancestors = [] + original_project = @project + projects.each do |project| + # set the project environment to please macros. + @project = project + if (ancestors.empty? || project.is_descendant_of?(ancestors.last)) + s << "\n" + end + end + classes = (ancestors.empty? ? 'root' : 'child mypage') + s << "
  • " + ancestors << project + end + s << ("
  • \n" * ancestors.size) + @project = original_project + end + s.html_safe + end end diff -r 2ca61e72c995 app/views/users/_mail_notifications.html.erb --- a/app/views/users/_mail_notifications.html.erb Mon Jul 30 01:32:31 2012 +0000 +++ b/app/views/users/_mail_notifications.html.erb Mon Jul 30 12:54:10 2012 -0400 @@ -8,19 +8,7 @@ ) %>

    <%= content_tag 'div', :id => 'notified-projects', :style => (@user.mail_notification == 'selected' ? '' : 'display:none;') do %> -

    - <% @user.projects.each do |project| %> - -
    - <% end %> -

    + <%= render_project_hierarchy_notifications(@user.projects.find(:all, :order => 'lft'))%>

    <%= l(:text_user_mail_option) %>

    <% end %>

    diff -r 2ca61e72c995 public/stylesheets/application.css --- a/public/stylesheets/application.css Mon Jul 30 01:32:31 2012 +0000 +++ b/public/stylesheets/application.css Mon Jul 30 12:54:10 2012 -0400 @@ -413,8 +413,10 @@ ul.projects { margin: 0; padding-left: 1em; } ul.projects.root { margin: 0; padding: 0; } ul.projects ul.projects { border-left: 3px solid #e0e0e0; } +ul.projects ul.mypage { border-left:none; } ul.projects li.root { list-style-type:none; margin-bottom: 1em; } ul.projects li.child { list-style-type:none; margin-top: 1em;} +ul.projects li.mypage { margin:0; } ul.projects div.root a.project { font-family: "Trebuchet MS", Verdana, sans-serif; font-weight: bold; font-size: 16px; margin: 0 0 10px 0; } .my-project { padding-left: 18px; background: url(../images/fav.png) no-repeat 0 50%; }