From 940227cbc964a420c04ecdf2f5e5a6c9b4f68042 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sat, 11 Dec 2010 11:33:34 +0100 Subject: [PATCH] Import of new website. --- www/banners.json | 1 - www/info.json | 7 - www/manager.py | 86 + www/menu.json | 25 - www/mirrors.json | 129 -- www/news.json | 1272 ----------- www/redirect.py | 33 - www/releases.json | 319 --- www/static/css/style.css | 877 +++----- .../images/banners/hetzner_hosted_by_1.jpg | Bin 0 -> 9188 bytes www/static/images/flags/unknown.png | 1 + www/templates/admin-accounts.html | 18 +- www/templates/admin-base.html | 5 +- www/templates/admin-login.html | 13 + www/templates/admin-mirrors-create.html | 71 + www/templates/admin-mirrors-details.html | 61 + www/templates/admin-mirrors.html | 31 + www/templates/admin-planet-compose.html | 4 +- www/templates/admin-planet.html | 2 +- www/templates/base-1.html | 10 + www/templates/base-2.html | 18 + www/templates/base.html | 67 +- www/templates/download-mirror-detail.html | 37 + www/templates/downloads-all.html | 10 +- www/templates/downloads-development.html | 47 +- www/templates/downloads-index.html | 49 + www/templates/downloads-item.html | 7 + www/templates/downloads-mirrors.html | 36 +- www/templates/downloads-older.html | 36 + www/templates/downloads.html | 140 +- www/templates/error.html | 2 +- www/templates/index.html | 152 +- www/templates/mirrors-item.html | 53 + www/templates/mirrors.html | 38 + www/templates/modules/menu-item.html | 3 - www/templates/modules/menu.html | 4 +- www/templates/modules/news-item.html | 19 +- www/templates/modules/news-line.html | 1 + www/templates/modules/news-preview.html | 9 + www/templates/modules/planet-entry.html | 34 +- www/templates/modules/release-item-short.html | 18 + www/templates/modules/release-item.html | 77 +- www/templates/modules/sidebar-banner.html | 7 +- www/templates/modules/sidebar-release.html | 18 +- www/templates/modules/tracker-peerlist.html | 15 + www/templates/news-author.html | 18 + www/templates/news-item.html | 22 + www/templates/news.html | 31 +- www/templates/planet-main.html | 22 +- www/templates/planet-user.html | 36 +- www/templates/stasy-base-1.html | 1 + www/templates/stasy-base-2.html | 1 + www/templates/stasy-index.html | 12 + www/templates/stasy-profile.html | 120 ++ www/templates/static/about.html | 224 ++ www/templates/static/artwork.html | 4 +- www/templates/static/cebit.html | 4 +- www/templates/static/development.html | 4 +- www/templates/static/donation.html | 2 +- www/templates/static/features.html | 2 +- www/templates/static/imprint.html | 4 +- www/templates/static/screenshots.html | 19 +- www/templates/static/support.html | 86 + www/templates/tracker-torrent-detail.html | 43 + ...ds-torrents.html => tracker-torrents.html} | 29 +- www/translations/de_DE.csv | 64 + www/webapp.py | 25 +- www/webapp/__init__.py | 151 +- www/webapp/backend/__init__.py | 12 + www/webapp/backend/accounts.py | 164 ++ www/webapp/backend/banners.py | 28 + www/webapp/backend/databases.py | 88 + www/webapp/backend/geoip.py | 35 + www/webapp/backend/menu.py | 25 + www/webapp/backend/mirrors.py | 171 ++ www/webapp/backend/misc.py | 16 + www/webapp/backend/news.py | 54 + www/webapp/backend/planet.py | 110 + www/webapp/backend/releases.py | 207 ++ www/webapp/backend/settings.py | 58 + www/webapp/{datastore => backend}/tracker.py | 24 +- www/webapp/datastore/__init__.py | 45 - www/webapp/datastore/banners.py | 22 - www/webapp/datastore/builds.py | 88 - www/webapp/datastore/config.py | 19 - www/webapp/datastore/connections.py | 24 - www/webapp/datastore/info.py | 14 - www/webapp/datastore/menu.py | 23 - www/webapp/datastore/mirrors.py | 232 -- www/webapp/datastore/news.py | 32 - www/webapp/datastore/releases.py | 163 -- www/webapp/db.py | 142 -- www/webapp/handlers.py | 581 +---- www/webapp/handlers_admin.py | 273 +++ www/webapp/handlers_base.py | 97 + www/webapp/handlers_download.py | 75 + www/webapp/handlers_mirrors.py | 49 + www/webapp/handlers_news.py | 69 + www/webapp/handlers_planet.py | 57 + www/webapp/handlers_stasy.py | 26 + www/webapp/handlers_tracker.py | 161 ++ www/webapp/helpers.py | 41 - www/webapp/markdown.py | 1877 ----------------- www/webapp/stasy.py | 179 ++ www/webapp/ui_modules.py | 123 +- 105 files changed, 4110 insertions(+), 6080 deletions(-) delete mode 100644 www/banners.json delete mode 100644 www/info.json create mode 100644 www/manager.py delete mode 100644 www/menu.json delete mode 100644 www/mirrors.json delete mode 100644 www/news.json delete mode 100644 www/redirect.py delete mode 100644 www/releases.json create mode 100644 www/static/images/banners/hetzner_hosted_by_1.jpg create mode 120000 www/static/images/flags/unknown.png create mode 100644 www/templates/admin-login.html create mode 100644 www/templates/admin-mirrors-create.html create mode 100644 www/templates/admin-mirrors-details.html create mode 100644 www/templates/admin-mirrors.html create mode 100644 www/templates/base-1.html create mode 100644 www/templates/base-2.html create mode 100644 www/templates/download-mirror-detail.html create mode 100644 www/templates/downloads-index.html create mode 100644 www/templates/downloads-item.html create mode 100644 www/templates/downloads-older.html create mode 100644 www/templates/mirrors-item.html create mode 100644 www/templates/mirrors.html delete mode 100644 www/templates/modules/menu-item.html create mode 100644 www/templates/modules/news-line.html create mode 100644 www/templates/modules/news-preview.html create mode 100644 www/templates/modules/release-item-short.html create mode 100644 www/templates/modules/tracker-peerlist.html create mode 100644 www/templates/news-author.html create mode 100644 www/templates/news-item.html create mode 100644 www/templates/stasy-base-1.html create mode 100644 www/templates/stasy-base-2.html create mode 100644 www/templates/stasy-index.html create mode 100644 www/templates/stasy-profile.html create mode 100644 www/templates/static/about.html create mode 100644 www/templates/static/support.html create mode 100644 www/templates/tracker-torrent-detail.html rename www/templates/{downloads-torrents.html => tracker-torrents.html} (66%) create mode 100644 www/webapp/backend/__init__.py create mode 100644 www/webapp/backend/accounts.py create mode 100644 www/webapp/backend/banners.py create mode 100644 www/webapp/backend/databases.py create mode 100644 www/webapp/backend/geoip.py create mode 100644 www/webapp/backend/menu.py create mode 100644 www/webapp/backend/mirrors.py create mode 100644 www/webapp/backend/misc.py create mode 100644 www/webapp/backend/news.py create mode 100644 www/webapp/backend/planet.py create mode 100644 www/webapp/backend/releases.py create mode 100644 www/webapp/backend/settings.py rename www/webapp/{datastore => backend}/tracker.py (93%) delete mode 100644 www/webapp/datastore/__init__.py delete mode 100644 www/webapp/datastore/banners.py delete mode 100644 www/webapp/datastore/builds.py delete mode 100644 www/webapp/datastore/config.py delete mode 100644 www/webapp/datastore/connections.py delete mode 100644 www/webapp/datastore/info.py delete mode 100644 www/webapp/datastore/menu.py delete mode 100644 www/webapp/datastore/mirrors.py delete mode 100644 www/webapp/datastore/news.py delete mode 100644 www/webapp/datastore/releases.py delete mode 100644 www/webapp/db.py create mode 100644 www/webapp/handlers_admin.py create mode 100644 www/webapp/handlers_base.py create mode 100644 www/webapp/handlers_download.py create mode 100644 www/webapp/handlers_mirrors.py create mode 100644 www/webapp/handlers_news.py create mode 100644 www/webapp/handlers_planet.py create mode 100644 www/webapp/handlers_stasy.py create mode 100644 www/webapp/handlers_tracker.py delete mode 100644 www/webapp/helpers.py delete mode 100644 www/webapp/markdown.py create mode 100644 www/webapp/stasy.py diff --git a/www/banners.json b/www/banners.json deleted file mode 100644 index fe51488..0000000 --- a/www/banners.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/www/info.json b/www/info.json deleted file mode 100644 index dd07e2f..0000000 --- a/www/info.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "cluster" : { "hostname" : "minerva.ipfire.org" }, - "nightly_builds" : [{ "url" : "http://ftp.ipfire.org/pub/nightly-builds/", - "path" : "/srv/anonftp/pub/nightly-builds" }, - { "url" : "http://www.rowie.at/upload/ipfire/builds/" }], - "pakfire3" : { "path" : "/srv/pakfire3/" } -} diff --git a/www/manager.py b/www/manager.py new file mode 100644 index 0000000..5c2299a --- /dev/null +++ b/www/manager.py @@ -0,0 +1,86 @@ +#!/usr/bin/python + +import logging +import time +import tornado.ioloop + +import webapp.backend as backend + +class Daemon(object): + def __init__(self): + self._managers = [] + + self.ioloop.set_blocking_log_threshold(900) + + @property + def ioloop(self): + return tornado.ioloop.IOLoop.instance() + + def add(self, manager_cls): + manager = manager_cls(self) + self._managers.append(manager) + + def run(self): + """ + Main loop. + """ + for manager in self._managers: + manager.pc.start() + + self.ioloop.start() + + def shutdown(self): + self.ioloop.stop() + + +class Manager(object): + def __init__(self, daemon): + self.daemon = daemon + + self.pc = tornado.ioloop.PeriodicCallback(self, self.timeout * 1000) + + logging.info("%s was initialized." % self.__class__.__name__) + + self() + + def __call__(self): + logging.info("%s main method was called." % self.__class__.__name__) + + self.do() + + # Update callback_time. + self.pc.callback_time = self.timeout * 1000 + logging.debug("Next call will be in %.2f seconds." % \ + (self.pc.callback_time / 1000)) + + @property + def timeout(self): + """ + Return a new callback timeout in seconds. + """ + raise NotImplementedError + + def do(self): + raise NotImplementedError + + + +class MirrorManager(Manager): + @property + def mirrors(self): + return backend.Mirrors() + + @property + def timeout(self): + return backend.Config().get_int("mirror_check_interval") + + def do(self): + # Check status of all mirror servers. + self.mirrors.check_all() + + +if __name__ == "__main__": + d = Daemon() + d.add(MirrorManager) + + d.run() diff --git a/www/menu.json b/www/menu.json deleted file mode 100644 index 20574ad..0000000 --- a/www/menu.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "www.ipfire.org" : [ - { "uri" : "/index", - "name" : "Home" }, - { "uri" : "/features", - "name" : { "de" : "Funktionen", "en" : "Features" }}, - { "uri" : "/screenshots", - "name" : "Screenshots" }, - { "uri" : "/download", - "name" : "Downloads" }, - { "uri" : "http://wiki.ipfire.org/", - "name" : { "de" : "Wiki", "en" : "Wiki" }}, - { "uri" : "http://forum.ipfire.org/", - "name" : "Forum" }, - { "uri" : "/development", - "name" : { "de" : "Entwicklung", "en" : "Development" }}, - { "uri" : "/cebit", - "name" : "CeBIT 2010" } - ], - - "planet.ipfire.org" : [ - { "uri" : "/index", - "name" : "Home" } - ] -} diff --git a/www/mirrors.json b/www/mirrors.json deleted file mode 100644 index 073eae1..0000000 --- a/www/mirrors.json +++ /dev/null @@ -1,129 +0,0 @@ -[ - { - "owner" : "IPFire Project", - "location" : { - "city" : "Cologne", - "country" : "Germany", - "country_code" : "de" - }, - "hostname" : "mirror1.ipfire.org", - "path" : "", - "serves" : { - "isos" : true, - "pakfire2" : true, - "pakfire3" : true - } - }, - - { - "name" : "Ronald Wiesinger", - "location" : { - "city" : "Vienna", - "country" : "Austria", - "country_code" : "at" - }, - "hostname" : "www.rowie.at", - "path" : "/ipfire", - "serves" : { - "isos" : true, - "pakfire2" : false, - "pakfire3" : false - } - }, - - { - "owner" : "Jan Paul Tücking", - "location" : { - "city" : "Falkenstein/Vogtland", - "country" : "Germany", - "country_code" : "de" - }, - "hostname" : "ipfire.earl-net.com", - "path" : "", - "serves" : { - "isos" : true, - "pakfire2" : true, - "pakfire3" : false - } - }, - - { - "owner" : "Markus Villwock", - "location" : { - "city" : "Hannover", - "country" : "Germany", - "country_code" : "de" - }, - "hostname" : "kraefte.net", - "path" : "/ipfire", - "serves" : { - "isos" : true, - "pakfire2" : true, - "pakfire3" : false - } - }, - - { - "owner" : "Kim Barthel", - "location" : { - "city" : "Stuttgart", - "country" : "Germany", - "country_code" : "de" - }, - "hostname" : "ipfire.b56.eu", - "path" : "", - "serves" : { - "isos" : true, - "pakfire2" : false, - "pakfire3" : false - } - }, - - { - "owner" : "Robert Möker", - "location" : { - "city" : "Frankfurt am Main", - "country" : "Germany", - "country_code" : "de" - }, - "hostname" : "datenklatscher.net", - "path" : "/ipfire", - "serves" : { - "isos" : true, - "pakfire2" : false, - "pakfire3" : false - } - }, - - { - "owner" : "SWITCH", - "location" : { - "city" : "Zurich", - "country" : "Switzerland", - "country_code" : "ch" - }, - "hostname" : "mirror.switch.ch", - "path" : "/ftp/mirror/ipfire/pakfire2", - "serves" : { - "isos" : true, - "pakfire2" : false, - "pakfire3" : false - } - }, - - { - "owner" : "Peter Schälchli", - "location" : { - "city" : "Paris", - "country" : "France", - "country_code" : "fr" - }, - "hostname" : "mirror6.ipfire.org", - "path" : "", - "serves" : { - "isos" : true, - "pakfire2" : true, - "pakfire3" : false - } - } -] diff --git a/www/news.json b/www/news.json deleted file mode 100644 index 801bc1f..0000000 --- a/www/news.json +++ /dev/null @@ -1,1272 +0,0 @@ -{ - "01" : {"author" : "Michael Tremer", - "mail" : "michael.tremer@ipfire.org", - "subject" : "IPFire 2.1 Final", - "date" : "2007-08-11", - "link" : "", - "content" : - { "en" : "

Today, we released the final version of IPFire 2.1.

", - "de" : "

Heute wurde die finale Version von IPFire 2.1 herausgegeben.

"}}, - - "02" : {"author" : "Michael Tremer", - "mail" : "michael.tremer@ipfire.org", - "subject" : { "en" : "IPFire's first rss feed", "de" : "IPFires RSS-Feed" }, - "date" : "2008-07-24", - "link" : "", - "content" : - { "en" : "

Now, the ipfire project has got it's own rss feed. This feed is for you, to keep you up on latest - security updates and releases..

", - "de" : "

Ab heute hat das IPFire-Projekt seinen eigenen RSS-Feed. Dieser soll die Möglichkeit bieten - auf dem Stand der Dinge zu bleiben.

"}}, - - "03" : {"author" : "Michael Tremer", - "mail" : "michael.tremer@ipfire.org", - "subject" : "Core Update 15", - "date" : "2008-07-24", - "link" : "", - "content" : - { "en" : "

Today, we released the core update number #15.
- This is an important update because it will fix - the latest dns vulnerabilities.
- Read this for more information.
- Please install this update as soon as possible.

", - "de" : "

Heute wurde das Core Update #15 herausgegeben.
- Dieses Update wird als kritisch eingestuft, da es die Sicherheitslücke des - DNS behebt.
- Nähere Informationen dazu gibt es hier.
- Bitte installieren Sie dieses Update möglichst schnell.

"}}, - - "04" : {"author" : "Michael Tremer", - "mail" : "michael.tremer@ipfire.org", - "subject" : "LUG Lünen", - "date" : "2008-07-30", - "link" : "http://www.linux-luenen.de/?q=node/15", - "content" : - { "en" : "

The linux user group from Lünen - released an article about ipfire.

", - "de" : "

Die Linux-User-Group aus Lünen hat einen Artikel - über IPFire auf Ihrer Webseite veröffentlicht.

"}}, - - "05" : {"author" : "Michael Tremer", - "mail" : "michael.tremer@ipfire.org", - "subject" : "Core Update 16", - "date" : "2008-08-17", - "link" : "", - "content" : - { "en" : "

Today, we released the core update number #16.

", - "de" : "

Heute wurde das Core Update #16 herausgegeben.

"}}, - - "06" : {"author" : "Michael Tremer", - "mail" : "michael.tremer@ipfire.org", - "subject" : "IPFire 2.3 Beta 3", - "date" : "2008-08-20", - "link" : "http://forum.ipfire.org/index.php/topic,709.0.html", - "content" : - { "en" : "

Today, we released the beta version of IPFire 2.3.

", - "de" : "

Heute wurde die Beta-Version von IPFire 2.3 herausgegeben.

"}}, - - "07" : {"author" : "Michael Tremer", - "mail" : "michael.tremer@ipfire.org", - "subject" : { "en" : "Presentation of our project on kbarthel.de", - "de" : "Projektpräsentation auf kbarthel.de" }, - "date" : "2008-08-22", - "link" : "http://blog.kbarthel.de/?p=148", - "content" : - { "en" : "

Kim Barthel published on his blog a text about the project ipfire itself.

", - "de" : "

Kim Barthel veröffentlichte in seinem Blog einen umfassenden Bericht über IPFire.

"}}, - - "08" : {"author" : "Michael Tremer", - "mail" : "michael.tremer@ipfire.org", - "subject" : "IPFire 2.3 Beta 5", - "date" : "2008-10-13", - "link" : "http://forum.ipfire.org/index.php/topic,788.0.html", - "content" : - { "en" : "

Today, we released the beta version of IPFire 2.3.

", - "de" : "

Heute wurde die Beta-Version von IPFire 2.3 herausgegeben.

"}}, - - "09" : {"author" : "Michael Tremer", - "mail" : "michael.tremer@ipfire.org", - "subject" : "IPFire 2.3 Final", - "date" : "2008-11-08", - "link" : "", - "content" : - { "en" : "

Today, we released the final version of IPFire 2.3.

", - "de" : "

Heute wurde die finale Version von IPFire 2.3 herausgegeben.

"}}, - - "10" : {"author" : "Michael Tremer", - "mail" : "michael.tremer@ipfire.org", - "subject" : "Core Update 24", - "date" : "2008-12-12", - "link" : "http://forum.ipfire.org/index.php?topic=882.0", - "content" : - { "en" : "

Today, we released the core update number #24.

", - "de" : "

Heute wurde das Core Update #24 herausgegeben.

"}}, - - "11" : {"author" : "Michael Tremer", - "mail" : "michael.tremer@ipfire.org", - "subject" : "Core Update 25", - "date" : "2008-12-21", - "link" : "http://forum.ipfire.org/index.php?topic=951.0", - "content" : - { "en" : "

Today, we released the core update number #25.

", - "de" : "

Heute wurde das Core Update #25 herausgegeben.

"}}, - - "12" : {"author" : "Michael Tremer", - "mail" : "michael.tremer@ipfire.org", - "subject" : "Core Update 26", - "date" : "2009-02-11", - "link" : "http://forum.ipfire.org/index.php?topic=991.0", - "content" : - { "en" : "

Today, we released the core update number #26.

", - "de" : "

Heute wurde das Core Update #26 herausgegeben.

"}}, - - "13" : {"author" : "Michael Tremer", - "mail" : "michael.tremer@ipfire.org", - "subject" : "Core Update 27", - "date" : "2009-03-10", - "link" : "http://forum.ipfire.org/index.php?topic=1018.0", - "content" : - { "en" : "

Today, we released the core update number #27.

", - "de" : "

Heute wurde das Core Update #27 herausgegeben.

"}}, - - "14" : {"author" : "Michael Tremer", - "mail" : "michael.tremer@ipfire.org", - "subject" : "Hosting Partner", - "date" : "2009-03-28", - "link" : "http://wiki.ipfire.org/de/project/contribute", - "content" : - { "en" : "

We would like to welcome to our hosting partner ISP42 that - has given a server to the project for free.

", - "de" : "

Wir möchten unseren neuen Hosting-Partner ISP42 - willkommen heißen, der uns einen Server konstenfrei zu Verfügung stellt.

"}}, - - "15" : {"author" : "Michael Tremer", - "mail" : "michael.tremer@ipfire.org", - "subject" : { "en" : "rss feed url changed", "de" : "RSS-Feed-URL geändert" }, - "date" : "2009-03-28", - "link" : "", - "content" : - { "en" : "

The url of our rss feed has changed. Please re-add it from the link in the sidebar.

", - "de" : "

Wir möchten darauf hinweisen, dass sich die URL des RSS-Feeds geändert hat. Es ist nötig - den Feed neu hinzuzufügen von dem Link in der Sidebar.

"}}, - - "16" : {"author" : "Michael Tremer", - "mail" : "michael.tremer@ipfire.org", - "subject" : { "en" : "experimental xen-images", "de" : "Experimentelle Xen-Images verfügbar" }, - "date" : "2009-06-11", - "link" : "", - "content" : - { "en" : "

Ben Schweikert has published an experimental xen-image. See - http://people.ipfire.org/~trikolon/ - for more information.

Instructions are included in the tarball.

", - "de" : "

Ben Schweikert hat ein experimentelles Image für IPFire als Gast in Xen erstellt.

-

Der Download ist auf http://people.ipfire.org/~trikolon/ - zu finden. Installationsanweisungen sind in dem Tarball enthalten.

"}}, - - "17" : {"author" : "Michael Tremer", - "mail" : "michael.tremer@ipfire.org", - "subject" : { "en" : "IPFire 2.5 has arrived! - Core 28", "de" : "IPFire 2.5 - Core 28" }, - "date" : "2009-06-22", - "link" : "", - "content" : - { "en" : "

Finally, IPFire 2.5 has arrived! With this release, - there are several new features:

- -

There is also an experimental Xen-kernel available.

", - "de" : "

Ab heute ist IPFire 2.5 verfügbar. Es gibt folgende Änderungen:

- -

Ein experimenteller Xen-Kernel ist verfügbar.

"}}, - - "18" : {"author" : "Jan Paul Tuecking", - "mail" : "earl@ipfire.org", - "subject" : { "en" : "Core Update 29", "de" : "Core Update 29" }, - "date" : "2009-08-05", - "link" : "", - "content" : - { "en" : "

From today, Core 29 will be available. - It comes with the following Changes:

-
", - - "de" : "

Ab heute ist Core 29 verfügbar. Es kommt mit folgenden Änderungen:

-
"}}, - - - "19" : {"author" : "Jan Paul Tuecking", - "mail" : "earl@ipfire.org", - "subject" : { "en" : "Core Update 30", "de" : "Core Update 30" }, - "date" : "2009-08-30", - "link" : "", - "content" : - { "en" : "

Today we are going to release Core 30. - It comes with the following Changes:

-
-

Special fixes for c't-Server:

-
", - - "de" : "

Heute werden wir Core 30 veröffentlichen. - Es kommt mit folgenden Änderungen:

-
-

Spezielle Korrekturen für den c't-Server:

-
"}}, - - - "20" : {"author" : "Jan Paul Tuecking", - "mail" : "earl@ipfire.org", - "subject" : { "en" : "Core Update 31", "de" : "Core Update 31" }, - "date" : "2009-10-04", - "link" : "", - "content" : - { "en" : "

Today we are going to release Core 31. - It implicates following changes:

- -

Because of the security vulnerability in the old kernel, we recommend all users -
to install this core update!

-
", - - "de" : "

Heute wurde Core 31 veröffentlicht. Es bringt die folgenden Änderungen mit sich:

- - -

Aufgrund der Sicherheitslücke im alten Kernel empfehlen wir allen Benutzern -
dieses Core-Update zu installieren!

-
"}}, - - "21" : {"author" : "Jan Paul Tuecking", - "mail" : "earl@ipfire.org", - "subject" : { "en" : "Core Update 32", "de" : "Core Update 32" }, - "date" : "2009-11-04", - "link" : "", - "content" : - { "en" : "

Today we are going to release Core 32. - It implicates following changes:

- -
", - - "de" : "

Heute werden wir Core 32 veröffentlichen. Es bringt die folgenden Änderungen mit sich:

- -
"}}, - - "22" : {"author" : "Jan Paul Tuecking", - "mail" : "earl@ipfire.org", - "subject" : { "en" : "Core Update 33", "de" : "Core Update 33" }, - "date" : "2009-11-05", - "link" : "", - "content" : - { "en" : "

Due to a security reason we are going to release Core 33 today. -

- -
", - - "de" : "

Aus sicherheitstechnischen Gründen werden wir heute direkt den Core 33 - veröffentlichen:

- -
"}}, - - "23" : {"author" : "Michael Tremer", - "mail" : "ms@ipfire.org", - "subject" : { "en" : "Group of Core Developers grows", "de" : "Neue Core-Developer ernannt" }, - "date" : "2009-11-07", - "link" : "", - "content" : - { "en" : "

The IPFire Core Developers are proud to announce to new members of them. - Stefan Schantl and Jan Paul Tücking were incorporated - into the group to honour their continuous contribution and giving their support to the project.

-

To get out how you can join the project have a look at: - http://wiki.ipfire.org/en/project/join. -

", - - "de" : "

Das IPFire Core Development Team ist stolz zwei neue Mitglieder vorzustellen. - Stefan Schantl und Jan Paul Tücking sind von - nun an Teil des Teams aufgrund Ihrer beständigen und langen Mitarbeit am Projekt.

-

- Wie kann ich selber zum Projekt beitragen? -

"}}, - - "24" : {"author" : "Jan Paul Tuecking", - "mail" : "earl@ipfire.org", - "subject" : { "en" : "talk about IPFire", "de" : "Vortrag zum IPFire" }, - "date" : "2009-12-06", - "link" : "", - "content" : - { "en" : "

Marcus Scholz did a talk about - IPFire at the Warpzone, a - draft - is available as well as a video. -

", - - "de" : "

Marcus Scholz hat einen Vortrag über - IPFire in der Warpzone gehalten. Die dazugehörigen - Folien - so wie ein Video von seiner Präsentation stehen zur Verfügung. -

"}}, - - "25" : {"author" : "Michael Tremer", - "mail" : "michael.tremer@ipfire.org", - "subject" : { "en" : "IPFire on CeBIT 2010", "de" : "IPFire auf der CeBIT 2010" }, - "date" : "2009-12-28", - "link" : "", - "content" : - { "en" : "

At next year's CeBIT, the world's largest computer expo, IPFire will, - for the first time, get its own booth in the Open Source Project Lounge.

-

That's why we need your donations!
- We would like to say thanks to all the people who have already donated.

-

For further information: Read our CeBIT Special.

", - - "de" : "

Dank der Linux New Media AG wird das IPFire-Projekt auf der CeBIT, - der weltweit größten Messe für Informationstechnik, im nächsten Jahr mit einem eigenen Stand - in der Open Source Project Lounge vertreten sein.

-

- Daher möchten wir hiermit einen Spendenaufruf starten und bedanken uns schon - im Voraus bei der Vielzahl an freiwilligen Helfern.

-

Weitere Informationen zum Thema gibt es auf der CeBIT-Special-Seite.

"}}, - - "26" : {"author" : "Jan Paul Tuecking", - "mail" : "earl@ipfire.org", - "subject" : { "en" : "Core Update 34", "de" : "Core Update 34" }, - "date" : "2010-01-09", - "link" : "", - "content" : - { "en" : "

Today we are going to release the first update in 2010. - Core 34 comes with the following changes:

-

-

- - -

-

- Due to the kernel update a reboot of IPFire is necessary!
- Warning: Grub is being reinstalled during the update. If you have applied manual - changes, you have to reapply them first!
- Xen user have to update linux-xen bevor the reboot of the machine! -

", - - "de" : "

Heute werden wir das erste Update im Jahr 2010 veröffentlichen. - Das Core 34 Update weist folgende Änderungen auf:

-

-

- - -

-

- Durch das Update des Kernels ist ein Neustart - von IPFire nötig!
- Achtung: Grub wird neu installiert. Wenn die Konfiguration manuell geändert - wurde muss diese zuerst wieder hergestellt werden!
- Xen User müssen vor dem Neustart der Maschine zuerst linux-xen updaten, - da es sonst zu Fehlern kommt! -

"}}, - - "27" : {"author" : "Jan Paul Tuecking", - "mail" : "earl@ipfire.org", - "subject" : { "en" : "Core Update 35", "de" : "Core Update 35" }, - "date" : "2010-01-28", - "link" : "", - "content" : - { "en" : "

Today we are going to release Core 35. - It implicates following changes:

-

-

- -

-

- (*) These changes have only effect on new installations of IPFire. -

", - - - "de" : "

Heute werden wir Core 35 veröffentlichen. - Es bringt die folgenden Änderungen mit sich:

-

-

- -

-

- (*) Diese Änderungen betreffen nur Neuinstallationen von IPFire. -

"}}, - - - "28" : {"author" : "Jan Paul Tuecking", - "mail" : "earl@ipfire.org", - "subject" : { "en" : "Core Update 36", "de" : "Core Update 36" }, - "date" : "2010-02-01", - "link" : "", - "content" : - { "en" : "

Today we are going to release Core 36. - It implicates following changes:

-

-

- -

-

- Because of the security updates of ssh and ssl, we - recommend all users to install this core update! -

", - - - "de" : "

Heute werden wir Core 36 veröffentlichen. - Es bringt die folgenden Änderungen mit sich:

-

-

- -

-

- Auf Grund der Sicheitsupdates von ssh und ssl, empfehlen wir allen Benutzern dieses - Core Update zu installieren! -

"}}, - - "29" : {"author" : "Michael Tremer", - "mail" : "ms@ipfire.org", - "subject" : "CeBIT Update #1", - "date" : "2010-02-24", - "link" : "", - "content" : - { "en" : " -

I would like you to get a short update for our plannings on CeBIT 2010.

-

- There are only a few days left and we are quite finished. But - as an exhibitor, we got a bunch of free tickets. If you would like - to get one, please send an email to - tickets@ipfire.org. -

-

- We hope to see you at the IPFire booth in - Hall 2 - F34. -

", - - "de" : " -

Dies ist ein kleines Update zur CeBIT:

-

- Die Vorbereitungen sind weitestgehend beendet und wir - bedanken uns bei allen Helfern. -

-

- Als Austeller haben wir eine Zahl kostenloser Tickets bekommen, - die wir nun an die Community (vorrangig die Spender) - verteilen möchten. Bitte sendet dazu eine kurze Email - an tickets@ipfire.org. -

-

- Wir hoffen euch begrüßen zu dürfen in der Halle 2, - Stand F34. -

"}}, - - "30" : {"author" : "Jan Paul Tuecking", - "mail" : "earl@ipfire.org", - "subject" : { "en" : "Core Update 37", "de" : "Core Update 37" }, - "date" : "2010-04-04", - "link" : "", - "content" : - { "en" : "

Today we are going to release Core 37. - It implicates following changes:

- -

- Because of the security updates of ssh and ssl, we - recommend all users to install this core update! -

-

- If you had installed this core update from \"testing tree\" - before 01.04.2010 check the forum how to reinstall this update because the - openssl update was added in last minute. -

-

- We plan to change the ipsec vpn software from openswan to strongswan in one of the next updates. - To prepare this you schould check the settings and fill the \"Local ID\" and \"Remote ID\" field. - The webif marks this as \"can be blank\" but this will change with strongswan! -

", - - "de" : "

Heute werden wir Core 37 veröffentlichen. - Es bringt die folgenden Änderungen mit sich:

- -

- Auf Grund der Sicheitsupdates von ssh und ssl, empfehlen wir allen - Benutzern dieses Core Update zu installieren! -

-

- Wenn Sie das Core 37 schon vor dem 01.04.2010 aus dem \"testing tree\" - installiert haben bitte schauen Sie ins Forum wie das Update nochmal installiert - wird da das openssl update in letzter Minute hinzugefügt wurde. -

-

- Wir Planen in einem der nächsten Updates die Software für das IPSEC VPN - von openswan auf strongswan zu wechseln. Um auf diesen Wechsel vorbereitet zu sein - sollten Sie Ihre IPSEC Einstellungen prüfen und die Felder \"Local ID\" und \"Remote ID\" - ausfüllen. Im Moment sind diese Felder optional aber mit strongswan sind diese erforderlich. -

"}}, - - "31" : {"author" : "Jan Paul Tuecking", - "mail" : "earl@ipfire.org", - "subject" : { "en" : "IPFire on LWN.net", "de" : "IPFire auf LWN.net" }, - "date" : "2010-05-15", - "link" : "", - "content" : - { "en" : "

Linux Weekly News, one of the most important information portals of free software and linux, - has released a detailed article about IPFire that we want to share with our users: -
- IPFire 2.5: Firewalls and more -

", - - - "de" : "

Linux Weekly News, einer der wichtigsten Informationsportale über Freie Software und Linux, - hat einen ausführlichen Artikel über IPFire herausgebracht den wir unseren Benutzern nicht - vorenthalten wollen: -
- IPFire 2.5: Firewalls and more -

"}}, - - "32" : {"author" : "Jan Paul Tuecking", - "mail" : "earl@ipfire.org", - "subject" : { "en" : "IPFire 2.7 release candidate 1", "de" : "IPFire 2.7 release candidate 1" }, - "date" : "2010-06-10", - "link" : "", - "content" : - { "en" : "

After the approval by the release manager we are going to release IPFire 2.7 RC1 today. - This version is only suitable for testing and should not be used in productive environments. -
- Download: Mirror 1 | - Mirror 2 -
- Please help us to test the new version of IPFire. If you have experienced any bugs please report - them to the bugtracker. Thank you! -
- More information is available on the - IPFire forum. -

", - - "de" : "

Nach der Freigabe durch den Releasemanager werden wir heute IPFire 2.7 RC1 veröffentlichen. - Diese Version ist ausschließlich zu Testzwecken geeignet und sollte nicht in Produktivumgebungen benutzt werden. -
- Download: Mirror 1 | - Mirror 2 -
- Helft uns und testet die neue IPFire-Version. Gefundene Fehler bitte im Bugtracker melden. Vielen Dank! -
- Mehr Informationen gibt es hier im - IPFire Forum. -

"}}, - - "33" : {"author" : "Jan Paul Tuecking", - "mail" : "earl@ipfire.org", - "subject" : { "en" : "IPFire 2.7 release candidate 2", "de" : "IPFire 2.7 release candidate 2" }, - "date" : "2010-06-16", - "link" : "", - "content" : - { "en" : "

Today IPFire 2.7 RC2 is available. -
- Again this version is only suitable for testing and should not be used in productive environments. -
- Download: Mirror 1 | - Mirror 2 -

", - - "de" : "

Heute steht IPFire 2.7 RC2 zur Verfügung. -
Diese Version ist wieder ausschließlich zu Testzwecken geeignet und sollte nicht in Produktivumgebungen benutzt werden. -
- Download: Mirror 1 | - Mirror 2 -

"}}, - - - "35" : {"author" : "Jan Paul Tuecking", - "mail" : "earl@ipfire.org", - "subject" : { "en" : "IPFire 2.7 release candidate 3", "de" : "IPFire 2.7 release candidate 3" }, - "date" : "2010-06-18", - "link" : "", - "content" : - { "en" : "

Today we are gonig to release IPFire 2.7 RC3. -
- This version is only suitable for testing and should not be used in productive environments. -
- Download: Mirror 1 | - Mirror 2 -
- If you have experienced any bugs please report them to the bugtracker. Thank you! -
- Changes are available on the - IPFire forum. -

", - - "de" : "

Heute werden wir IPFire 2.7 RC3 veröffentlichen. -
Diese Version ist ausschließlich zu Testzwecken geeignet und sollte nicht in Produktivumgebungen benutzt werden. -
- Download: Mirror 1 | - Mirror 2 -
- Gefundene Fehler bitte im Bugtracker melden. Vielen Dank! -
- Änderungen gibt es hier im - IPFire Forum. -

"}}, - - "36" : {"author" : "Jan Paul Tuecking", - "mail" : "earl@ipfire.org", - "subject" : { "en" : "IPFire 2.7 release candidate 4", "de" : "IPFire 2.7 release candidate 4" }, - "date" : "2010-06-22", - "link" : "", - "content" : - { "en" : "

News for all our tester IPFire 2.7 RC4 is released. -
- This version is only suitable for testing and should not be used in productive environments. -
- Download: Mirror 1 | - Mirror 2 -
- If you have experienced any bugs please report them to the bugtracker. Thank you! -
- All changes are available on the - IPFire forum. -

", - - "de" : "

Neuigkeiten für alle unsere Tester IPFire 2.7 RC4 ist da. -
Diese Version ist ausschließlich zu Testzwecken geeignet und sollte nicht in Produktivumgebungen benutzt werden. -
- Download: Mirror 1 | - Mirror 2 -
- Gefundene Fehler bitte im Bugtracker melden. Vielen Dank! -
- Alle Änderungen gibt es hier im - IPFire Forum. -

"}}, - - "37" : {"author" : "Jan Paul Tuecking", - "mail" : "earl@ipfire.org", - "subject" : { "en" : "IPFire 2.7 release candidate 5", "de" : "IPFire 2.7 release candidate 5" }, - "date" : "2010-06-27", - "link" : "", - "content" : - { "en" : "

Probably this will be the last release candidate, IPFire 2.7 RC5 is avaiable. -
- This version is only suitable for testing and should not be used in productive environments. -
- Download: Mirror 1 | - Mirror 2 -
- If you have experienced any bugs please report them to the bugtracker. Thank you! -
- Changes you will find at the - IPFire forum. -

", - - "de" : "

Wahrscheinlich wird dies der letzte Release Candidate, IPFire 2.7 RC5 - steht absofort bereit. -
Diese Version ist ausschließlich zu Testzwecken geeignet und sollte nicht in Produktivumgebungen benutzt werden. -
- Download: Mirror 1 | - Mirror 2 -
- Gefundene Fehler bitte im Bugtracker melden. Vielen Dank! -
- Änderungen findet man im - IPFire Forum. -

"}}, - - "38" : {"author" : "Jan Paul Tuecking", - "mail" : "earl@ipfire.org", - "subject" : { "en" : "IPFire 2.7 final", "de" : "IPFire 2.7 final" }, - "date" : "2010-07-02", - "link" : "", - "content" : - { "en" : "

It is time - today we are going to release IPFire 2.7. - At first we will only release the ISO files, the update is not yet available via pakfire.
- The reason for this is the change of the IPSec software from OpenSwan to StrongSwan and the mandatory changes in the configuration of net2net connections. The update on pakfire will be released next friday 2010-07-09, - so there is enough time to change the IPSec tunnels, more information about this is avaiable at the - Wiki. -
There are about 400 changes in the new IPFire Version. All commits can be found at the - GIT (changelog). -
- Changes among others are: -

-

", - - "de" : "

Es ist so weit - heute werden wir IPFire 2.7 freigeben.
- Zuerst veröffentlichen wir nur die Installations-ISOs. Über Pakfire ist das Update auf 2.7 noch nicht - verfügbar.
- Der Grund hierfür liegt an der Umstellung für IPSec von OpenSwan auf StrongSwan und die damit verbunden zwingenden Änderungen - bei laufenden Net2Net-Verbindungen. Das Update über Pakfire wird am Freitag, 09.07.2010 freigegeben. So bleibt genügend Zeit - die IPSec Tunnel auf Strongwan anzupassen. Mehr Informationen hierüber findet man im - Wiki. -
Insgesammt sind an die 400 Änderungen in die neue IPFire Version eingeflossen, alle Commits hierzu findet man im - GIT (Changelog). -
- Änderungen sind unter anderem: -

-

"}}, - - "39" : {"author" : "Jan Paul Tuecking", - "mail" : "earl@ipfire.org", - "subject" : { "en" : "IPFire 2.7 final via pakfire", "de" : "IPFire 2.7 final via pakfire" }, - "date" : "2010-07-09", - "link" : "", - "content" : - { "en" : "

From today it will be possible to update old IPFire systems via the package manager - to the brand new version IPFire 2.7. -
We want to point out again that the update to StrongSwan comes with - mandatory changes - for existing IPSec tunnels with PSK. -
-
Because of to the kernel update, a reboot will be needed.
-

", - - "de" : "

Ab heute wird es nun auch möglich sein, über den Paketmanager alte IPFire-Systeme - auf die Version IPFire 2.7 zu aktuallsieren. -
Wir wollen erneut darauf hinweisen, dass durch das Update auf StrongSwan - zwingend eine Änderung an den - bestehenden IPSec-Tunneln mit PSK vorgenommen werden muss. -
-
Durch das Update des Kernels ist ein Neustart von IPFire nötig.
-

"}}, - - "40" : {"author" : "Jan Paul Tuecking", - "mail" : "earl@ipfire.org", - "subject" : { "en" : "Core Update 39", "de" : "Core Update 39" }, - "date" : "2010-08-01", - "link" : "", - "content" : - { "en" : "

Today we are going to release Core 39.
- The most significant changes are the fixed download of snort rules and the update of the ppp daemon to version 2.4.5.
- Despite of that it comes with the following changes:
-

-

", - - "de" : "

Heute werden wir Core 39 veröffentlichen.
- Die wichtigsten Änderungen sind insbesondere die Aktualisierung des Snort-Regeldownloads - und des ppp-Daemon auf die Version 2.4.5.
- Desweiteren bringt es folgende Änderungen mit sich:
-

-

"}} -} diff --git a/www/redirect.py b/www/redirect.py deleted file mode 100644 index c8a1fc3..0000000 --- a/www/redirect.py +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/python - -import os -import cgi - -from web.http import HTTPResponse - -for language in ("de", "en",): - if os.environ.has_key("HTTP_ACCEPT_LANGUAGE") and \ - os.environ["HTTP_ACCEPT_LANGUAGE"].startswith(language): - break - -site = cgi.FieldStorage().getfirst("site") or "index" - -sites = { "ipfire.org" : "http://www.ipfire.org", - "admin.ipfire.org" : "/%s/%s" % (language, site,), - "www.ipfire.org" : "/%s/%s" % (language, site,), - "source.ipfire.org" : "http://www.ipfire.org/%s/source" % language, - "tracker.ipfire.org" : "http://www.ipfire.org/%s/torrent" % language, - "torrent.ipfire.org" : "http://www.ipfire.org/%s/torrent" % language, - "download.ipfire.org" : "http://www.ipfire.org/%s/download" % language, - "people.ipfire.org" : "http://wiki.ipfire.org/%s/people/start" % language, - "pxe.ipfire.org" : "http://www.ipfire.org/%s/pxe" % language, } - -httpheader = [] - -try: - httpheader.append(("Location", sites[os.environ["SERVER_NAME"]])) -except KeyError: - httpheader.append(("Location", sites["www.ipfire.org"])) - -h = HTTPResponse(302, httpheader, None) -h.execute() diff --git a/www/releases.json b/www/releases.json deleted file mode 100644 index b0e699e..0000000 --- a/www/releases.json +++ /dev/null @@ -1,319 +0,0 @@ -[ - { "name" : "IPFire 2.7 - Core 39", - "status" : "stable", - "online" : 1, - "files" : [ - { - "type" : "alix", - "name" : "ipfire-2.7.1gb-ext2-scon.i586-full-core39.img.gz", - "sha1" : "a567fc27f4d85ac7c18fa52fbfcf8539eb34bc85" - }, - { - "type" : "flash", - "name" : "ipfire-2.7.1gb-ext2.i586-full-core39.img.gz", - "sha1" : "14c746d895f2400ea7ffaff54a01630b55f62ba9" - }, - { - "type" : "iso", - "name" : "ipfire-2.7.i586-full-core39.iso", - "sha1" : "fff98747a60981f7f9db642ffd8984fa459ffd44" - }, - { - "type" : "torrent", - "name" : "ipfire-2.7.i586-full-core39.iso.torrent", - "hash" : "915E1F25919C8CD9D651CB250CEC00362B41C580" - }, - { - "type" : "usbfdd", - "name" : "ipfire-2.7-install-usb-fdd.i586-full-core39.img.gz", - "sha1" : "dbba94f216632105b3591f04feada0f4fa74edc8" - }, - { - "type" : "usbhdd", - "name" : "ipfire-2.7-install-usb-hdd.i586-full-core39.img.gz", - "sha1" : "6c806d017336e4349938c3a0aa765142cb3fb184" - }, - { - "type" : "xen", - "name" : "ipfire-2.7.xen.i586-full-core39.tar.bz2", - "sha1" : "7eb2f700659be180f1f7195fd7abb1f5b61ede96" - } - ] - }, - - { "name" : "IPFire 2.7 - Core 38", - "status" : "stable", - "online" : 1, - "files" : [ - { - "type" : "alix", - "name" : "ipfire-2.7.1gb-ext2-scon.i586-full-core38.img.gz", - "sha1" : "1b2a5795da9f7c7e8e276f5f9a3e77843ea612cb" - }, - { - "type" : "flash", - "name" : "ipfire-2.7.1gb-ext2.i586-full-core38.img.gz", - "sha1" : "db546eced1c9b07df9ce196c9642874371cb19df" - }, - { - "type" : "iso", - "name" : "ipfire-2.7.i586-full-core38.iso", - "sha1" : "9ad97d399824772b01aef20d2f9ca0bb39972f19" - }, - { - "type" : "torrent", - "name" : "ipfire-2.7.i586-full-core38.iso.torrent", - "hash" : "9A1BEEEDB8ADC094683B5E268C201FDA43702379" - }, - { - "type" : "usbfdd", - "name" : "ipfire-2.7-install-usb-fdd.i586-full-core38.img.gz", - "sha1" : "56a8685614eefce7c5cce1302cc99687f00afebc" - }, - { - "type" : "usbhdd", - "name" : "ipfire-2.7-install-usb-hdd.i586-full-core38.img.gz", - "sha1" : "6f3dfa23e7fe7176fccf78907ccd3dd3a4a74a0b" - }, - { - "type" : "xen", - "name" : "ipfire-2.7.xen.i586-full-core38.tar.bz2", - "sha1" : "bdefe67bf1d06d59a8d61e6212836cccb8fecca6" - } - ] - }, - - { "name" : "IPFire 2.5 - Core 37", - "status" : "stable", - "online" : 0, - "files" : [ - { - "type" : "alix", - "name" : "ipfire-2.5.1gb-ext2-scon.i586-full-core37.img.gz", - "sha1" : "896fb84f0b058cb4272c66eedfd74d38" - }, - { - "type" : "flash", - "name" : "ipfire-2.5.1gb-ext2.i586-full-core37.img.gz", - "sha1" : "1c1bce1d7fdaf33162391566f3ed262b" - }, - { - "type" : "iso", - "name" : "ipfire-2.5.i586-full-core37.iso", - "sha1" : "8d8380be4434709c8901bf1e925b3442" - }, - { - "type" : "torrent", - "name" : "ipfire-2.5.i586-full-core37.iso.torrent", - "hash" : "AFF48B9C13FBF74D5F65A8EC7C7E257DBA532A61" - }, - { - "type" : "usbfdd", - "name" : "ipfire-2.5-install-usb-fdd.i586-full-core37.img.gz", - "sha1" : "10dfe27792d0f440a67342747d93d72a" - }, - { - "type" : "usbhdd", - "name" : "ipfire-2.5-install-usb-hdd.i586-full-core37.img.gz", - "sha1" : "4b0f89c05fd64b0ac63cf2dc2f01a1d5" - }, - { - "type" : "xen", - "name" : "ipfire-2.5.xen.i586-full-core37.tar.bz2", - "sha1" : "3c75f1508ac2ed038178ef508a496e6d" - } - ] - }, - - { "name" : "IPFire 2.5 - Core 36", - "status" : "stable", - "online" : 0, - "files" : [ - { - "type" : "alix", - "name" : "ipfire-2.5.1gb-ext2-scon.i586-full-core36.img.gz", - "sha1" : "a85466380a93977eb5c738f234d52524" - }, - { - "type" : "flash", - "name" : "ipfire-2.5.1gb-ext2.i586-full-core36.img.gz", - "sha1" : "729478943e1d4e49f44a42ab9fe8b336" - }, - { - "type" : "iso", - "name" : "ipfire-2.5.i586-full-core36.iso", - "sha1" : "bd4f0dbd8be79e3caf1a94b4778dc69a" - }, - { - "type" : "torrent", - "name" : "ipfire-2.5.i586-full-core36.iso.torrent", - "hash" : "64B24734C43144DFA2CED2DEF1A5FAAB996A42A1" - }, - { - "type" : "usbfdd", - "name" : "ipfire-2.5-install-usb-fdd.i586-full-core36.img.gz", - "sha1" : "9837d8d7689034b26ef547b6dc6468e3" - }, - { - "type" : "usbhdd", - "name" : "ipfire-2.5-install-usb-hdd.i586-full-core36.img.gz", - "sha1" : "c654443842d1f95cbae1e426111e668c" - }, - { - "type" : "xen", - "name" : "ipfire-2.5.xen.i586-full-core36.tar.bz2", - "sha1" : "ec333151180a84ffb66c674a9284097f" - } - ] - }, - - { "name" : "IPFire 2.5 - Core 35", - "status" : "stable", - "online" : 0, - "files" : [ - { - "type" : "alix", - "name" : "ipfire-2.5.1gb-ext2-scon.i586-full-core35.img.gz", - "sha1" : "658d588d2bd1cec21819989e4b3ff8593742b0df" - }, - { - "type" : "flash", - "name" : "ipfire-2.5.1gb-ext2.i586-full-core35.img.gz", - "sha1" : "633d6864df15a5487bdbf132eed683e4c3a58fd0" - }, - { - "type" : "iso", - "name" : "ipfire-2.5.i586-full-core35.iso", - "sha1" : "5bd50e7c39fad9e4e75ba62d369674610d427914" - }, - { - "type" : "torrent", - "name" : "ipfire-2.5.i586-full-core35.iso.torrent", - "hash" : "50DC8E935D63ACAC02E5A3C21477EE59D7F1A06D" - }, - { - "type" : "usbfdd", - "name" : "ipfire-2.5-install-usb-fdd.i586-full-core35.img.gz", - "sha1" : "edcedabea75117978fa4374004450d2fb3d8ae01" - }, - { - "type" : "usbhdd", - "name" : "ipfire-2.5-install-usb-hdd.i586-full-core35.img.gz", - "sha1" : "4f24b0e6edcfab60af016495735a0bdba6007ada" - }, - { - "type" : "xen", - "name" : "ipfire-2.5.xen.i586-full-core35.tar.bz2", - "sha1" : "d777c02dd5b4109a4f6c6414093b41694c213822" - } - ] - }, - - { "name" : "IPFire 2.5 - Core 34", - "status" : "stable", - "online" : 0, - "files" : [ - { - "type" : "alix", - "name" : "ipfire-2.5.1gb-ext2-scon.i586-full-core34.img.gz", - "sha1" : "7f1fbea61842ff89197aede66da29a5e436543c3" - }, - { - "type" : "flash", - "name" : "ipfire-2.5.1gb-ext2.i586-full-core34.img.gz", - "sha1" : "26e60ee522b8a006f9c3e26e0077446d444cf27a" - }, - { - "type" : "iso", - "name" : "ipfire-2.5.i586-full-core34.iso", - "sha1" : "91ad4fb774bf14b4eb2e13c26caf066438b281aa" - }, - { - "type" : "torrent", - "name" : "ipfire-2.5.i586-full-core34.iso.torrent", - "hash" : "50DC8E935D63ACAC02E5A3C21477EE59D7F1A06D" - }, - { - "type" : "usbfdd", - "name" : "ipfire-2.5-install-usb-fdd.i586-full-core34.img.gz", - "sha1" : "a038d5af7e6e052f5df0199c729316e19ce202d1" - }, - { - "type" : "usbhdd", - "name" : "ipfire-2.5-install-usb-hdd.i586-full-core34.img.gz", - "sha1" : "5a53677b757fa5515ecb686ac4b22739e11da7c1" - }, - { - "type" : "xen", - "name" : "ipfire-2.5.xen.i586-full-core34.tar.bz2", - "sha1" : "05f062b1c0499a0d949127f7d048dda959feb9ac" - } - ] - }, - - { "name" : "IPFire 2.5 - Core 33", - "status" : "stable", - "online" : 0, - "files" : [ - { - "type" : "alix", - "name" : "ipfire-2.5.1gb-ext2-scon.i586-full-core33.img.gz", - "sha1" : "04e0634ce5e0445c77a8278e254ca7084f68e30a" - }, - { - "type" : "flash", - "name" : "ipfire-2.5.1gb-ext2.i586-full-core33.img.gz", - "sha1" : "1e3a8b0594fe92bb237bfabe10a8a10d687773f2" - }, - { - "type" : "iso", - "name" : "ipfire-2.5.i586-full-core33.iso", - "sha1" : "c60c7bbe625044e96790c4ee3a30eaffb89aa379" - }, - { - "type" : "torrent", - "name" : "ipfire-2.5.i586-full-core33.iso.torrent", - "hash" : "D9992ED673EC9D92774452962F4445993ECA730E" - }, - { - "type" : "usbfdd", - "name" : "ipfire-2.5-install-usb-fdd.i586-full-core33.img.gz", - "sha1" : "5e8888afb035881f07ef318fc75dda7a3ab16840" - }, - { - "type" : "usbhdd", - "name" : "ipfire-2.5-install-usb-hdd.i586-full-core33.img.gz", - "sha1" : "6b1e702d5cf2f317ff52371ecd7e68828b56f262" - }, - { - "type" : "xen", - "name" : "ipfire-2.5.xen.i586-full-core33.tar.bz2", - "sha1" : "04e0634ce5e0445c77a8278e254ca7084f68e30a" - } - ] - }, - - { "name" : "IPFire 3.0 alpha 1", - "status" : "development", - "online" : 1, - "files" : [ - { - "type" : "iso", - "name" : "ipfire-3.0-alpha1.i686.iso", - "sha1" : "e5d6c236a8997de8f1718f1c44f5a9d8f7d90af6" - } - ] - }, - - { "name" : "IPFire 1.4.9 - FINAL", - "status" : "stable", - "online" : 0, - "files" : [ - { - "type" : "iso", - "name" : "IPFire-1.4.9-FINAL.iso", - "sha1" : "ba40ca010f6c3069f110f6b7d99e3524bd81d367" - } - ] - } -] diff --git a/www/static/css/style.css b/www/static/css/style.css index c38b332..dc37c8a 100644 --- a/www/static/css/style.css +++ b/www/static/css/style.css @@ -1,134 +1,110 @@ -/* - - Nonzero1.0 by nodethirtythree design - http://www.nodethirtythree.com - missing in a maze - -*/ /* This controls the width of the fluid width layouts */ -div.fluid -{ -width: 90% !important; +div.fluid { + width: 90% !important; } /* This controls the width of the fixed width layouts */ - -div.fixed -{ -width: 980px !important; -margin: 0; +div.fixed { + width: 980px !important; + margin: 0; } /* Basic Stuff */ -* -{ -margin: 0em; -padding: 0em; +* { + margin: 0em; + padding: 0em; } -body -{ +body { font-family: "Verdana", "Deja-Vu Sans", "Bitstream Vera Sans", sans-serif; font-size: 0.9em; - background: #880400; /* url(../images/bg.png) repeat;*/ + background: #880400; color: #585858; } -h1,h2,h3,h4,h5,h6 -{ -font-weight: normal; -letter-spacing: -1px; -text-transform: lowercase; +h1,h2,h3,h4,h5,h6 { + font-weight: normal; + letter-spacing: -1px; + text-transform: lowercase; } -h3,h4,h5,h6 -{ -color: #66000F; +h3,h4,h5,h6 { + color: #66000F; } -h1 span -{ -font-weight: bold; +h1 span { + font-weight: bold; } -h3 span -{ -font-weight: bold; +h3 span { + font-weight: bold; } -h4 span -{ -font-weight: bold; +h4 span { + font-weight: bold; } -br.clear -{ -clear: both; +br.clear { + clear: both; } -img -{ -padding: 3px; +img { + padding: 3px; } -img.floatTL -{ -float: left; -margin-right: 1.5em; -margin-bottom: 1.5em; -margin-top: 0.5em; +img.floatTL { + float: left; + margin-right: 1.5em; + margin-bottom: 1.5em; + margin-top: 0.5em; } -img.floatTR -{ -float: right; -margin-left: 1.5em; -margin-bottom: 1.5em; -margin-top: 0.5em; +img.floatTR { + float: right; + margin-left: 1.5em; + margin-bottom: 1.5em; + margin-top: 0.5em; } -img.symbol -{ -float: left; -margin-bottom: 0em; -border: 0; +img.symbol { + float: left; + margin-bottom: 0em; + border: 0; } -a -{ -text-decoration: underline; -color: #D90000; -border-style: none; +a { + text-decoration: underline; + color: #D90000; + border-style: none; } -a:hover -{ -text-decoration: none; +a:hover { + text-decoration: none; } -ul.links -{ - /* list-style: none; */ - padding-left: 1em; +ul.links { + /* list-style: none; */ + padding-left: 1em; } -ul.links li -{ -line-height: 1.5em; -font-size: 0.9em; -/* display: inline; */ +ul.links li { + line-height: 1.5em; + font-size: 0.9em; + /* display: inline; */ } -ul.links li.first -{ +ul.links li.first { } -p -{ -line-height: 1.5em; +p { + line-height: 1.5em; +} + +p.left { + float: left; } p.right { @@ -137,290 +113,187 @@ p.right { /* Header */ -#header -{ -width:100%; -height:102px; -background: url('../images/bg-menu99.png') repeat-x; +#header { + width:100%; + height:102px; + background: url('../images/bg-menu99.png') repeat-x; } -#header_inner -{ -position: relative; -width: 980px; -height:102px; -margin: 0 auto; +#header_inner { + position: relative; + width: 980px; + height:102px; + margin: 0 auto; } -img.symbol -{ -margin: 0; -padding: 0; +img.symbol { + margin: 0; + padding: 0; } /* Logo */ -#logo -{ -position: absolute; -top: 0; -float: left; +#logo { + position: absolute; + top: 0; + float: left; } -#header h1 -{ -float: left; -margin-left: 105px; -color: #eee; -font-size: 150%; +#header h1 { + float: left; + margin-left: 105px; + color: #eee; + font-size: 150%; } -#header h2 -{ -float: left; -margin-left: 105px; -color: #E5CCD0; -font-size: 1.0em; -vertical-align: bottom; +#header h2 { + float: left; + margin-left: 105px; + color: #E5CCD0; + font-size: 1.0em; + vertical-align: bottom; } /* Header Line's */ -#line1 -{ -height: 37px; +#header_menu { + height: 37px; } -#line2 -{ -height: 32px; -} - -#line3 -{ -height: 31px; -} - -/* Lang */ - -#lang -{ -position: absolute; -right: 0em; -top: 0em; +#header_hostname { + height: 32px; } -#lang img -{ -float: left; -border: none; -margin-right: 0.5em; -margin-bottom: 1.5em; -margin-top: 0.5em; -width: 30px; +#header_slogan { + height: 31px; } /* Menu */ -#menu -{ -position: absolute; -left: 105px; -top: 0em; -} - -#menu ul -{ -list-style: none; -} - -#menu li -{ -float: left; -} -#menu li -{ -vertical-align: middle; -background: #333 url('../images/btn-break.png') center; -} -#menu li a -{ -margin-left: 1px; /*0.5em;*/ -margin-right: 1px; -display: block; -padding: 10px 5px 0 8px; -height: 26px; -background: #333 url('../images/btn-empty.png') repeat-x center; -color: #ddd; -font-weight: bolder; -vertical-align: middle; -font-size: 0.8em; -text-decoration: none; -} - -#menu li a.active -{ -background: #CA2F2F url('../images/btn-red2.png') repeat-x center; -color: #ddd; -} - -#menu li a:hover -{ -background: #333 url('../images/btn-red2.png') repeat-x center; -color: #fff; -} - -/* Main */ - -#main -{ -/* background: #fff url('../images/n2.gif') 0px 1px repeat-x; */ -} - -#main_inner p -{ -text-align: justify; -margin-bottom: 0.5em; -font-size: 0.9em; +#menu { + position: absolute; + left: 105px; + top: 0em; } -#main_inner .post a -{ -font-size: 0.9em; +#menu ul { + list-style: none; } -#main_inner ul -{ -margin-bottom: 2.0em; -font-size: 0.9em; +#menu li { + float: left; } -#main_inner -{ -position: relative; -width: 950px; -margin: 0 auto; +#menu li { + vertical-align: middle; + background: #333 url('../images/btn-break.png') center; } -#main_inner h3,h4 -{ -border-bottom: dotted 1px #E1E1E1; -position: relative; +#menu li a { + margin-left: 1px; /*0.5em;*/ + margin-right: 1px; + display: block; + padding: 10px 5px 0 8px; + height: 26px; + background: #333 url('../images/btn-empty.png') repeat-x center; + color: #ddd; + font-weight: bolder; + vertical-align: middle; + font-size: 0.8em; + text-decoration: none; } -#main_inner h3 -{ -font-size: 2.1em; -padding-bottom: 0.1em; -margin-bottom: 0.5em; +#menu li a.active { + background: #CA2F2F url('../images/btn-red2.png') repeat-x center; + color: #ddd; } -#main_inner h4 -{ -font-size: 1.1em; -padding-bottom: 0.175em; -margin-bottom: 0.25em; -margin-top: 0.95em; +#menu li a:hover { + background: #333 url('../images/btn-red2.png') repeat-x center; + color: #fff; } -#main_inner .post -{ -position: relative; -margin-bottom: 2.0em; -} +/* Main */ -#main_inner .post h3 -{ -position: relative; -font-size: 1.4em; -padding-bottom: 0.25em; +#main_inner p { + text-align: justify; + margin-bottom: 0.5em; } -#main_inner .post ul.post_info , #main_inner .post .post_info -{ -list-style: none; -position: absolute; -top: 3em; -font-size: 0.7em; +#main_inner ul { + padding-left: 1.5em; } -#main_inner .post .post_info -{ -width: 100%; -text-align: right; -margin-top: -1.5em; +#main_inner { + position: relative; + width: 950px; + margin: 0 auto; } -#main_inner .post ul -{ -padding-left: 1.5em; +#main_inner h3,h4 { + border-bottom: dotted 1px #E1E1E1; + position: relative; } -#main_inner .post ul a -{ -font-size: 1.0em; +#main_inner h3 { + font-size: 1.5em; + padding-bottom: 0.1em; + margin-bottom: 0.5em; } -#main_inner .post ul.post_info li -{ -background-position: 0em center; -background-repeat: no-repeat; -display: inline; -padding-left: 15px; +#main_inner h4 { + font-size: 1.2em; + padding-bottom: 0.175em; + margin-bottom: 0.25em; + margin-top: 0.95em; } -#main_inner .post ul.post_info li.date -{ -background-image: url('../images/n5.gif'); +#main_frame { + border: 0px; + border-collapse: collapse; + border-spacing: 0px; + margin: 0em; + padding: 0em; + width: 980px; + max-width: 980px; } -#main_inner .post ul.post_info li.comments -{ -background-image: url('../images/n6.gif'); -margin-left: 1.1em; -} - -table { - border: 0px; - border-collapse: collapse; - border-spacing: 0px; - margin: 0em; - padding: 0em; - width: 980px; - max-width: 980px; -} -.post table { - width: 900px; - max-width: 900px; - font-size: 0.9em; -} #sh-tl { - background: url("../images/sh-tl.png") no-repeat right bottom; + background: url("../images/sh-tl.png") no-repeat right bottom; } + #sh-top { - background: url("../images/sh-top.png") repeat-x bottom; + background: url("../images/sh-top.png") repeat-x bottom; } + #sh-tr { - background: url("../images/sh-tr.png") no-repeat left bottom; + background: url("../images/sh-tr.png") no-repeat left bottom; } + #sh-lft { - background: url("../images/sh-lft.png") repeat-y right; + background: url("../images/sh-lft.png") repeat-y right; } + #sh-rgt { - background: url("../images/sh-rgt.png") repeat-y left; + background: url("../images/sh-rgt.png") repeat-y left; } + #sh-bl { - background: url("../images/sh-bl.png") no-repeat right top; + background: url("../images/sh-bl.png") no-repeat right top; } + #sh-btn { - background: url("../images/sh-btn.png") repeat-x top; + background: url("../images/sh-btn.png") repeat-x top; } + #sh-br { - background: url("../images/sh-br.png") no-repeat left top; + background: url("../images/sh-br.png") no-repeat left top; } + #no-sh { - background-color: #f5f5f5; - width: 980px; + background-color: #f9f9f9; + width: 980px; } + #sh-tl, #sh-top, #sh-tr, #sh-lft, #sh-rgt, #sh-bl, #sh-btn, #sh-br { width: 16px; height: 16px; @@ -428,300 +301,143 @@ table { border-width: 0px; border-style: none; } + .banner { border: 0; } -/* Cluster */ - -#nodes { - width: 100%; - font-size: 0.9em; -} -#nodes th, #nodes td { - text-align: left; -} -#nodes th.hostname { - width: 40%; -} -#nodes th.arch { - width: 8%; -} -#nodes th.jobs { - width: 24%; -} -#nodes th.speed { - width: 10%; +.post { + margin-bottom: 40px; } -#nodes th.load { - width: 18%; -} - -/* Builds */ -#builds { - width: 100%; - font-size: 0.9em; -} -#builds img { - border: 0; -} -#builds td { - text-align: left; +.post .title { + text-transform: lowercase; + font-size: 1.5em; + font-weight: normal; + color: #606060; } -#builds tr.headline td { - text-align: center; - font-weight: bold; -} -#builds td.packages { - text-align: right; -} - -/* Footer */ -#footer -{ -clear: both; -height: 26px; -color: #ddd; -text-align: center; -background: url("../images/ft.png") left top; -margin-top: 0em; -margin-bottom: 0em; -padding-top: 0.5em; -padding-bottom: 0.5em; -text-transform: lowercase; +.post .title a { + border: none; + color: #606060; } -/* Search */ - -input.button -{ -background: #CA2F2F url("../images/n3.gif") repeat-x; -color: #fff; -border: solid 1px #A94B4B; -font-weight: bold; -text-transform: lowercase; -font-size: 0.8em; -height: 2.0em; +.post .meta { + padding-left: 2px; + padding-bottom: 2px; + text-align: left; + text-transform: lowercase; } -input.text -{ -border: solid 1px #F1F1F1; -font-size: 1.0em; -padding: 0.25em 0.25em 0.25em 0.25em; +.post .meta a { } -#search -{ -position: relative; -width: 100%; -margin-bottom: 2.0em; +.post .entry { + padding: 1.2em 1.2em; + border: 1px dotted #E4E4E4; + text-align: justify; } -#search input.text -{ -position: absolute; -top: 0em; -left: 0em; -width: 9.5em; +.links { + padding-top: 20px; + text-transform: lowercase; } -#search input.button -{ -position: absolute; -top: 0em; -right: 0em; -min-width: 2.0em; -max-width: 2.5em; +/* News */ + +ul.news { + list-style: none; } -.thumbnail{ -position: relative; -z-index: 0; +/* Footer */ + +#footer { + clear: both; + height: 26px; + color: #ddd; + text-align: center; + background: url("../images/ft.png") left top; + margin-top: 0em; + margin-bottom: 0em; + padding-top: 0.5em; + padding-bottom: 0.5em; + text-transform: lowercase; } -.thumbnail:hover{ -background-color: transparent; -z-index: 50; +.thumbnail { + position: relative; + z-index: 0; } -.thumbnail span{ /*CSS for enlarged image*/ -position: absolute; -background-color: #ffffe0; /*lightyellow;*/ -padding: 5px; -left: -1000px; -border: 1px dashed gray; -visibility: hidden; -color: black; -text-decoration: none; +.thumbnail:hover { + background-color: transparent; + z-index: 50; } -.thumbnail span img{ /*CSS for enlarged image*/ -border-width: 0; -padding: 2px; +.thumbnail span { + position: absolute; + background-color: #ffffe0; + padding: 5px; + left: -1000px; + border: 1px dashed gray; + visibility: hidden; + color: black; + text-decoration: none; } -.thumbnail:hover span{ /*CSS for enlarged image on hover*/ -visibility: visible; -top: 0; -left: 60px; /*position where enlarged image should offset horizontally */ +.thumbnail span img { + border-width: 0; + padding: 2px; +} +.thumbnail:hover span { + visibility: visible; + top: 0; + left: 60px; } -.feed { +a.feed { margin-left: 3px; padding: 0 0 0 19px; background: url("../images/feed.png") no-repeat 0 50%; } -/* LAYOUT - 3 COLUMNS */ - - /* Primary content */ - - #primaryContent_3columns - { - position: relative; - margin-right: 34em; - } - - #columnA_3columns - { - position: relative; - float: left; - width: 100%; - margin-right: -34em; - padding-right: 2em; - } - - /* Secondary Content */ - - #secondaryContent_3columns - { - float: right; - } - - #columnB_3columns - { - width: 13.0em; - float: left; - padding: 0em 2em 0.5em 2em; - border-left: dotted 1px #E1E1E1; - } - - #columnC_3columns - { - width: 13.0em; - float: left; - padding: 0em 0em 0.5em 2em; - border-left: dotted 1px #E1E1E1; - } - /* LAYOUT - 2 COLUMNS */ /* Primary content */ - - #primaryContent_2columns - { + +#columns2_primary { position: relative; /* margin-right: 17em; */ - } - - #columnA_2columns - { +} + +#columns2_columnA { position: relative; float: left; padding: 1em 0.5em 0.5em 1em; width: 710px; - } - - /* Secondary Content */ - - #secondaryContent_2columns - { +} + +#columns2_secondary { float: right; - } +} - #columnC_2columns - { +#columns2_columnB +{ width: 12.0em; float: left; padding: 0em 1em 0.5em 1em; border-left: dotted 1px #E1E1E1; - } - -/* LAYOUT - COLUMNLESS */ +} - /* Primary content */ - - #primaryContent_columnless - { +#columns1_primary { position: relative; - } +} - #columnA_columnless - { +#columns1_columnA { position: relative; - width: 100%; - } - - -/* URIEL */ -table.uriel { - width: 100%; - /* border: 1px solid #880400; */ - font-size: 0.9em; - -} -table.uriel td.header { - width: 80px; -} -table.uriel td { - padding: 4px; -} -table.uriel td.item { - /* font-weight: bold; */ -} -table.uriel td.value { - text-align: right; -} -table.uriel td.footer { - text-align: right; - background-color: #dedede; - border: 1px solid #999; -} - -/* TRANSLATION */ -table.translate { - width: 100%; - /* border: 1px solid #880400; */ - font-size: 0.9em; -} - -table.translate td { - padding: 4px; - text-align: center; -} - -table.translate td.lang { - text-align: left; -} - -/* pakfire3 */ -#repos .leaf { - border: 1px solid #000; - padding: 5px; - margin-top: 5px; -} - -#repos .leaf p.header { - background-color: #E1E1E1; - padding-left: 5px; -} - -#repos .leaf p.footer { - text-align: right; + padding: 1em 1em 0.5em 1em; + border: 1px solid white; } /* Tabs */ @@ -1060,11 +776,15 @@ table.download-torrents tr { height: 24px; } -table.download-torrents td { - text-align: center; +table.download-torrents th { + text-align: left; } -table.download-torrents th.seeds, th.peers, td.seeds, td.peers { +table.download-torrents th.peers, td.peers { + text-align: right; +} + +table.download-torrents th.seeds, td.seeds { text-align: right; } @@ -1072,6 +792,23 @@ table.download-torrents th.peers,td.peers { padding-left: 5px; } +table.tracker-peerlist { + width: 85%; +} + +table.tracker-peerlist th { + text-align: left; +} + +table.download-torrents td { + padding: 1em; +} + +table.tracker-peerlist td.ip { + text-align: right; + padding-right: 1em; +} + table.download-mirrors { margin-bottom: 25px; margin-left: 15px; @@ -1118,3 +855,63 @@ ul.sources li { font-family: courier; list-style-type: none; } + +table.mirrors { + /* border: 1px solid #606060; */ +} + +table.mirrors tr { + line-height: 2em; +} + +table.mirrors td { + padding-left: 0.5em; + padding-right: 0.5em; +} + +table.mirrors td.hostname { + text-align: right; + padding-left: 2em; +} + +table.mirrors td.down { + border: 1px solid #ff8888; + background-color: #ff9999; +} + +table.mirrors td.outofsync { + border: 1px solid #ffffaa; + background-color: #ffff99; +} + +table.mirrors td.up { + border: 1px solid #88ff88; + background-color: #aaffaa; +} + +table.blocks { + width: 100%; + border: 1px solid #E4E4E4; +} + +table.blocks td.block { + width: 33%; + padding: 1.5em; +} + +table.blocks td.block p { + text-align: justify; +} + +table.blocks td.block span { + text-align: center; + font-size: 1.2em; +} + +table.blocks td.block1,td.block3 { + background-color: white; +} + +table.blocks td.block2 { + background-color: #f5f5f5; +} diff --git a/www/static/images/banners/hetzner_hosted_by_1.jpg b/www/static/images/banners/hetzner_hosted_by_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a79674847aa5e630db19d560c9b2771829c4ba0a GIT binary patch literal 9188 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 literal 0 Hc-jL100001 diff --git a/www/static/images/flags/unknown.png b/www/static/images/flags/unknown.png new file mode 120000 index 0000000..d74f919 --- /dev/null +++ b/www/static/images/flags/unknown.png @@ -0,0 +1 @@ +europeanunion.png \ No newline at end of file diff --git a/www/templates/admin-accounts.html b/www/templates/admin-accounts.html index cd3224b..ab8fe3a 100644 --- a/www/templates/admin-accounts.html +++ b/www/templates/admin-accounts.html @@ -8,12 +8,20 @@ {{ _("Create new account") }}

-
    + + + + + {% for account in accounts %} -
  • - {{ account.realname }} ({{ account.name }}) -
  • + + + + {% end %} - +
    {{ _("Name (Nickname)") }} 
    {{ account.cn }} ({{ account.uid }}) + {{ _("Edit") }} + {{ _("Delete") }} +
    {% end %} diff --git a/www/templates/admin-base.html b/www/templates/admin-base.html index 5303fca..de3b12a 100644 --- a/www/templates/admin-base.html +++ b/www/templates/admin-base.html @@ -1,14 +1,13 @@ -{% extends "base.html" %} +{% extends "base-2.html" %} {% block title %}{{ _("IPFire Admin Area") }}{% end %} -{% block languages %}{% end %} - {% block sidebar %}

    {{ _("Options") }}

    {% end %} diff --git a/www/templates/admin-login.html b/www/templates/admin-login.html new file mode 100644 index 0000000..581a799 --- /dev/null +++ b/www/templates/admin-login.html @@ -0,0 +1,13 @@ +{% extends "base-1.html" %} + +{% block title %}{{ _("Please login") }}{% end block %} + +{% block content %} + +
    + + + + {{ xsrf_form_html() }} +
    +{% end block %} diff --git a/www/templates/admin-mirrors-create.html b/www/templates/admin-mirrors-create.html new file mode 100644 index 0000000..2b9b460 --- /dev/null +++ b/www/templates/admin-mirrors-create.html @@ -0,0 +1,71 @@ +{% extends "admin-base.html" %} + +{% block content %} +
    +

    {{ _("Create new mirror") }}

    +
    + {{ xsrf_form_html() }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {{ _("Hostname") }}
    {{ _("Path") }}
    {{ _("Owner") }}
    {{ _("Location") }}
    {{ _("File mirror") }} + +
    {{ _("Pakfire 2 mirror") }} + +
    {{ _("Pakfire 3 mirror") }} + +
    {{ _("Disabled?") }} + +
    + +
    +
    +
    +{% end block %} diff --git a/www/templates/admin-mirrors-details.html b/www/templates/admin-mirrors-details.html new file mode 100644 index 0000000..d7b544a --- /dev/null +++ b/www/templates/admin-mirrors-details.html @@ -0,0 +1,61 @@ +{% extends "admin-base.html" %} + +{% block content %} +
    +

    {{ mirror.hostname }} - {{ _("Details") }}

    + +

    + {{ _("All mirrors") }} +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {{ _("Hostname") }}{{ mirror.url }}
    {{ _("Status") }}{{ mirror.state }}
    {{ _("Owner") }}{{ mirror.owner }}
    {{ _("Location") }}{{ mirror.location }}
    {{ _("GeoIP Location") }}{{ mirror.country_code }}
    {{ _("File mirror") }}{{ mirror.releases }}
    {{ _("Pakfire 2 mirror") }}{{ mirror.pakfire2 }}
    {{ _("Pakfire 3 mirror") }}{{ mirror.pakfire3 }}
    {{ _("Disabled?") }}{{ mirror.disabled }}
    + + {% if mirror.releases == "Y" %} +

    {{ _("Filelist") }}

    + + {% for file in mirror.filelist %} + + + + {% end %} +
    {{ file }}
    + {% end %} +
    +{% end block %} diff --git a/www/templates/admin-mirrors.html b/www/templates/admin-mirrors.html new file mode 100644 index 0000000..7220df0 --- /dev/null +++ b/www/templates/admin-mirrors.html @@ -0,0 +1,31 @@ +{% extends "admin-base.html" %} + +{% block content %} +
    +

    {{ _("Mirror Administrator") }}

    + +

    + {{ _("Create new mirror") }} | + {{ _("Re-check now") }} +

    + + + + + + + + {% for mirror in mirrors %} + + + + + + {% end %} +
    {{ _("Hostname") }}{{ _("Last update") }} 
    {{ mirror.hostname }}{{ locale.format_date(mirror.last_update) }} + {{ _("Details") }} + {{ _("Edit") }} + {{ _("Delete") }} +
    +
    +{% end %} diff --git a/www/templates/admin-planet-compose.html b/www/templates/admin-planet-compose.html index 4999bcd..ee92950 100644 --- a/www/templates/admin-planet-compose.html +++ b/www/templates/admin-planet-compose.html @@ -16,7 +16,7 @@   - + @@ -35,7 +35,7 @@ {% block javascript %} - + + +
{% end %} -{{ modules.SidebarBanner(banner) }} +{{ modules.SidebarBanner() }} {% end block %} diff --git a/www/templates/static/development.html b/www/templates/static/development.html index 35c3793..b74aa5d 100644 --- a/www/templates/static/development.html +++ b/www/templates/static/development.html @@ -1,4 +1,4 @@ -{% extends "../base.html" %} +{% extends "../base-2.html" %} {% block title %}{{ _("Development") }}{% end block %} @@ -166,6 +166,6 @@ - {{ modules.SidebarBanner(banner) }} + {{ modules.SidebarBanner() }} {% end block %} diff --git a/www/templates/static/donation.html b/www/templates/static/donation.html index d41a009..cb12bee 100644 --- a/www/templates/static/donation.html +++ b/www/templates/static/donation.html @@ -1,4 +1,4 @@ -{% extends "../base.html" %} +{% extends "../base-1.html" %} {% block title %}{{ _("Donation") }}{% end block %} diff --git a/www/templates/static/features.html b/www/templates/static/features.html index 8e7c65f..649464e 100644 --- a/www/templates/static/features.html +++ b/www/templates/static/features.html @@ -1,4 +1,4 @@ -{% extends "../base.html" %} +{% extends "../base-2.html" %} {% block title %}{{ _("Features") }}{% end block %} diff --git a/www/templates/static/imprint.html b/www/templates/static/imprint.html index 8d0356c..8d1dd5d 100644 --- a/www/templates/static/imprint.html +++ b/www/templates/static/imprint.html @@ -1,4 +1,4 @@ -{% extends "../base.html" %} +{% extends "../base-1.html" %} {% block title %}{{ _("Imprint") }}{% end block %} @@ -107,7 +107,7 @@

Because of the fact that the people who started this project are living in Germany and the German law demands it. This side is only available in german language, - so please have a look at the german legal notes. + so please have a look at the german legal notes.

{% end %} diff --git a/www/templates/static/screenshots.html b/www/templates/static/screenshots.html index d8901ad..1e8de38 100644 --- a/www/templates/static/screenshots.html +++ b/www/templates/static/screenshots.html @@ -1,10 +1,8 @@ -{% extends "../base.html" %} +{% extends "../base-1.html" %} {% block title %}{{ _("Screenshots") }}{% end block %} {% block content %} - -

{{ _("Sceenshots") }}

{{ _( @@ -98,21 +96,6 @@ {% end block %} -{% block sidebar %} -

{{ _("Screenshot") }} list

- - {{ modules.SidebarBanner(banner) }} - -{% end block %} - {% block javascript %}