# Renders the projects index
def render_project_hierarchy(projects)
+ bookmarked_project_ids = User.current.bookmarked_project_ids
render_project_nested_lists(projects) do |project|
- s = link_to_project(project, {}, :class => "#{project.css_classes} #{User.current.member_of?(project) ? 'icon icon-user my-project' : nil}")
+ classes = project.css_classes.split
+ classes += %w(icon icon-user my-project) if User.current.member_of?(project)
+ classes += %w(icon icon-bookmarked-project) if bookmarked_project_ids.include?(project.id)
+ s = link_to_project(project, {}, :class => classes.uniq.join(' '))
if project.description.present?
s << content_tag('div', textilizable(project.short_description, :project => project), :class => 'wiki description')
end
if item.is_a?(Project)
case column.name
when :name
- link_to_project(item) + (content_tag('span', '', :class => 'icon icon-user my-project', :title => l(:label_my_projects)) if User.current.member_of?(item))
+ link_to_project(item) +
+ (tag.span(class: 'icon icon-user my-project', title: l(:label_my_projects)) if User.current.member_of?(item)) +
+ (tag.span(class: 'icon icon-bookmarked-project', title: l(:label_my_bookmarks)) if User.current.bookmarked_project_ids.include?(item.id))
when :short_description
item.description? ? content_tag('div', textilizable(item, :short_description), :class => "wiki") : ''
when :homepage
<% if User.current.logged? %>
<p style="text-align:right;">
<span class="icon icon-user my-project"><%= l(:label_my_projects) %></span>
+<span class="icon icon-bookmarked-project"><%= l(:label_my_bookmarks) %></span>
</p>
<% end %>
#projects-index ul.projects div.description {
padding-top: 0.5em;
}
-#projects-index a.icon-user {padding-left:0; padding-right:20px; background-position:98% 50%;}
+#projects-index a.icon-user, a.icon-bookmarked-project {padding-left:0; padding-right:20px; background-position:98% 50%;}
+#projects-index a.icon-user.icon-bookmarked-project {
+ background-image: url(../images/tag_blue.png), url(../images/user.png);
+ background-position: bottom 0px right 0px, bottom 0px right 20px;
+ padding-right: 40px;
+ padding-top: 4px;
+}
#notified-projects>ul, #tracker_project_ids>ul, #custom_field_project_ids>ul {max-height:250px; overflow-y:auto;}
.icon-collapsed { background-image: url(../images/arrow_right.png); }
.icon-bookmark { background-image: url(../images/tag_blue_delete.png); }
.icon-bookmark-off { background-image: url(../images/tag_blue_add.png); }
+.icon-bookmarked-project { background-image: url(../images/tag_blue.png); }
.icon-sorted-asc { background-image: url(../images/arrow_down.png); }
.icon-sorted-desc { background-image: url(../images/arrow_up.png); }
.icon-toggle-plus { background-image: url(../images/bullet_toggle_plus.png) }