From fb51d9d97348bd9a030f850aea1fba91da832eb3 Mon Sep 17 00:00:00 2001 From: "Jonathan S. Katz" Date: Sun, 25 Mar 2018 17:11:04 -0400 Subject: [PATCH] Update pgarchives to use new styles. "base.html" is equivalent to pgweb/.../base.html other than the top "shoutbox" bar, which will dynamically load the latest news from PGDG. As this is not yet implemented, it is commented out. --- .../archives/mailarchives/templates/404.html | 2 +- .../archives/mailarchives/templates/500.html | 3 +- .../archives/mailarchives/templates/base.html | 222 +++-- .../mailarchives/templates/datelist.html | 49 +- .../templates/datelist_topandbottom.html | 1 + .../mailarchives/templates/index.html | 88 +- .../mailarchives/templates/message.html | 155 ++-- .../mailarchives/templates/message_flat.html | 75 +- .../mailarchives/templates/monthlist.html | 39 +- .../archives/mailarchives/templates/page.html | 28 + .../mailarchives/templates/searchform.html | 43 +- django/archives/mailarchives/views.py | 61 +- django/archives/urls.py | 3 +- django/media/css/archives.css | 97 --- django/media/css/base.css | 1 + django/media/css/docs.css | 534 ++++++++++++ django/media/css/global.css | 98 --- django/media/css/iefixes.css | 138 --- django/media/css/layout.css | 688 --------------- django/media/css/main.css | 815 ++++++++++++++++++ django/media/css/navigation.css | 237 ----- django/media/css/table.css | 101 --- django/media/css/text.css | 162 ---- django/media/img/about/press/elephant.png | Bin 0 -> 60635 bytes django/media/img/atpostgresql.png | Bin 0 -> 6564 bytes django/media/img/git.png | Bin 0 -> 2383 bytes 26 files changed, 1827 insertions(+), 1813 deletions(-) create mode 100644 django/archives/mailarchives/templates/page.html delete mode 100644 django/media/css/archives.css create mode 100644 django/media/css/base.css create mode 100644 django/media/css/docs.css delete mode 100644 django/media/css/global.css delete mode 100644 django/media/css/iefixes.css delete mode 100644 django/media/css/layout.css create mode 100644 django/media/css/main.css delete mode 100644 django/media/css/navigation.css delete mode 100644 django/media/css/table.css delete mode 100644 django/media/css/text.css create mode 100644 django/media/img/about/press/elephant.png create mode 100755 django/media/img/atpostgresql.png create mode 100644 django/media/img/git.png diff --git a/django/archives/mailarchives/templates/404.html b/django/archives/mailarchives/templates/404.html index 7cc5b94..6560bd4 100644 --- a/django/archives/mailarchives/templates/404.html +++ b/django/archives/mailarchives/templates/404.html @@ -1,4 +1,4 @@ -{%extends "base.html"%} +{%extends "page.html"%} {%block title%}Not found{%endblock%} {%block contents%}

Not Found

diff --git a/django/archives/mailarchives/templates/500.html b/django/archives/mailarchives/templates/500.html index 4904ef7..357c303 100644 --- a/django/archives/mailarchives/templates/500.html +++ b/django/archives/mailarchives/templates/500.html @@ -1,9 +1,8 @@ -{%extends "base.html"%} +{%extends "page.html"%} {%block title%}Server error{%endblock%} {%block contents%}

Server Error

An internal server error occurred.

- {%endblock%} diff --git a/django/archives/mailarchives/templates/base.html b/django/archives/mailarchives/templates/base.html index c4468f6..28bf6e0 100644 --- a/django/archives/mailarchives/templates/base.html +++ b/django/archives/mailarchives/templates/base.html @@ -1,123 +1,113 @@ - - + + - {%block title%}{%endblock%} + PostgreSQL: {%block title%}{%endblock%} + -{%block meta%}{%endblock%} {# used for custom meta tags such as description which we don't want for every page #} + {%block meta%}{%endblock%} {# used for custom meta tags such as description which we don't want for every page #} + + + - - - - - - - - - -{%block extrahead%}{%endblock%} - - -
-
- Skip site navigation (1) - Skip section navigation (2) -
-
-
-
-

- -
-
-

Peripheral Links

-
- + {%if newstags %} + {%comment%}Default RSS links are only shown on pages that have newstags set{%endcomment%} + + {%for t in newstags%} + + {%endfor%} + + {%endif%} + + {%block extrahead%}{%endblock%} + + +
+
+
+ + +
-
-
-
- PostgreSQL -
-
- The world's most advanced open source database. -
-
- - -
-
-
-
- + {% comment %} + +
+
+ 1st March 2018: PostgreSQL 10.3 Released! +
+
+ {% endcomment %} +
+ {%block layoutblock%}{%endblock%} + +
+
+
+
+
    +
  • @postgresql
  • +
  • Git
  • +
-
-
-{%block contents%}{%endblock%} -
-
-
-
- Privacy Policy | - About PostgreSQL
- Copyright © 1996-{% now "Y" %} The PostgreSQL Global Development Group -
-
-
- +
+
+ +
+ Privacy Policy | + About PostgreSQL | + Contact
+

Copyright © 1996-{% now "Y" %} The PostgreSQL Global Development Group

+
+ + + + + + + diff --git a/django/archives/mailarchives/templates/datelist.html b/django/archives/mailarchives/templates/datelist.html index 0799420..1d47936 100644 --- a/django/archives/mailarchives/templates/datelist.html +++ b/django/archives/mailarchives/templates/datelist.html @@ -1,24 +1,45 @@ -{%extends "base.html"%} +{%extends "page.html"%} {%block title%}PostgreSQL Mailing Lists: {{title}}{%endblock%} {%block extrahead%}{%endblock%} {%load pgfilters%} + {%block contents%} -

{{title}}

+

{{title}}

+

{{list.description}}

+ {%include "searchform.html"%} + {%include "datelist_topandbottom.html"%} + {%for m in messages%} -{%ifchanged m.date.date%} -{%if not forloop.first%} - -{%endif%} -

{{m.date.date}}

- -

-{%endif%} + {%ifchanged m.date.date%} + {%if not forloop.first%} + + + {%endif%} +

{{m.date.date}}

+ + + + + + + + + + {%endifchanged%} + + + + + + {%if forloop.last%} + +
ThreadAuthorTime
+ {{m.subject|default:"[No subject]"}} + {{m.mailfrom|nameonly}}{{m.date.time|time:"H:i"}}
+ {%endif%} {%endfor%} + {%include "datelist_topandbottom.html"%} {%endblock%} diff --git a/django/archives/mailarchives/templates/datelist_topandbottom.html b/django/archives/mailarchives/templates/datelist_topandbottom.html index 5cfbba0..097f138 100644 --- a/django/archives/mailarchives/templates/datelist_topandbottom.html +++ b/django/archives/mailarchives/templates/datelist_topandbottom.html @@ -1,4 +1,5 @@ {%if messages%} +

Browse Archives

{%with messages|first as firstmsg%} Prev {%endwith%} diff --git a/django/archives/mailarchives/templates/index.html b/django/archives/mailarchives/templates/index.html index 148bdb8..ef1d8c6 100644 --- a/django/archives/mailarchives/templates/index.html +++ b/django/archives/mailarchives/templates/index.html @@ -1,52 +1,72 @@ -{%extends "base.html"%} +{%extends "page.html"%} {%block title%}PostgreSQL Mailing List Archives{%endblock%} {%load pgfilters%} {%block contents%} -

PostgreSQL Mailing Lists

+

PostgreSQL Mailing Lists

-

How to Subscribe or Unsubscribe

+

What are the PostgreSQL Mailing Lists?

-

Note 1: Please ensure you read the Archive Policy -before posting to the lists.

+The PostgreSQL mailing lists are one of the primary ways to interact with the PostgreSQL community. The mailing lists are an effective way to communicate and contribute to PostgreSQL and there are a lists that cover a variety of topics, including: -

Note 2: Please do not subscribe to mailing lists using e-mail -accounts protected by mail-back anti-spam systems. These are extremely annoying -to the list maintainers and other members, and you may be automatically unsubscribed. +

    +
  • Ongoing PostgreSQL development
  • +
  • General support
  • +
  • Product release & event announcements
  • +
  • Coordinate community outreach
  • +
+ +and many more. + +

How to Subscribe or Unsubscribe

+ +

To help ensure you have a productive experience on the PostgreSQL experience, we have a few tips to get you started on your journey:

+ +

Tip #1: Read The Archives Policy

+ +

The PostgreSQL mailing lists are available in a public archive and are independently syndicated across the web. We want you to feel comfortable posting to our public mailing lists, so please ensure you read our Archive Policy prior to your initial post.

+ +

Tip #2: Avoid Mail-Back Anti-Spam Systems

+ +

If your email address is protected by a mail-back anti-spam system, this could cause some issues with our mailing list system. If it is discovered that your email address has implemented one of these systems, we mave have to automatically unsubscribe your account.

+

Subscribing to a PostgreSQL Mailing List

+

-To subscribe to one of the PostgreSQL mailinglist, please use the system at -lists.postgresql.org. +Ready to join the PostgreSQL community? You can subscribe to one of our mailing lists at lists.postgresql.org.

-

Archives

-

Before posting to a list, you may wish to search the archives to see if -your question has already been answered.

+ +

Mailing List Archives

+ +

The PostgreSQL Mailing list public archives provide a rich history of the PostgreSQL project, all the way back to 1997! We keep a public record of the mailing list to help provide a searchable resource to help answer your questions, as well as in the spirit of building an open community.

+ +

Need a question answered? The archive are fully searchable. Can't find the answer you are looking for? If it is a general usage question, we recommended subscribing to the pgsql-general@postgresql.org mailing list. If it is a more technical question about how PostgreSQL internals work, we recommended subscribing to the pgsql-hackers@postgresql.org mailing list.

{%include "searchform.html" %} +

View All Archives

{%for g in groups%} -{%if not forloop.first%} - -
-{%endif%} -

{{g.groupname}}

-
- - - - - - -{%for l in g.lists%} - - - - -{%endfor%} + {%if not forloop.first%} + +
ListDescription
{{l.maybe_shortdesc}}{{l.description|safe}}
+ {%endif%} +
{{g.groupname}}
+ + + + + + + + {%for l in g.lists%} + + + + + {%endfor%} {%endfor%} -
ListDescription
{{l.maybe_shortdesc}}{{l.description|safe}}
-
+ {%endblock%} diff --git a/django/archives/mailarchives/templates/message.html b/django/archives/mailarchives/templates/message.html index 2215338..ce7c89a 100644 --- a/django/archives/mailarchives/templates/message.html +++ b/django/archives/mailarchives/templates/message.html @@ -1,6 +1,7 @@ -{%extends "base.html"%} +{%extends "page.html"%} {%block title%}{%if not msg.hiddenstatus%}{{msg.subject}}{%endif%}{%endblock%} {%load pgfilters%} + {%block extrahead%} {%endblock%} + {%block contents%} -

{%if not msg.hiddenstatus%}{{msg.subject}}{%endif%}

- +{%if not msg.hiddenstatus%} +

{{msg.subject}}

+{%endif%} +
- + - + {%if msg.cc%} - + {%endif%} - + - + - - + + - + + + + + - +
From:From: {{msg.mailfrom|hidemail}}
To:To: {{msg.to|hidemail}}
Cc:Cc: {{msg.cc|hidemail}}
Subject:Subject: {%if not msg.hiddenstatus%}{{msg.subject}}{%endif%}
Date:Date: {{msg.printdate}}
Message-ID:{{msg.messageid}} (view raw, whole thread or download thread mbox)Message-ID:{{msg.messageid}}
Thread:Views: + Raw Message + Whole Thread + Download mbox +
Thread: - {%for m in threadstruct%}{%if m.id%}{%endif%} {%endfor%}
Lists:Lists: {%for l in lists %}{{l.listname}}{%endfor%}
-
{%if msg.hiddenstatus%} -
{{msg.hiddenreason}}
+
{{msg.hiddenreason}}
{%else%} -
{{msg.bodytxt|hideallemail|urlize}}
+
{{msg.bodytxt|hideallemail|urlize}}
{%if msg.has_attachment%} -{%for a in msg.attachments%} -{%if a.inlineable%}{%endif%} -{%if forloop.last%}
{%endif%} -{%endfor%} - -{%for a in msg.attachments%} -
-Attachment: {{a.filename}}
-Description: {{a.contenttype}} ({{a.len|filesizeformat}}) {%if a.inlineable%}(inlined above){%endif%} -
-{%endfor%} +
Attachments
+ + + + + + + + + + {%for a in msg.attachments%} + + + + + + {%endfor%} + +
AttachmentContent-TypeSize
+ {% if a.inlineable %} + + + + {% else %} + {{a.filename}} + {% endif %} + {{ a.contenttype }}{{a.len|filesizeformat}}
{%endif%} + {%if parent%} -

In response to

- +

In response to

+ {%endif%} -{%if responses %} -

Responses

-
    -{%for m in responses%} -
  • {{m.subject}} at {{m.printdate}} from {{m.mailfrom|nameonly}}
  • -{%endfor%} -
+ +{%if responses%} +

Responses

+
    + {%for m in responses%} +
  • + {{m.subject}} at {{m.printdate}} from {{m.mailfrom|nameonly}} +
  • + {%endfor%} +
{%endif%} + {%if nextprev%} -{%for list, info in nextprev.items %} -

{{list}} by date

-
- - {%if info.next%} - - - {%endif%} - {%if info.prev%} - - - {%endif%} -
Next:From: {{info.next.from|nameonly}}Date: {{info.next.date}}
Subject: {{info.next.subject}}
Previous:From: {{info.prev.from|nameonly}}Date: {{info.prev.date}}
Subject: {{info.prev.subject}}
-
-{%endfor%} + {%for list, info in nextprev.items %} +

Browse {{list}} by date

+ + + + + + + + + + + {%if info.next%} + + + + + + + {%endif%} + {%if info.prev%} + + + + + + + {%endif%} + +
 FromDateSubject
Next Message{{info.next.from|nameonly}}{{info.next.date}}{{info.next.subject}}
Previous Message{{info.prev.from|nameonly}}{{info.prev.date}}{{info.prev.subject}}
+ {%endfor%} {%endif%} {%endif%}{%comment%}hidden{%endcomment%} -
{%endblock%} diff --git a/django/archives/mailarchives/templates/message_flat.html b/django/archives/mailarchives/templates/message_flat.html index fe04ede..fe7e69f 100644 --- a/django/archives/mailarchives/templates/message_flat.html +++ b/django/archives/mailarchives/templates/message_flat.html @@ -1,4 +1,4 @@ -{%extends "base.html"%} +{%extends "page.html"%} {%block title%}{%if not msg.hiddenstatus%}{{msg.subject}}{%endif%}{%endblock%} {%load pgfilters%} {%block extrahead%} @@ -13,55 +13,84 @@ window.onload = load; {%endblock%} {%block contents%} -

{%if not msg.hiddenstatus%}{{msg.subject}}{%endif%}

+{%if not msg.hiddenstatus%} +

{{msg.subject}}

+{%endif%} {%for m in allmsg %} -
- +
- + - + {%if m.cc%} - + {%endif%} - - + + - + - - + + + + + +
From:From: {{m.mailfrom|hidemail}}
To:To: {{m.to|hidemail}}
Cc:Cc: {{m.cc|hidemail}}
Subject:{%if not msg.hiddenstatus%}{{m.subject}}{%endif%}Subject:{%if not m.hiddenstatus%}{{m.subject}}{%endif%}
Date:Date: {{m.printdate}}
Message-ID:{{m.messageid}} (view raw or download thread mbox)Message-ID:{{m.messageid}}
Views: + Raw Message + Original Message + Download mbox +
-
+ {%if m.hiddenstatus%} -
{{m.hiddenreason}}
+
{{m.hiddenreason}}
{%else%} -
{{m.bodytxt|hideallemail|urlize}}
+
{{m.bodytxt|hideallemail|urlize}}
{%if m.has_attachment%} -{%for a in m.attachments.all%} -
-Attachment: {{a.filename}}
-Description: {{a.contenttype}} ({{a.len|filesizeformat}}) -
-{%endfor%} +
Attachments
+ + + + + + + + + + {%for a in m.attachments%} + + + + + + {%endfor%} + +
AttachmentContent-TypeSize
+ {% if a.inlineable %} + + + + {% else %} + {{a.filename}} + {% endif %} + {{ a.contenttype }}{{a.len|filesizeformat}}
{%endif%} -
{%endif%}{%comment%}hidden{%endcomment%} -
+
{%endfor%} {%endblock%} diff --git a/django/archives/mailarchives/templates/monthlist.html b/django/archives/mailarchives/templates/monthlist.html index 91d1dd6..2af9621 100644 --- a/django/archives/mailarchives/templates/monthlist.html +++ b/django/archives/mailarchives/templates/monthlist.html @@ -1,20 +1,33 @@ -{%extends "base.html"%} +{%extends "page.html"%} {%block title%}PostgreSQL Mailing Lists: {{list.listname}}{%endblock%} {%block extrahead%}{%endblock%} {%load pgfilters%} + {%block contents%} -

{{list.listname}}

+

{{list.listname}}

+

{{list.description}}

+ {%include "searchform.html" %} + +

View Archives

+ {%regroup months by year as yearmonth %} - + + + {% for year in yearmonth %} + + + + {% for month in year.list %} + + + + + + {% endfor %} + {% endfor %} + +
{{ year.grouper }}
+ {{month.date|date:"F Y"}} + View ArchivesDownload mbox
{%endblock%} diff --git a/django/archives/mailarchives/templates/page.html b/django/archives/mailarchives/templates/page.html new file mode 100644 index 0000000..0957776 --- /dev/null +++ b/django/archives/mailarchives/templates/page.html @@ -0,0 +1,28 @@ +{%extends "base.html" %} +{%block layoutblock%} +
+
+ +
+
+ {%block contents%}{%endblock%} +
+
+
+
+{%endblock%} diff --git a/django/archives/mailarchives/templates/searchform.html b/django/archives/mailarchives/templates/searchform.html index 9a8e6f4..76baab9 100644 --- a/django/archives/mailarchives/templates/searchform.html +++ b/django/archives/mailarchives/templates/searchform.html @@ -1,21 +1,24 @@ -

-

-
- -{%if searchform_listname%} {%endif%} -
- - - - - - - - - - -
Search archives - -
(enter a message-id to go directly to that message)Advanced Search
-
+

Search the Archives

+ + + + {%if searchform_listname%} {%endif%} +
+
+
+ + + + +
+
+ (enter a message-id to go directly to that message) +
+ +
+
diff --git a/django/archives/mailarchives/views.py b/django/archives/mailarchives/views.py index 47ef35f..e52c221 100644 --- a/django/archives/mailarchives/views.py +++ b/django/archives/mailarchives/views.py @@ -706,19 +706,55 @@ def legacy(request, listname, year, month, msgnum): raise Http404('Message does not exist') return HttpResponsePermanentRedirect('/message-id/%s' % r[0][0]) +# dynamic CSS serving, meaning we merge a number of different CSS into a +# single one, making sure it turns into a single http response. We do this +# dynamically, since the output will be cached. +_dynamic_cssmap = { + 'base': ['media/css/main.css', + 'media/css/normalize.css',], + 'docs': ['media/css/global.css', + 'media/css/table.css', + 'media/css/text.css', + 'media/css/docs.css'], + } + @cache(hours=8) -def base_css(request): - # Generate a hardcoded list of CSS imports. This will only be used - # in development installs - in production, it will use the CSS from - # the main website. - return HttpResponse("""@import url("/media/css/global.css"); -@import url("/media/css/layout.css"); -@import url("/media/css/text.css"); -@import url("/media/css/navigation.css"); -@import url("/media/css/table.css"); - -@import url("/media/css/iefixes.css"); -""", content_type='text/css') +def dynamic_css(request, css): + if not _dynamic_cssmap.has_key(css): + raise Http404('CSS not found') + files = _dynamic_cssmap[css] + resp = HttpResponse(content_type='text/css') + + # We honor if-modified-since headers by looking at the most recently + # touched CSS file. + latestmod = 0 + for fn in files: + try: + stime = os.stat(fn).st_mtime + if latestmod < stime: + latestmod = stime + except OSError: + # If we somehow referred to a file that didn't exist, or + # one that we couldn't access. + raise Http404('CSS (sub) not found') + if request.META.has_key('HTTP_IF_MODIFIED_SINCE'): + # This code is mostly stolen from django :) + matches = re.match(r"^([^;]+)(; length=([0-9]+))?$", + request.META.get('HTTP_IF_MODIFIED_SINCE'), + re.IGNORECASE) + header_mtime = parse_http_date(matches.group(1)) + # We don't do length checking, just the date + if int(latestmod) <= header_mtime: + return HttpResponseNotModified(content_type='text/css') + resp['Last-Modified'] = http_date(latestmod) + + for fn in files: + with open(fn) as f: + resp.write("/* %s */\n" % fn) + resp.write(f.read()) + resp.write("\n") + + return resp # Redirect to the requested url, with a slash first. This is used to remove # trailing slashes on messageid links by doing a permanent redirect. This is @@ -728,7 +764,6 @@ def base_css(request): def slash_redirect(request, url): return HttpResponsePermanentRedirect("/%s" % url) - # Redirect the requested URL to whatever happens to be in the regexp capture. # This is used for user agents that generate broken URLs that are easily # captured using regexp. diff --git a/django/archives/urls.py b/django/archives/urls.py index 6b42f03..cc80874 100644 --- a/django/archives/urls.py +++ b/django/archives/urls.py @@ -61,7 +61,7 @@ urlpatterns = [ # Normally served off www.postgresql.org, but manually handled here for # development installs. - url(r'^dyncss/base.css', archives.mailarchives.views.base_css), + url(r'^dyncss/(?Pbase|docs).css$', archives.mailarchives.views.dynamic_css), ] if not settings.PUBLIC_ARCHIVES: @@ -73,4 +73,3 @@ if not settings.PUBLIC_ARCHIVES: url(r'^accounts/logout/?$', archives.auth.logout), url(r'^auth_receive/$', archives.auth.auth_receive), ] - diff --git a/django/media/css/archives.css b/django/media/css/archives.css deleted file mode 100644 index 1c0504b..0000000 --- a/django/media/css/archives.css +++ /dev/null @@ -1,97 +0,0 @@ -/* replacement for base.css used on archives */ -@import url("/dyncss/base.css"); - -a { text-decoration: underline; } - -a:link { color:#0085B0; } -a:visited { color:#004E66; } -a:active { color:#0085B0; } -a:hover { color:#000000; } - -select a { text-decoration: none } - -#pgFooter a { color:#666; } -#pgFooter a:hover { color:#000; } - -#txtFrontUserName a { color:#666; } -#txtFrontUserName a:hover { color:#000; } - -.bodywrapper a:visited { color:#00536E; } -.bodywrapper pre, -.bodywrapper tt { - word-wrap: break-word; - white-space: pre-wrap; - font-size: 1.2em; - padding: 1em 0 1em 2em; - border-width: 2px 0; - border-color: lightGray; - border-style: solid; -} - - -table.message th, -table.message td -{ - vertical-align: top; -} -table.message th -{ - width: 8em; -} - -table.message -{ - width: 100%; -} - -table.message select -{ - width: 100%; -} - -table.message span.listname -{ - line-height: 1.4em; - float: left; -} - -.msgwrap table.message -{ - border-width: 0; -} - -div.msgwrap { - border: 2px solid lightGray; - margin-bottom: 10px; -} - -span.listname { - background-color: #F7F7F7; - padding: 0.2em; - border: 1px solid #CFCFCF; -} -a.ui-selectmenu { - text-decoration: none; - color: black; -} -.ui-selectmenu-status { - font-weight: bold; -} -.ui-widget { - font-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif; - font-size: 1em; -} -.ui-selectmenu-menu, .ui-selectmenu-status { - white-space: nowrap; -} -.ui-selectmenu-menu-dropdown a { - color: black; -} - -.ui-selectmenu-menu ul { - overflow-x: auto; -} - -img.attachedimage { - max-width: 600px; -} \ No newline at end of file diff --git a/django/media/css/base.css b/django/media/css/base.css new file mode 100644 index 0000000..ac1a60e --- /dev/null +++ b/django/media/css/base.css @@ -0,0 +1 @@ +@import url("main.css"); diff --git a/django/media/css/docs.css b/django/media/css/docs.css new file mode 100644 index 0000000..1bea4c1 --- /dev/null +++ b/django/media/css/docs.css @@ -0,0 +1,534 @@ +/* PostgreSQL.org Documentation Style */ + +/* + * Documentation generated by XSL stylesheets has lower-case class + * names, older documentation generated by DSSSL stylesheets has + * upper-case class names, so we need to support both for a while. In + * some cases, the elements and classes differ further between the two + * stylesheets. + */ + +/* requires global.css, table.css and text.css to be loaded before this file! */ +body { + font-size: 76%; +} + +.navheader table, +.NAVHEADER table { + margin-left: 0; +} + +/* Container Definitions */ + +#docContainerWrap { + text-align: center; /* Win IE5 */ +} + +#docContainer { + margin: 0 auto; + width: 90%; + padding-bottom: 2em; + display: block; + text-align: left; /* Win IE5 */ +} + +#docHeader { + background-image: url("/media-archives/img/docs/bg_hdr.png"); + height: 83px; + margin: 0px; + padding: 0px; + display: block; +} + +#docHeaderLogo { + position: relative; + width: 206px; + height: 83px; + border: 0px; + padding: 0px; + margin: 0 0 0 20px; +} + +#docHeaderLogo img { + border: 0px; +} + +#docNavSearchContainer { + padding-bottom: 2px; +} + +#docNav, #docVersions { + position: relative; + text-align: left; + margin-left: 10px; + margin-top: 5px; + color: #666; + font-size: 0.95em; +} + +#docSearch { + position: relative; + text-align: right; + padding: 0; + margin: 0; + color: #666; +} + +#docTextSize { + text-align: right; + white-space: nowrap; + margin-top: 7px; + font-size: 0.95em; +} + +#docSearch form { + position: relative; + top: 5px; + right: 0; + margin: 0; /* need for IE 5.5 OSX */ + text-align: right; /* need for IE 5.5 OSX */ + white-space: nowrap; /* for Opera */ +} + +#docSearch form label { + color: #666; + font-size: 0.95em; +} + +#docSearch form input { + font-size: 0.95em; +} + +#docSearch form #submit { + font-size: 0.95em; + background: #7A7A7A; + color: #fff; + border: 1px solid #7A7A7A; + padding: 1px 4px; +} + +#docSearch form #q { + width: 170px; + font-size: 0.95em; + border: 1px solid #7A7A7A; + background: #E1E1E1; + color: #000000; + padding: 2px; +} + +.frmDocSearch { + padding: 0; + margin: 0; + display: inline; +} + +.inpDocSearch { + padding: 0; + margin: 0; + color: #000; +} + +#docContent { + position: relative; + margin-left: 10px; + margin-right: 10px; + margin-top: 40px; +} + +#docFooter { + position: relative; + font-size: 0.9em; + color: #666; + line-height: 1.3em; + margin-left: 10px; + margin-right: 10px; +} + +#docComments { + margin-top: 10px; +} + +#docClear { + clear: both; + margin: 0; + padding: 0; +} + +/* Heading Definitions */ + +h1, h2, h3 { + font-weight: bold; + margin-top: 2ex; +} + +h1 { + font-size: 1.4em; +} + +h2 { + font-size: 1.2em !important; +} + +h3 { + font-size: 1.1em; +} + +h1 a:hover { + color: #EC5800; + text-decoration: none; +} + +h2 a:hover, +h3 a:hover, +h4 a:hover { + color: #666666; + text-decoration: none; +} + +/* + * Change color of h2 chunk titles in XSL build. (In DSSSL build, + * these will be h1, which is already handled elsewhere.) + */ +.titlepage h2.title, +.refnamediv h2 { + color: #EC5800; +} + +/* Text Styles */ + +div.sect2, +div.SECT2 { + margin-top: 4ex; +} + +div.sect3, +div.SECT3 { + margin-top: 3ex; + margin-left: 3ex; +} + +.txtCurrentLocation { + font-weight: bold; +} + +p, ol, ul, li { + line-height: 1.5em; +} + +.txtCommentsWrap { + border: 2px solid #F5F5F5; + width: 100%; +} + +.txtCommentsContent { + background: #F5F5F5; + padding: 3px; +} + +.txtCommentsPoster { + float: left; +} + +.txtCommentsDate { + float: right; +} + +.txtCommentsComment { + padding: 3px; +} + +#docContainer pre code, +#docContainer pre tt, +#docContainer pre pre, +#docContainer tt tt, +#docContainer tt code, +#docContainer tt pre { + font-size: 1em; +} + +pre.literallayout, +.screen, +.synopsis, +.programlisting, +.refsynopsisdiv p, +.caution, +.warning, +.note, +.tip, +.table table, +.informaltable table, +pre.LITERALLAYOUT, +.SCREEN, +.SYNOPSIS, +.PROGRAMLISTING, +.REFSYNOPSISDIV p, +table.CAUTION, +table.WARNING, +blockquote.NOTE, +blockquote.TIP, +table.CALSTABLE { + -moz-box-shadow: 3px 3px 5px #DFDFDF; + -webkit-box-shadow: 3px 3px 5px #DFDFDF; + -khtml-box-shadow: 3px 3px 5px #DFDFDF; + -o-box-shadow: 3px 3px 5px #DFDFDF; + box-shadow: 3px 3px 5px #DFDFDF; +} + +pre.literallayout, +.screen, +.synopsis, +.programlisting, +.refsynopsisdiv p, +.caution, +.warning, +.note, +.tip, +pre.LITERALLAYOUT, +.SCREEN, +.SYNOPSIS, +.PROGRAMLISTING, +.REFSYNOPSISDIV p, +table.CAUTION, +table.WARNING, +blockquote.NOTE, +blockquote.TIP { + color: black; + border-width: 1px; + border-style: solid; + padding: 2ex; + margin: 2ex 0 2ex 2ex; + overflow: auto; + -moz-border-radius: 8px; + -webkit-border-radius: 8px; + -khtml-border-radius: 8px; + border-radius: 8px; +} + +pre.literallayout, +pre.synopsis, +pre.programlisting, +.refsynopsisdiv p, +.screen, +pre.LITERALLAYOUT, +pre.SYNOPSIS, +pre.PROGRAMLISTING, +.REFSYNOPSISDIV p, +.SCREEN { + border-color: #CFCFCF; + background-color: #F7F7F7; +} + +.note, +.tip, +blockquote.NOTE, +blockquote.TIP { + border-color: #DBDBCC; + background-color: #EEEEDD; + padding: 14px; + width: 572px; +} + +.note, +.tip, +.caution, +.warning, +blockquote.NOTE, +blockquote.TIP, +table.CAUTION, +table.WARNING { + margin: 4ex auto; +} + +.note p, +.tip p, +blockquote.NOTE p, +blockquote.TIP p { + margin: 0; +} + +.note pre, +.note code, +.tip pre, +.tip code, +blockquote.NOTE pre, +blockquote.NOTE code, +blockquote.TIP pre, +blockquote.TIP code { + margin-left: 0; + margin-right: 0; + -moz-box-shadow: none; + -webkit-box-shadow: none; + -khtml-box-shadow: none; + -o-box-shadow: none; + box-shadow: none; +} + +.caution, +.warning { + max-width: 600px; +} + +.tip h3, +.note h3, +.caution h3, +.warning h3 { + text-align: center; +} + +.emphasis, +.c2 { + font-weight: bold; +} + +.replaceable, +.REPLACEABLE { + font-style: italic; +} + +/* Table Styles */ + +table { + margin-left: 2ex; +} + +.table table td, +.table table th, +.informaltable table td, +.informaltable table th, +table.CALSTABLE td, +table.CALSTABLE th, +table.CAUTION td, +table.CAUTION th, +table.WARNING td, +table.WARNING th { + border-style: solid; +} + +.table table, +.informaltable table, +table.CALSTABLE, +table.CAUTION, +table.WARNING { + border-spacing: 0; + border-collapse: collapse; +} + +.table table, +.informaltable table, +table.CALSTABLE +{ + margin: 2ex 0 2ex 2ex; + background-color: #E0ECEF; + border: 2px solid #A7C6DF; +} + +.table table tr:hover td, +.informaltable table tr:hover td, +table.CALSTABLE tr:hover td +{ + background-color: #EFEFEF; +} + +.table table td, +.informaltable table td, +table.CALSTABLE td { + background-color: #FFF; +} + +.table table td, +.table table th, +.informaltable table td, +.informaltable table th, +table.CALSTABLE td, +table.CALSTABLE th { + border: 1px solid #A7C6DF; + padding: 0.5ex 0.5ex; +} + +table.CAUTION, +table.WARNING { + border-collapse: separate; + display: block; + padding: 0; + max-width: 600px; +} + +.caution, +table.CAUTION { + background-color: #F5F5DC; + border-color: #DEDFA7; +} + +.warning, +table.WARNING { + background-color: #FFD7D7; + border-color: #DF421E; +} + +table.CAUTION td, +table.CAUTION th, +table.WARNING td, +table.WARNING th { + border-width: 0; + padding-left: 2ex; + padding-right: 2ex; +} + +table.CAUTION td, +table.CAUTION th { + border-color: #F3E4D5 +} + +table.WARNING td, +table.WARNING th { + border-color: #FFD7D7; +} + +td.c1, +td.c2, +td.c3, +td.c4, +td.c5, +td.c6 { + font-size: 1.1em; + font-weight: bold; + border-bottom: 0px solid #FFEFEF; + padding: 1ex 2ex 0; +} + +/* Link Styles */ + +#docNav a { + font-weight: bold; +} + +a:link, +a:visited, +a:active, +a:hover { + text-decoration: underline; +} + +a:link, +a:active { + color:#0066A2; +} + +a:visited { + color:#004E66; +} + +a:hover { + color:#000000; +} + +#docFooter a:link, +#docFooter a:visited, +#docFooter a:active { + color:#666; +} + +#docContainer code.function tt, +#docContainer code.FUNCTION tt { + font-size: 1em; +} diff --git a/django/media/css/global.css b/django/media/css/global.css deleted file mode 100644 index 1706e11..0000000 --- a/django/media/css/global.css +++ /dev/null @@ -1,98 +0,0 @@ -/* - PostgreSQL.org - Global Styles -*/ - -body { - margin: 0; - padding: 0; - font-family: verdana, sans-serif; - font-size: 69%; - color: #000; - background-color: #fff; -} - -h1 { - font-size: 1.4em; - font-weight: bold; - margin-top: 0em; - margin-bottom: 0em; -} - -h2 { - font-size: 1.2em; - margin: 1.2em 0em 1.2em 0em; - font-weight: bold; -} - -h3 { - font-size: 1.0em; - margin: 1.2em 0em 1.2em 0em; - font-weight: bold; -} - -h4 { - font-size: 0.95em; - margin: 1.2em 0em 1.2em 0em; - font-weight: normal; -} - -h5 { - font-size: 0.9em; - margin: 1.2em 0em 1.2em 0em; - font-weight: normal; -} - -h6 { - font-size: 0.85em; - margin: 1.2em 0em 1.2em 0em; - font-weight: normal; -} - -img { - border: 0; -} - -ol, ul, li {/* - list-style: none;*/ - font-size: 1.0em; - line-height: 1.2em; - margin-top: 0.2em; - margin-bottom: 0.1em; -} - -p { - font-size: 1.0em; - line-height: 1.2em; - margin: 1.2em 0em; -} - -td p { - margin: 0em 0em 1.2em; -} - -li > p { - margin-top: 0.2em; -} - -pre { - font-family: monospace; - font-size: 1.0em; -} - -div#pgContentWrap code { - font-size: 1.2em; - padding: 1em; - margin: 2ex 0 2ex 2ex; - background: #F7F7F7; - border: 1px solid #CFCFCF; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - -khtml-border-radius: 8px; - border-radius: 8px; - display: block; - overflow: auto; -} - -strong, b { - font-weight: bold; -} diff --git a/django/media/css/iefixes.css b/django/media/css/iefixes.css deleted file mode 100644 index 8601bc1..0000000 --- a/django/media/css/iefixes.css +++ /dev/null @@ -1,138 +0,0 @@ -/* - PostgreSQL.org - Fixes for Internet Explorer -*/ - -/*Win IE fix \*/ -* html #pgHeaderContainer { height: 1%; } - -/*End Win IE fix*/ - -/*Win IE fix \*/ -* html #pgHeader { height: 1%; } - -/*End Win IE fix*/ - -/*Win IE fix \*/ -* html #pgTopNav { height: 1%; margin-top: 0px; } - -/*End Win IE fix*/ - -/*Win IE fix \*/ -* html #pgTopNavLeft { height: 1%; } - -/*End Win IE fix*/ - -/*Win IE fix \*/ -* html #pgTopNavRight { height: 1%; } - -/*End Win IE fix*/ - -/*Win IE fix \*/ -* html #pgTopNavList { height: 1%; margin-bottom: -2px; } -* html #pgTopNavList li { margin: 0 0.5em 0 -0.5em; } - -/*End Win IE fix*/ - - -/*Win IE fix \*/ -* html #pgSearchNavList { height: 1%; margin-right: 0.5em; } -* html #pgSearchNavList li { margin: 0 0 0 0.5em; } - -/*End Win IE fix*/ - -/*Win IE fix \*/ -* html #pgContent { height: 1%; } - -/*End Win IE fix*/ - -/*Win IE fix \*/ -* html #pgFrontContainer { height: 1%; } - -/*End Win IE fix*/ - -/*Win IE fix \*/ -* html #pgFrontMain { height: 1%; } - -/*End Win IE fix*/ - -/*Win IE fix \*/ -* html #pgFrontFeature { height: 1%; } - -/*End Win IE fix*/ - -/*Win IE fix \*/ -* html #pgFrontFeatureLink { height: 1%; } - -/*End Win IE fix*/ - -/*Win IE fix \*/ -* html #pgFrontNewsEventsContainer { height: 1%; } - -/*End Win IE fix*/ - -/*Win IE fix \*/ -* html #pgFrontNews { height: 1%; } - -/*End Win IE fix*/ - -/*Win IE fix \*/ -* html #pgFrontEvents { height: 1%; } - -/*End Win IE fix*/ - -/*Win IE fix \*/ -* html .pgNewsEventsList { height: 1%; } - -/*End Win IE fix*/ - -/*Win IE fix \*/ -* html #pgFrontUSSContainer { height: 1%; } - -/*End Win IE fix*/ - -/*Win IE fix \*/ -* html #pgFrontUser { height: 1%; } - -/*End Win IE fix*/ - -/*Win IE fix \*/ -* html #pgFrontSupportUs { height: 1%; } - -/*End Win IE fix*/ - -/*Win IE fix \*/ -* html #pgFrontShortcuts { height: 1%; } - -/*End Win IE fix*/ - -/*Win IE fix \*/ -* html #pgFrontShortcutsWrap { height: 1%; margin-top: 7px; } - -/*End Win IE fix*/ - -/*Win IE fix \*/ -* html #pgFrontShortcutsList { height: 1%; } - -/*End Win IE fix*/ - -/*Win IE fix \*/ -* html #pgFrontNewsEventsContainer h3 img { height: 1%; margin-bottom: 4px; } - -/*End Win IE fix*/ - -/*Win IE fix \*/ -* html #pgSideWrap { /* margin-top: 11px; */ } -/*End Win IE fix*/ - -/*Win IE fix \*/ -* html #pgContentWrap {margin-left: 165px; /* margin-top: 11px; */ } -/*End Win IE fix*/ - -/*Win IE fix \*/ -* html #pgSideNav { height: 1%; position: static; } - -/*End Win IE fix*/ - -/*Win IE fix \*/ -* html #txtArchives pre { font-size: 100%; } -/*End Win IE fix*/ diff --git a/django/media/css/layout.css b/django/media/css/layout.css deleted file mode 100644 index 3de23e2..0000000 --- a/django/media/css/layout.css +++ /dev/null @@ -1,688 +0,0 @@ -/* - PostgreSQL.org - Layout Styles -*/ - -/* Container Definitions */ - -/* Page Container */ - -#pgContainerWrap { - text-align: center; /* Win IE5 */ -} - -#pgContainer { - margin: 0em auto; - width: 765px; - padding: 0; - padding-top: 4px; - padding-bottom: 10px; - text-align: left; /* Win IE5 */ -} - - -/* Header Container */ -#pgHeaderContainer { - padding-bottom: 2px; -} - -#pgHeader { - position: relative; - background: url("/media/img/layout/hdr_fill.png") repeat-x; - height: 80px; - margin: 0; - padding: 0; - clear: both; -} - -#pgHeaderLogoLeft { - position: relative; - width: 230px; - height: 80px; - border: 0px; - padding: 0px; - margin: 0px; - float: left; -} - -#pgHeaderLogoLeft img { - border: 0px; -} - -#pgHeaderLogoRight { - position: relative; - width: 210px; - height: 80px; - border: 0px; - padding: 0px; - margin: 0px; - float: right; -} - -#pgHeaderLogoRight img { - border: 0px; -} - -#pgSearch { - position: relative; - text-align: right; - padding: 0; - margin: 0; - color: #666; -} - -#pgSearch form { - position: relative; - top: 5px; - right: 0; - margin: 0; /* need for IE Mac */ - text-align: right; /* need for IE Mac */ - white-space: nowrap; /* for Opera */ -} - -#pgSearch form label { - color: #666; - font-size: 0.8em; -} - -#pgSearch form input { - font-size: 0.8em; -} - -#pgSearch form #submit, -#pgSearch form #q { - font-size: 0.8em; - background: #FFFFFF; - color: #000000; - border: 1px solid #7A7A7A; -} - -#pgSearch form #submit { - - padding: 1px 4px; -} - -#pgSearch form #q { - width: 140px; - padding: 2px; -} - -/* Content Container */ -#pgContent { - clear: both; - display: block; -} - -#pgFrontContainer { - width: 100%; - float: left; - margin-right: -220px; -} - -#pgFrontMain { - margin-right: 220px; - margin-top: 10px; -} - -#pgFrontFeature { - position: relative; - background: #F5F5F5 url(/media/img/feature/feature_elephant.png) right bottom no-repeat; - /* Also see pgFrontFeatureContent for image size */ - padding: 15px; - margin-bottom: 1em; - font-size: 1.0em; -} - -#pgFrontFeature:before { - line-height: 0.1; - font-size: 1px; - background: transparent url("/media/img/layout/feature_tr.gif") no-repeat top right; - margin: -15px -15px 0 -15px; - height: 15px; - display: block; - border: none; - content: url("/media/img/layout/feature_tl.gif"); -} - -#pgFrontFeature:after { - display: block; - clear: both; - padding-top: 15px; - line-height: 0.1; - font-size: 1px; - content: url("/media/img/layout/feature_bl.gif"); - margin: -15px; - height: 8px; - background: transparent url("/media/img/layout/feature_br.gif") scroll no-repeat bottom right ; -} - -#pgFrontFeature h2{ - border: none; - margin-top: 0; -} - -#pgFrontFeature p { - margin: 0 0 1em 0; -} - -#pgFrontFeature #pgFrontFeatureContent { - /* This padding controls the size of the text in the front blurb, and needs to be - * adjusted whenever the image is changed. */ - padding: 6px 132px 16px 10px; -} - -#pgFrontRightContainer { - float: right; - width: 200px; -/* border-left: 1px solid #E1E1E1;*/ - margin: 0; - padding: 0; - - padding-left: 10px; -} - -#pgFrontBottomContainer { - clear: both; - width: 100%; - padding-top: 0.7em; - margin-bottom: 15px; -} - -#pgFrontNews { - float:left; - width: 230px; - margin-right: 10px; -} - -#pgFrontEvents { - width: 240px; - border-left: 1px solid #E1E1E1; - margin: 0; - padding: 0; - padding-left: 10px; - margin-left: 250px; - margin-right: 250px; -} - -.pgNewsEventsWrap { - padding-left: 5px; -} - -.pgRSSBottomList { - list-style: none; - margin: 0; - padding: 0; - display: inline; -} - -.pgRSSBottomList img.pgRSSImage { - display: inline; - border: 0; - vertical-align: bottom; -} - -.pgRSSBottomList li { - padding: 0 0.5em 0 0.5em; - display: inline; - border-right: 1px solid #E1E1E1; -} - -.pgRSSBottomList li a { -} - -/* Uncomment when IE/Validator supports last-child - -.pgRSSBottomList li:last-child { - border-right: 0; - padding-right: 0; -} - -*/ - -.pgRSSBottomList li.last-child { - border-right: 0; - padding-right: 0; -} - -/* Used in pgRSSBottomList */ -img.pgArrowImage { - padding: 0; - margin: 0; - display: inline; - border: 0; -} - -#pgFrontUSSContainer { -} - -/* Featured User Box */ - -#pgFrontUser { - width: 545px; - padding-top: 7px; - float: left; - background: url(/media/img/layout/usr_tbl_top.png) top right no-repeat; - margin-bottom: 15px; -} - -#pgFrontUserInner { - background: url(/media/img/layout/usr_tbl_btm.png) bottom left no-repeat; - width: 100%; - padding-bottom: 7px; -} - -#pgFrontUserWrap { - padding: 11px 14px 12px 15px; - border-left: 1px solid #DADADA; - border-right: 1px solid #DADADA; -} - -#pgFrontUserContent { - margin-left: 4px; -} - -#pgFrontSupportUs { -} - -#pgFrontSupportUs h2 { - margin-bottom: 0.7em; -} - -#pgFrontSupportUsWrap { - margin-left: 8px; - color: #666; -} - -#pgFrontShortcuts h2 { - margin-bottom: 0.7em; -} - -#pgFrontShortcutsWrap { - font-size: 0.9em; - margin-left: 12px; - margin-top: 10px; - color: #666; -} - -#pgFrontShortcutsWrap img { - padding-right: 7px; -} - -#pgFrontShortcutsList { - margin: 0; - padding: 0; - list-style: none; -} - -#pgFrontShortcutsList li { - margin: 0; - padding-left: 12px; - background-image: url(/media/img/layout/blt_blu_arrow.png); - background-repeat: no-repeat; - background-position: 0px 0.5em; -} - -#pgFrontPlanet { - float: right; - width: 230px; - border-left: 1px solid #E1E1E1; - margin: 0; - padding: 0; - padding-left: 10px; -} - -#pgFrontPlanetWrap { - margin-left: 8px; - font-size: 0.9em; -} - -#pgFrontPlanetList { - margin: 0; - padding: 0; -} - -#pgFrontLatestReleases h2 { - margin-bottom: 0.7em; -} - -#pgFrontLatestReleasesWrap { - font-size: 0.9em; - margin-left: 12px; - margin-top: 10px; - color: #666; -} - -#pgFrontLatestReleasesNote { - font-size: 0.9em; - margin-left: 12px; - margin-top: 10px; - color: #666; - vertical-align: bottom; -} - -#pgFrontLatestReleasesNote IMG { - vertical-align: bottom; -} - -#pgFrontTrainingSummary { - font-size: 1.1em; - color: #666; -} - -/* Secondary Pages */ - -#pgSideWrap { - float: left; - width: 166px; - margin-top: 10px; - margin-right: -165px; -} - -#pgContentWrap { - margin-left: 165px; - padding-top: 10px; -} - -#pgContentWrap dd.quote_source { - font-weight: bold; - margin-bottom: 18px; -} - -#pgAdminWrap { - padding-top: 10px; - padding-bottom: 10px; -} - -#pgCommunityWrap { - margin-right: -420px; - float: left; - width: 100%; -} - -#pgCommunity { - margin-right: 210px; -} - -#pgSurveyWrap { - float: right; - width: 200px; - margin-left: 210px; - padding: 0; - border: 0; - top: 0px; - - padding-left: 10px; -} - -#pgSurvey dl { - width: 200px; - margin: 0; - padding: 0; - background: #F5F5F5 url(/media/img/layout/box_bottom.gif) no-repeat bottom left; - padding-bottom: 10px; -} - -#pgSurvey dt { - margin: 0 0 10px 0; - padding: 10px; - font-weight: bold; - color: #666; - border-bottom: 1px solid #EFEFEF; - background: #F5F5F5 url(/media/img/layout/box_top.gif) no-repeat top left; -} - -#pgSurvey dd { - margin: 0 0 0 10px; - padding: 0 10px 0 0; - color: #666; - font-size: 0.9em; -} - -#pgSurvey form #surveySubmit { - font-size: 0.9em; - background: #F5F5F5; - color: #000000; - border: 1px solid #7A7A7A; - padding: 1px 4px; -} - -#pgPlanetWrap { - float: right; - width: 200px; - margin-left: 210px; - padding: 0; - border: 0; - margin-top: 10px; - - padding-left: 5px; -} - -#pgPlanet dl { - width: 200px; - margin: 0; - padding: 0; - background: #F5F5F5 url(/media/img/layout/box_bottom.gif) no-repeat bottom left; - padding-bottom: 10px; -} - -#pgPlanet dt { - margin: 0 0 10px 0; - padding: 10px; - font-weight: bold; - color: #666; - border-bottom: 1px solid #EFEFEF; - background: #F5F5F5 url(/media/img/layout/box_top.gif) no-repeat top left; -} - -#pgPlanet dd { - margin: 0 0 0 10px; - padding: 0 10px 0 0; - color: #666; - font-size: 0.9em; -} - -#pgPlanet dd ul { - margin-left: 0px; - padding-left: 10px; - margin-bottom: 10px; -} - -#pgDocsWrap { - margin-right: -420px; - float: left; - width: 100%; -} - -#pgDocs { - margin-right: 210px; -} - -#pgQuickDocsWrap { - float: right; - width: 200px; - margin-left: 210px; - padding: 0; - border: 0; - top: 0px; - - padding-left: 10px; -} - -#pgQuickDocs dl { - width: 200px; - margin: 0; - padding: 0; - background: #F5F5F5 url(/media/img/layout/box_bottom.gif) no-repeat bottom left; - padding-bottom: 10px; -} - -#pgQuickDocs dt { - margin: 0 0 10px 0; - padding: 10px; - font-weight: bold; - color: #666; - border-bottom: 1px solid #EFEFEF; - background: #F5F5F5 url(/media/img/layout/box_top.gif) no-repeat top left; -} - -#pgQuickDocs dd { - margin: 0 0 0 10px; - padding: 0 10px 0 0; - color: #666; - font-size: 0.9em; -} - -#pgCommunityDocsFooter table tr td ul { - padding-left: 0px; - list-style: none; -} - -#pgCommunityDocsHeader table tr.firstrow td { - border-bottom: none; -} - -#pgCommunityDocsHeader table tr.lastrow { - height: 1px; -} - -#pgCommunityDocsBreadcrumbs { - margin-left: 10px; - margin-top: 5px; - margin-bottom: 10px; -} - -#pgCommunityDocsPageContent { - margin-top: 5px; - margin-bottom: 20px; -} - -.pgCommunityDocsCurrentMenu { - font-weight: bold; -} - -#pgDownloadsWrap { - margin-right: -420px; - float: left; - width: 100%; -} - -#pgDownloads { - margin-right: 210px; -} - -#pgQuickDownloadsWrap { - float: right; - width: 200px; - margin-left: 210px; - padding: 0; - border: 0; - top: 0px; - - padding-left: 10px; -} - -#pgQuickDownloads dl { - width: 200px; - margin: 0; - padding: 0; - background: #F5F5F5 url(/media/img/layout/box_bottom.gif) no-repeat bottom left; - padding-bottom: 10px; -} - -#pgQuickDownloads dt { - margin: 0 0 10px 0; - padding: 10px; - font-weight: bold; - color: #666; - border-bottom: 1px solid #EFEFEF; - background: #F5F5F5 url(/media/img/layout/box_top.gif) no-repeat top left; -} - -#pgQuickDownloads dd { - margin: 0 0 0 10px; - padding: 0 10px 0 0; - color: #666; - font-size: 0.9em; -} - -#pgFtpContent table tr td { - vertical-align: bottom; -} - -#pgProfPage div.tblBasic table td { - color: black; - padding: 3px 5px; -} - -#pgPressContacts dt { - font-weight: bold; -} - -#pgPressContacts dd { - margin-bottom: 10px; - -} - -#pgArchiveWrap { - margin-top: 13px; -} - -/* Footer Container */ -#pgFooter { - font-size: 0.9em; - color: #666; - line-height: 1.3em; - padding-top: 5px; - clear: both; -} - -/* Generic forms class */ -TABLE.pgGenericFormTable TR { - vertical-align: top; -} - -TABLE.pgGenericFormTable TR TD INPUT, -TABLE.pgGenericFormTable TR TD SELECT, -TABLE.pgGenericFormTable TR TD TEXTAREA, -TABLE.pgGenericFormTable TR TD DIV.markdownpreview { - width: 100%; -} - -TABLE.pgGenericFormTable TR.error { - background-color: red; - color: white; -} - -TABLE.pgGenericFormTable TR.errorinfo { - background-color: #FFFFCC; -} - -TABLE.pgGenericFormTable TR.errorheader TD { - background-color: #FFFFCC; - border: 1px solid red; - padding: 2px; -} - -TABLE.pgGenericFormTable TR TH SPAN.formfieldhelp { - font-weight: normal; - font-style: italic; -} - -/* Misc Classes */ - -.pgClearBoth { - clear: both; - margin: 0; - padding: 0; -} - -.pgBlockHide { - display: none; - height: 0; - width: 0; - overflow: hidden; - position: absolute; /* IE5 Mac */ -} - -img { - border: 0; -} diff --git a/django/media/css/main.css b/django/media/css/main.css new file mode 100644 index 0000000..4d8747e --- /dev/null +++ b/django/media/css/main.css @@ -0,0 +1,815 @@ +/** +* ----------------------------------------- +* REFERENCE COLORS: +* (in order from lightest to darkest) +* +* #e7eae8: Extremely light gray, used for alternating color boxes such as on mailinglists.html +* #d7dad8: Medium gray, used in Dropotron +* #666: Dark gray, official PostgreSQL gray color and equivalent to RGB(102,102,102) +* #688297: Grayish blue, used in Dropotron +* #336791: Medium blue, official PostgreSQL blue color +* #264d6d: Dark blue +* +* ----------------------------------------- +* All padding: 0 0 0 0; and margin: 0 0 0 0; definitions are top, right, bottom, left specifications, respectively. +*/ + +/** CUSTOM FONTS */ +@import url('https://fonts.googleapis.com/css?family=Open+Sans'); +@import url('https://fonts.googleapis.com/css?family=Maven+Pro'); + +/** GLOBAL CONFIGURATION */ +body { + font-family: 'Open Sans', sans-serif; + font-weight: 400; + color: #515151; + font-size: 11.5pt; + line-height: 1.8rem; + padding-top: 60px; /** this is to account for the fixed navbar blocking content */ +} + +p { + margin-bottom: 0.5rem; +} + +dl, ol, ul { + margin-bottom: 0.5rem; +} + +.table td, .table th { + padding: 0.5rem; +} + +h1, h2, h3, h4, h5, h6 { + font-family: 'Maven Pro', sans-serif; + font-weight: 700; + text-transform: uppercase; + color: #515151; + /*margin: 0 0 0.5em 0;*/ +} + +h2 { + font-size: 1.6em; + margin: 1em 0; +} + +h3 { + font-size: 1.4em; + font-weight: initial; +} + +#pgContentWrap h2:after, #pgSideNav h2:after { + background-color: #e7eae8; + content: '\a0'; + flex-grow: 1; + height: 2px; + position: relative; + margin: .5em 0 .5em .75em; +} + +#pgContentWrap h2, #pgSideNav h2 { + display: flex; + flex-direction: row; +} + +h2.centered-lines { + display: flex; + flex-direction: row; + justify-content: center; + text-align: center; +} + +h2.centered-lines:after, h2.centered-lines:before { + background-color: #e7eae8; + content: '\a0'; + flex-grow: 1; + height: 2px; + position: relative; + margin: 0.5em 0; +} + +h2.centered-lines:after { + margin-left: 0.75em; +} + +h2.centered-lines:before { + margin-right: 0.75em; +} + +h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { + text-decoration: none; + color: inherit; +} + +a, .news a { + color: #336791; + font-weight: 600; + text-decoration: none; + -moz-transition: color .2s ease-in-out; + -webkit-transition: color .2s ease-in-out; + -ms-transition: color .2s ease-in-out; + transition: color .2s ease-in-out; +} + +a:hover, a:active { + color: #515151; + text-decoration: none; +} + +b, strong { + font-weight: 700; + color: #515151; +} + +i, em { + font-style: italic; +} + +sub { + position: relative; + top: 0.5em; + font-size: 0.8em; +} + +sup { + position: relative; + top: -0.5em; + font-size: 0.8em; +} + +hr { + border: 0; + border-top: solid 2px #E7EAE8; + margin: 0 0 3em 0; +} + +.image { + width: 100%; + margin: 1em 0 2em 0; +} + +/** +p, ul, ol, dl, table { + margin-bottom: 3em; +}*/ + +/** Global styles */ + +.pg-bg-blue { + background-color: #336791; +} + +.pg-bg-light-blue { + background-color: #008bb9; +} + +.pg-bg-purple { + background-color: #e6E6fa; +} + +.pg-bg-gray { + background-color: #e7eae8; +} + +.pg-border-color-blue { + border-color: #336791; +} + +.pg-text-blue { + color: #336791; +} + +.pg-text-light-blue { + color: #008bb9; +} + +.pgFrontFeature { + background: #F5F5F5 url(/media-archives/img/feature/feature_elephant.png) right bottom no-repeat; + /* background: #F5F5F5 url(/media-archives/img/feature/feature_gears.png) right bottom no-repeat; */ +} + +.pgFrontContainer { + padding: 1em 2em; +} + +/* #BLOCKQUOTE */ + +blockquote { + border-left: solid 5px #E7EAE8; + padding: 1em 4em 3em .5em; + font-style: italic; +} + +.item blockquote { + border-left: none; + margin: 0; +} + +.item blockquote img { + margin-bottom: 10px; +} + +.item blockquote p:before { + content: "\f10d"; + font-family: 'Fontawesome'; + float: left; + margin-right: 10px; +} + +/* # CAROUSEL */ + +.col-center { + margin: 0 auto; + float: none !important; +} +.carousel { + margin: 0 auto 4rem auto; + padding: 0 3rem; +} +.carousel .item { + text-align: center; + overflow: hidden; + min-height: 12rem; +} +.carousel .item .img-box { + width: 135px; + height: 135px; + margin: 0 auto; + padding: 5px; + border: 1px solid #ddd; + border-radius: 50%; +} +.carousel .img-box img { + width: 100%; + height: 100%; + display: block; + border-radius: 50%; +} +.carousel .testimonial { + margin-top: 4rem; + padding: 0 1rem; +} +.carousel .overview { + font-style: italic; + color: #999; +} +.carousel .overview b { + text-transform: uppercase; + color: #336791; +} +.carousel .carousel-control { + width: 40px; + height: 40px; + margin-top: -20px; + top: 50%; + background: none; +} +.carousel-control i { + font-size: 68px; + line-height: 42px; + position: absolute; + display: inline-block; + color: rgba(0, 0, 0, 0.8); + text-shadow: 0 3px 3px #e6e6e6, 0 0 0 #000; +} +.carousel .carousel-indicators { + bottom: -40px; +} +.carousel-indicators li, .carousel-indicators li.active { + width: 10px; + height: 10px; + margin: 1px 3px; + border-radius: 50%; +} +.carousel-indicators li { + background: #999; + border-color: transparent; + box-shadow: inset 0 2px 1px rgba(0,0,0,0.2); +} +.carousel-indicators li.active { + background: #555; + box-shadow: inset 0 2px 1px rgba(0,0,0,0.2); +} + +/* #FEATURED SECTIONS */ + +.community { + width: 1em !important; + margin: 0 5px 0 0 !important; + display: inline-block; +} + +.feature { + text-align: center; + padding: 2em; +} + +.feature ul, ul.feature { + padding: 0; +} + +.feature li { + list-style-type: none; + padding-left: 0.3em; + text-align: left; +} + +.feature i { + font-size: 2.5em; + margin: 20px 0; + color: #336791; +} + +.feature img { + width: 2.5em; + margin: 20px 0; +} + +.feature p { + text-align: left; +} + +.feature-grid { + background-color: #336791; + text-align: center; + padding: 3em 0; + border: solid 1px #fff; +} + +.feature-grid h3 { + color: #fff; +} + +.feature button.btn.btn-center.btn-primary { + position: relative; + bottom: 0; + margin: 0 auto; +} + +.text { + margin-bottom: 2.5em; +} + +li.non-badged { + padding-left: 2em; +} + +/* #LIST */ + +#footer ul { + cursor: default; + padding: 0; +} + +a.icon { + text-decoration: none !important; +} + +footer img { + height: 2rem; + margin-bottom: 1rem; +} + +#footer ul li { + list-style-type: none; + display: inline-block; + margin: 0 .2em; + font-size: 2em; +} + +#footer li:hover a.fa-twitter { + color: #2DAAE4; +} + +#footer a.fa-twitter { + color: #000; +} + +#footer li:hover a.fa-github { + color: #000; +} + +#footer li:hover a.fa-google-plus-g { + color: #DA2713; +} + +ul.errorlist { + color: #bd4147; + font-weight: 600; + list-style-type: none; + padding: 0; +} + +ul.meta { + font-size: 0.85em; + padding-left: 0; +} + +ul.meta li { + display: inline-block; + margin-right: 1em; +} + +ul.meta li i { + margin-right: 4px; +} + +ul.divided > li { + border-top: solid 2px #e7eae8; + padding-top: 1.35em; + margin-top: 1.35em; + list-style: none; +} + +ul.divided > li:first-child { + border-top: 0; + padding-top: 0; + margin-top: 0; +} + +.divided h3 { + font-size: 1.2em; +} + +ul.bold { + font-weight: 600; + list-style-type: none; + padding-left: 0; +} + +/* #ICONS */ + +.icon { + position: relative; + text-decoration: none; +} + +.icon:before { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + font-family: FontAwesome; + font-style: normal; + font-weight: normal; + text-transform: none !important; +} + +.icon > .label { + display: none; +} + +/** BASE STYLES */ + +/** SHOUTOUT BOX */ +.pg-shout-box { + background-color: #336791; + font-weight: 600; +} + +.pg-shout-box a { + color: white; + text-decoration: underline; +} + +.pg-shout-box a:hover { + text-decoration: underline; +} + +/* #JUMBOTRON */ + +.pg-jumbotron { + background-image: linear-gradient( rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5) ), url("/media/img/misc/banner.jpg"); + background-position: center; + background-repeat: no-repeat; + background-size: cover; + z-index: 1; + margin: 0; + text-align: center; +} + +.pg-jumbotron-header { + font-size: 2.5rem; +} + +/* #CTA */ + +.cta { + background-position: center; + background-repeat: no-repeat; + background-size: cover; + z-index: 1; + margin: 0; +} + +.cta-text { + padding: 4em; + text-align: center; + color: #fff; + background-color: #336791; +} + +.cta-text h2 { + color: #fff; +} + +.cta-1 { + +} + +.cta-2 { + background-image: url("/media/img/misc/bugs.jpg"); +} + +.cta-3 { + background-image: url("/media/img/misc/training.jpg"); +} + +/* #MARGIN */ + +.margin { + margin: 0 auto 4em auto; +} + +/* #FOOTER */ + +#footer { + text-align: center; + padding: 5em 0 2em 0; +} + +#footer a { + color: inherit; +} + +/* #LIST DESKTOP */ + +ul.actions { + text-align: center; + margin: 2em 0 0 0; +} + +/* #SIDEBAR DESKTOP */ + +.sidebar { + padding-top: 6em; +} + +.col-lg-7 { + padding-top: 4em; +} + +.navbar .logo { + height: 2rem; + margin-left: 0; + margin-bottom: 0; +} + +.logo { + height: 2rem; + margin-left: 5px; + margin-bottom: 5px; +} + +.navbar { + box-shadow: 0px 3px 15px rgba(0,0,0,0.2); +} + +/* #SIDEBAR UL STYLING */ + +#pgSideNav { + padding: 1em; +} + +#pgSideNav ul { + list-style-type: circle; + padding-left: 1.3em; +} + +/* #PGCONTENTWRAP */ + +#pgContentWrap { + padding: 1em 2em; +} + +#pgContentWrap h3 { + margin: 1em 0; +} + +#pgContentWrap .fa, #pgContentWrap .far, #pgContentWrap .fas, #pgContentWrap .fab { + color: #336791; + margin: 0 5px; +} + +i.fas.fa-search { + color: #336791; +} + +/* #CODE */ +pre.code { + padding: .2rem .4rem; + font-size: 90%; + color: #bd4147; + background-color: #f8f9fa; + border-radius: .25rem; +} + +/* #STYLEDSELECT */ + +/** +* Used on mailinglists.html as part of the mailinglist subscribe functionality. +*/ + +.styledSelect, .styledInput { + width: 100%; + height: 34px; + overflow: hidden; + background-color: #fff; + border: solid 2px #e7eae8; +} + +.styledInput[name="search"] { + width: 98%; + height: 3.6em; +} + +/* Buttons */ + +.btn { + width: 14em; + margin: 1em auto; +} + +.btn-center { + text-align: center; + display: block; +} + +.btn-primary { + background-color: #336791; + border-color: #336791; + color: #fff; +} + +.btn-primary:hover, .btn-primary:active, .btn-primary:focus, .btn-primary.active, .btn:active:focus, .btn.active:focus { + background-color: #666; + border-color: #666; + cursor: pointer; +} + +.form-row .btn-primary { + margin: 0.5em 0; +} + +button.btn.btn-default { + color: #333; + background-color: #fff; + border-color: #ccc; + width: initial; + margin: auto 0; + height: 100%; + cursor: pointer; +} + +/* Input */ + +input#allsites { + margin-top: 10px; + margin-left: 0; +} + +input.form-control { + height: 2.5em; + margin: auto 0; +} + +input#q { + font-size: 1em; + font-family: 'Open Sans', sans-serif; +} + +input { + padding-left: 0.5em; +} + +input[type=checkbox] { + vertical-align: middle; + margin-left: 5px; +} + +.custom-select { + margin: 2px; +} + +th.formfieldnamecontainer { + padding-right: 1em; +} + +.pgGenericFormTable input, .pgGenericFormTable textarea { + margin: 0.5em 0; +} + +.form-check-input[type=radio] { + margin-top: .4rem; +} + +.form-check.search { + padding-left: 0; +} + +.form-check.search label.form-check-label { + margin-left: 1rem; + vertical-align: middle; +} + +.text-center.fixed-height h3 { + height: 3.5em; +} + +/* Message Subjects */ +h1.subject { + text-transform: none; +} + +/** ALL RESPONSIVE QUERIES HERE */ +/* Small devices (landscape phones, 576px and up)*/ +@media (min-width: 576px) { + /** NAVBAR */ + .nav-item > a { + font-size: 0.95rem; + font-weight: 600; + } +} +@media (max-width: 575px) { + /** HOMEPAGE JUMBOTRON */ + .pg-jumbotron-header { + font-size: 1.5rem; + } +} + +@media (max-width: 1200px) { +} + +@media (max-width: 992px) { + +} + +@media (max-width: 768px) { + + body { + padding-top: 55px; + } + + .jumbotron.jumbotron-fluid.pg-jumbotron { + padding: 4em; + } + + .pg-jumbotron .btn, button.btn.btn-primary { + margin: 5px auto; + } + + .text { + height: initial; + } + + .cta-text { + padding: 4em; + } + + .cta { + padding: 6em; + } + + ul.divided, ul.menu, #footer ul { + padding: 0; + text-align: center; + } + + ul.feature { + padding: 0 0 1em 0 !important; + } + + .feature-grid { + padding: 0; + } + + #pgSideNav { + padding: 1em 0; + } + + #pgSideNav ul { + padding: 0; + margin: 1em 0 0 1em; + } + + #pgSideNav ul ul { + margin: 0; + } + + #pgContentWrap { + padding: 0; + } + + #pgContentWrap ul { + padding-left: 1em; + } + +} diff --git a/django/media/css/navigation.css b/django/media/css/navigation.css deleted file mode 100644 index e8ddae5..0000000 --- a/django/media/css/navigation.css +++ /dev/null @@ -1,237 +0,0 @@ -/* - PostgreSQL.org - Navigation (and List) Styles -*/ - -/* Site Navigation */ - -#pgTopNav { - text-align: left; - color: #666; - font-size: 0.9em; - margin: 0; - padding: 0; - height: 23px; - background: #B7B7B7 url("/media/img/layout/nav_fill.png") top left repeat-x; - overflow: visible; - margin-top: 2px; -} - -#pgTopNavLeft { - width: 7px; - height: 23px; - border: 0px; - padding-right: 10px; - margin: 0px; - float: left; -} - -#pgTopNavLeft img { - border: 0px; - margin: 0; - padding: 0; -} - -#pgTopNavRight { - width: 7px; - height: 23px; - border: 0px; - padding: 0px; - margin: 0px; - float: right; -} - -#pgTopNavRight img { - border: 0px; - margin: 0; - padding: 0; -} - -#pgTopNavList { - list-style: none; - margin: 0; - padding: 0; - - height: 23px; - padding-top: 5px; -} - -#pgTopNavList li { - padding: 0 1em 0 1.2em; - display: inline; - border-left: 1px solid #C8C8C8; -} - -#pgTopNavList li a { - color: #fff; - font-weight: bold; - text-decoration: none; -} - -#pgTopNavList li:first-child { - border-left: 0; - padding-left: 0; -} - -#pgLoginLink { - margin: 0; - padding: 0; -} -#pgLoginlink a { - float: right; - color: #fff; - font-weight: bold; - text-decoration: none; - padding: 5px 1em 0 1.2em; - margin: 0; - height: 23px; -} - -/* The search navigation is the list of links next to the search box. */ - -#pgSearchNav { - position: relative; - float: right; - text-align: right; - color: #666; - font-size: 0.9em; - margin: 0px 0px 0px 0px; - top: -11px; - right: 209px; - padding: 0; -} - -#pgSearchNavList { - list-style: none; - margin: 0; - padding: 0; -} - -#pgSearchNavList li { - padding: 0 0.5em 0 0.5em; - display: inline; - border-right: 1px solid #C8C8C8; -} - -#pgSearchNavList li a { - color: #666; - text-decoration: none; -} - -#pgSearchNavList li a:hover { - color: #000; -} - -/* Category Navigation */ - -#pgSideNav:before { - line-height: 0.1; - font-size: 1px; - margin: 0; - display: block; -} - -#pgSideNav:after { - line-height: 0.1; - font-size: 1px; - margin: 0; - display: block; -} - -#pgSideNav, #pgSideNav ul, #pgSideNav ul ul { - margin: 0; - padding: 0; - list-style: none; - font-size: 1.0em; -} - -#pgSideNav { - width: 150px; - background-color: #F5F5F5; - background-image: url(/media/img/layout/nav_tbl_top.png); - background-position: top right; - background-repeat: no-repeat; -} - -#pgSideNav ul { - background-image: url(/media/img/layout/nav_tbl_btm.png); - background-position: bottom left; - background-repeat: no-repeat; - padding: 10px 0 10px 0; -} - -#pgSideNav ul ul { - background: none; - background-color: #F5F5F5; - margin: 0; - padding: 0; - list-style: none; -} - -#pgSideNav ul ul li { - background: none; - border: none; -} - -#pgSideNav ul li { - border-bottom: 1px solid #EFEFEF; - margin: 0; - padding-left: 12px; - background-image: url(/media/img/layout/blt_gry_arrow.png); - background-repeat: no-repeat; - background-position: 12px 0.65em; -} - -/* Uncomment when IE/Validator supports last-child - -#pgSideNav ul li:last-child { - border-bottom: 1px solid #F5F5F5; -} - -*/ - -#pgSideNav ul li.last-child { - border-bottom: 1px solid #F5F5F5; -} - -#pgSideNav ul li.active { - font-weight: bold; -} - -#pgSideNav ul li.active span { - display: none; -} - -#pgSideNav ul li a { - display: block; - color: #666; - text-decoration: none; - padding: 3px 5px 3px 15px; - margin: 0; -} - -#pgSideNav ul ul li a.active { - font-weight: bold; -} - -/* Uncomment when IE/Validator supports last-child - -#pgSideNav ul ul li:last-child { - border-bottom: none; -} - -*/ - -#pgSideNav ul ul li.last-child { - border-bottom: none; -} - -#pgSideNav ul ul li a { - display: block; - /* padding: 3px 5px 3px 12px; */ - padding-left: 12px; - margin: 0; -} - -#pgSideNav ul li a:hover { - color: #333; -} diff --git a/django/media/css/table.css b/django/media/css/table.css deleted file mode 100644 index c8ac492..0000000 --- a/django/media/css/table.css +++ /dev/null @@ -1,101 +0,0 @@ -/* - PostgreSQL.org - Table Styles -*/ - -div.tblBasic h2 { - margin: 25px 0 .5em 0; -} - -div.tblBasic table { - background: #F5F5F5 url(/media/img/layout/nav_tbl_top_lft.png) top left no-repeat; - margin-left: 2ex; - margin-bottom: 15px; -} - -div.tblBasic table th { - padding-top: 20px; - border-bottom: 1px solid #EFEFEF; - vertical-align: bottom; -} - -div.tblBasic table td { - border-bottom: 1px solid #EFEFEF; -} - -div.tblBasic table th, -div.tblBasic table td { - padding: 8px 11px; - color: #555555; -} - -div.tblBasic table td.indented { - text-indent: 30px; -} - -div.tblBasic table.tblCompact td { - padding: 3px 3px; -} - -div.tblBasic table tr.lastrow td { - border-bottom: none; - padding-bottom: 13px; -} - -div.tblBasic table.tblCompact tr.lastrow td { - padding-bottom: 3px; -} - -div.tblBasic table tr.lastrow td.colFirstT, -div.tblBasic table tr.lastrow td.colFirst { - background: url(/media/img/layout/nav_tbl_btm_lft.png) bottom left no-repeat; -} - -div.tblBasic table.tblBasicGrey th.colLast, -div.tblBasic table.tblCompact th.colLast { - background: #F5F5F5 url(/media/img/layout/nav_tbl_top_rgt.png) top right no-repeat; -} - -div.tblBasic table.tblBasicGrey tr.lastrow td.colLastT, -div.tblBasic table.tblBasicGrey tr.lastrow td.colLast, -div.tblBasic table.tblCompact tr.lastrow td.colLast, -div.tblBasic table.tblCompact tr.lastrow td.colLastT{ - background: #F5F5F5 url(/media/img/layout/nav_tbl_btm_rgt.png) bottom right no-repeat; -} - -div.tblBasic table.tblBasicGrey tr.firstrow td.colLastT, -div.tblBasic table.tblBasicGrey tr.firstrow td.colLast, -div tblBasic table.tblCompact tr.firstrow td.colLast { - background: #F5F5F5 url(/media/img/layout/nav_tbl_top_rgt.png) top right no-repeat; -} - -div.tblBasic table th.colMid, -div.tblBasic table td.colMid, -div.tblBasic table th.colLast, -div.tblBasic table td.colLast { - background-color: #F5F5F5 ; -} - -div.tblBasic table th.colLastC, -div.tblBasic table td.colFirstC, -div.tblBasic table td.colLastC { - text-align: center; -} - -div.tblBasic table th.colLastR, -div.tblBasic table td.colFirstR, -div.tblBasic table td.colLastR { - text-align: right; -} - -div.tblBasic table td.colFirstT, -div.tblBasic table td.colMidT, -div.tblBasic table td.colLastT { - vertical-align: top; -} - -div.tblBasic table th.colLastRT, -div.tblBasic table td.colFirstRT, -div.tblBasic table td.colLastRT { - text-align: right; - vertical-align: top; -} diff --git a/django/media/css/text.css b/django/media/css/text.css deleted file mode 100644 index 902a118..0000000 --- a/django/media/css/text.css +++ /dev/null @@ -1,162 +0,0 @@ -/* - PostgreSQL.org - Text Styles -*/ - -/* Heading Definitions */ - -h1 { - color: #EC5800; -} - -h2 { - color: #666; -} - -h3 { - color: #666; -} - -h4 { - color: #666; -} - -/* Text Styles */ - -.txtColumn1 { - width: 50%; - line-height: 1.3em; -} - -.txtColumn2 { - width: 50%; - line-height: 1.5em; -} - -.txtCurrentLocation { - font-weight: bold; -} - -.txtDivider { - font-size: 0.8em; - color: #E1E1E1; - padding-left: 4px; - padding-right: 4px; -} - -.txtNewsEvent { - font-size: 0.9em; - color: #0094C7; -} - -.txtDate { - font-size: 0.9em; - color: #666; -} - -.txtMediumGrey { - color: #666; -} - -.txtFormLabel { - color: #666; - font-weight: bold; - text-align: right; - vertical-align: top; -} - -.txtRequiredField { - color: #EC5800; -} - -.txtImportant { - color: #EC5800; -} - -.txtOffScreen { - position: absolute; - left: -1999px; - width: 1990px; -} - -#txtFrontFeatureHeading { - padding-bottom: 1.1em; -} - -#txtFrontFeatureLink a { - font-size: 1.2em; - font-weight: bold; - padding-left: 5px; -} - -#txtFrontUserText { - font-size: 1.0em; - color: #666; - margin-top: 12px; -} - -#txtFrontUserName { - font-size: 0.9em; - color: #666; - margin-top: 9px; - font-weight: bold; -} - -#txtFrontUserLink { - font-size: 0.9em; - color: #666; - margin-top: 11px; - margin-left: 1px; -} - -#txtFrontUserLink img { - padding-right: 5px; -} - -#txtFrontSupportUsText { - font-size: 1.0em; - margin-top: 9px; -} - -#txtFrontSupportUsLink { - font-size: 0.9em; - margin-top: 6px; -} - -#txtFrontSupportUsLink img { - padding-right: 7px; -} - -/* Link Styles */ - -a:link { color:#0085B0; text-decoration: underline; } -a:visited { color:#004E66; text-decoration: underline; } -a:active { color:#0085B0; text-decoration: underline; } -a:hover { color:#000000; text-decoration: underline; } - -#pgFooter a:link { color:#666; text-decoration: underline; } -#pgFooter a:visited { color:#666; text-decoration: underline; } -#pgFooter a:active { color:#666; text-decoration: underline; } -#pgFooter a:hover { color:#000000; text-decoration: underline; } - -#txtFrontUserName a:link { color:#666; text-decoration: underline; } -#txtFrontUserName a:visited { color:#666; text-decoration: underline; } -#txtFrontUserName a:active { color:#666; text-decoration: underline; } -#txtFrontUserName a:hover { color:#000; text-decoration: underline; } - -#txtArchives a:visited { color:#00536E; text-decoration: underline; } -#txtArchives pre { word-wrap: break-word; font-size: 150%; } -#txtArchives tt { word-wrap: break-word; font-size: 150%; } - -#pgFrontUSSContainer h2, #pgFrontUSSContainer h3 { - margin: 0; - padding: 0; -} - -#pgFrontNewsEventsContainer h2, #pgFrontNewsEventsContainer h3 { - margin: 0; - padding: 0; -} - -#pgFrontNewsEventsContainer h3 img { - margin-bottom: 10px; -} diff --git a/django/media/img/about/press/elephant.png b/django/media/img/about/press/elephant.png new file mode 100644 index 0000000000000000000000000000000000000000..d765318175097aac1846f8da436afaf35b7c6a9d GIT binary patch literal 60635 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 AmH+?% literal 0 HcmV?d00001 diff --git a/django/media/img/git.png b/django/media/img/git.png new file mode 100644 index 0000000000000000000000000000000000000000..51f4ae5404fc79be09e69171bfc9d34d48810297 GIT binary patch literal 2383 zcmb_edr(tX8b3FeJQNAIb;Tf>)JL(q3J4vLirl*vi*Kow20-DLSS9|3^Zwk7&^dy0_BKc76X2>}!()lOlVnV}tr z%7&jSS|mYX4~n%NS=f@&X(b^Q(N+N%0zF~9g{A- zZfSW+-Hr{m9%u8|2k$3dtage|2Sl;$h{sF(-i|c>B<|Qtz%K^PbRz=513=(`{A&g* z;RKU3B@gTnOaDvupQ!DT9hv|fD?ePvQ@0F%CkIDtqH+r6-`Pof?+-KO$>7G7NXXf@Nusk$YC-Nu- z23d{+;0ha8oHXp(O9h@TmW@CbU`rV z;l_K-qf92mZ;_k&oa6Cfm$b0End8ChmVX)f^pq##^aeu^Al9jBsZfODGUaf3a1>BU z#)l8$FxyesvmRxYX%&I`xjrI)@}}{Yz?WIexeH}QYZaSD3*0t5$8`+Ut3z}uuEv_l zb~=$F*(jZi!&FC0jtaAaNV1^#;yj+uX?0ZYbnwg26}mtz%iwT$HXX)ck)u$l7-(c|flTERxKM;g%Wl*nxU4yuBeLE+%mLQk3j#Q<_)GxC!`o6owL0SxvRSsR*zM_= zM;TNgl4km?o7x7!8}u>19+UmMGd!jky3e24KfUA+5jayP8JB}vti|+79AKDU-2xDY zqn+Hu(=dH4_b`}DuK6stpXcU@G9Z(UVjJC3;j2(CH&^;lDwRFv=gGOes*l+Q;vj%R z1CjmXXlAdvD}6z?*_cB>EeMeU3vbyDzxWD8a=-Y{)zbaNRsI}cXmGi}n|<>UAbYG9 z;xUVTfTo<;jjje( z<5@yEyyg^r9lW4kDOmWi7F$h4OvgW4*hR#{_R2TkNomGiT2@BGExcp}eH{5=tvPPr znrdcAhi9x>Cm;X5CI-$%(YABf@VI-Er7q>WS-MM&t|)rN1|93ssE#gv_%ypPosiRO zHauI2pZ{7#4Cak`9Bm+Eea_1Ri=F@QCrUo01C6qy1LOxLv(y%#4Rb1Cchij&G zr#4JZU%q$h=`k1i`eKFEX0D35ZPMpXFU?6-DzEpNF}+yks$ZJ7-sJd`US6|5H&c)= z?g+u?LxEVi_P~Y{L{FuKKRsbd!pg{zU6$E&)tT=G*E)_wv{c$(%`Lu27Pz|UsdXoo zog#W>2g$8C_+Cx>O@=}tkFwdxlOcOdgU!`~l$ABWSbdW+ZsxSDuMA~-A?WTkY=Uc%5xpg0$kgN=(W^ez> zH_0Zh@CX}tY3=ThcqDg~OVlqDK(!IiGN zC}T7iq-;&)B2ASvfD#5%fx7n~mIN!?Q47j>Zp`9ZwCvXL{U~GNpN-6MZ!^s|bb5-u zl{43z!4-)KlMrXIEQx3vDV*3C+$6xH%iJ^_k9EUe041;&y!qhF5f0HAh zFXfj)ECZw`K31%^WqqQaPbqdu$R@JyV3>73;@C#tjq&C3al~h1#r9#_?ZT-$)5Nk^ zmUQOPgk&zS|FArSgk}Pw6l3UjcW!>`-=XfV0hI_S$2b4{BL82 z2k(D``e93+SzOn9`ydHEt@(u*!(K_su{EJ|-OXKk#a^R&C_m@uwUJZEka5TH48ge_ vp%EL>Wi@Nxn8V*2x$L2D+u#MyDSqcb+P#5YHS3sP9I$26&gfeklTQ2-d^Cga literal 0 HcmV?d00001 -- 2.39.5