Mercurial > hg > soundsoftware-site
comparison app/helpers/projects_helper.rb @ 335:7acd282bee3c cannam-pre-20110113-merge
Introduce render_project_short_description into projects helper; use it in welcome page (latest projects) as well as project lists, to avoid text formatting appearing in these lists
author | Chris Cannam <chris.cannam@soundsoftware.ac.uk> |
---|---|
date | Wed, 30 Mar 2011 11:05:16 +0100 |
parents | e665cc1fdf07 |
children | ebf53b46f3f3 |
comparison
equal
deleted
inserted
replaced
332:e665cc1fdf07 | 335:7acd282bee3c |
---|---|
45 | 45 |
46 options = '' | 46 options = '' |
47 options << "<option value=''></option>" if project.allowed_parents.include?(nil) | 47 options << "<option value=''></option>" if project.allowed_parents.include?(nil) |
48 options << project_tree_options_for_select(project.allowed_parents.compact, :selected => selected) | 48 options << project_tree_options_for_select(project.allowed_parents.compact, :selected => selected) |
49 content_tag('select', options, :name => 'project[parent_id]', :id => 'project_parent_id') | 49 content_tag('select', options, :name => 'project[parent_id]', :id => 'project_parent_id') |
50 end | |
51 | |
52 def render_project_short_description(project) | |
53 s = '' | |
54 if (project.short_description) | |
55 s << "<div class='description'>" | |
56 s << textilizable(project.short_description, :project => project).gsub(/<[^>]+>/, '') | |
57 s << "</div>" | |
58 end | |
59 s | |
50 end | 60 end |
51 | 61 |
52 # Renders a tree of projects as a nested set of unordered lists | 62 # Renders a tree of projects as a nested set of unordered lists |
53 # The given collection may be a subset of the whole project tree | 63 # The given collection may be a subset of the whole project tree |
54 # (eg. some intermediate nodes are private and can not be seen) | 64 # (eg. some intermediate nodes are private and can not be seen) |
71 end | 81 end |
72 end | 82 end |
73 classes = (ancestors.empty? ? 'root' : 'child') | 83 classes = (ancestors.empty? ? 'root' : 'child') |
74 s << "<li class='#{classes}'><div class='#{classes}'>" + | 84 s << "<li class='#{classes}'><div class='#{classes}'>" + |
75 link_to_project(project, {}, :class => "project #{User.current.member_of?(project) ? 'my-project' : nil}") | 85 link_to_project(project, {}, :class => "project #{User.current.member_of?(project) ? 'my-project' : nil}") |
76 s << "<div class='wiki description'>#{textilizable(project.short_description, :project => project)}</div>" unless project.description.blank? | 86 s << render_project_short_description(project) |
77 s << "</div>\n" | 87 s << "</div>\n" |
78 ancestors << project | 88 ancestors << project |
79 end | 89 end |
80 s << ("</li></ul>\n" * ancestors.size) | 90 s << ("</li></ul>\n" * ancestors.size) |
81 @project = original_project | 91 @project = original_project |
125 if project.is_public? | 135 if project.is_public? |
126 s << " <span class='public'>" << l("field_is_public") << "</span>" | 136 s << " <span class='public'>" << l("field_is_public") << "</span>" |
127 else | 137 else |
128 s << " <span class='private'>" << l("field_is_private") << "</span>" | 138 s << " <span class='private'>" << l("field_is_private") << "</span>" |
129 end | 139 end |
130 desc = textilizable(project.short_description, :project => project).gsub(/<[^>]+>/, '') | 140 s << render_project_short_description(project) |
131 s << "<div class='wiki description'>#{desc}</div>" unless project.description.blank? | |
132 s << "</div>\n" | 141 s << "</div>\n" |
133 ancestors << project | 142 ancestors << project |
134 end | 143 end |
135 end | 144 end |
136 s << ("</li></ul>\n" * ancestors.size) | 145 s << ("</li></ul>\n" * ancestors.size) |
197 s << "<tr class='#{oddeven} #{classes} level#{level}'>" | 206 s << "<tr class='#{oddeven} #{classes} level#{level}'>" |
198 s << "<td class='firstcol' align=top><div class='name hosted_here" | 207 s << "<td class='firstcol' align=top><div class='name hosted_here" |
199 s << " no_description" if project.description.blank? | 208 s << " no_description" if project.description.blank? |
200 s << "'>" << link_to_project(project, {}, :class => "project #{User.current.member_of?(project) ? 'my-project' : nil}"); | 209 s << "'>" << link_to_project(project, {}, :class => "project #{User.current.member_of?(project) ? 'my-project' : nil}"); |
201 s << "</div>" | 210 s << "</div>" |
202 unless project.description.blank? | 211 s << render_project_short_description(project) |
203 s << "<div class='wiki description'>" | |
204 s << textilizable(project.short_description, :project => project).gsub(/<[^>]+>/, '') | |
205 s << "</div>" | |
206 end | |
207 | 212 |
208 s << "<td class='managers' align=top>" | 213 s << "<td class='managers' align=top>" |
209 | 214 |
210 u = project.users_by_role | 215 u = project.users_by_role |
211 if u | 216 if u |