Move generate_versions to layout template
This commit is contained in:
parent
5c88c885da
commit
126ddae515
2 changed files with 35 additions and 38 deletions
45
http/web.py
45
http/web.py
|
|
@ -222,41 +222,6 @@ def get_directories(basedir):
|
|||
directories.append(filename)
|
||||
return sorted(directories)
|
||||
|
||||
# Generates HTML with a list of project versions, displayed in the sidebar
|
||||
# versions - usually generated by Query.query('versions')
|
||||
# url: usually "ident/$ident" or "source/$path", URL of the current page with cmd but without version
|
||||
# NOTE: "/$project/" is the base URL - see base tag in HTML head
|
||||
# tag: currently browsed tag
|
||||
def generate_versions(versions, url, current_tag):
|
||||
v = ''
|
||||
b = 1
|
||||
for topmenu, submenus in versions.items():
|
||||
v += '<li>\n'
|
||||
v += '\t<span>'+topmenu+'</span>\n'
|
||||
v += '\t<ul>\n'
|
||||
b += 1
|
||||
for submenu in submenus:
|
||||
tags = submenus[submenu]
|
||||
if submenu == tags[0] and len(tags) == 1:
|
||||
if submenu == current_tag:
|
||||
v += '\t\t<li class="li-link active"><a href="'+submenu+'/'+url+'">'+submenu+'</a></li>\n'
|
||||
else:
|
||||
v += '\t\t<li class="li-link"><a href="'+submenu+'/'+url+'">'+submenu+'</a></li>\n'
|
||||
else:
|
||||
v += '\t\t<li>\n'
|
||||
v += '\t\t\t<span>'+submenu+'</span>\n'
|
||||
v += '\t\t\t<ul>\n'
|
||||
for _tag in tags:
|
||||
_tag_encoded = parse.quote(_tag, safe='')
|
||||
if _tag == current_tag:
|
||||
v += '\t\t\t\t<li class="li-link active"><a href="'+_tag_encoded+'/'+url+'">'+_tag+'</a></li>\n'
|
||||
else:
|
||||
v += '\t\t\t\t<li class="li-link"><a href="'+_tag_encoded+'/'+url+'">'+_tag+'</a></li>\n'
|
||||
v += '\t\t\t</ul></li>\n'
|
||||
v += '\t</ul></li>\n'
|
||||
|
||||
return v
|
||||
|
||||
# Generates response (status code and optionally HTML) of the `source` route
|
||||
# q: Query object
|
||||
# basedir: path to data directory, ex: "/srv/elixir-data"
|
||||
|
|
@ -445,9 +410,12 @@ def generate_source_page(q, basedir, parsed_path):
|
|||
'family': 'A',
|
||||
|
||||
'breadcrumb': '<a class="project" href="'+version+'/source">/</a>',
|
||||
'versions': generate_versions(q.query('versions'), url, tag),
|
||||
'title': title,
|
||||
|
||||
'versions': q.query('versions'),
|
||||
'url': url,
|
||||
'current_tag': tag,
|
||||
|
||||
'main': outputBuffer.getvalue(),
|
||||
}
|
||||
|
||||
|
|
@ -601,7 +569,10 @@ def generate_ident_page(q, basedir, parsed_path):
|
|||
|
||||
'breadcrumb': '<a class="project" href="'+version+'/source">/</a>',
|
||||
'title': ident+' identifier - '+title_suffix,
|
||||
'versions': generate_versions(q.query('versions'), url, tag),
|
||||
|
||||
'versions': q.query('versions'),
|
||||
'url': url,
|
||||
'current_tag': tag,
|
||||
|
||||
'main': outputBuffer.getvalue()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,7 +61,33 @@
|
|||
</ul>
|
||||
<h3 class="screenreader">Versions</h3>
|
||||
<ul class="versions">
|
||||
{{versions}}
|
||||
{% for topmenu, submenus in versions.items() %}
|
||||
<li>
|
||||
<span>{{ topmenu }}</span>
|
||||
<ul>
|
||||
{% for submenu, tags in submenus.items() %}
|
||||
{% if submenu == tags[0] and tags|length == 1 %}
|
||||
<li class="li-link {{ 'active' if submenu == current_tag else '' }}">
|
||||
<a href="{{ submenu }}/{{ url }}">{{ submenu }}</a>
|
||||
</li>
|
||||
{% else %}
|
||||
<li>
|
||||
<span>{{ submenu }}</span>
|
||||
<ul>
|
||||
{% for _tag in tags %}
|
||||
<li class="li-link {{ 'active' if _tag == current_tag else '' }}">
|
||||
<a href="{{ _tag | urlencode | replace('/', '%2F') }}/{{ url }}">
|
||||
{{ _tag }}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</nav>
|
||||
</aside>
|
||||
|
|
|
|||
Loading…
Reference in a new issue