mirror of
https://github.com/postgres/pgweb.git
synced 2025-08-06 09:57:57 +00:00
Show links to other versions of docs
Main patch from Marti Raudsepp, but with some fairly extensive changes
This commit is contained in:
@ -51,7 +51,7 @@ div.NAVHEADER table {
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
|
||||
#docNav {
|
||||
#docNav, #docVersions {
|
||||
position: relative;
|
||||
text-align: left;
|
||||
margin-left: 10px;
|
||||
|
@ -12,8 +12,17 @@ class DocPage(models.Model):
|
||||
title = models.CharField(max_length=256, null=True, blank=True)
|
||||
content = models.TextField(null=True, blank=True)
|
||||
|
||||
def display_version(self):
|
||||
"""Version as used for displaying and in URLs"""
|
||||
if self.version == 0:
|
||||
return 'devel'
|
||||
else:
|
||||
return str(self.version)
|
||||
|
||||
class Meta:
|
||||
db_table = 'docs'
|
||||
# Index file first, because we want to list versions by file
|
||||
unique_together = [('file', 'version')]
|
||||
|
||||
class DocComment(PgModel, models.Model):
|
||||
version = models.DecimalField(max_digits=3, decimal_places=1, null=False)
|
||||
|
@ -41,17 +41,20 @@ def docpage(request, version, typ, filename):
|
||||
else:
|
||||
indexname = "index.html"
|
||||
|
||||
page = get_object_or_404(DocPage, version=ver, file="%s.%s" % (filename, extension))
|
||||
fullname = "%s.%s" % (filename, extension)
|
||||
page = get_object_or_404(DocPage, version=ver, file=fullname)
|
||||
versions = DocPage.objects.filter(file=fullname).extra(select={'supported':"COALESCE((SELECT supported FROM core_version v WHERE v.tree=version), 'f')"}).order_by('-supported', '-version').only('version', 'file')
|
||||
|
||||
if typ=="interactive":
|
||||
comments = DocComment.objects.filter(version=ver, file="%s.%s" % (filename, extension), approved=True).order_by('posted_at')
|
||||
comments = DocComment.objects.filter(version=ver, file=fullname, approved=True).order_by('posted_at')
|
||||
else:
|
||||
comments = None
|
||||
|
||||
return render_to_response('docs/docspage.html', {
|
||||
'page': page,
|
||||
'supported_versions': [v for v in versions if v.supported],
|
||||
'unsupported_versions': [v for v in versions if not v.supported],
|
||||
'title': page.title,
|
||||
'doc_nav_version': ver > 0 and ver or "devel",
|
||||
'doc_type': typ,
|
||||
'comments': comments,
|
||||
'can_comment': (typ=="interactive" and ver==currver),
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en" dir="ltr">
|
||||
<head>
|
||||
<title>PostgreSQL: Documentation: {{doc_nav_version}}: {{page.title}}</title>
|
||||
<title>PostgreSQL: Documentation: {{page.display_version}}: {{page.title}}</title>
|
||||
<style type="text/css" media="screen" title="Normal Text">@import url("/media/css/docs.css");</style>
|
||||
<link rel="alternate stylesheet" media="screen" href="/media/css/docs_large.css" type="text/css" title="Large Text" />
|
||||
<script type="text/javascript" src="/media/js/styleswitcher.js"></script>
|
||||
@ -30,14 +30,38 @@
|
||||
<div id="docSearch">
|
||||
<form action="/search/" method="get">
|
||||
<div>
|
||||
<input type="hidden" name="u" value="/docs/{{doc_nav_version}}/">
|
||||
<input type="hidden" name="u" value="/docs/{{page.display_version}}/">
|
||||
<label for="q">Search Documentation: </label><input type="text" id="q" name="q" size="20" onfocus="if( this.value==this.defaultValue ) this.value='';" value="Search" /><input id="submit" type="submit" value="Search" />
|
||||
</div>
|
||||
</form>
|
||||
<div id="docTextSize">Text Size: <a href="#" onclick="setActiveStyleSheet('Normal Text'); return false;" onkeypress="return false;" title="Normal Text Size">Normal</a> / <a href="#" onclick="setActiveStyleSheet('Large Text'); return false;" onkeypress="return false;" title="Large Text Size">Large</a></div>
|
||||
</div>
|
||||
<div id="docNav">
|
||||
<a href="/" title="Home">Home</a> → <a href="/docs" title="Documentation">Documentation</a> → <a href="/docs/manuals" title="Manuals">Manuals</a> → <a href="/docs/{{doc_nav_version}}/{{doc_type}}/{{doc_index_filename}}">PostgreSQL {{doc_nav_version}}</a>{%if loaddate%} ({{loaddate|date:"Y-m-d H:i:s"}}){%endif%}
|
||||
<a href="/" title="Home">Home</a> → <a href="/docs" title="Documentation">Documentation</a> → <a href="/docs/manuals" title="Manuals">Manuals</a> → <a href="/docs/{{page.display_version}}/{{doc_type}}/{{doc_index_filename}}">PostgreSQL {{page.display_version}}</a>{%if loaddate%} ({{loaddate|date:"Y-m-d H:i:s"}}){%endif%}
|
||||
</div>
|
||||
<div id="docVersions">
|
||||
{%if supported_versions%}
|
||||
This page in other versions:
|
||||
{%for ver in supported_versions %}
|
||||
{%if not forloop.first %}/{%endif%}
|
||||
{%if ver.version == page.version %}
|
||||
<b>{{ver.display_version}}</b>
|
||||
{%else%}
|
||||
<a href="/docs/{{ver.display_version}}/{{doc_type}}/{{ver.file}}" title="This page in version {{ver.display_version}}">{{ver.display_version}}</a>
|
||||
{%endif%}
|
||||
{%endfor%}
|
||||
{%endif%}
|
||||
{%if unsupported_versions%}
|
||||
Unsupported versions:
|
||||
{%for ver in unsupported_versions %}
|
||||
{%if not forloop.first %}/{%endif%}
|
||||
{%if ver.version == page.version %}
|
||||
<b>{{ver.display_version}}</b>
|
||||
{% else %}
|
||||
<a href="/docs/{{ver.display_version}}/{{doc_type}}/{{ver.file}}" title="This page in version {{ver.display_version}}">{{ver.display_version}}</a>
|
||||
{%endif%}
|
||||
{%endfor%}
|
||||
{%endif%}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
Reference in New Issue
Block a user