Mercurial > hg > soundsoftware-site
comparison app/helpers/projects_helper.rb @ 68:60c0a4e08e09 luisf
Feature #35: The projects page now is separated in "My Projects" and "Other Projects".
author | luisf |
---|---|
date | Mon, 06 Dec 2010 17:50:43 +0000 |
parents | 1d32c0a0efbf |
children | dc22c3eb3c81 |
comparison
equal
deleted
inserted
replaced
66:29d087fde142 | 68:60c0a4e08e09 |
---|---|
81 @project = original_project | 81 @project = original_project |
82 end | 82 end |
83 s | 83 s |
84 end | 84 end |
85 | 85 |
86 | |
87 # Renders a tree of projects where the current user belongs | |
88 # as a nested set of unordered lists | |
89 # The given collection may be a subset of the whole project tree | |
90 # (eg. some intermediate nodes are private and can not be seen) | |
91 def render_my_project_hierarchy(projects) | |
92 s = '' | |
93 | |
94 if projects.any? | |
95 ancestors = [] | |
96 original_project = @project | |
97 projects.each do |project| | |
98 # set the project environment to please macros. | |
99 | |
100 @project = project | |
101 | |
102 if User.current.member_of?(project): | |
103 | |
104 if (ancestors.empty? || project.is_descendant_of?(ancestors.last)) | |
105 s << "<ul class='projects #{ ancestors.empty? ? 'root' : nil}'>\n" | |
106 else | |
107 ancestors.pop | |
108 s << "</li>" | |
109 while (ancestors.any? && !project.is_descendant_of?(ancestors.last)) | |
110 ancestors.pop | |
111 s << "</ul></li>\n" | |
112 end | |
113 end | |
114 | |
115 classes = (ancestors.empty? ? 'root' : 'child') | |
116 s << "<li class='#{classes}'><div class='#{classes}'>" + | |
117 link_to_project(project, {}, :class => "project #{User.current.member_of?(project) ? 'my-project' : nil}") | |
118 s << "<div class='wiki description'>#{textilizable(project.short_description, :project => project)}</div>" unless project.description.blank? | |
119 s << "</div>\n" | |
120 ancestors << project | |
121 end | |
122 end | |
123 s << ("</li></ul>\n" * ancestors.size) | |
124 @project = original_project | |
125 end | |
126 s | |
127 end | |
128 | |
129 # Renders a tree of projects where the current DOES NOT belong | |
130 # as a nested set of unordered lists | |
131 # The given collection may be a subset of the whole project tree | |
132 # (eg. some intermediate nodes are private and can not be seen) | |
133 def render_other_project_hierarchy(projects) | |
134 s = '' | |
135 | |
136 if projects.any? | |
137 ancestors = [] | |
138 original_project = @project | |
139 projects.each do |project| | |
140 # set the project environment to please macros. | |
141 | |
142 @project = project | |
143 | |
144 if not User.current.member_of?(project): | |
145 | |
146 if (ancestors.empty? || project.is_descendant_of?(ancestors.last)) | |
147 s << "<ul class='projects #{ ancestors.empty? ? 'root' : nil}'>\n" | |
148 else | |
149 ancestors.pop | |
150 s << "</li>" | |
151 while (ancestors.any? && !project.is_descendant_of?(ancestors.last)) | |
152 ancestors.pop | |
153 s << "</ul></li>\n" | |
154 end | |
155 end | |
156 | |
157 classes = (ancestors.empty? ? 'root' : 'child') | |
158 s << "<li class='#{classes}'><div class='#{classes}'>" + | |
159 link_to_project(project, {}, :class => "project #{User.current.member_of?(project) ? 'my-project' : nil}") | |
160 s << "<div class='wiki description'>#{textilizable(project.short_description, :project => project)}</div>" unless project.description.blank? | |
161 s << "</div>\n" | |
162 ancestors << project | |
163 end | |
164 end | |
165 | |
166 s << ("</li></ul>\n" * ancestors.size) | |
167 @project = original_project | |
168 end | |
169 s | |
170 end | |
171 | |
172 | |
173 | |
86 # Returns a set of options for a select field, grouped by project. | 174 # Returns a set of options for a select field, grouped by project. |
87 def version_options_for_select(versions, selected=nil) | 175 def version_options_for_select(versions, selected=nil) |
88 grouped = Hash.new {|h,k| h[k] = []} | 176 grouped = Hash.new {|h,k| h[k] = []} |
89 versions.each do |version| | 177 versions.each do |version| |
90 grouped[version.project.name] << [version.name, version.id] | 178 grouped[version.project.name] << [version.name, version.id] |