Patch #2174 » macros.rb.patch
| lib/redmine/wiki_formatting/macros.rb (kopia robocza) | ||
|---|---|---|
| 77 | 77 |
content_tag('dl', out)
|
| 78 | 78 |
end |
| 79 | 79 |
|
| 80 |
desc "Displays a list of child pages."
|
|
| 80 |
desc "Displays page name and list of child pages. When no parameter is given only current page child pages are displayed. Example:\n\n !{{child_pages(Foo)}}\n\nresults in:\n \n* [[Foo]]\n** [[bar 1]]\n** [[bar 2]]\n\nwhile:\n\n !{{child_pages}}\n\nwill result on page [[Foo]] with:\n\n** [[bar 1]]\n** [[bar 2]]"
|
|
| 81 | 81 |
macro :child_pages do |obj, args| |
| 82 |
raise 'This macro applies to wiki pages only.' unless obj.is_a?(WikiContent) |
|
| 83 |
render_page_hierarchy(obj.page.descendants.group_by(&:parent_id), obj.page.id) |
|
| 82 |
if args.size > 0 then |
|
| 83 |
project = @project |
|
| 84 |
title = args.first.to_s |
|
| 85 |
if title =~ %r{^([^\:]+)\:(.*)$}
|
|
| 86 |
project_identifier, title = $1, $2 |
|
| 87 |
project = Project.find_by_identifier(project_identifier) || Project.find_by_name(project_identifier) |
|
| 88 |
end |
|
| 89 |
raise 'Unknow project' unless project && User.current.allowed_to?(:view_wiki_pages, project) |
|
| 90 |
raise 'No wiki for this project' unless !project.wiki.nil? |
|
| 91 |
page = project.wiki.find_page(title) |
|
| 92 |
#collect descendants and root |
|
| 93 |
pages = (page.descendants+[page]).group_by(&:parent_id) |
|
| 94 |
render_page_hierarchy(pages, page.parent_id) |
|
| 95 |
else |
|
| 96 |
raise 'This macro applies to wiki pages only.' unless obj.is_a?(WikiContent) |
|
| 97 |
page = obj.page |
|
| 98 |
#retain orginal rendering without root page |
|
| 99 |
render_page_hierarchy(page.descendants.group_by(&:parent_id), page.id) |
|
| 100 |
end |
|
| 84 | 101 |
end |
| 85 | 102 |
|
| 86 | 103 |
desc "Include a wiki page. Example:\n\n !{{include(Foo)}}\n\nor to include a page of a specific project wiki:\n\n !{{include(projectname:Foo)}}"
|
- « Previous
- 1
- 2
- Next »