53 |
53 |
|
54 |
54 |
# Renders the projects index
|
55 |
55 |
def render_project_hierarchy(projects)
|
56 |
|
render_project_nested_lists(projects) do |project|
|
57 |
|
s = link_to_project(project, {}, :class => "#{project.css_classes} #{User.current.member_of?(project) ? 'my-project' : nil}")
|
|
56 |
# Smile specific #229028 Projects list : button to hide / show sub-projects
|
|
57 |
s_script = (
|
|
58 |
"<script language=\"javascript\">\n" +
|
|
59 |
" function toggleDivGroup(el) {\n" +
|
|
60 |
" var div = $(el).parents('div').first();\n" +
|
|
61 |
" var n = div.next();\n" +
|
|
62 |
" div.toggleClass('closed');\n" +
|
|
63 |
" while (n.length && !n.hasClass('group')) {\n" +
|
|
64 |
" n.toggle();\n" +
|
|
65 |
" n = n.next('div');\n" +
|
|
66 |
" }\n" +
|
|
67 |
" }\n" +
|
|
68 |
"</script>\n"
|
|
69 |
).html_safe
|
|
70 |
# END -- Smile specific #229028 Projects list : button to hide / show sub-projects
|
|
71 |
|
|
72 |
s_script << render_project_nested_lists(projects) do |project|
|
|
73 |
# Smile specific #229028 Projects list : button to hide / show sub-projects
|
|
74 |
s = ''.html_safe
|
|
75 |
s << '<span class="expander" onclick="toggleDivGroup(this);"> </span> '.html_safe unless project.leaf?
|
|
76 |
# END -- Smile specific #229028 Projects list : button to hide / show sub-projects
|
|
77 |
|
|
78 |
s << link_to_project(project, {}, :class => "#{project.css_classes} #{User.current.member_of?(project) ? 'my-project' : nil}")
|
58 |
79 |
if project.description.present?
|
59 |
80 |
s << content_tag('div', textilizable(project.short_description, :project => project), :class => 'wiki description')
|
60 |
81 |
end
|
61 |
82 |
s
|
62 |
83 |
end
|
|
84 |
|
|
85 |
# Smile specific #229028 Projects list : button to hide / show sub-projects
|
|
86 |
s_script
|
63 |
87 |
end
|
64 |
88 |
|
65 |
89 |
# Returns a set of options for a select field, grouped by project.
|