prepare for release:
* diffrent web directory with all web specific content (split doc dir -> doc (data) and web (rendered data))
* update installation
--- a/.hgignore Wed Apr 25 00:06:27 2012 +0200
+++ b/.hgignore Wed Apr 25 15:06:28 2012 +0200
@@ -19,3 +19,9 @@
doc/_build/*
twisted/plugins/dropin.cache
*.db
+*.old
+_build/
+web/dev/
+web/*.html
+web/files/*.tar.gz
+web.tar.gz
--- a/Makefile Wed Apr 25 00:06:27 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,153 +0,0 @@
-# Makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = sphinx-build
-PAPER =
-BUILDDIR = doc/_build
-
-# Internal variables.
-PAPEROPT_a4 = -D latex_paper_size=a4
-PAPEROPT_letter = -D latex_paper_size=letter
-ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) doc
-# the i18n builder cannot share the environment and doctrees with the others
-I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) doc
-
-.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
-
-help:
- @echo "Please use \`make <target>' where <target> is one of"
- @echo " html to make standalone HTML files"
- @echo " dirhtml to make HTML files named index.html in directories"
- @echo " singlehtml to make a single large HTML file"
- @echo " pickle to make pickle files"
- @echo " json to make JSON files"
- @echo " htmlhelp to make HTML files and a HTML help project"
- @echo " qthelp to make HTML files and a qthelp project"
- @echo " devhelp to make HTML files and a Devhelp project"
- @echo " epub to make an epub"
- @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
- @echo " latexpdf to make LaTeX files and run them through pdflatex"
- @echo " text to make text files"
- @echo " man to make manual pages"
- @echo " texinfo to make Texinfo files"
- @echo " info to make Texinfo files and run them through makeinfo"
- @echo " gettext to make PO message catalogs"
- @echo " changes to make an overview of all changed/added/deprecated items"
- @echo " linkcheck to check all external links for integrity"
- @echo " doctest to run all doctests embedded in the documentation (if enabled)"
-
-clean:
- -rm -rf $(BUILDDIR)/*
-
-html:
- $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
- @echo
- @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
-
-dirhtml:
- $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
- @echo
- @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
-
-singlehtml:
- $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
- @echo
- @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
-
-pickle:
- $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
- @echo
- @echo "Build finished; now you can process the pickle files."
-
-json:
- $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
- @echo
- @echo "Build finished; now you can process the JSON files."
-
-htmlhelp:
- $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
- @echo
- @echo "Build finished; now you can run HTML Help Workshop with the" \
- ".hhp project file in $(BUILDDIR)/htmlhelp."
-
-qthelp:
- $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
- @echo
- @echo "Build finished; now you can run "qcollectiongenerator" with the" \
- ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
- @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Iro.qhcp"
- @echo "To view the help file:"
- @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Iro.qhc"
-
-devhelp:
- $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
- @echo
- @echo "Build finished."
- @echo "To view the help file:"
- @echo "# mkdir -p $$HOME/.local/share/devhelp/Iro"
- @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Iro"
- @echo "# devhelp"
-
-epub:
- $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
- @echo
- @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
-
-latex:
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
- @echo
- @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
- @echo "Run \`make' in that directory to run these through (pdf)latex" \
- "(use \`make latexpdf' here to do that automatically)."
-
-latexpdf:
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
- @echo "Running LaTeX files through pdflatex..."
- $(MAKE) -C $(BUILDDIR)/latex all-pdf
- @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
-
-text:
- $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
- @echo
- @echo "Build finished. The text files are in $(BUILDDIR)/text."
-
-man:
- $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
- @echo
- @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
-
-texinfo:
- $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
- @echo
- @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
- @echo "Run \`make' in that directory to run these through makeinfo" \
- "(use \`make info' here to do that automatically)."
-
-info:
- $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
- @echo "Running Texinfo files through makeinfo..."
- make -C $(BUILDDIR)/texinfo info
- @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
-
-gettext:
- $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
- @echo
- @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
-
-changes:
- $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
- @echo
- @echo "The overview file is in $(BUILDDIR)/changes."
-
-linkcheck:
- $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
- @echo
- @echo "Link check complete; look for any errors in the above output " \
- "or in $(BUILDDIR)/linkcheck/output.txt."
-
-doctest:
- $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
- @echo "Testing of doctests in the sources finished, look at the " \
- "results in $(BUILDDIR)/doctest/output.txt."
--- a/createdoc.py Wed Apr 25 00:06:27 2012 +0200
+++ b/createdoc.py Wed Apr 25 15:06:28 2012 +0200
@@ -5,7 +5,13 @@
from genshi import Markup
loader = TemplateLoader('doc/tmpl', auto_reload=True)
+
+from glob import glob
+import re
+import os.path
import inspect
+from pkg_resources import parse_version
+
from docutils.core import publish_doctree
import docutils
@@ -13,6 +19,10 @@
from docutils import core
from docutils.writers.html4css1 import Writer,HTMLTranslator
+from iro.view.xmlrpc import TwistedInterface as Current
+from iro import __version__
+from createerm import createSchemaPlot, tables, tables_cls
+
class NoHeaderHTMLTranslator(HTMLTranslator):
def __init__(self, document):
HTMLTranslator.__init__(self,document)
@@ -38,9 +48,6 @@
return core.publish_from_doctree(d, writer=_w)
-from iro.view.xmlrpc import TwistedInterface as Current
-
-from createerm import createSchemaPlot, tables, tables_cls
class Link():
def __init__(self,name,title):
@@ -169,6 +176,11 @@
self.description = Markup(core.publish_string(cls.__doc__,writer=_w))
+class File:
+ def __init__(self,path):
+ self.version = re.search("/iro-(.*).tar.gz",path).group(1)
+ self.name = os.path.basename(path)
+
def main():
sites=[Site("index.html","Iro"),
@@ -177,11 +189,22 @@
Site("about.html","About us"),
]
+ files=[File(f) for f in glob("web/files/*tar.gz")]
+ files.sort(key=lambda a:parse_version(a.version),reverse=True)
+ code ="files/iro-%s.tar.gz"%__version__
+
current_methods = dict(inspect.getmembers(Current()))
current=[ Method(i,current_methods) for i in Current().listMethods() if i != "listMethods" ]
t = [Table(tables_cls[str(f)]) for f in tables]
- createSchemaPlot('doc/images/db-schema.svg')
+ createSchemaPlot('web/images/db-schema.svg')
+
+ gd = {"sites":sites,
+ "current":current,
+ "tables": t,
+ "code":code,
+ "files":files
+ }
for site in sites:
print("generiere %s" % site.name)
@@ -189,8 +212,8 @@
def a(s):
if s == site:
return {"class":"menu active"}
- stream = tmpl.generate(sites=sites, active=a, current=current, tables=t)
- with open('doc/'+site.name, "w") as g:
+ stream = tmpl.generate(active=a, **gd)
+ with open('web/'+site.name, "w") as g:
g.write(stream.render('html', doctype='html'))
if __name__ == '__main__':
--- a/doc/about.html Wed Apr 25 00:06:27 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
-
- <head>
- <title>Iro · About us</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <meta charset="utf-8">
- <meta name="description" content="">
- <meta name="keywords" content="">
- <link rel="shortcut icon" type="image/x-icon" href="images/favicon.png">
- <link rel="stylesheet" href="css/reset.css" type="text/css" media="screen">
- <link rel="stylesheet" href="css/960.css" type="text/css" media="screen">
- <link rel="stylesheet" href="css/style.css" type="text/css" media="screen">
- <!--[if IE]><link rel="stylesheet" href="css/style-ie.css" type="text/css" media="screen" /><![endif] -->
- </head>
- <body>
- <div id="head-container">
- <div id="head">
- <h1 id="logo"><a href="index.html" class="logo" title="Netzguerilla"><span>Netzguerilla</span></a></h1>
- <ul id="menu">
- <li><a href="index.html" class="menu">Iro</a></li><li><a href="current.html" class="menu">API Documentation</a></li><li><a href="database.html" class="menu">Datenbase Schema</a></li><li><a href="about.html" class="menu active">About us</a></li>
- </ul>
- </div>
- </div>
- <div id="content-container">
- <div id="content" class="container_12">
- <div id="main" class="grid_9">
- <h2>About us</h2>
- <div class="item">
- <h3>Contact</h3>
- <p>
- <strong>Netzguerilla.net</strong> Clerc Knauß Vollnhals GbR<br>
- Manteuffelstraße 40<br>
- 10997 Berlin
- </p>
- <p>
- WWW: <a href="https://netzguerilla.net/">netzguerilla.net</a><br>
- </p>
- <p>
- E-Mail: <a href="mailto:iro@netzguerilla.net">iro@netzguerilla.net</a><br>
- </p>
- <p>
- Telefon: <a href="tel:+493069201075">+49 30 69201075</a><br>
- </p>
- <h3>German legal notice - Inhaltlich verantwortlich</h3>
- <p>
- <small>Verantwortlich für den Inhalt nach § 55 Abs. 2 RStV bzw. §5 TMG sowie beauftragt mit dem Jugendschutz gemäß TMG, JMStV sowie GjSM:</small><br>
- <strong>Sandro Knauß</strong>, Anschrift wie oben, <a href="mailto:iro@netzguerilla.net">iro@netzguerilla.net</a>
- </p>
- </div>
- </div>
- <div class="clear"></div>
- </div>
- </div>
- <div id="foot-container">
- <div id="foot">
- <p>© 2010-2011 <a href="impressum.html">Netzguerilla.net</a>.</p>
- </div>
- </div>
- </body>
-</html>
\ No newline at end of file
--- a/doc/conf.py Wed Apr 25 00:06:27 2012 +0200
+++ b/doc/conf.py Wed Apr 25 15:06:28 2012 +0200
@@ -25,7 +25,7 @@
# Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.ifconfig', 'sphinx.ext.viewcode']
+extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.ifconfig', 'sphinx.ext.viewcode','sphinx.ext.extlinks']
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
@@ -242,3 +242,5 @@
#texinfo_show_urls = 'footnote'
autoclass_content = 'both'
+
+extlinks = {'irofile': ("../files/iro-%s.tar.gz","Iro ")}
--- a/doc/css/960.css Wed Apr 25 00:06:27 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-.container_12,.container_16{margin-left:auto;margin-right:auto;width:960px}.grid_1,.grid_2,.grid_3,.grid_4,.grid_5,.grid_6,.grid_7,.grid_8,.grid_9,.grid_10,.grid_11,.grid_12,.grid_13,.grid_14,.grid_15,.grid_16{display:inline;float:left;margin-left:10px;margin-right:10px}.push_1,.pull_1,.push_2,.pull_2,.push_3,.pull_3,.push_4,.pull_4,.push_5,.pull_5,.push_6,.pull_6,.push_7,.pull_7,.push_8,.pull_8,.push_9,.pull_9,.push_10,.pull_10,.push_11,.pull_11,.push_12,.pull_12,.push_13,.pull_13,.push_14,.pull_14,.push_15,.pull_15{position:relative}.container_12 .grid_3,.container_16 .grid_4{width:220px}.container_12 .grid_6,.container_16 .grid_8{width:460px}.container_12 .grid_9,.container_16 .grid_12{width:700px}.container_12 .grid_12,.container_16 .grid_16{width:940px}.alpha{margin-left:0}.omega{margin-right:0}.container_12 .grid_1{width:60px}.container_12 .grid_2{width:140px}.container_12 .grid_4{width:300px}.container_12 .grid_5{width:380px}.container_12 .grid_7{width:540px}.container_12 .grid_8{width:620px}.container_12 .grid_10{width:780px}.container_12 .grid_11{width:860px}.container_16 .grid_1{width:40px}.container_16 .grid_2{width:100px}.container_16 .grid_3{width:160px}.container_16 .grid_5{width:280px}.container_16 .grid_6{width:340px}.container_16 .grid_7{width:400px}.container_16 .grid_9{width:520px}.container_16 .grid_10{width:580px}.container_16 .grid_11{width:640px}.container_16 .grid_13{width:760px}.container_16 .grid_14{width:820px}.container_16 .grid_15{width:880px}.container_12 .prefix_3,.container_16 .prefix_4{padding-left:240px}.container_12 .prefix_6,.container_16 .prefix_8{padding-left:480px}.container_12 .prefix_9,.container_16 .prefix_12{padding-left:720px}.container_12 .prefix_1{padding-left:80px}.container_12 .prefix_2{padding-left:160px}.container_12 .prefix_4{padding-left:320px}.container_12 .prefix_5{padding-left:400px}.container_12 .prefix_7{padding-left:560px}.container_12 .prefix_8{padding-left:640px}.container_12 .prefix_10{padding-left:800px}.container_12 .prefix_11{padding-left:880px}.container_16 .prefix_1{padding-left:60px}.container_16 .prefix_2{padding-left:120px}.container_16 .prefix_3{padding-left:180px}.container_16 .prefix_5{padding-left:300px}.container_16 .prefix_6{padding-left:360px}.container_16 .prefix_7{padding-left:420px}.container_16 .prefix_9{padding-left:540px}.container_16 .prefix_10{padding-left:600px}.container_16 .prefix_11{padding-left:660px}.container_16 .prefix_13{padding-left:780px}.container_16 .prefix_14{padding-left:840px}.container_16 .prefix_15{padding-left:900px}.container_12 .suffix_3,.container_16 .suffix_4{padding-right:240px}.container_12 .suffix_6,.container_16 .suffix_8{padding-right:480px}.container_12 .suffix_9,.container_16 .suffix_12{padding-right:720px}.container_12 .suffix_1{padding-right:80px}.container_12 .suffix_2{padding-right:160px}.container_12 .suffix_4{padding-right:320px}.container_12 .suffix_5{padding-right:400px}.container_12 .suffix_7{padding-right:560px}.container_12 .suffix_8{padding-right:640px}.container_12 .suffix_10{padding-right:800px}.container_12 .suffix_11{padding-right:880px}.container_16 .suffix_1{padding-right:60px}.container_16 .suffix_2{padding-right:120px}.container_16 .suffix_3{padding-right:180px}.container_16 .suffix_5{padding-right:300px}.container_16 .suffix_6{padding-right:360px}.container_16 .suffix_7{padding-right:420px}.container_16 .suffix_9{padding-right:540px}.container_16 .suffix_10{padding-right:600px}.container_16 .suffix_11{padding-right:660px}.container_16 .suffix_13{padding-right:780px}.container_16 .suffix_14{padding-right:840px}.container_16 .suffix_15{padding-right:900px}.container_12 .push_3,.container_16 .push_4{left:240px}.container_12 .push_6,.container_16 .push_8{left:480px}.container_12 .push_9,.container_16 .push_12{left:720px}.container_12 .push_1{left:80px}.container_12 .push_2{left:160px}.container_12 .push_4{left:320px}.container_12 .push_5{left:400px}.container_12 .push_7{left:560px}.container_12 .push_8{left:640px}.container_12 .push_10{left:800px}.container_12 .push_11{left:880px}.container_16 .push_1{left:60px}.container_16 .push_2{left:120px}.container_16 .push_3{left:180px}.container_16 .push_5{left:300px}.container_16 .push_6{left:360px}.container_16 .push_7{left:420px}.container_16 .push_9{left:540px}.container_16 .push_10{left:600px}.container_16 .push_11{left:660px}.container_16 .push_13{left:780px}.container_16 .push_14{left:840px}.container_16 .push_15{left:900px}.container_12 .pull_3,.container_16 .pull_4{left:-240px}.container_12 .pull_6,.container_16 .pull_8{left:-480px}.container_12 .pull_9,.container_16 .pull_12{left:-720px}.container_12 .pull_1{left:-80px}.container_12 .pull_2{left:-160px}.container_12 .pull_4{left:-320px}.container_12 .pull_5{left:-400px}.container_12 .pull_7{left:-560px}.container_12 .pull_8{left:-640px}.container_12 .pull_10{left:-800px}.container_12 .pull_11{left:-880px}.container_16 .pull_1{left:-60px}.container_16 .pull_2{left:-120px}.container_16 .pull_3{left:-180px}.container_16 .pull_5{left:-300px}.container_16 .pull_6{left:-360px}.container_16 .pull_7{left:-420px}.container_16 .pull_9{left:-540px}.container_16 .pull_10{left:-600px}.container_16 .pull_11{left:-660px}.container_16 .pull_13{left:-780px}.container_16 .pull_14{left:-840px}.container_16 .pull_15{left:-900px}.clear{clear:both;display:block;overflow:hidden;visibility:hidden;width:0;height:0}.clearfix:after{clear:both;content:' ';display:block;font-size:0;line-height:0;visibility:hidden;width:0;height:0}* html .clearfix,*:first-child+html .clearfix{zoom:1}
\ No newline at end of file
--- a/doc/css/reset.css Wed Apr 25 00:06:27 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}:focus{outline:0}ins{text-decoration:none}del{text-decoration:line-through}table{border-collapse:collapse;border-spacing:0}
\ No newline at end of file
--- a/doc/css/style-ie.css Wed Apr 25 00:06:27 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-#head #menu {
-
- width: 750px;
-
-}
-
- #head #menu li {
-
- display: inline;
- position: relative;
- float: left;
- margin: 0px;
- padding: 0px;
-
- }
\ No newline at end of file
--- a/doc/css/style.css Wed Apr 25 00:06:27 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,975 +0,0 @@
-
-body {
-
- background-color: #eee;
- color: #111;
- margin: 0px;
- padding: 0px;
- font-family: "DroidSans", "Trebuchet MS", sans-serif;
- line-height: 1.6em;
- font-size: 1.3em;
-
-}
-
- #head-container {
-
- display: block;
- position: relative;
- width: 100%;
- height: 90px;
-
- background: #111 url(../images/head.png) top left repeat-x;
-
- }
-
- #head {
-
- display: block;
- position: relative;
- width: 960px;
- height: 90px;
- margin: 0px auto;
-
- }
-
- #head #logo {
-
- display: block;
- position: absolute;
- left: 0px;
- bottom: 10px;
- width: 200px;
- height: 70px;
-
- }
-
- #head #logo a {
-
- display: block;
- position: relative;
- width: 200px;
- padding-left: 70px;
- height: 70px;
- background: url(../images/netzguerilla-3.png) 0px 0px no-repeat;
- text-decoration: none;
-
- }
-
- #head #logo a span {
-
- display: none;
-
- }
-
- #head #menu {
-
- display: block;
- position: absolute;
- right: 0px;
- bottom: 0px;
- margin: 0px;
- padding: 0px;
-
- }
-
- #head #menu li {
-
- display: inline-block;
- position: relative;
- margin: 0px;
- padding: 0px;
-
- }
-
- #head #menu li a {
-
- display: block;
- position: relative;
-
- color: #c03;
- text-decoration: none;
- text-transform: uppercase;
- padding: 0px 7px;
- background: #333 url(../images/fade-top.png) bottom left repeat-x;
- margin-left: 5px;
- font-size: .8em;
- font-weight: bold;
-
- -webkit-border-top-left-radius: 4px;
- -webkit-border-top-right-radius: 4px;
- -moz-border-radius-topleft: 4px;
- -moz-border-radius-topright: 4px;
- border-top-left-radius: 4px;
- border-top-right-radius: 4px;
-
- }
-
- #head #menu li a:hover {
-
- background: #c03 url(../images/fade-top.png) bottom left repeat-x;
- color: #fff;
-
- }
-
- #head #menu li a.active {
-
- background-color: #eee;
- background-image: none;
- color: #000;
-
- }
-
- #content-container {
-
- display: block;
- position: relative;
-
- }
- #content {
-
- padding: 20px 0px;
-
- }
-
- #main {}
-
- #main h2 {
-
- display: block;
- position: relative;
- color: #a01;
- font-size: 1.8em;
- line-height: 1.4em;
- margin-bottom: 15px;
- text-shadow: 0px 0px 5px #fff;
-
- }
-
- #main h3 {
-
- display: block;
- position: relative;
- color: #b02;
- font-size: 1.4em;
- line-height: 1.4em;
- margin: 10px 0px;
-
- }
-
- #main h4 {
-
- display: block;
- position: relative;
- color: #a01;
- font-size: 1.3em;
- line-height: 1.4em;
- margin: 10px 0px;
-
- }
-
- #main h5 {
-
- display: block;
- position: relative;
- color: #900;
- font-size: 1.2em;
- line-height: 1.4em;
- margin: 10px 0px;
-
- }
-
- #main .item {
-
- display: block;
- position: relative;
-
- padding: 30px 40px;
-
- border-radius: 15px;
- -o-border-radius: 15px;
- -moz-border-radius: 15px;
- -webkit-border-radius: 15px;
-
- -moz-box-shadow: 0px 0px 20px #eee;
- -o-box-shadow: 0px 0px 20px #eee;
- -webkit-box-shadow: 0px 0px 20px #eee;
- box-shadow: 0px 0px 20px #eee;
-
- background-color: #fff;
- margin-bottom: 20px;
- font-size: .9em;
-
- }
-
- #main .item p {
-
- margin: 5px 0px;
-
- }
-
- #main .item a {
-
- text-decoration: none;
- color: #b02;
-
- }
-
- #main .item ol {
-
- list-style-type: none;
- list-style-position: inside;
-
- }
-
- #main .item ol li {
-
- margin-left: 2em;
-
- }
-
- #main .item table {
-
- width: 100%;
- margin: 0px;
-
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- border-radius: 5px;
-
- -moz-box-shadow: 0px 0px 15px #ccc;
- -o-box-shadow: 0px 0px 15px #ccc;
- -webkit-box-shadow: 0px 0px 15px #ccc;
- box-shadow: 0px 0px 15px #ccc;
-
-
- }
-
- #main .item table.docs {
-
- font-size: .8em;
-
- }
-
- #main .item table.docs td {
-
- font-weight: bold;
- padding-right: 0.2em;
- min-width: 120px;
-
- }
-
- #main .item table.docs td+td {
-
- font-weight: normal;
- padding-right: 0.2em;
- min-width: 80px;
-
- }
-
- #main .item table.docs td+td+td {
-
- font-weight: normal;
- padding-right: 0em;
- white-space: normal;
-
- }
-
- #main .item table td {
-
- background-color: #eee;
- line-height: 1.7em;
-
- }
-
- #main .item table thead tr td {
-
- background-color: #c03;
- color: #fff;
- font-size: .8em;
- padding: 5px;
-
- }
-
- #main .item table tbody tr td {
-
- color: #222;
- vertical-align: top;
-
- }
-
- #main .item table tbody tr td.content {
-
- padding: 10px;
- font-size: .8em;
-
- }
-
- #main .item table tbody tr td.content strong.title {
-
- display: inline-block;
- position: relative;
- max-width: 140px;
- overflow: hidden;
-
- }
-
- #main .item table tbody tr td.content span.meta {
-
- display: block;
- position: relative;
- max-width: 140px;
- overflow: hidden;
- line-height: 1.4em;
- font-size: .8em;
-
- }
-
- #main .item table tbody tr td.content span.hate {
-
- display: block;
- position: relative;
- line-height: 1.4em;
- border: 1px solid #ccc;
- padding: 10px;
- text-align: justify;
-
- }
- #main .item table tbody tr:nth-child(odd) td {
-
- background-color: #f9f9f9;
-
- }
-
- #main .item table tbody tr:nth-child(even) td {
-
- background-color: #f6f6f6;
-
- }
-
- #main .item table tr td:first-child {
-
- padding-left: 5px;
-
- }
-
- #main .item table tr td:last-child {
-
- padding-right: 5px;
-
- }
-
- #main .item table tr td.controls {
-
- width: 80px;
- text-align: right;
-
- }
-
- #main .item table tr td.controls a {
-
- display: inline-block;
- width: 20px;
- height: 20px;
- overflow: hidden;
- text-indent: 30px;
- background-color: #eee;
-
- -moz-box-shadow: 0px 0px 5px #ccc;
- -o-box-shadow: 0px 0px 5px #ccc;
- -webkit-box-shadow: 0px 0px 5px #ccc;
- box-shadow: 0px 0px 5px #ccc;
-
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
- border-radius: 3px;
-
- vertical-align: bottom;
- margin: 0px 0px 4px 2px;
-
- background-image: url(../images/icons/bug.png);
- background-position: center center;
- background-repeat: no-repeat;
-
- }
-
- #main .item table tr td.controls a:hover {
-
- background-color: #c03;
-
- }
-
- #main .item table tr td.controls a.edit {
-
- background-image: url(../images/icons/pencil.png);
-
- }
-
- #main .item table tr td.controls a.delete {
-
- background-image: url(../images/icons/bin.png);
-
- }
-
- #main .item table tr td.controls a.details {
-
- background-image: url(../images/icons/zoom.png);
-
- }
-
- #main .item table tr td.controls a.accept {
-
- background-image: url(../images/icons/accept.png);
-
- }
-
- /* round corners */
-
- #main .item table thead tr:first-child td:first-child {
-
- -webkit-border-top-left-radius: 5px;
- -moz-border-radius-topleft: 5px;
- border-top-left-radius: 5px;
-
- }
-
- #main .item table thead tr:first-child td:last-child {
-
- -webkit-border-top-right-radius: 5px;
- -moz-border-radius-topright: 5px;
- border-top-right-radius: 5px;
-
- }
-
- #main .item table tbody tr:last-child td:first-child {
-
- -webkit-border-bottom-left-radius: 5px;
- -moz-border-radius-bottomleft: 5px;
- border-bottom-left-radius: 5px;
-
- }
-
- #main .item table tbody tr:last-child td:last-child {
-
- -webkit-border-bottom-right-radius: 5px;
- -moz-border-radius-bottomright: 5px;
- border-bottom-right-radius: 5px;
-
- }
-
- #main .item code.copyme {
-
- display: block;
- margin: 0px 0px 10px;
- padding: 10px;
- line-height: 1em;
- border: 1px solid #ccc;
- background-color: #eee;
-
- }
-
- /* main view */
-
- #main .hate-pagination {
-
- display: block;
- position: relative;
- line-height: 1.2em;
- padding: 10px 0px;
-
- }
-
- #main .hate-pagination-back {
-
- display: block;
- position: relative;
- width: 300px;
- text-align: left;
- float: left;
-
- }
-
- #main .hate-pagination-forward {
-
- display: block;
- position: relative;
- width: 300px;
- text-align: right;
- float: right;
-
- }
-
- #main .ad-item {
-
- display: block;
- position: relative;
- border-bottom: 1px solid #ccc;
- line-height: 1.2em;
- padding: 20px 0px;
- text-align: center;
-
- }
-
- #main .hate-item {
-
- display: block;
- position: relative;
- border-bottom: 1px solid #ccc;
- line-height: 1.2em;
- padding: 10px 0px;
-
- }
-
- #main .hate-item .hate-item-icon {
-
- display: block;
- position: relative;
- width: 48px;
- padding: 5px 0px 5px 10px;
- float: left;
-
- }
-
- #main .hate-item .hate-item-main {
-
- display: block;
- position: relative;
- width: 550px;
- float: right;
-
- }
-
- #main .hate-item .hate-item-author {
-
- display: block;
- position: relative;
- font-size: .8em;
- font-weight: bold;
- color: #222;
-
- }
-
- #main .hate-item .hate-item-author a {
-
- color: #222;
-
- }
-
- #main .hate-item .hate-item-content {
-
- display: block;
- position: relative;
- font-size: .8em;
- font-weight: normal;
- color: #444;
-
- }
-
- #main .hate-item .hate-item-meta {
-
- display: block;
- position: relative;
- font-size: .6em;
- color: #666;
-
- }
-
- #main .hate-item .hate-item-meta a {
-
- color: #666;
-
- }
-
- #main .hate-item .hate-item-meta a.facepalm {
-
- display: inline-block;
- padding-left: 20px;
- line-height: 16px;
- background: url(../images/icons/facepalm.png) top left no-repeat;
-
- }
-
- #main .hate-item:hover .hate-item-meta a.facepalm {
-
- background: url(../images/icons/facepalm-hl.png) top left no-repeat;
-
- }
-
- #main .hate-item .hate-item-meta span.godwin {
-
- display: inline-block;
- padding-left: 20px;
- line-height: 16px;
- background: url(../images/icons/godwinbonus.png) top left no-repeat;
-
- }
-
- #main .hate-item:hover {
-
- background-color: #fce;
-
- }
-
- #main .hate-item:hover a {
-
- color: #c03;
-
- }
-
- #main .hate-detail {
-
- display: block;
- position: relative;
- border-bottom: 1px solid #ccc;
- line-height: 1.2em;
- padding: 10px 0px;
-
- }
-
- #main .hate-detail .hate-item-icon {
-
- display: block;
- position: relative;
- width: 48px;
- padding: 5px 0px;
- float: left;
-
- }
-
- #main .hate-detail .hate-item-main {
-
- display: block;
- position: relative;
-
- }
-
- #main .hate-detail .hate-item-author {
-
- display: block;
- position: relative;
- font-size: 1.2em;
- line-height: 50px;
- font-weight: bold;
- color: #222;
- width: 560px;
- float: right;
-
- }
-
- #main .hate-detail .hate-item-content {
-
- display: block;
- position: relative;
- font-size: 1.2em;
- line-height: 1.4em;
- font-weight: normal;
- color: #444;
- padding: 10px 0px;
-
- }
-
- #main .hate-detail .hate-item-meta {
-
- display: block;
- position: relative;
- font-size: .8em;
- color: #666;
-
- }
-
- #main .hate-detail .hate-item-meta a {
-
- color: #666;
-
- }
-
- #main .hate-detail .hate-item-meta a.facepalm {
-
- display: inline-block;
- padding-left: 20px;
- line-height: 16px;
- background: url(../images/icons/facepalm.png) top left no-repeat;
-
- }
-
- #main .hate-detail:hover .hate-item-meta a.facepalm {
-
- background: url(../images/icons/facepalm-hl.png) top left no-repeat;
-
- }
-
- #main .hate-detail .hate-item-meta span.godwin {
-
- display: inline-block;
- padding-left: 20px;
- line-height: 16px;
- background: url(../images/icons/godwinbonus.png) top left no-repeat;
-
- }
-
-
- /* special stuff */
-
- #main span.redacted {
-
- display: inline-block;
- background-color: #333;
- color: #c03;
- line-height: 1.1em;
- padding: 0px 5px;
-
- }
-
- #main code.apikey {
-
- font-size: 1.1em;
- background-color: #a01;
- color: #fff;
- display: inline-block;
- padding: 0px 5px;
-
- }
-
- #main a.bookmarklet {
-
- font-size: 1.4em;
- background-color: #ccc;
- color: #666;
- border: 1px solid #666;
- display: inline-block;
- padding: 5px 10px;
-
- -webkit-border-radius: 10px;
- -moz-border-radius: 10px;
- border-radius: 10px;
-
- }
-
- #main form input[type=text],
- #main form input[type=password] {
-
- display: block;
- position: relative;
- border: 1px solid #999;
- font-size: .9em;
- padding: 3px;
-
- border-radius: 5px;
- -o-border-radius: 5px;
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
-
- }
-
- #main form input[type=submit] {
-
- display: block;
- position: relative;
- border: 1px solid #ccc;
- color: #111;
- font-size: .9em;
- padding: 2px;
-
- border-radius: 5px;
- -o-border-radius: 5px;
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
-
-
- }
-
- #main form span.input {
-
- display: inline-block;
- position: relative;
- border: 1px solid #999;
- font-size: .9em;
- padding: 0px 2px;
- background-color: #fff;
- border-radius: 5px;
- -o-border-radius: 5px;
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
-
-
- }
-
- #main form span.input input[type=text] {
-
- display: inline-block;
- position: relative;
- border-width: 0px;
- font-size: 1em;
- padding: 0px;
- background-color: #fff;
-
- }
-
- #main form span.input input[type=text].right {
-
- text-align: right;
-
- }
-
- #main form span.input input.size-2 {
-
- width: 1.5em !important;
-
- }
-
- #main form span.input input.size-4 {
-
- width: 2.5em !important;
-
- }
-
- #main form label {
-
- display: block;
- position: relative;
- font-size: .75em;
- color: #666;
-
- }
-
- #main form textarea {
-
- display: block;
- position: relative;
- border: 1px solid #999;
- font-size: .9em;
- font-family: sans-serif;
- padding: 3px;
-
- border-radius: 5px;
- -o-border-radius: 5px;
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
-
- }
-
-
- #main form fieldset {
-
- border: 1px solid #ccc;
- padding: 5px;
- margin: 5px 0px;
-
- }
-
- #main form fieldset legend {
-
- font-size: .75em;
- color: #666;
-
- }
-
- #sidebar {}
-
- #sidebar h3 {
-
- display: block;
- position: relative;
- color: #fff;
- font-size: 1.2em;
- line-height: 1.4em;
- margin: 5px 0px;
-
- }
-
- #sidebar .item {
-
- display: block;
- position: relative;
-
- padding: 0px 10px;
-
- border-radius: 10px;
- -o-border-radius: 10px;
- -moz-border-radius: 10px;
- -webkit-border-radius: 10px;
-
- -moz-box-shadow: 0px 0px 20px #eee;
- -o-box-shadow: 0px 0px 20px #eee;
- -webkit-box-shadow: 0px 0px 20px #eee;
- box-shadow: 0px 0px 20px #eee;
-
- background-color: #333;
- margin-bottom: 20px;
- font-size: .8em;
-
- }
-
- #sidebar .center {
-
- text-align: center;
-
- }
-
- #sidebar .counter-item .content {
-
- font-size: 3em;
- color: #c03;
- font-weight: bold;
- line-height: 1em;
- padding-bottom: 5px;
- text-align: center;
-
- }
-
- #sidebar .submenu-item {
-
- background-color: #ddd;
-
- }
-
- #sidebar .submenu-item ul {}
-
- #sidebar .submenu-item ul li {}
-
- #sidebar .submenu-item ul li+li {
-
- border-top: 1px dotted #999;
-
- }
-
- #sidebar .submenu-item ul a {
-
- color: #c03;
- text-decoration: none;
- text-transform: uppercase;
-
- }
-
- #sidebar .submenu-item ul a:hover {
-
- color: #a01;
-
- }
-
- #foot-container {
-
- display: block;
- position: relative;
- background: #222;
- color: #ddd;
-
- }
-
- #foot {
-
- display: block;
- position: relative;
- width: 960px;
- margin: 0px auto;
- padding: 20px;
- font-size: .8em;
-
- }
-
- #foot a {
-
- text-decoration: none;
- color: #c03;
-
- }
-
--- a/doc/current.html Wed Apr 25 00:06:27 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,532 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
-
- <head>
- <title>Iro · api docs current</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <meta charset="utf-8">
- <meta name="description" content="">
- <meta name="keywords" content="">
- <link rel="shortcut icon" type="image/x-icon" href="images/favicon.png">
- <link rel="stylesheet" href="css/reset.css" type="text/css" media="screen">
- <link rel="stylesheet" href="css/960.css" type="text/css" media="screen">
- <link rel="stylesheet" href="css/style.css" type="text/css" media="screen">
- <!--[if IE]><link rel="stylesheet" href="css/style-ie.css" type="text/css" media="screen" /><![endif] -->
- </head>
- <body>
- <div id="head-container">
- <div id="head">
- <h1 id="logo"><a href="index.html" class="logo" title="Netzguerilla"><span>Netzguerilla</span></a></h1>
- <ul id="menu">
- <li><a href="index.html" class="menu">Iro</a></li><li><a href="current.html" class="menu active">API Documentation</a></li><li><a href="database.html" class="menu">Datenbase Schema</a></li><li><a href="about.html" class="menu">About us</a></li>
- </ul>
- </div>
- </div>
- <div id="content-container">
- <div id="content" class="container_12">
- <div id="main" class="grid_9">
- <h2>API Documentation</h2>
- <div class="item">
- <p>
- </p>
- <ol>
- <li value="1">1. <a href="#api-intro">Intro</a></li>
- <li value="2">2.
- <a href="#api-interfaces">Interfaces</a>
- <ol>
- <li value="2.1">2.1 <a href="#interface-xmlrpc">XML-RPC</a></li>
- <li value="2.1">2.2 <a href="#interface-soap">SOAP</a></li>
- <li value="2.3">2.3 <a href="#interface-json">JSON</a></li>
- <li value="2.4">2.4 <a href="#interface-jsonp">JSONP</a></li>
- </ol>
- </li>
- <li value="3">3.
- <a href="#api-methods">Methods</a>
- <ol>
- <li value="3.1">3.1 <a href="#method-status">Status</a></li><li value="3.2">3.2 <a href="#method-sms">Sms</a></li><li value="3.3">3.3 <a href="#method-fax">Fax</a></li><li value="3.4">3.4 <a href="#method-mail">Mail</a></li><li value="3.5">3.5 <a href="#method-routes">Routes</a></li><li value="3.6">3.6 <a href="#method-defaultRoute">DefaultRoute</a></li><li value="3.7">3.7 <a href="#method-bill">Bill</a></li><li value="3.8">3.8 <a href="#method-telnumber">Telnumber</a></li><li value="3.9">3.9 <a href="#method-email">Email</a></li>
- </ol>
- </li>
- </ol>
- </div><div class="item" id="api-intro">
- <h3>Intro</h3>
- <p>
- Iro API has many methods, that are usefull if you want to send a bunch of messages. This Site describes the API for Iro 1.0.
- </p>
- </div><div class="item" id="api-interfaces">
- <h3>Interfaces</h3>
- <p>
- You can use diffrent interfaces to get to same result.
- </p>
- <div class="item" id="interface-xmlrpc">
- <h4>XML-RPC</h4>
- <p>
- Interface-URI: <code>http://localhost:8000/xmlrpc</code>
- </p>
- </div>
- <div class="item" id="interface-soap">
- <h4>SOAP</h4>
- <p>
- Interface-URI: <code>http://localhost:8000/soap</code>
- </p>
- </div>
- <div class="item" id="interface-json">
- <h4>JSON</h4>
- <p>
- Interface-URI: <code>http://localhost:8000/json/<em><methode></em></code>
- </p>
- <p>
- Not yet implementet
- </p>
- </div>
- <div class="item" id="interface-jsonp">
- <h4>JSONP</h4>
- <p>
- Interface-URI: <code>http://localhost:8000/jsonp/<em><methode></em>?callback=<callback></code>
- </p>
- <p>
- Not yet implementet
- </p>
- </div>
- </div><div class="item" id="api-methods">
- <h3>Methods</h3>
- <div class="item" id="method-status">
- <h4>Status</h4>
- <p><code>status(user=None, id=False, detailed=None)</code></p>
- <p>Returns the status of one or more jobs.</p>
- <h5>Parameter</h5>
- <table class="docs">
- <thead>
- <tr>
- <td>parameter</td>
- <td>type</td>
- <td>description</td>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>user</td>
- <td>string</td>
- <td>apikey of a user</td>
- </tr><tr>
- <td>id</td>
- <td>integer</td>
- <td>one job id</td>
- </tr><tr>
- <td>detailed</td>
- <td>boolean</td>
- <td>return more details about the status</td>
- </tr>
- </tbody>
- </table>
- <h5>Return</h5>
- <table class="docs">
- <thead>
- <tr>
- <td>parameter</td>
- <td>type</td>
- <td>description</td>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>return</td>
- <td>dict</td>
- <td><ul class="simple">
-<li><cite>key</cite> -- is the job id</li>
-<li>[<cite>key</cite>][<strong>'status'</strong>] -- status of the job</li>
-</ul></td>
- </tr>
- </tbody>
- </table>
- </div><div class="item" id="method-sms">
- <h4>Sms</h4>
- <p><code>sms(user, message, recipients, route='default', info='')</code></p>
- <p>Send a sms.</p>
- <h5>Parameter</h5>
- <table class="docs">
- <thead>
- <tr>
- <td>parameter</td>
- <td>type</td>
- <td>description</td>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>user</td>
- <td>string</td>
- <td>apikey of a user</td>
- </tr><tr>
- <td>message</td>
- <td>string</td>
- <td>message</td>
- </tr><tr>
- <td>recipients</td>
- <td>list</td>
- <td>a list of telefon numbers (use ITU-T E.123)</td>
- </tr><tr>
- <td>route</td>
- <td>string|list</td>
- <td>route to use to send, or a list of routes as fallback</td>
- </tr><tr>
- <td>info</td>
- <td>string</td>
- <td>a name, to combine different jobs to one billing group</td>
- </tr>
- </tbody>
- </table>
- <h5>Return</h5>
- <table class="docs">
- <thead>
- <tr>
- <td>parameter</td>
- <td>type</td>
- <td>description</td>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>return</td>
- <td>integer</td>
- <td>the job id</td>
- </tr>
- </tbody>
- </table>
- </div><div class="item" id="method-fax">
- <h4>Fax</h4>
- <p><code>fax(user, subject, fax, recipients, route='default', info='')</code></p>
- <p>Send a fax.</p>
- <h5>Parameter</h5>
- <table class="docs">
- <thead>
- <tr>
- <td>parameter</td>
- <td>type</td>
- <td>description</td>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>user</td>
- <td>string</td>
- <td>apikey of a user</td>
- </tr><tr>
- <td>subject</td>
- <td>string</td>
- <td>subject</td>
- </tr><tr>
- <td>fax</td>
- <td>string</td>
- <td>content (base64 encoded)</td>
- </tr><tr>
- <td>recipients</td>
- <td>list</td>
- <td>a list of telefon numbers (use ITU-T E.123)</td>
- </tr><tr>
- <td>route</td>
- <td>string|list</td>
- <td>route to use to send, or a list of routes as fallback</td>
- </tr><tr>
- <td>info</td>
- <td>string</td>
- <td>a name, to combine different jobs to one billing group</td>
- </tr>
- </tbody>
- </table>
- <h5>Return</h5>
- <table class="docs">
- <thead>
- <tr>
- <td>parameter</td>
- <td>type</td>
- <td>description</td>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>return</td>
- <td>integer</td>
- <td>the job id</td>
- </tr>
- </tbody>
- </table>
- </div><div class="item" id="method-mail">
- <h4>Mail</h4>
- <p><code>mail(user, subject, body, recipients, frm=None, route='default', info='')</code></p>
- <p>Send a mail.</p>
- <h5>Parameter</h5>
- <table class="docs">
- <thead>
- <tr>
- <td>parameter</td>
- <td>type</td>
- <td>description</td>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>user</td>
- <td>string</td>
- <td>apikey of a user</td>
- </tr><tr>
- <td>subject</td>
- <td>string</td>
- <td>subject</td>
- </tr><tr>
- <td>body</td>
- <td>string</td>
- <td>mail body</td>
- </tr><tr>
- <td>recipients</td>
- <td>list</td>
- <td>a list of email addresses</td>
- </tr><tr>
- <td>frm</td>
- <td>string</td>
- <td>sender mail address</td>
- </tr><tr>
- <td>route</td>
- <td>string|list</td>
- <td>route to use to send, or a list of routes as fallback</td>
- </tr><tr>
- <td>info</td>
- <td>string</td>
- <td>a name, to combine different jobs to one billing group</td>
- </tr>
- </tbody>
- </table>
- <h5>Return</h5>
- <table class="docs">
- <thead>
- <tr>
- <td>parameter</td>
- <td>type</td>
- <td>description</td>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>return</td>
- <td>integer</td>
- <td>the job id</td>
- </tr>
- </tbody>
- </table>
- </div><div class="item" id="method-routes">
- <h4>Routes</h4>
- <p><code>routes(user, typ=None)</code></p>
- <p>Returns a list of all possible offernames.</p>
- <h5>Parameter</h5>
- <table class="docs">
- <thead>
- <tr>
- <td>parameter</td>
- <td>type</td>
- <td>description</td>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>user</td>
- <td>string</td>
- <td>apikey of a user</td>
- </tr><tr>
- <td>typ</td>
- <td>string</td>
- <td>a typ of message -- one of in this list ["sms","fax","mail"]</td>
- </tr>
- </tbody>
- </table>
- <h5>Return</h5>
- <table class="docs">
- <thead>
- <tr>
- <td>parameter</td>
- <td>type</td>
- <td>description</td>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>return</td>
- <td>list</td>
- <td>a list of all possible offer names for a typ</td>
- </tr>
- </tbody>
- </table>
- </div><div class="item" id="method-defaultRoute">
- <h4>DefaultRoute</h4>
- <p><code>defaultRoute(user, typ=None)</code></p>
- <p>Returns all default offernames.</p>
- <h5>Parameter</h5>
- <table class="docs">
- <thead>
- <tr>
- <td>parameter</td>
- <td>type</td>
- <td>description</td>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>user</td>
- <td>string</td>
- <td>apikey of a user</td>
- </tr><tr>
- <td>typ</td>
- <td>string</td>
- <td>a typ of message -- one of in this list ["sms","fax","mail"]</td>
- </tr>
- </tbody>
- </table>
- <h5>Return</h5>
- <table class="docs">
- <thead>
- <tr>
- <td>parameter</td>
- <td>type</td>
- <td>description</td>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>return</td>
- <td>list</td>
- <td>a list of all possible offer names for a typ</td>
- </tr>
- </tbody>
- </table>
- </div><div class="item" id="method-bill">
- <h4>Bill</h4>
- <p><code>bill(user=None)</code></p>
- <p>Returns the bill, of not paid messages.</p>
- <h5>Parameter</h5>
- <table class="docs">
- <thead>
- <tr>
- <td>parameter</td>
- <td>type</td>
- <td>description</td>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>user</td>
- <td>string</td>
- <td>apikey of a user</td>
- </tr>
- </tbody>
- </table>
- <h5>Return</h5>
- <table class="docs">
- <thead>
- <tr>
- <td>parameter</td>
- <td>type</td>
- <td>description</td>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>return</td>
- <td>dict</td>
- <td><ul class="simple">
-<li><cite>route</cite> -- one offer name ; <strong>"total"</strong> complete sum</li>
-<li>[<cite>route</cite>][<cite>info</cite>][<strong>anz</strong>] -- Number of sended messages in one billing group</li>
-<li>[<cite>route</cite>][<cite>info</cite>][<strong>price</strong>] -- Price for one billing group</li>
-<li>[<cite>route</cite> | <strong>total</strong>][<strong>anz</strong>] -- Number of sended messages for one offer</li>
-<li>[<cite>route</cite> | <strong>total</strong>][<strong>price</strong>] -- Price for one offer</li>
-</ul></td>
- </tr>
- </tbody>
- </table>
- </div><div class="item" id="method-telnumber">
- <h4>Telnumber</h4>
- <p><code>telnumber(recipients)</code></p>
- <p>Return True, if all telnumbers a vaild.</p>
- <h5>Parameter</h5>
- <table class="docs">
- <thead>
- <tr>
- <td>parameter</td>
- <td>type</td>
- <td>description</td>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>recipients</td>
- <td>list</td>
- <td>a list of telnumbers (use ITU-T E.123)</td>
- </tr>
- </tbody>
- </table>
- <h5>Return</h5>
- <table class="docs">
- <thead>
- <tr>
- <td>parameter</td>
- <td>type</td>
- <td>description</td>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>return</td>
- <td>boolean</td>
- <td>True -- all numbers are valid</td>
- </tr>
- </tbody>
- </table>
- </div><div class="item" id="method-email">
- <h4>Email</h4>
- <p><code>email(recipients)</code></p>
- <p>Return True, if all mailadresses a valid.</p>
- <h5>Parameter</h5>
- <table class="docs">
- <thead>
- <tr>
- <td>parameter</td>
- <td>type</td>
- <td>description</td>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>recipients</td>
- <td>list</td>
- <td>a list of mailadresses</td>
- </tr>
- </tbody>
- </table>
- <h5>Return</h5>
- <table class="docs">
- <thead>
- <tr>
- <td>parameter</td>
- <td>type</td>
- <td>description</td>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>return</td>
- <td>boolean</td>
- <td>True -- all addresses are valid</td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="clear"></div>
- </div>
- </div>
- <div id="foot-container">
- <div id="foot">
- <p>© 2010-2011 <a href="impressum.html">Netzguerilla.net</a>.</p>
- </div>
- </div>
- </body>
-</html>
\ No newline at end of file
--- a/doc/database.html Wed Apr 25 00:06:27 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
-
- <head>
- <title>Iro · Datenbase</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <meta charset="utf-8">
- <meta name="description" content="">
- <meta name="keywords" content="">
- <link rel="shortcut icon" type="image/x-icon" href="images/favicon.png">
- <link rel="stylesheet" href="css/reset.css" type="text/css" media="screen">
- <link rel="stylesheet" href="css/960.css" type="text/css" media="screen">
- <link rel="stylesheet" href="css/style.css" type="text/css" media="screen">
- <!--[if IE]><link rel="stylesheet" href="css/style-ie.css" type="text/css" media="screen" /><![endif] -->
- </head>
- <body>
- <div id="head-container">
- <div id="head">
- <h1 id="logo"><a href="index.html" class="logo" title="Netzguerilla"><span>Netzguerilla</span></a></h1>
- <ul id="menu">
- <li><a href="index.html" class="menu">Iro</a></li><li><a href="current.html" class="menu">API Documentation</a></li><li><a href="database.html" class="menu active">Datenbase Schema</a></li><li><a href="about.html" class="menu">About us</a></li>
- </ul>
- </div>
- </div>
- <div id="content-container">
- <div id="content" class="container_12">
- <div id="main" class="grid_9">
- <h2>Datenbase Schema</h2>
- <div class="item">
- <p>
- </p>
- <ol>
- <li value="1">1. <a href="#schema">Datenbase schema</a></li>
- <li value="3">3.
- <a href="#tables">Tables</a>
- <ol>
- <li value="2.1">2.1 <a href="#table-apiuser">Apiuser</a></li><li value="2.2">2.2 <a href="#table-offer">Offer</a></li><li value="2.3">2.3 <a href="#table-job">Job</a></li><li value="2.4">2.4 <a href="#table-userright">Userright</a></li><li value="2.5">2.5 <a href="#table-message">Message</a></li>
- </ol>
- </li>
- </ol>
- </div><div class="item" id="schema">
- <h3>Schema</h3>
- <img src="images/db-schema.svg">
- <p>Overview of used tables.</p>
- </div><div class="item" id="tables">
- <h3>Tables</h3>
- <div class="item" id="table-apiuser">
- <h4>Apiuser</h4>
- <p><p>An user in iro.</p></p>
- </div><div class="item" id="table-offer">
- <h4>Offer</h4>
- <p><p>All possible Offers over a Message can be sended. <strong>provider</strong>, <strong>typ</strong> and <strong>route</strong> are used to get the data form configuration file.</p></p>
- </div><div class="item" id="table-job">
- <h4>Job</h4>
- <p><p>A complete Job.</p>
-<blockquote>
-<ul class="simple">
-<li><strong>status</strong> show the status of the job (<tt class="docutils literal">init</tt>, <tt class="docutils literal">started</tt>, <tt class="docutils literal">sending</tt>, <tt class="docutils literal">sended</tt> or <tt class="docutils literal">error</tt>).</li>
-<li><strong>info</strong> is used to make it possible to create different billing groups for user.</li>
-</ul>
-</blockquote></p>
- </div><div class="item" id="table-userright">
- <h4>Userright</h4>
- <p><p>Allowed offers for one user. Default routes are sorted by <strong>default</strong> value.</p></p>
- </div><div class="item" id="table-message">
- <h4>Message</h4>
- <p><p>A message that has created costs.</p>
-<blockquote>
-<strong>isBilled</strong> is False since the bill is paid.</blockquote></p>
- </div>
- </div>
- </div>
- <div class="clear"></div>
- </div>
- </div>
- <div id="foot-container">
- <div id="foot">
- <p>© 2010-2011 <a href="impressum.html">Netzguerilla.net</a>.</p>
- </div>
- </div>
- </body>
-</html>
\ No newline at end of file
--- a/doc/images/db-schema.svg Wed Apr 25 00:06:27 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<!-- Generated by graphviz version 2.26.3 (20100126.1600)
- -->
-<!-- Title: G Pages: 1 -->
-<svg width="468pt" height="126pt"
- viewBox="0.00 0.00 468.00 125.74" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph1" class="graph" transform="scale(0.83274 0.83274) rotate(0) translate(4 147)">
-<title>G</title>
-<polygon fill="white" stroke="white" points="-4,5 -4,-147 559,-147 559,5 -4,5"/>
-<!-- message -->
-<g id="node1" class="node"><title>message</title>
-<polygon fill="none" stroke="black" points="8,-18.5 8,-133.5 112,-133.5 112,-18.5 8,-18.5"/>
-<text text-anchor="start" x="43.5" y="-124.367" font-family="Bitstream-Vera Sans" font-size="7.00">message</text>
-<polygon fill="none" stroke="black" points="9,-118 9,-120 111,-120 111,-118 9,-118"/>
-<text text-anchor="start" x="11" y="-110.867" font-family="Bitstream-Vera Sans" font-size="7.00">- id : INTEGER</text>
-<text text-anchor="start" x="11" y="-99.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- recipient : VARCHAR(100)</text>
-<text text-anchor="start" x="11" y="-88.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- isBilled : BOOLEAN</text>
-<text text-anchor="start" x="11" y="-77.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- date : DATETIME</text>
-<text text-anchor="start" x="11" y="-66.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- price : NUMERIC(8, 4)</text>
-<text text-anchor="start" x="11" y="-55.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- count : INTEGER</text>
-<text text-anchor="start" x="11" y="-44.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- exID : VARCHAR(100)</text>
-<text text-anchor="start" x="11" y="-33.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- job : VARCHAR(40)</text>
-<text text-anchor="start" x="11" y="-22.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- offer : VARCHAR(100)</text>
-</g>
-<!-- job -->
-<g id="node3" class="node"><title>job</title>
-<polygon fill="none" stroke="black" points="164.5,-79 164.5,-139 251.5,-139 251.5,-79 164.5,-79"/>
-<text text-anchor="start" x="202.5" y="-130.367" font-family="Bitstream-Vera Sans" font-size="7.00">job</text>
-<polygon fill="none" stroke="black" points="166,-124 166,-126 251,-126 251,-124 166,-124"/>
-<text text-anchor="start" x="168" y="-116.867" font-family="Bitstream-Vera Sans" font-size="7.00">- id : INTEGER</text>
-<text text-anchor="start" x="168" y="-105.867" font-family="Bitstream-Vera Sans" font-size="7.00">- info : VARCHAR(100)</text>
-<text text-anchor="start" x="168" y="-94.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- status : VARCHAR(7)</text>
-<text text-anchor="start" x="168" y="-83.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- user : VARCHAR(100)</text>
-</g>
-<!-- message->job -->
-<g id="edge2" class="edge"><title>message->job</title>
-<path fill="none" stroke="black" d="M120.197,-89.4224C129.482,-91.4926 139.067,-93.6298 148.34,-95.6974"/>
-<ellipse fill="none" stroke="black" cx="152.488" cy="-96.6224" rx="4.00001" ry="4.00001"/>
-<text text-anchor="middle" x="146.627" y="-97.3455" font-family="Bitstream-Vera Sans" font-size="7.00">+ id</text>
-<text text-anchor="middle" x="129.963" y="-84.9699" font-family="Bitstream-Vera Sans" font-size="7.00">+ job</text>
-</g>
-<!-- offer -->
-<g id="node5" class="node"><title>offer</title>
-<polygon fill="none" stroke="black" points="304.5,-4 304.5,-64 405.5,-64 405.5,-4 304.5,-4"/>
-<text text-anchor="start" x="347" y="-55.3667" font-family="Bitstream-Vera Sans" font-size="7.00">offer</text>
-<polygon fill="none" stroke="black" points="306,-49 306,-51 405,-51 405,-49 306,-49"/>
-<text text-anchor="start" x="308" y="-41.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- name : VARCHAR(100)</text>
-<text text-anchor="start" x="308" y="-30.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- provider : VARCHAR(100)</text>
-<text text-anchor="start" x="308" y="-19.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- route : VARCHAR(100)</text>
-<text text-anchor="start" x="308" y="-8.86667" font-family="Bitstream-Vera Sans" font-size="7.00">- typ : VARCHAR(100)</text>
-</g>
-<!-- message->offer -->
-<g id="edge4" class="edge"><title>message->offer</title>
-<path fill="none" stroke="black" d="M120.053,-67.45C168.906,-60.4948 237.788,-50.6879 288.339,-43.4907"/>
-<ellipse fill="none" stroke="black" cx="292.329" cy="-42.9227" rx="4.00001" ry="4.00001"/>
-<text text-anchor="middle" x="287.912" y="-45.5203" font-family="Bitstream-Vera Sans" font-size="7.00">+ name</text>
-<text text-anchor="middle" x="128.43" y="-59.6886" font-family="Bitstream-Vera Sans" font-size="7.00">+ offer</text>
-</g>
-<!-- userright -->
-<g id="node2" class="node"><title>userright</title>
-<polygon fill="none" stroke="black" points="458,-49.5 458,-98.5 546,-98.5 546,-49.5 458,-49.5"/>
-<text text-anchor="start" x="485" y="-89.3667" font-family="Bitstream-Vera Sans" font-size="7.00">userright</text>
-<polygon fill="none" stroke="black" points="459,-83 459,-85 545,-85 545,-83 459,-83"/>
-<text text-anchor="start" x="461" y="-75.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- user : VARCHAR(100)</text>
-<text text-anchor="start" x="461" y="-64.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- offer : VARCHAR(100)</text>
-<text text-anchor="start" x="461" y="-53.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- default : INTEGER</text>
-</g>
-<!-- apiuser -->
-<g id="node4" class="node"><title>apiuser</title>
-<polygon fill="none" stroke="black" points="309,-89.5 309,-138.5 401,-138.5 401,-89.5 309,-89.5"/>
-<text text-anchor="start" x="341" y="-129.367" font-family="Bitstream-Vera Sans" font-size="7.00">apiuser</text>
-<polygon fill="none" stroke="black" points="310,-123 310,-125 400,-125 400,-123 310,-123"/>
-<text text-anchor="start" x="312" y="-115.867" font-family="Bitstream-Vera Sans" font-size="7.00">- name : VARCHAR(100)</text>
-<text text-anchor="start" x="312" y="-104.867" font-family="Bitstream-Vera Sans" font-size="7.00">- ng_kunde : INTEGER</text>
-<text text-anchor="start" x="312" y="-93.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- apikey : VARCHAR(50)</text>
-</g>
-<!-- job->apiuser -->
-<g id="edge10" class="edge"><title>job->apiuser</title>
-<path fill="none" stroke="black" d="M259.827,-110.763C270.366,-111.121 281.558,-111.502 292.424,-111.872"/>
-<ellipse fill="none" stroke="black" cx="296.657" cy="-112.015" rx="4" ry="4"/>
-<text text-anchor="middle" x="291.453" y="-113.767" font-family="Bitstream-Vera Sans" font-size="7.00">+ name</text>
-<text text-anchor="middle" x="269.028" y="-104.547" font-family="Bitstream-Vera Sans" font-size="7.00">+ user</text>
-</g>
-<!-- apiuser->userright -->
-<g id="edge6" class="edge"><title>apiuser->userright</title>
-<path fill="none" stroke="black" d="M409.32,-99.2191C422.569,-95.6138 436.713,-91.7653 449.858,-88.1883"/>
-<text text-anchor="middle" x="442.223" y="-92.3458" font-family="Bitstream-Vera Sans" font-size="7.00">+ name</text>
-<text text-anchor="middle" x="416.955" y="-90.4616" font-family="Bitstream-Vera Sans" font-size="7.00">+ user</text>
-</g>
-<!-- offer->userright -->
-<g id="edge8" class="edge"><title>offer->userright</title>
-<path fill="none" stroke="black" d="M413.521,-49.924C425.531,-53.192 438.098,-56.6116 449.865,-59.8135"/>
-<text text-anchor="middle" x="440.01" y="-59.2118" font-family="Bitstream-Vera Sans" font-size="7.00">+ name</text>
-<text text-anchor="middle" x="423.375" y="-45.9257" font-family="Bitstream-Vera Sans" font-size="7.00">+ offer</text>
-</g>
-</g>
-</svg>
Binary file doc/images/favicon.png has changed
Binary file doc/images/netzguerilla-3.png has changed
--- a/doc/index.html Wed Apr 25 00:06:27 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
-
- <head>
- <title>Iro · work in progress</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <meta charset="utf-8">
- <meta name="description" content="">
- <meta name="keywords" content="">
- <link rel="shortcut icon" type="image/x-icon" href="images/favicon.png">
- <link rel="stylesheet" href="css/reset.css" type="text/css" media="screen">
- <link rel="stylesheet" href="css/960.css" type="text/css" media="screen">
- <link rel="stylesheet" href="css/style.css" type="text/css" media="screen">
- <!--[if IE]><link rel="stylesheet" href="css/style-ie.css" type="text/css" media="screen" /><![endif] -->
- </head>
- <body>
- <div id="head-container">
- <div id="head">
- <h1 id="logo"><a href="index.html" class="logo" title="Netzguerilla"><span>Netzguerilla</span></a></h1>
- <ul id="menu">
- <li><a href="index.html" class="menu active">Iro</a></li><li><a href="current.html" class="menu">API Documentation</a></li><li><a href="database.html" class="menu">Datenbase Schema</a></li><li><a href="about.html" class="menu">About us</a></li>
- </ul>
- </div>
- </div>
- <div id="content-container">
- <div id="content" class="container_12">
- <div id="main" class="grid_9">
- <h2>Iro</h2>
- <div class="item">
- <h3>What it is all about?</h3>
- <p>
- Iro is a non blocking server for sending a message to a bunsh of recipient. It can handle diffrent types of message typs and can be extended easially.
- It was initially written for sms backend of <a href="http://castorticker.de">castorticker.de</a>. Diffrent backends are supportes by Iro.
- </p>
- </div><div class="item">
- <h3>Supported Backends</h3>
- <p>
- A backend is a provider, that actually sends the message.
- <ul>
- <li><b>smtp</b> with TLS and SSL</li>
- <li><b><a href="http://smstrade.de">smstrade</a></b> all diffrent routes are selectable</li>
- <li><b><a href="http://sipgate.de">sipgate</a></b> fax and sms</li>
- </ul>
- </p>
- </div><div class="item">
- <h3>Installation</h3>
- <p>
- You'll find the installtion instruction under <a href="dev/install.html">dev/install</a>.
- </p>
- <h3>Documentation</h3>
- <p>
- All documentation for extending iro see <a href="dev/index.html">dev</a>
- </p>
- </div>
- </div>
- <div class="clear"></div>
- </div>
- </div>
- <div id="foot-container">
- <div id="foot">
- <p>© 2010-2011 <a href="impressum.html">Netzguerilla.net</a>.</p>
- </div>
- </div>
- </body>
-</html>
\ No newline at end of file
--- a/doc/install.rst Wed Apr 25 00:06:27 2012 +0200
+++ b/doc/install.rst Wed Apr 25 15:06:28 2012 +0200
@@ -1,7 +1,12 @@
Installation of Iro
===================
-Start with downloading the source http://BLAFOO. Install the module via ``setup.py install`` und ran ``iro-install`` afterwards, that will create a sample configuration file named ``iro.conf``. Now update the Configuration file and run ``iro-install install`` afterwards, that will create the Database and Offers for you. After that you have to ref:`adding_user`. After that you can start Iro ``twisted -ny extras/iro.tac``.
+Start with downloading the `source <../index.html#files>`_.
+Afterwards install the module via ``setup.py install`` und ran ``iro-install``. That will create a sample configuration file named ``iro.conf``.
+Update the configuration file and run ``iro-install install`` afterwards. That will create the Database and Offers for you.
+After that you have to :ref:`adding_user`.
+Now you are ready to start Iro ``twisted -ny extras/iro.tac``.
+
.. _adding_user:
--- a/doc/tmpl/index.html Wed Apr 25 00:06:27 2012 +0200
+++ b/doc/tmpl/index.html Wed Apr 25 15:06:28 2012 +0200
@@ -16,7 +16,7 @@
It was initially written for sms backend of <a href="http://castorticker.de">castorticker.de</a>. Diffrent backends are supportes by Iro.
</p>
</div>
- <div class="item">
+ <div class="item" id="backends">
<h3>Supported Backends</h3>
<p>
A backend is a provider, that actually sends the message.
@@ -28,18 +28,38 @@
</p>
</div>
- <div class="item">
+ <div class="item" id="installation">
<h3>Installation</h3>
<p>
- You'll find the installtion instruction under <a href="dev/install.html">dev/install</a>.
+ Just download <a href="files/${code}">${code}</a> see also installtion instruction under <a href="dev/install.html">Installing Iro</a>.
</p>
<h3>Documentation</h3>
<p>
- All documentation for extending iro see <a href="dev/index.html">dev</a>
+ If you want just use iro see <a href="current.html">API Documentation</a>.
+ For extending iro see the <a href="dev/index.html">developer documenation</a>.
+ </p>
+ </div>
+ <div class="item" id="files">
+ <h3>Files</h3>
+ <p>
+ <ul>
+ <li py:for="f in files" value="${f.version}">${f.version} <a href="files/${f.name}">${f.name}</a></li>
+ </ul>
</p>
</div>
- </body>
+ <div class="item">
+ <h3>Planned features for 1.0</h3>
+ <p>
+ <ul>
+ <li>JSON Interface</li>
+ <li>admin interface for creating modifing users</li>
+ <li>heartbeat</li>
+ </ul>
+ For any further ideas, bugs or anything - send at <a href="mailto:iro@netzgerilla.net">iro@netzgerilla.net</a>.
+ </p>
+ </div>
+</body>
</html>
--- a/fabfile.py Wed Apr 25 00:06:27 2012 +0200
+++ b/fabfile.py Wed Apr 25 15:06:28 2012 +0200
@@ -15,6 +15,11 @@
env.deploy_user = 'hefee'
+def hal():
+ env.hosts = ['sandy@hal.netzguerilla.net']
+ env.directory = "iro"
+
+
def prepare_deploy():
local("python setup.py sdist")
@@ -40,3 +45,26 @@
def testserver():
prepare_tests()
virtualenv("python %s/tests/xmlrpc.py"%env.directory)
+
+def cleandoc():
+ local("rm -rf _build/* web/dev/* web/*.html")
+
+def sphinxdoc():
+ local("sphinx-build -b html -d _build/doctrees doc web/dev/")
+
+def createweb():
+ prepare_deploy()
+ cleandoc()
+ local("mv dist/iro-%s.tar.gz web/files/"%__version__)
+ local("python createdoc.py")
+ sphinxdoc()
+ local("tar -czf web.tar.gz web")
+
+def pushweb():
+ put("web.tar.gz","/tmp/")
+ run("tar -czf backup/iro.tar.gz iro/*")
+ run("tar -xzf /tmp/web.tar.gz")
+ run("rm -r iro/*")
+ run("mv web/* %s/"%env.directory)
+ run("rmdir web")
+ run("rm /tmp/web.tar.gz")
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/web/css/960.css Wed Apr 25 15:06:28 2012 +0200
@@ -0,0 +1,1 @@
+.container_12,.container_16{margin-left:auto;margin-right:auto;width:960px}.grid_1,.grid_2,.grid_3,.grid_4,.grid_5,.grid_6,.grid_7,.grid_8,.grid_9,.grid_10,.grid_11,.grid_12,.grid_13,.grid_14,.grid_15,.grid_16{display:inline;float:left;margin-left:10px;margin-right:10px}.push_1,.pull_1,.push_2,.pull_2,.push_3,.pull_3,.push_4,.pull_4,.push_5,.pull_5,.push_6,.pull_6,.push_7,.pull_7,.push_8,.pull_8,.push_9,.pull_9,.push_10,.pull_10,.push_11,.pull_11,.push_12,.pull_12,.push_13,.pull_13,.push_14,.pull_14,.push_15,.pull_15{position:relative}.container_12 .grid_3,.container_16 .grid_4{width:220px}.container_12 .grid_6,.container_16 .grid_8{width:460px}.container_12 .grid_9,.container_16 .grid_12{width:700px}.container_12 .grid_12,.container_16 .grid_16{width:940px}.alpha{margin-left:0}.omega{margin-right:0}.container_12 .grid_1{width:60px}.container_12 .grid_2{width:140px}.container_12 .grid_4{width:300px}.container_12 .grid_5{width:380px}.container_12 .grid_7{width:540px}.container_12 .grid_8{width:620px}.container_12 .grid_10{width:780px}.container_12 .grid_11{width:860px}.container_16 .grid_1{width:40px}.container_16 .grid_2{width:100px}.container_16 .grid_3{width:160px}.container_16 .grid_5{width:280px}.container_16 .grid_6{width:340px}.container_16 .grid_7{width:400px}.container_16 .grid_9{width:520px}.container_16 .grid_10{width:580px}.container_16 .grid_11{width:640px}.container_16 .grid_13{width:760px}.container_16 .grid_14{width:820px}.container_16 .grid_15{width:880px}.container_12 .prefix_3,.container_16 .prefix_4{padding-left:240px}.container_12 .prefix_6,.container_16 .prefix_8{padding-left:480px}.container_12 .prefix_9,.container_16 .prefix_12{padding-left:720px}.container_12 .prefix_1{padding-left:80px}.container_12 .prefix_2{padding-left:160px}.container_12 .prefix_4{padding-left:320px}.container_12 .prefix_5{padding-left:400px}.container_12 .prefix_7{padding-left:560px}.container_12 .prefix_8{padding-left:640px}.container_12 .prefix_10{padding-left:800px}.container_12 .prefix_11{padding-left:880px}.container_16 .prefix_1{padding-left:60px}.container_16 .prefix_2{padding-left:120px}.container_16 .prefix_3{padding-left:180px}.container_16 .prefix_5{padding-left:300px}.container_16 .prefix_6{padding-left:360px}.container_16 .prefix_7{padding-left:420px}.container_16 .prefix_9{padding-left:540px}.container_16 .prefix_10{padding-left:600px}.container_16 .prefix_11{padding-left:660px}.container_16 .prefix_13{padding-left:780px}.container_16 .prefix_14{padding-left:840px}.container_16 .prefix_15{padding-left:900px}.container_12 .suffix_3,.container_16 .suffix_4{padding-right:240px}.container_12 .suffix_6,.container_16 .suffix_8{padding-right:480px}.container_12 .suffix_9,.container_16 .suffix_12{padding-right:720px}.container_12 .suffix_1{padding-right:80px}.container_12 .suffix_2{padding-right:160px}.container_12 .suffix_4{padding-right:320px}.container_12 .suffix_5{padding-right:400px}.container_12 .suffix_7{padding-right:560px}.container_12 .suffix_8{padding-right:640px}.container_12 .suffix_10{padding-right:800px}.container_12 .suffix_11{padding-right:880px}.container_16 .suffix_1{padding-right:60px}.container_16 .suffix_2{padding-right:120px}.container_16 .suffix_3{padding-right:180px}.container_16 .suffix_5{padding-right:300px}.container_16 .suffix_6{padding-right:360px}.container_16 .suffix_7{padding-right:420px}.container_16 .suffix_9{padding-right:540px}.container_16 .suffix_10{padding-right:600px}.container_16 .suffix_11{padding-right:660px}.container_16 .suffix_13{padding-right:780px}.container_16 .suffix_14{padding-right:840px}.container_16 .suffix_15{padding-right:900px}.container_12 .push_3,.container_16 .push_4{left:240px}.container_12 .push_6,.container_16 .push_8{left:480px}.container_12 .push_9,.container_16 .push_12{left:720px}.container_12 .push_1{left:80px}.container_12 .push_2{left:160px}.container_12 .push_4{left:320px}.container_12 .push_5{left:400px}.container_12 .push_7{left:560px}.container_12 .push_8{left:640px}.container_12 .push_10{left:800px}.container_12 .push_11{left:880px}.container_16 .push_1{left:60px}.container_16 .push_2{left:120px}.container_16 .push_3{left:180px}.container_16 .push_5{left:300px}.container_16 .push_6{left:360px}.container_16 .push_7{left:420px}.container_16 .push_9{left:540px}.container_16 .push_10{left:600px}.container_16 .push_11{left:660px}.container_16 .push_13{left:780px}.container_16 .push_14{left:840px}.container_16 .push_15{left:900px}.container_12 .pull_3,.container_16 .pull_4{left:-240px}.container_12 .pull_6,.container_16 .pull_8{left:-480px}.container_12 .pull_9,.container_16 .pull_12{left:-720px}.container_12 .pull_1{left:-80px}.container_12 .pull_2{left:-160px}.container_12 .pull_4{left:-320px}.container_12 .pull_5{left:-400px}.container_12 .pull_7{left:-560px}.container_12 .pull_8{left:-640px}.container_12 .pull_10{left:-800px}.container_12 .pull_11{left:-880px}.container_16 .pull_1{left:-60px}.container_16 .pull_2{left:-120px}.container_16 .pull_3{left:-180px}.container_16 .pull_5{left:-300px}.container_16 .pull_6{left:-360px}.container_16 .pull_7{left:-420px}.container_16 .pull_9{left:-540px}.container_16 .pull_10{left:-600px}.container_16 .pull_11{left:-660px}.container_16 .pull_13{left:-780px}.container_16 .pull_14{left:-840px}.container_16 .pull_15{left:-900px}.clear{clear:both;display:block;overflow:hidden;visibility:hidden;width:0;height:0}.clearfix:after{clear:both;content:' ';display:block;font-size:0;line-height:0;visibility:hidden;width:0;height:0}* html .clearfix,*:first-child+html .clearfix{zoom:1}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/web/css/reset.css Wed Apr 25 15:06:28 2012 +0200
@@ -0,0 +1,1 @@
+html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}:focus{outline:0}ins{text-decoration:none}del{text-decoration:line-through}table{border-collapse:collapse;border-spacing:0}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/web/css/style-ie.css Wed Apr 25 15:06:28 2012 +0200
@@ -0,0 +1,15 @@
+#head #menu {
+
+ width: 750px;
+
+}
+
+ #head #menu li {
+
+ display: inline;
+ position: relative;
+ float: left;
+ margin: 0px;
+ padding: 0px;
+
+ }
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/web/css/style.css Wed Apr 25 15:06:28 2012 +0200
@@ -0,0 +1,975 @@
+
+body {
+
+ background-color: #eee;
+ color: #111;
+ margin: 0px;
+ padding: 0px;
+ font-family: "DroidSans", "Trebuchet MS", sans-serif;
+ line-height: 1.6em;
+ font-size: 1.3em;
+
+}
+
+ #head-container {
+
+ display: block;
+ position: relative;
+ width: 100%;
+ height: 90px;
+
+ background: #111 url(../images/head.png) top left repeat-x;
+
+ }
+
+ #head {
+
+ display: block;
+ position: relative;
+ width: 960px;
+ height: 90px;
+ margin: 0px auto;
+
+ }
+
+ #head #logo {
+
+ display: block;
+ position: absolute;
+ left: 0px;
+ bottom: 10px;
+ width: 200px;
+ height: 70px;
+
+ }
+
+ #head #logo a {
+
+ display: block;
+ position: relative;
+ width: 200px;
+ padding-left: 70px;
+ height: 70px;
+ background: url(../images/netzguerilla-3.png) 0px 0px no-repeat;
+ text-decoration: none;
+
+ }
+
+ #head #logo a span {
+
+ display: none;
+
+ }
+
+ #head #menu {
+
+ display: block;
+ position: absolute;
+ right: 0px;
+ bottom: 0px;
+ margin: 0px;
+ padding: 0px;
+
+ }
+
+ #head #menu li {
+
+ display: inline-block;
+ position: relative;
+ margin: 0px;
+ padding: 0px;
+
+ }
+
+ #head #menu li a {
+
+ display: block;
+ position: relative;
+
+ color: #c03;
+ text-decoration: none;
+ text-transform: uppercase;
+ padding: 0px 7px;
+ background: #333 url(../images/fade-top.png) bottom left repeat-x;
+ margin-left: 5px;
+ font-size: .8em;
+ font-weight: bold;
+
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ -moz-border-radius-topleft: 4px;
+ -moz-border-radius-topright: 4px;
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+
+ }
+
+ #head #menu li a:hover {
+
+ background: #c03 url(../images/fade-top.png) bottom left repeat-x;
+ color: #fff;
+
+ }
+
+ #head #menu li a.active {
+
+ background-color: #eee;
+ background-image: none;
+ color: #000;
+
+ }
+
+ #content-container {
+
+ display: block;
+ position: relative;
+
+ }
+ #content {
+
+ padding: 20px 0px;
+
+ }
+
+ #main {}
+
+ #main h2 {
+
+ display: block;
+ position: relative;
+ color: #a01;
+ font-size: 1.8em;
+ line-height: 1.4em;
+ margin-bottom: 15px;
+ text-shadow: 0px 0px 5px #fff;
+
+ }
+
+ #main h3 {
+
+ display: block;
+ position: relative;
+ color: #b02;
+ font-size: 1.4em;
+ line-height: 1.4em;
+ margin: 10px 0px;
+
+ }
+
+ #main h4 {
+
+ display: block;
+ position: relative;
+ color: #a01;
+ font-size: 1.3em;
+ line-height: 1.4em;
+ margin: 10px 0px;
+
+ }
+
+ #main h5 {
+
+ display: block;
+ position: relative;
+ color: #900;
+ font-size: 1.2em;
+ line-height: 1.4em;
+ margin: 10px 0px;
+
+ }
+
+ #main .item {
+
+ display: block;
+ position: relative;
+
+ padding: 30px 40px;
+
+ border-radius: 15px;
+ -o-border-radius: 15px;
+ -moz-border-radius: 15px;
+ -webkit-border-radius: 15px;
+
+ -moz-box-shadow: 0px 0px 20px #eee;
+ -o-box-shadow: 0px 0px 20px #eee;
+ -webkit-box-shadow: 0px 0px 20px #eee;
+ box-shadow: 0px 0px 20px #eee;
+
+ background-color: #fff;
+ margin-bottom: 20px;
+ font-size: .9em;
+
+ }
+
+ #main .item p {
+
+ margin: 5px 0px;
+
+ }
+
+ #main .item a {
+
+ text-decoration: none;
+ color: #b02;
+
+ }
+
+ #main .item ol {
+
+ list-style-type: none;
+ list-style-position: inside;
+
+ }
+
+ #main .item ol li {
+
+ margin-left: 2em;
+
+ }
+
+ #main .item table {
+
+ width: 100%;
+ margin: 0px;
+
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+
+ -moz-box-shadow: 0px 0px 15px #ccc;
+ -o-box-shadow: 0px 0px 15px #ccc;
+ -webkit-box-shadow: 0px 0px 15px #ccc;
+ box-shadow: 0px 0px 15px #ccc;
+
+
+ }
+
+ #main .item table.docs {
+
+ font-size: .8em;
+
+ }
+
+ #main .item table.docs td {
+
+ font-weight: bold;
+ padding-right: 0.2em;
+ min-width: 120px;
+
+ }
+
+ #main .item table.docs td+td {
+
+ font-weight: normal;
+ padding-right: 0.2em;
+ min-width: 80px;
+
+ }
+
+ #main .item table.docs td+td+td {
+
+ font-weight: normal;
+ padding-right: 0em;
+ white-space: normal;
+
+ }
+
+ #main .item table td {
+
+ background-color: #eee;
+ line-height: 1.7em;
+
+ }
+
+ #main .item table thead tr td {
+
+ background-color: #c03;
+ color: #fff;
+ font-size: .8em;
+ padding: 5px;
+
+ }
+
+ #main .item table tbody tr td {
+
+ color: #222;
+ vertical-align: top;
+
+ }
+
+ #main .item table tbody tr td.content {
+
+ padding: 10px;
+ font-size: .8em;
+
+ }
+
+ #main .item table tbody tr td.content strong.title {
+
+ display: inline-block;
+ position: relative;
+ max-width: 140px;
+ overflow: hidden;
+
+ }
+
+ #main .item table tbody tr td.content span.meta {
+
+ display: block;
+ position: relative;
+ max-width: 140px;
+ overflow: hidden;
+ line-height: 1.4em;
+ font-size: .8em;
+
+ }
+
+ #main .item table tbody tr td.content span.hate {
+
+ display: block;
+ position: relative;
+ line-height: 1.4em;
+ border: 1px solid #ccc;
+ padding: 10px;
+ text-align: justify;
+
+ }
+ #main .item table tbody tr:nth-child(odd) td {
+
+ background-color: #f9f9f9;
+
+ }
+
+ #main .item table tbody tr:nth-child(even) td {
+
+ background-color: #f6f6f6;
+
+ }
+
+ #main .item table tr td:first-child {
+
+ padding-left: 5px;
+
+ }
+
+ #main .item table tr td:last-child {
+
+ padding-right: 5px;
+
+ }
+
+ #main .item table tr td.controls {
+
+ width: 80px;
+ text-align: right;
+
+ }
+
+ #main .item table tr td.controls a {
+
+ display: inline-block;
+ width: 20px;
+ height: 20px;
+ overflow: hidden;
+ text-indent: 30px;
+ background-color: #eee;
+
+ -moz-box-shadow: 0px 0px 5px #ccc;
+ -o-box-shadow: 0px 0px 5px #ccc;
+ -webkit-box-shadow: 0px 0px 5px #ccc;
+ box-shadow: 0px 0px 5px #ccc;
+
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+
+ vertical-align: bottom;
+ margin: 0px 0px 4px 2px;
+
+ background-image: url(../images/icons/bug.png);
+ background-position: center center;
+ background-repeat: no-repeat;
+
+ }
+
+ #main .item table tr td.controls a:hover {
+
+ background-color: #c03;
+
+ }
+
+ #main .item table tr td.controls a.edit {
+
+ background-image: url(../images/icons/pencil.png);
+
+ }
+
+ #main .item table tr td.controls a.delete {
+
+ background-image: url(../images/icons/bin.png);
+
+ }
+
+ #main .item table tr td.controls a.details {
+
+ background-image: url(../images/icons/zoom.png);
+
+ }
+
+ #main .item table tr td.controls a.accept {
+
+ background-image: url(../images/icons/accept.png);
+
+ }
+
+ /* round corners */
+
+ #main .item table thead tr:first-child td:first-child {
+
+ -webkit-border-top-left-radius: 5px;
+ -moz-border-radius-topleft: 5px;
+ border-top-left-radius: 5px;
+
+ }
+
+ #main .item table thead tr:first-child td:last-child {
+
+ -webkit-border-top-right-radius: 5px;
+ -moz-border-radius-topright: 5px;
+ border-top-right-radius: 5px;
+
+ }
+
+ #main .item table tbody tr:last-child td:first-child {
+
+ -webkit-border-bottom-left-radius: 5px;
+ -moz-border-radius-bottomleft: 5px;
+ border-bottom-left-radius: 5px;
+
+ }
+
+ #main .item table tbody tr:last-child td:last-child {
+
+ -webkit-border-bottom-right-radius: 5px;
+ -moz-border-radius-bottomright: 5px;
+ border-bottom-right-radius: 5px;
+
+ }
+
+ #main .item code.copyme {
+
+ display: block;
+ margin: 0px 0px 10px;
+ padding: 10px;
+ line-height: 1em;
+ border: 1px solid #ccc;
+ background-color: #eee;
+
+ }
+
+ /* main view */
+
+ #main .hate-pagination {
+
+ display: block;
+ position: relative;
+ line-height: 1.2em;
+ padding: 10px 0px;
+
+ }
+
+ #main .hate-pagination-back {
+
+ display: block;
+ position: relative;
+ width: 300px;
+ text-align: left;
+ float: left;
+
+ }
+
+ #main .hate-pagination-forward {
+
+ display: block;
+ position: relative;
+ width: 300px;
+ text-align: right;
+ float: right;
+
+ }
+
+ #main .ad-item {
+
+ display: block;
+ position: relative;
+ border-bottom: 1px solid #ccc;
+ line-height: 1.2em;
+ padding: 20px 0px;
+ text-align: center;
+
+ }
+
+ #main .hate-item {
+
+ display: block;
+ position: relative;
+ border-bottom: 1px solid #ccc;
+ line-height: 1.2em;
+ padding: 10px 0px;
+
+ }
+
+ #main .hate-item .hate-item-icon {
+
+ display: block;
+ position: relative;
+ width: 48px;
+ padding: 5px 0px 5px 10px;
+ float: left;
+
+ }
+
+ #main .hate-item .hate-item-main {
+
+ display: block;
+ position: relative;
+ width: 550px;
+ float: right;
+
+ }
+
+ #main .hate-item .hate-item-author {
+
+ display: block;
+ position: relative;
+ font-size: .8em;
+ font-weight: bold;
+ color: #222;
+
+ }
+
+ #main .hate-item .hate-item-author a {
+
+ color: #222;
+
+ }
+
+ #main .hate-item .hate-item-content {
+
+ display: block;
+ position: relative;
+ font-size: .8em;
+ font-weight: normal;
+ color: #444;
+
+ }
+
+ #main .hate-item .hate-item-meta {
+
+ display: block;
+ position: relative;
+ font-size: .6em;
+ color: #666;
+
+ }
+
+ #main .hate-item .hate-item-meta a {
+
+ color: #666;
+
+ }
+
+ #main .hate-item .hate-item-meta a.facepalm {
+
+ display: inline-block;
+ padding-left: 20px;
+ line-height: 16px;
+ background: url(../images/icons/facepalm.png) top left no-repeat;
+
+ }
+
+ #main .hate-item:hover .hate-item-meta a.facepalm {
+
+ background: url(../images/icons/facepalm-hl.png) top left no-repeat;
+
+ }
+
+ #main .hate-item .hate-item-meta span.godwin {
+
+ display: inline-block;
+ padding-left: 20px;
+ line-height: 16px;
+ background: url(../images/icons/godwinbonus.png) top left no-repeat;
+
+ }
+
+ #main .hate-item:hover {
+
+ background-color: #fce;
+
+ }
+
+ #main .hate-item:hover a {
+
+ color: #c03;
+
+ }
+
+ #main .hate-detail {
+
+ display: block;
+ position: relative;
+ border-bottom: 1px solid #ccc;
+ line-height: 1.2em;
+ padding: 10px 0px;
+
+ }
+
+ #main .hate-detail .hate-item-icon {
+
+ display: block;
+ position: relative;
+ width: 48px;
+ padding: 5px 0px;
+ float: left;
+
+ }
+
+ #main .hate-detail .hate-item-main {
+
+ display: block;
+ position: relative;
+
+ }
+
+ #main .hate-detail .hate-item-author {
+
+ display: block;
+ position: relative;
+ font-size: 1.2em;
+ line-height: 50px;
+ font-weight: bold;
+ color: #222;
+ width: 560px;
+ float: right;
+
+ }
+
+ #main .hate-detail .hate-item-content {
+
+ display: block;
+ position: relative;
+ font-size: 1.2em;
+ line-height: 1.4em;
+ font-weight: normal;
+ color: #444;
+ padding: 10px 0px;
+
+ }
+
+ #main .hate-detail .hate-item-meta {
+
+ display: block;
+ position: relative;
+ font-size: .8em;
+ color: #666;
+
+ }
+
+ #main .hate-detail .hate-item-meta a {
+
+ color: #666;
+
+ }
+
+ #main .hate-detail .hate-item-meta a.facepalm {
+
+ display: inline-block;
+ padding-left: 20px;
+ line-height: 16px;
+ background: url(../images/icons/facepalm.png) top left no-repeat;
+
+ }
+
+ #main .hate-detail:hover .hate-item-meta a.facepalm {
+
+ background: url(../images/icons/facepalm-hl.png) top left no-repeat;
+
+ }
+
+ #main .hate-detail .hate-item-meta span.godwin {
+
+ display: inline-block;
+ padding-left: 20px;
+ line-height: 16px;
+ background: url(../images/icons/godwinbonus.png) top left no-repeat;
+
+ }
+
+
+ /* special stuff */
+
+ #main span.redacted {
+
+ display: inline-block;
+ background-color: #333;
+ color: #c03;
+ line-height: 1.1em;
+ padding: 0px 5px;
+
+ }
+
+ #main code.apikey {
+
+ font-size: 1.1em;
+ background-color: #a01;
+ color: #fff;
+ display: inline-block;
+ padding: 0px 5px;
+
+ }
+
+ #main a.bookmarklet {
+
+ font-size: 1.4em;
+ background-color: #ccc;
+ color: #666;
+ border: 1px solid #666;
+ display: inline-block;
+ padding: 5px 10px;
+
+ -webkit-border-radius: 10px;
+ -moz-border-radius: 10px;
+ border-radius: 10px;
+
+ }
+
+ #main form input[type=text],
+ #main form input[type=password] {
+
+ display: block;
+ position: relative;
+ border: 1px solid #999;
+ font-size: .9em;
+ padding: 3px;
+
+ border-radius: 5px;
+ -o-border-radius: 5px;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+
+ }
+
+ #main form input[type=submit] {
+
+ display: block;
+ position: relative;
+ border: 1px solid #ccc;
+ color: #111;
+ font-size: .9em;
+ padding: 2px;
+
+ border-radius: 5px;
+ -o-border-radius: 5px;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+
+
+ }
+
+ #main form span.input {
+
+ display: inline-block;
+ position: relative;
+ border: 1px solid #999;
+ font-size: .9em;
+ padding: 0px 2px;
+ background-color: #fff;
+ border-radius: 5px;
+ -o-border-radius: 5px;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+
+
+ }
+
+ #main form span.input input[type=text] {
+
+ display: inline-block;
+ position: relative;
+ border-width: 0px;
+ font-size: 1em;
+ padding: 0px;
+ background-color: #fff;
+
+ }
+
+ #main form span.input input[type=text].right {
+
+ text-align: right;
+
+ }
+
+ #main form span.input input.size-2 {
+
+ width: 1.5em !important;
+
+ }
+
+ #main form span.input input.size-4 {
+
+ width: 2.5em !important;
+
+ }
+
+ #main form label {
+
+ display: block;
+ position: relative;
+ font-size: .75em;
+ color: #666;
+
+ }
+
+ #main form textarea {
+
+ display: block;
+ position: relative;
+ border: 1px solid #999;
+ font-size: .9em;
+ font-family: sans-serif;
+ padding: 3px;
+
+ border-radius: 5px;
+ -o-border-radius: 5px;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+
+ }
+
+
+ #main form fieldset {
+
+ border: 1px solid #ccc;
+ padding: 5px;
+ margin: 5px 0px;
+
+ }
+
+ #main form fieldset legend {
+
+ font-size: .75em;
+ color: #666;
+
+ }
+
+ #sidebar {}
+
+ #sidebar h3 {
+
+ display: block;
+ position: relative;
+ color: #fff;
+ font-size: 1.2em;
+ line-height: 1.4em;
+ margin: 5px 0px;
+
+ }
+
+ #sidebar .item {
+
+ display: block;
+ position: relative;
+
+ padding: 0px 10px;
+
+ border-radius: 10px;
+ -o-border-radius: 10px;
+ -moz-border-radius: 10px;
+ -webkit-border-radius: 10px;
+
+ -moz-box-shadow: 0px 0px 20px #eee;
+ -o-box-shadow: 0px 0px 20px #eee;
+ -webkit-box-shadow: 0px 0px 20px #eee;
+ box-shadow: 0px 0px 20px #eee;
+
+ background-color: #333;
+ margin-bottom: 20px;
+ font-size: .8em;
+
+ }
+
+ #sidebar .center {
+
+ text-align: center;
+
+ }
+
+ #sidebar .counter-item .content {
+
+ font-size: 3em;
+ color: #c03;
+ font-weight: bold;
+ line-height: 1em;
+ padding-bottom: 5px;
+ text-align: center;
+
+ }
+
+ #sidebar .submenu-item {
+
+ background-color: #ddd;
+
+ }
+
+ #sidebar .submenu-item ul {}
+
+ #sidebar .submenu-item ul li {}
+
+ #sidebar .submenu-item ul li+li {
+
+ border-top: 1px dotted #999;
+
+ }
+
+ #sidebar .submenu-item ul a {
+
+ color: #c03;
+ text-decoration: none;
+ text-transform: uppercase;
+
+ }
+
+ #sidebar .submenu-item ul a:hover {
+
+ color: #a01;
+
+ }
+
+ #foot-container {
+
+ display: block;
+ position: relative;
+ background: #222;
+ color: #ddd;
+
+ }
+
+ #foot {
+
+ display: block;
+ position: relative;
+ width: 960px;
+ margin: 0px auto;
+ padding: 20px;
+ font-size: .8em;
+
+ }
+
+ #foot a {
+
+ text-decoration: none;
+ color: #c03;
+
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/web/images/db-schema.svg Wed Apr 25 15:06:28 2012 +0200
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.26.3 (20100126.1600)
+ -->
+<!-- Title: G Pages: 1 -->
+<svg width="468pt" height="126pt"
+ viewBox="0.00 0.00 468.00 125.74" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph1" class="graph" transform="scale(0.83274 0.83274) rotate(0) translate(4 147)">
+<title>G</title>
+<polygon fill="white" stroke="white" points="-4,5 -4,-147 559,-147 559,5 -4,5"/>
+<!-- message -->
+<g id="node1" class="node"><title>message</title>
+<polygon fill="none" stroke="black" points="8,-18.5 8,-133.5 112,-133.5 112,-18.5 8,-18.5"/>
+<text text-anchor="start" x="43.5" y="-124.367" font-family="Bitstream-Vera Sans" font-size="7.00">message</text>
+<polygon fill="none" stroke="black" points="9,-118 9,-120 111,-120 111,-118 9,-118"/>
+<text text-anchor="start" x="11" y="-110.867" font-family="Bitstream-Vera Sans" font-size="7.00">- id : INTEGER</text>
+<text text-anchor="start" x="11" y="-99.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- recipient : VARCHAR(100)</text>
+<text text-anchor="start" x="11" y="-88.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- isBilled : BOOLEAN</text>
+<text text-anchor="start" x="11" y="-77.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- date : DATETIME</text>
+<text text-anchor="start" x="11" y="-66.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- price : NUMERIC(8, 4)</text>
+<text text-anchor="start" x="11" y="-55.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- count : INTEGER</text>
+<text text-anchor="start" x="11" y="-44.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- exID : VARCHAR(100)</text>
+<text text-anchor="start" x="11" y="-33.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- job : VARCHAR(40)</text>
+<text text-anchor="start" x="11" y="-22.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- offer : VARCHAR(100)</text>
+</g>
+<!-- job -->
+<g id="node3" class="node"><title>job</title>
+<polygon fill="none" stroke="black" points="164.5,-79 164.5,-139 251.5,-139 251.5,-79 164.5,-79"/>
+<text text-anchor="start" x="202.5" y="-130.367" font-family="Bitstream-Vera Sans" font-size="7.00">job</text>
+<polygon fill="none" stroke="black" points="166,-124 166,-126 251,-126 251,-124 166,-124"/>
+<text text-anchor="start" x="168" y="-116.867" font-family="Bitstream-Vera Sans" font-size="7.00">- id : INTEGER</text>
+<text text-anchor="start" x="168" y="-105.867" font-family="Bitstream-Vera Sans" font-size="7.00">- info : VARCHAR(100)</text>
+<text text-anchor="start" x="168" y="-94.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- status : VARCHAR(7)</text>
+<text text-anchor="start" x="168" y="-83.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- user : VARCHAR(100)</text>
+</g>
+<!-- message->job -->
+<g id="edge2" class="edge"><title>message->job</title>
+<path fill="none" stroke="black" d="M120.197,-89.4224C129.482,-91.4926 139.067,-93.6298 148.34,-95.6974"/>
+<ellipse fill="none" stroke="black" cx="152.488" cy="-96.6224" rx="4.00001" ry="4.00001"/>
+<text text-anchor="middle" x="146.627" y="-97.3455" font-family="Bitstream-Vera Sans" font-size="7.00">+ id</text>
+<text text-anchor="middle" x="129.963" y="-84.9699" font-family="Bitstream-Vera Sans" font-size="7.00">+ job</text>
+</g>
+<!-- offer -->
+<g id="node5" class="node"><title>offer</title>
+<polygon fill="none" stroke="black" points="304.5,-4 304.5,-64 405.5,-64 405.5,-4 304.5,-4"/>
+<text text-anchor="start" x="347" y="-55.3667" font-family="Bitstream-Vera Sans" font-size="7.00">offer</text>
+<polygon fill="none" stroke="black" points="306,-49 306,-51 405,-51 405,-49 306,-49"/>
+<text text-anchor="start" x="308" y="-41.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- name : VARCHAR(100)</text>
+<text text-anchor="start" x="308" y="-30.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- provider : VARCHAR(100)</text>
+<text text-anchor="start" x="308" y="-19.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- route : VARCHAR(100)</text>
+<text text-anchor="start" x="308" y="-8.86667" font-family="Bitstream-Vera Sans" font-size="7.00">- typ : VARCHAR(100)</text>
+</g>
+<!-- message->offer -->
+<g id="edge4" class="edge"><title>message->offer</title>
+<path fill="none" stroke="black" d="M120.053,-67.45C168.906,-60.4948 237.788,-50.6879 288.339,-43.4907"/>
+<ellipse fill="none" stroke="black" cx="292.329" cy="-42.9227" rx="4.00001" ry="4.00001"/>
+<text text-anchor="middle" x="287.912" y="-45.5203" font-family="Bitstream-Vera Sans" font-size="7.00">+ name</text>
+<text text-anchor="middle" x="128.43" y="-59.6886" font-family="Bitstream-Vera Sans" font-size="7.00">+ offer</text>
+</g>
+<!-- userright -->
+<g id="node2" class="node"><title>userright</title>
+<polygon fill="none" stroke="black" points="458,-49.5 458,-98.5 546,-98.5 546,-49.5 458,-49.5"/>
+<text text-anchor="start" x="485" y="-89.3667" font-family="Bitstream-Vera Sans" font-size="7.00">userright</text>
+<polygon fill="none" stroke="black" points="459,-83 459,-85 545,-85 545,-83 459,-83"/>
+<text text-anchor="start" x="461" y="-75.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- user : VARCHAR(100)</text>
+<text text-anchor="start" x="461" y="-64.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- offer : VARCHAR(100)</text>
+<text text-anchor="start" x="461" y="-53.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- default : INTEGER</text>
+</g>
+<!-- apiuser -->
+<g id="node4" class="node"><title>apiuser</title>
+<polygon fill="none" stroke="black" points="309,-89.5 309,-138.5 401,-138.5 401,-89.5 309,-89.5"/>
+<text text-anchor="start" x="341" y="-129.367" font-family="Bitstream-Vera Sans" font-size="7.00">apiuser</text>
+<polygon fill="none" stroke="black" points="310,-123 310,-125 400,-125 400,-123 310,-123"/>
+<text text-anchor="start" x="312" y="-115.867" font-family="Bitstream-Vera Sans" font-size="7.00">- name : VARCHAR(100)</text>
+<text text-anchor="start" x="312" y="-104.867" font-family="Bitstream-Vera Sans" font-size="7.00">- ng_kunde : INTEGER</text>
+<text text-anchor="start" x="312" y="-93.8667" font-family="Bitstream-Vera Sans" font-size="7.00">- apikey : VARCHAR(50)</text>
+</g>
+<!-- job->apiuser -->
+<g id="edge10" class="edge"><title>job->apiuser</title>
+<path fill="none" stroke="black" d="M259.827,-110.763C270.366,-111.121 281.558,-111.502 292.424,-111.872"/>
+<ellipse fill="none" stroke="black" cx="296.657" cy="-112.015" rx="4" ry="4"/>
+<text text-anchor="middle" x="291.453" y="-113.767" font-family="Bitstream-Vera Sans" font-size="7.00">+ name</text>
+<text text-anchor="middle" x="269.028" y="-104.547" font-family="Bitstream-Vera Sans" font-size="7.00">+ user</text>
+</g>
+<!-- apiuser->userright -->
+<g id="edge8" class="edge"><title>apiuser->userright</title>
+<path fill="none" stroke="black" d="M409.32,-99.2191C422.569,-95.6138 436.713,-91.7653 449.858,-88.1883"/>
+<text text-anchor="middle" x="442.223" y="-92.3458" font-family="Bitstream-Vera Sans" font-size="7.00">+ name</text>
+<text text-anchor="middle" x="416.955" y="-90.4616" font-family="Bitstream-Vera Sans" font-size="7.00">+ user</text>
+</g>
+<!-- offer->userright -->
+<g id="edge6" class="edge"><title>offer->userright</title>
+<path fill="none" stroke="black" d="M413.521,-49.924C425.531,-53.192 438.098,-56.6116 449.865,-59.8135"/>
+<text text-anchor="middle" x="440.01" y="-59.2118" font-family="Bitstream-Vera Sans" font-size="7.00">+ name</text>
+<text text-anchor="middle" x="423.375" y="-45.9257" font-family="Bitstream-Vera Sans" font-size="7.00">+ offer</text>
+</g>
+</g>
+</svg>
Binary file web/images/favicon.png has changed
Binary file web/images/netzguerilla-3.png has changed