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