From ac37198e3f13d3ff1d3603d196fcb19d0670319d Mon Sep 17 00:00:00 2001 From: Ross Poulton Date: Fri, 4 Feb 2011 23:13:37 +0000 Subject: [PATCH 01/13] Add first round of proper documentation. Mostly taken from the README at this stage. --- MANIFEST.in | 1 + README | 177 +-------- docs/Makefile | 130 +++++++ docs/doctrees/api.doctree | Bin 0 -> 3598 bytes docs/doctrees/configuration.doctree | Bin 0 -> 14731 bytes docs/doctrees/custom_fields.doctree | Bin 0 -> 4787 bytes docs/doctrees/environment.pickle | Bin 0 -> 16453 bytes docs/doctrees/index.doctree | Bin 0 -> 16644 bytes docs/doctrees/install.doctree | Bin 0 -> 21602 bytes docs/doctrees/settings.doctree | Bin 0 -> 6141 bytes docs/doctrees/spam.doctree | Bin 0 -> 10109 bytes docs/html/.buildinfo | 4 + docs/html/_sources/api.txt | 6 + docs/html/_sources/configuration.txt | 42 +++ docs/html/_sources/custom_fields.txt | 10 + docs/html/_sources/index.txt | 72 ++++ docs/html/_sources/install.txt | 78 ++++ docs/html/_sources/settings.txt | 20 + docs/html/_sources/spam.txt | 31 ++ docs/html/_static/basic.css | 528 +++++++++++++++++++++++++++ docs/html/_static/default.css | 256 +++++++++++++ docs/html/_static/doctools.js | 247 +++++++++++++ docs/html/_static/file.png | Bin 0 -> 392 bytes docs/html/_static/jquery.js | 154 ++++++++ docs/html/_static/minus.png | Bin 0 -> 199 bytes docs/html/_static/plus.png | Bin 0 -> 199 bytes docs/html/_static/pygments.css | 62 ++++ docs/html/_static/searchtools.js | 518 ++++++++++++++++++++++++++ docs/html/_static/sidebar.js | 148 ++++++++ docs/html/_static/underscore.js | 16 + docs/html/api.html | 101 +++++ docs/html/configuration.html | 144 ++++++++ docs/html/custom_fields.html | 113 ++++++ docs/html/genindex.html | 90 +++++ docs/html/index.html | 195 ++++++++++ docs/html/install.html | 190 ++++++++++ docs/html/objects.inv | Bin 0 -> 211 bytes docs/html/search.html | 96 +++++ docs/html/searchindex.js | 1 + docs/html/settings.html | 133 +++++++ docs/html/spam.html | 143 ++++++++ docs/source/api.rst | 6 + docs/source/conf.py | 216 +++++++++++ docs/source/configuration.rst | 42 +++ docs/source/custom_fields.rst | 10 + docs/source/index.rst | 72 ++++ docs/source/install.rst | 78 ++++ docs/source/settings.rst | 20 + docs/source/spam.rst | 31 ++ 49 files changed, 4008 insertions(+), 173 deletions(-) create mode 100644 docs/Makefile create mode 100644 docs/doctrees/api.doctree create mode 100644 docs/doctrees/configuration.doctree create mode 100644 docs/doctrees/custom_fields.doctree create mode 100644 docs/doctrees/environment.pickle create mode 100644 docs/doctrees/index.doctree create mode 100644 docs/doctrees/install.doctree create mode 100644 docs/doctrees/settings.doctree create mode 100644 docs/doctrees/spam.doctree create mode 100644 docs/html/.buildinfo create mode 100644 docs/html/_sources/api.txt create mode 100644 docs/html/_sources/configuration.txt create mode 100644 docs/html/_sources/custom_fields.txt create mode 100644 docs/html/_sources/index.txt create mode 100644 docs/html/_sources/install.txt create mode 100644 docs/html/_sources/settings.txt create mode 100644 docs/html/_sources/spam.txt create mode 100644 docs/html/_static/basic.css create mode 100644 docs/html/_static/default.css create mode 100644 docs/html/_static/doctools.js create mode 100644 docs/html/_static/file.png create mode 100644 docs/html/_static/jquery.js create mode 100644 docs/html/_static/minus.png create mode 100644 docs/html/_static/plus.png create mode 100644 docs/html/_static/pygments.css create mode 100644 docs/html/_static/searchtools.js create mode 100644 docs/html/_static/sidebar.js create mode 100644 docs/html/_static/underscore.js create mode 100644 docs/html/api.html create mode 100644 docs/html/configuration.html create mode 100644 docs/html/custom_fields.html create mode 100644 docs/html/genindex.html create mode 100644 docs/html/index.html create mode 100644 docs/html/install.html create mode 100644 docs/html/objects.inv create mode 100644 docs/html/search.html create mode 100644 docs/html/searchindex.js create mode 100644 docs/html/settings.html create mode 100644 docs/html/spam.html create mode 100644 docs/source/api.rst create mode 100644 docs/source/conf.py create mode 100644 docs/source/configuration.rst create mode 100644 docs/source/custom_fields.rst create mode 100644 docs/source/index.rst create mode 100644 docs/source/install.rst create mode 100644 docs/source/settings.rst create mode 100644 docs/source/spam.rst diff --git a/MANIFEST.in b/MANIFEST.in index 080d4f54..ea315679 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -7,3 +7,4 @@ recursive-include helpdesk/htdocs * recursive-include helpdesk/locale *.po *.mo recursive-include helpdesk/templates * recursive-include helpdesk/fixtures *.json +recursive-include docs/html * diff --git a/README b/README index 799802d5..727100ba 100644 --- a/README +++ b/README @@ -7,6 +7,8 @@ company who originally created it. As of January 2011 the name has been changed to reflect what it really is: a Django-powered ticket tracker with contributors reaching far beyond Jutda. +Complete documentation is available in the docs/ directory, or online at http://django-helpdesk.readthedocs.org/. + ######################### 0. Table of Contents ######################### @@ -15,10 +17,6 @@ contributors reaching far beyond Jutda. 2. Dependencies (pre-flight checklist) 3. Upgrading from previous versions 4. Installation -5. Initial Configuration -6. Spam filtering -7. API Usage -8. Custom fields ######################### 1. Licensing @@ -77,174 +75,7 @@ the current version of django-helpdesk working. 4. Installation ######################### -1. Try using 'pip install django-helpdesk'. If that fails, download and - place 'helpdesk' in your Python path. I use /var/django, others may use - /usr/lib/python2.4/site-packages/ or a similar path. +``pip install django-helpdesk`` -2. In your projects' settings.py file, add these lines to the INSTALLED_APPS - setting: - 'helpdesk', - 'django.contrib.admin', +For further installation information see docs/install.html and docs/configuration.html -3. In your projects' urls.py file, add this line: - (r'helpdesk/', include('helpdesk.urls')), - - You can substitute 'helpdesk/' for something else, eg 'support/' or even ''. - -4. Ensure the admin line is un-hashed in urls.py: - # Uncomment this for admin: - from django.contrib import admin - admin.autodiscover() - (r'^admin/(.*)', admin.site.root), - - If you use helpdesk at the top of your domain (at /), ensure the admin - line comes BEFORE the helpdesk line. - -5. In your project directory (NOT the helpdesk directory) run - ./manage.py syncdb - to create database tables - -6. Inside your MEDIA_ROOT folder, create a new folder called 'helpdesk' and - copy the contents of helpdesk/htdocs/ into it. Alternatively, create a - symlink: - ln -s /path/to/helpdesk/htdocs /path/to/media/helpdesk - - This application assumes all helpdesk media will be accessible at - http://MEDIA_URL/helpdesk/ - -7. Inside your MEDIA_ROOT folder, inside the 'helpdesk' folder, is a folder - called 'attachments'. Ensure your web server software can write to this - folder - something like this should do the trick: - - chown www-data:www-data attachments/; chmod 700 attachments - (substitute www-data for the user / group that your web server runs - as, eg 'apache' or 'httpd') - - If all else fails ensure all users can write to it: - - chmod 777 attachments/ - - This is NOT recommended, especially if you're on a shared server. - -8. Ensure that your 'attachments' folder has directory listings turned off, - to ensure users don't download files that they are not specifically linked - to from their tickets. - - If you are using Apache, put a .htaccess file in the 'attachments' folder - with the following content: - - Options -Indexes - - You will also have to make sure that .htaccess files aren't being ignored. - - Ideally, accessing http://MEDIA_URL/helpdesk/attachments/ will give you a - 403 access denied error. - -######################### -5. Initial Configuration -######################### - -1. Visit http://yoursite/admin/ and add a Helpdesk Queue. If you wish, - enter your POP3 or IMAP server details. - - IMPORTANT NOTE: Any tickets created via POP3 or IMAP mailboxes will DELETE - the original e-mail from the mail server. - -2. Visit http://yoursite/helpdesk/ (or other path as defined in your urls.py) - -3. If you wish to automatically create tickets from the contents of an e-mail - inbox, set up a cronjob to run scripts/get_email.py on a regular basis. - - Don't forget to set the relevant Django environment variables in your - crontab: - - */5 * * * * /path/to/helpdesksite/manage.py get_email - - This will run the e-mail import every 5 minutes - - IMPORTANT NOTE: Any tickets created via POP3 or IMAP mailboxes will DELETE - the original e-mail from the mail server. - -4. If you wish to automatically escalate tickets based on their age, set up - a cronjob to run scripts/escalate_tickets.py on a regular basis: - - 0 * * * * /path/to/helpdesksite/manage.py escalate_tickets - - This will run the escalation process hourly, using the 'Escalation Hours' - setting for each queue to determine which tickets to escalate. - -5. If you wish to exclude some days (eg, weekends) from escalation calculations, enter - the dates manually via the Admin, or setup a cronjob to run - the create_escalation_exclusions management command on a regular basis: - - 0 0 * * 0 /path/to/helpdesksite/manage.py create_escalation_exclusions --days saturday,sunday --escalate-verbosely - - This will, on a weekly basis, create exclusions for the coming weekend. - -6. Log in to your Django admin screen, and go to the 'Sites' module. If the - site 'example.com' is listed, click it and update the details so they are - relevant for your website. - -7. If you do not send mail directly from your web server (eg, you need to - use an SMTP server) then edit your settings.py file so it contains your - mail server details: - - EMAIL_HOST = 'XXXXX' - EMAIL_HOST_USER = 'YYYYYY@ZZZZ.PPP' - EMAIL_HOST_PASSWORD = '123456' - -You're now up and running! - -######################### -7. Spam filtering -######################### - -django-helpdesk includes a copy of `akismet.py' by Michael Foord, which lets -incoming ticket submissions be automatically checked against either the -Akismet or TypePad Anti-Spam services. - -To enable this functionality, sign up for an API key with one of the following -serviceS: - -Akismet: http://akismet.com/ -Save your API key in settings.py as AKISMET_API_KEY -Note: Akismet is only free for personal use. Paid commercial accounts are -available. - -TypePad AntiSpam: http://antispam.typepad.com/ -Save your API key in settings.py as TYPEPAD_ANTISPAM_API_KEY -This service is free to use, within their terms and conditions. - -If you have either of these settings enabled, the spam filtering will be -done automatically. If you have *both* settings configured, TypePad will -be used instead of Akismet. - -Example configuration in settings.py: - -TYPEPAD_ANTISPAM_API_KEY = 'abc123' - -######################### -7. API Usage -######################### - -django-helpdesk includes an API accessible via HTTP POST requests, allowing -you to create and alter tickets from 3rd party software and systems. - -For usage instructions and command syntax, see the file -templates/helpdesk/api_help.html, or visit http://helpdesk/api/help/. - -######################### -8. Custom fields -######################### - -As of February 2011, django-helpdesk supports custom fields on the Ticket -model. These fields are created by using the Django administration tool, and -are shown on both the public and staff submission forms. - -You can use most Django field types including text, integer, boolean, and list. - -The demo at http://demo.jutdahelpdesk.com contains an example of each type of -custom field, including a mix of mandatory and optional fields. - -Note that this feature is still in beta - it needs quite a bit of testing and -no doubt has bugs! diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 00000000..25b1a397 --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,130 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = . + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest + +help: + @echo "Please use \`make ' where 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 " 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/django-helpdesk.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/django-helpdesk.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/django-helpdesk" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/django-helpdesk" + @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." + +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." diff --git a/docs/doctrees/api.doctree b/docs/doctrees/api.doctree new file mode 100644 index 0000000000000000000000000000000000000000..1b1abe2a88cbd64b3d4c8b8a7479e367b331a138 GIT binary patch literal 3598 zcmd5eYSs-Ma7f?UP}o!otRh zX=ExArtTh7k=Z)$y6hZJmb`nBYFUs9+s}pJJta?_JvuQl5#1JKJ+&l7l4IMdXX9{H zSTD$9o^BaBV2X~hu|;T=`H|=vo+){j=JP-s;itlwpoe(1HrHuBEVRa%zEOn^1@CQ9 zJrbePf!oddT68cdtm-OdGi8NuY@jXAE$^Zkhb)c^&zHPkPSepbSW5#~OAgk8q1jNz zNra>LK${Par*1^(&a3kU$ox>rhmpAs)`y^u&;(5bJ#g}ca+0Qpzh5*SMvGh*Ssa4S zI$wOY0kWD>rJ|{oG0ic6P4I1+gHTPNY-nTo=pE5(+ci)TL<19=H2;U1b z4~cm}7(&ub?S&g7gRkAeWNiyLU+36-YQ^T$9Gg#fY@T*( zKEttjy<>CFh|L@1ssGR9o{4fTm;5YOE|=&vRk@@q%8ezrTv19C<+RdX;e5o4Gh=m8 zU0+v{$O~1Py1%BM*F>RJ1?a(f%Aq`^}E_6-PTc+NVdf-?9ka!v_XGKNnPn7B`x`Gro<{vu6dccEi`(fzCs9O)fL zf9NbFa@7#72HnD;az@qz{r~+?3DV+{Zv#AL8rl$^R$ zs^>xSqUhjX-~!NItAosRl}?4`tVMHMovd?-d9W-l% zwXj3OuinvE;C-1DSyaCzNZ^}wzEkmCC2ua$!4Va{Yi9tyYWOvPaREXr9bv}Eu@CZ! z(f3~4qJ6p>Vkw4=LMQw>IyTgpRSLsSENr)-bg${|dy`*JH82ng7nE%~N{82g}Hew8mkab~(+8*Fh%g0K6VfN|q7%p@-MVSpRrgKqxcby4?H1V@f4Viy zD>tHukVl&EXB>SSxq`}K=vHSzV)(PTPmU9ez}1K|%=mMgw0AJ*`A)t3dBAiU-J!BC z;D|Be`HM7F*zVHR{3WUnw>v?98N1_bXNmYLRI64l8IbT*+V4lP2{4gBf)y`cYf%k1 zILCqU27evKRI@?HUymaz`5Vg^&d=8of0L$YZ%Y2H zT#$zh)U@+sYS1NqSMu-W3Aj1h;~%QQV-wULJ! V{(GDMQ8iWfHSo`p|5bDv{|0L@Gsyq| literal 0 HcmV?d00001 diff --git a/docs/doctrees/configuration.doctree b/docs/doctrees/configuration.doctree new file mode 100644 index 0000000000000000000000000000000000000000..6eea4a5c63f7f0b3f3a16c7dc10f38eeb516ade1 GIT binary patch literal 14731 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 literal 0 HcmV?d00001 diff --git a/docs/doctrees/index.doctree b/docs/doctrees/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..7711edf65716f5f36384b3d2ed58e349b0bac978 GIT binary patch literal 16644 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 literal 0 HcmV?d00001 diff --git a/docs/doctrees/install.doctree b/docs/doctrees/install.doctree new file mode 100644 index 0000000000000000000000000000000000000000..a4a6dba9f494821bd9a9f057ac569d7b9298beb4 GIT binary patch literal 21602 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 GTmJ`_&ZNEo literal 0 HcmV?d00001 diff --git a/docs/doctrees/settings.doctree b/docs/doctrees/settings.doctree new file mode 100644 index 0000000000000000000000000000000000000000..428938b2bf5f6f7e61b8a6624e07d030067c8255 GIT binary patch literal 6141 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%0Aw-A>?bl zJAlTU%~i?jwmq9ag$1x)=;YF$eZ&L{)=Fx2y#@lg3XMZ@HASw_s{$`;w&;Jkl5g)t z8AK=6-U9sWg!N0$6=i?Y)~ZcY&EVIdwLi+6?KAf*{U4WH%RzPe2P3%-_puD&+Ucyo z$N2W-g?u@_ZYkoP`4? a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.field-list ul { + padding-left: 1em; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + clear: both; + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.field-list td, table.field-list th { + border: 0 !important; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, .highlighted { + background-color: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.refcount { + color: #060; +} + +.optional { + font-size: 1.3em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +tt.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +tt.descclassname { + background-color: transparent; +} + +tt.xref, a tt { + background-color: transparent; + font-weight: bold; +} + +h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} diff --git a/docs/html/_static/default.css b/docs/html/_static/default.css new file mode 100644 index 00000000..21f3f509 --- /dev/null +++ b/docs/html/_static/default.css @@ -0,0 +1,256 @@ +/* + * default.css_t + * ~~~~~~~~~~~~~ + * + * Sphinx stylesheet -- default theme. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +@import url("basic.css"); + +/* -- page layout ----------------------------------------------------------- */ + +body { + font-family: sans-serif; + font-size: 100%; + background-color: #11303d; + color: #000; + margin: 0; + padding: 0; +} + +div.document { + background-color: #1c4e63; +} + +div.documentwrapper { + float: left; + width: 100%; +} + +div.bodywrapper { + margin: 0 0 0 230px; +} + +div.body { + background-color: #ffffff; + color: #000000; + padding: 0 20px 30px 20px; +} + +div.footer { + color: #ffffff; + width: 100%; + padding: 9px 0 9px 0; + text-align: center; + font-size: 75%; +} + +div.footer a { + color: #ffffff; + text-decoration: underline; +} + +div.related { + background-color: #133f52; + line-height: 30px; + color: #ffffff; +} + +div.related a { + color: #ffffff; +} + +div.sphinxsidebar { +} + +div.sphinxsidebar h3 { + font-family: 'Trebuchet MS', sans-serif; + color: #ffffff; + font-size: 1.4em; + font-weight: normal; + margin: 0; + padding: 0; +} + +div.sphinxsidebar h3 a { + color: #ffffff; +} + +div.sphinxsidebar h4 { + font-family: 'Trebuchet MS', sans-serif; + color: #ffffff; + font-size: 1.3em; + font-weight: normal; + margin: 5px 0 0 0; + padding: 0; +} + +div.sphinxsidebar p { + color: #ffffff; +} + +div.sphinxsidebar p.topless { + margin: 5px 10px 10px 10px; +} + +div.sphinxsidebar ul { + margin: 10px; + padding: 0; + color: #ffffff; +} + +div.sphinxsidebar a { + color: #98dbcc; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + + + +/* -- hyperlink styles ------------------------------------------------------ */ + +a { + color: #355f7c; + text-decoration: none; +} + +a:visited { + color: #355f7c; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + + + +/* -- body styles ----------------------------------------------------------- */ + +div.body h1, +div.body h2, +div.body h3, +div.body h4, +div.body h5, +div.body h6 { + font-family: 'Trebuchet MS', sans-serif; + background-color: #f2f2f2; + font-weight: normal; + color: #20435c; + border-bottom: 1px solid #ccc; + margin: 20px -20px 10px -20px; + padding: 3px 0 3px 10px; +} + +div.body h1 { margin-top: 0; font-size: 200%; } +div.body h2 { font-size: 160%; } +div.body h3 { font-size: 140%; } +div.body h4 { font-size: 120%; } +div.body h5 { font-size: 110%; } +div.body h6 { font-size: 100%; } + +a.headerlink { + color: #c60f0f; + font-size: 0.8em; + padding: 0 4px 0 4px; + text-decoration: none; +} + +a.headerlink:hover { + background-color: #c60f0f; + color: white; +} + +div.body p, div.body dd, div.body li { + text-align: justify; + line-height: 130%; +} + +div.admonition p.admonition-title + p { + display: inline; +} + +div.admonition p { + margin-bottom: 5px; +} + +div.admonition pre { + margin-bottom: 5px; +} + +div.admonition ul, div.admonition ol { + margin-bottom: 5px; +} + +div.note { + background-color: #eee; + border: 1px solid #ccc; +} + +div.seealso { + background-color: #ffc; + border: 1px solid #ff6; +} + +div.topic { + background-color: #eee; +} + +div.warning { + background-color: #ffe4e4; + border: 1px solid #f66; +} + +p.admonition-title { + display: inline; +} + +p.admonition-title:after { + content: ":"; +} + +pre { + padding: 5px; + background-color: #eeffcc; + color: #333333; + line-height: 120%; + border: 1px solid #ac9; + border-left: none; + border-right: none; +} + +tt { + background-color: #ecf0f3; + padding: 0 1px 0 1px; + font-size: 0.95em; +} + +th { + background-color: #ede; +} + +.warning tt { + background: #efc2c2; +} + +.note tt { + background: #d6d6d6; +} + +.viewcode-back { + font-family: sans-serif; +} + +div.viewcode-block:target { + background-color: #f4debf; + border-top: 1px solid #ac9; + border-bottom: 1px solid #ac9; +} \ No newline at end of file diff --git a/docs/html/_static/doctools.js b/docs/html/_static/doctools.js new file mode 100644 index 00000000..8b9bd2c0 --- /dev/null +++ b/docs/html/_static/doctools.js @@ -0,0 +1,247 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Sphinx JavaScript utilties for all documentation. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + +/** + * make the code below compatible with browsers without + * an installed firebug like debugger +if (!window.console || !console.firebug) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", + "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", + "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {}; +} + */ + +/** + * small helper function to urldecode strings + */ +jQuery.urldecode = function(x) { + return decodeURIComponent(x).replace(/\+/g, ' '); +} + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s == 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * small function to check if an array contains + * a given item. + */ +jQuery.contains = function(arr, item) { + for (var i = 0; i < arr.length; i++) { + if (arr[i] == item) + return true; + } + return false; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node) { + if (node.nodeType == 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { + var span = document.createElement("span"); + span.className = className; + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this); + }); + } + } + return this.each(function() { + highlight(this); + }); +}; + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated == 'undefined') + return string; + return (typeof translated == 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated == 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('') + .appendTo($('.sidebar .this-page-menu')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) == 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('.sidebar .this-page-menu li.highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this == '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); diff --git a/docs/html/_static/file.png b/docs/html/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..d18082e397e7e54f20721af768c4c2983258f1b4 GIT binary patch literal 392 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP$HyOL$D9)yc9|lc|nKf<9@eUiWd>3GuTC!a5vdfWYEazjncPj5ZQX%+1 zt8B*4=d)!cdDz4wr^#OMYfqGz$1LDFF>|#>*O?AGil(WEs?wLLy{Gj2J_@opDm%`dlax3yA*@*N$G&*ukFv>P8+2CBWO(qz zD0k1@kN>hhb1_6`&wrCswzINE(evt-5C1B^STi2@PmdKI;Vst0PQB6!2kdN literal 0 HcmV?d00001 diff --git a/docs/html/_static/jquery.js b/docs/html/_static/jquery.js new file mode 100644 index 00000000..7c243080 --- /dev/null +++ b/docs/html/_static/jquery.js @@ -0,0 +1,154 @@ +/*! + * jQuery JavaScript Library v1.4.2 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Sat Feb 13 22:33:48 2010 -0500 + */ +(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, +Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& +(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, +a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== +"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, +function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b
a"; +var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, +parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= +false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= +s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, +applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; +else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, +a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== +w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, +cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= +c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); +a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, +function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); +k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), +C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B=0){a.type= +e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& +f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; +if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", +e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, +"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, +d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, +e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); +t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| +g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, +CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, +g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, +text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, +setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return hl[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= +h[3];l=0;for(m=h.length;l=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== +"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, +h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& +q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML=""; +if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="

";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); +(function(){var g=s.createElement("div");g.innerHTML="
";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: +function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f0)for(var j=d;j0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= +{},i;if(f&&a.length){e=0;for(var o=a.length;e-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== +"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", +d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? +a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== +1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/"},F={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div
","
"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, +""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); +return this}else{e=0;for(var j=d.length;e0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", +""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]===""&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= +c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? +c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= +function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= +Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, +"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= +a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= +a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=//gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== +"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("
").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, +serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), +function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, +global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& +e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? +"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== +false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= +false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", +c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| +d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); +g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== +1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== +"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; +if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== +"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| +c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; +this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= +this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, +e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b
"; +a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); +c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, +d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- +f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": +"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in +e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); diff --git a/docs/html/_static/minus.png b/docs/html/_static/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..da1c5620d10c047525a467a425abe9ff5269cfc2 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1SHkYJtzcHoCO|{#XvD(5N2eUHAey{$X?>< z>&kweokM_|(Po{+Q=kw>iEBiObAE1aYF-J$w=>iB1I2R$WLpMkF=>bh=@O1TaS?83{1OVknK< z>&kweokM`jkU7Va11Q8%;u=xnoS&PUnpeW`?aZ|OK(QcC7sn8Z%gHvy&v=;Q4jejg zV8NnAO`-4Z@2~&zopr02WF_WB>pF literal 0 HcmV?d00001 diff --git a/docs/html/_static/pygments.css b/docs/html/_static/pygments.css new file mode 100644 index 00000000..1a14f2ae --- /dev/null +++ b/docs/html/_static/pygments.css @@ -0,0 +1,62 @@ +.highlight .hll { background-color: #ffffcc } +.highlight { background: #eeffcc; } +.highlight .c { color: #408090; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #007020; font-weight: bold } /* Keyword */ +.highlight .o { color: #666666 } /* Operator */ +.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #007020 } /* Comment.Preproc */ +.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #FF0000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.highlight .go { color: #303030 } /* Generic.Output */ +.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0040D0 } /* Generic.Traceback */ +.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #007020 } /* Keyword.Pseudo */ +.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #902000 } /* Keyword.Type */ +.highlight .m { color: #208050 } /* Literal.Number */ +.highlight .s { color: #4070a0 } /* Literal.String */ +.highlight .na { color: #4070a0 } /* Name.Attribute */ +.highlight .nb { color: #007020 } /* Name.Builtin */ +.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ +.highlight .no { color: #60add5 } /* Name.Constant */ +.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ +.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #007020 } /* Name.Exception */ +.highlight .nf { color: #06287e } /* Name.Function */ +.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ +.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #bb60d5 } /* Name.Variable */ +.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mf { color: #208050 } /* Literal.Number.Float */ +.highlight .mh { color: #208050 } /* Literal.Number.Hex */ +.highlight .mi { color: #208050 } /* Literal.Number.Integer */ +.highlight .mo { color: #208050 } /* Literal.Number.Oct */ +.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ +.highlight .sc { color: #4070a0 } /* Literal.String.Char */ +.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ +.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ +.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ +.highlight .sx { color: #c65d09 } /* Literal.String.Other */ +.highlight .sr { color: #235388 } /* Literal.String.Regex */ +.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ +.highlight .ss { color: #517918 } /* Literal.String.Symbol */ +.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ +.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ +.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ +.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/docs/html/_static/searchtools.js b/docs/html/_static/searchtools.js new file mode 100644 index 00000000..dae92b5e --- /dev/null +++ b/docs/html/_static/searchtools.js @@ -0,0 +1,518 @@ +/* + * searchtools.js + * ~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilties for the full-text search. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words, hlwords is the list of normal, unstemmed + * words. the first one is used to find the occurance, the + * latter for highlighting it. + */ + +jQuery.makeSearchSummary = function(text, keywords, hlwords) { + var textLower = text.toLowerCase(); + var start = 0; + $.each(keywords, function() { + var i = textLower.indexOf(this.toLowerCase()); + if (i > -1) + start = i; + }); + start = Math.max(start - 120, 0); + var excerpt = ((start > 0) ? '...' : '') + + $.trim(text.substr(start, 240)) + + ((start + 240 - text.length) ? '...' : ''); + var rv = $('
').text(excerpt); + $.each(hlwords, function() { + rv = rv.highlightText(this, 'highlighted'); + }); + return rv; +} + +/** + * Porter Stemmer + */ +var PorterStemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + + +/** + * Search Module + */ +var Search = { + + _index : null, + _queued_query : null, + _pulse_status : -1, + + init : function() { + var params = $.getQueryParameters(); + if (params.q) { + var query = params.q[0]; + $('input[name="q"]')[0].value = query; + this.performSearch(query); + } + }, + + loadIndex : function(url) { + $.ajax({type: "GET", url: url, data: null, success: null, + dataType: "script", cache: true}); + }, + + setIndex : function(index) { + var q; + this._index = index; + if ((q = this._queued_query) !== null) { + this._queued_query = null; + Search.query(q); + } + }, + + hasIndex : function() { + return this._index !== null; + }, + + deferQuery : function(query) { + this._queued_query = query; + }, + + stopPulse : function() { + this._pulse_status = 0; + }, + + startPulse : function() { + if (this._pulse_status >= 0) + return; + function pulse() { + Search._pulse_status = (Search._pulse_status + 1) % 4; + var dotString = ''; + for (var i = 0; i < Search._pulse_status; i++) + dotString += '.'; + Search.dots.text(dotString); + if (Search._pulse_status > -1) + window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something + */ + performSearch : function(query) { + // create the required interface elements + this.out = $('#search-results'); + this.title = $('

' + _('Searching') + '

').appendTo(this.out); + this.dots = $('').appendTo(this.title); + this.status = $('

').appendTo(this.out); + this.output = $(' @@ -44,10 +44,10 @@
-
-

django-helpdesk Ticket API

+
+

Ticket API

django-helpdesk includes an API accessible via HTTP POST requests, allowing you to create and alter tickets from 3rd party software and systems.

-

For usage instructions and command syntax, see the file templates/helpdesk/api_help.html, or visit http://helpdesk/api/help/.

+

For usage instructions and command syntax, see the file templates/helpdesk/api_help.html, or visit http://helpdesk/api/help/.

@@ -58,7 +58,7 @@

Previous topic

django-helpdesk custom fields

+ title="previous chapter">Custom Fields

This Page

diff --git a/docs/html/configuration.html b/docs/html/configuration.html index 7cf4d9c4..3171f7d8 100644 --- a/docs/html/configuration.html +++ b/docs/html/configuration.html @@ -7,7 +7,7 @@ - django-helpdesk Configuration — django-helpdesk v0.1 documentation + Configuration — django-helpdesk v0.1 documentation - + @@ -34,7 +34,7 @@ index
  • - next |
  • -
    -

    django-helpdesk Configuration

    +
    +

    Configuration

    Before django-helpdesk will be much use, you need to do some basic configuration. Most of this is done via the Django admin screens.

    1. Visit http://yoursite/admin/ and add a Helpdesk Queue. If you wish, enter your POP3 or IMAP server details.

      @@ -98,7 +98,7 @@ title="previous chapter">Installation

      Next topic

      django-helpdesk settings

      + title="next chapter">Settings

      This Page

      @@ -48,8 +48,8 @@
      -
      -

      django-helpdesk custom fields

      +
      +

      Custom Fields

      As of February 2011, django-helpdesk supports custom fields on the Ticket model. These fields are created by using the Django administration tool, and are shown on both the public and staff submission forms.

      You can use most Django field types including text, integer, boolean, and list.

      The demo at http://demo.jutdahelpdesk.com contains an example of each type of custom field, including a mix of mandatory and optional fields.

      @@ -64,10 +64,10 @@

      Previous topic

      django-helpdesk spam filtering

      + title="previous chapter">Spam Filtering

      Next topic

      django-helpdesk Ticket API

      + title="next chapter">Ticket API

      This Page

      diff --git a/docs/html/index.html b/docs/html/index.html index f4a53f70..736d5aa1 100644 --- a/docs/html/index.html +++ b/docs/html/index.html @@ -23,7 +23,7 @@ - +
    2. - next |
    3. django-helpdesk v0.1 documentation »
    4. @@ -88,7 +88,7 @@

    Licensing

    -

    django-helpdesk is released under the BSD license, however it packages 3rd party applications which may be using a different license. See the files LICENSE and LICENSE.3RDPARTY for more details.

    +

    django-helpdesk is released under the BSD license, however it packages 3rd party applications which may be using a different license. More details can be found in the license documentation.

    @@ -151,8 +157,8 @@

    Next topic

    -

    Installation

    +

    License

    This Page

    diff --git a/docs/html/install.html b/docs/html/install.html index b70a47d8..5d9adb34 100644 --- a/docs/html/install.html +++ b/docs/html/install.html @@ -23,8 +23,8 @@ - - + +
  • - next |
  • - previous |
  • django-helpdesk v0.1 documentation »
  • @@ -59,7 +59,7 @@

    GIT Checkout (Cutting Edge)

    -

    git clone git://github.com/rossp/django-helpdesk.git

    +

    If you’re planning on editing the code or just want to get whatever is the latest and greatest, you can clone the official Git repository with git clone git://github.com/rossp/django-helpdesk.git

    Copy the helpdesk folder into your PYTHONPATH.

    @@ -94,28 +94,29 @@
  • Inside your MEDIA_ROOT folder, create a new folder called helpdesk and copy the contents of helpdesk/htdocs into it. Alternatively, create a symlink:

    -

    ln -s /path/to/helpdesk/htdocs /path/to/media/helpdesk

    +
    ln -s /path/to/helpdesk/htdocs /path/to/media/helpdesk
    +
    +
  • Inside your MEDIA_ROOT folder, inside the helpdesk folder, is a folder called attachments. Ensure your web server software can write to this folder - something like this should do the trick:

    -
        chown www-data:www-data attachments/
    -    chmod 700 attachments
    -
    -(substitute www-data for the user / group that your web server runs as, eg 'apache' or 'httpd')
    -
    -If all else fails ensure all users can write to it:
    -
    -``chmod 777 attachments/``
    -
    -This is NOT recommended, especially if you're on a shared server.
    +
    chown www-data:www-data attachments/
    +chmod 700 attachments
    +

    (substitute www-data for the user / group that your web server runs as, eg ‘apache’ or ‘httpd’)

    +

    If all else fails ensure all users can write to it:

    +
    chmod 777 attachments/
    +
    +

    This is NOT recommended, especially if you’re on a shared server.

  • Ensure that your attachments folder has directory listings turned off, to ensure users don’t download files that they are not specifically linked to from their tickets.

    If you are using Apache, put a .htaccess file in the attachments folder with the following content:

    -

    Options -Indexes

    -

    You will also have to make sure that .htaccess files aren’t being ignored.

    -

    Ideally, accessing http://MEDIA_URL/helpdesk/attachments/ will give you a 403 access denied error.

    +
    Options -Indexes
    +
    +
  • +

    You will also have to make sure that .htaccess files aren’t being ignored.

    +

    Ideally, accessing http://MEDIA_URL/helpdesk/attachments/ will give you a 403 access denied error.

    @@ -140,11 +141,11 @@ This is NOT recommended, especially if you're on a shared server.

    Previous topic

    -

    Welcome to django-helpdesk’s documentation!

    +

    License

    Next topic

    django-helpdesk Configuration

    + title="next chapter">Configuration

    This Page

    diff --git a/docs/html/license.html b/docs/html/license.html new file mode 100644 index 00000000..a24b7816 --- /dev/null +++ b/docs/html/license.html @@ -0,0 +1,233 @@ + + + + + + + + + License — django-helpdesk v0.1 documentation + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    License

    +

    django-helpdesk is released under the terms of the BSD license. You must agree to these terms before installing or using django-helpdesk.:

    +
    Copyright (c) 2008, Ross Poulton (Trading as Jutda)
    +All rights reserved.
    +
    +Redistribution and use in source and binary forms, with or without modification,
    +are permitted provided that the following conditions are met:
    +
    +    1. Redistributions of source code must retain the above copyright
    +       notice, this list of conditions and the following disclaimer.
    +
    +    2. Redistributions in binary form must reproduce the above copyright
    +       notice, this list of conditions and the following disclaimer in the
    +       documentation and/or other materials provided with the distribution.
    +
    +    3. Neither the name of Ross Poulton, Jutda, nor the names of any
    +       of its contributors may be used to endorse or promote products
    +       derived from this software without specific prior written permission.
    +
    +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
    +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
    +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
    +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
    +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    +
    +EXCEPTIONS
    +
    +This software is distributed with some third-party software which is not distributed under the above license. See LICENSE.3RDPARTY for further details.
    +
    +

    django-helpdesk includes 3rd party software. The licenses for these +applications are included below.

    +
    +

    License for jQuery & jQuery UI

    +
    +
    ::
    +

    Copyright (c) 2007 John Resig, http://jquery.com/

    +

    Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +“Software”), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions:

    +

    The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software.

    +

    THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

    +
    +
    +
    +
    +

    License for jQuery UI ‘Smoothness’ theme

    +
    +
    ::
    +
    +
    /*
    +
    +
    +
    +

    */

    +
    +
    +
    +
    +

    License for akismet.py

    +
    +
    ::
    +

    Copyright (c) 2003-2009, Michael Foord +All rights reserved. +E-mail : fuzzyman AT voidspace DOT org DOT uk

    +

    Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met:

    +
    +
      +
    • Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer.
    • +
    • Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following +disclaimer in the documentation and/or other materials provided +with the distribution.
    • +
    • Neither the name of Michael Foord nor the name of Voidspace +may be used to endorse or promote products derived from this +software without specific prior written permission.
    • +
    +
    +

    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +“AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

    +
    +
    +
    +
    + + +
    +
    +
    +
    +
    +

    Table Of Contents

    + + +

    Previous topic

    +

    Welcome to django-helpdesk’s documentation!

    +

    Next topic

    +

    Installation

    +

    This Page

    + + + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/html/searchindex.js b/docs/html/searchindex.js index da67ad61..d72db79a 100644 --- a/docs/html/searchindex.js +++ b/docs/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({objects:{},terms:{all:[0,4],email_on_ticket_assign:1,forget:5,celebr:4,akismet_api_kei:2,code:[0,4],follow:[0,1,4,2],edg:4,categori:0,depend:0,send:5,under:0,antispam:[0,2],everi:5,faq:0,ticket:[0,2,3,4,5,6],brows:0,relev:5,contenttyp:4,administr:6,list:[5,6,4],"try":[0,4],quick:0,helpdesk_default_set:[0,1],sign:2,design:0,download:4,click:5,index:4,knowledgebas:0,access:[0,3,4],delet:5,"new":[4,1],"public":6,whatev:5,themselv:[0,1],gener:0,let:2,path:[5,4],userset:1,cronjob:5,queue:[0,5],chang:1,via:[0,3,5,4],modul:5,put:4,"boolean":6,foord:2,instal:[0,4],httpd:4,from:[0,3,5,4],visit:[3,5],api_help:3,websit:5,doubt:6,call:4,recommend:4,type:6,more:0,peopl:0,known:0,compani:0,jutdahelpdesk:[0,6],account:2,hour:5,setup:5,work:[0,4],can:[0,6,4,1],overrid:1,want:[4,1],tar:4,give:4,process:5,smtp:5,templat:[0,3],unassign:0,escalate_ticket:5,sundai:5,multipl:0,comfort:0,zzzz:5,write:4,how:[0,4],instead:2,email_host:5,product:0,clone:4,befor:5,mai:[0,2],data:4,github:4,happi:5,exclud:5,mainten:4,environ:5,allow:3,suggest:4,exclus:5,oper:1,help:[0,3,1],enter:5,through:0,still:6,entiti:1,group:4,mail:5,alter:3,email_host_password:5,them:[0,1],thei:[0,5,4,1],python:[0,4],dai:5,auth:4,now:5,term:2,edit:[5,4],drop:4,februari:6,each:[5,6],updat:5,michael:2,saturdai:5,crontab:5,contrib:4,extract:4,variabl:5,shown:6,"3rd":[0,3],content:[0,5,4],insid:4,free:2,small:0,base:5,dictionari:1,releas:0,org:4,basi:5,filter:[0,2],turn:4,isn:4,assign:0,south:4,origin:5,softwar:[3,4],directli:5,media_root:4,date:5,instruct:3,alreadi:4,done:[5,2],installed_app:4,open:0,differ:0,licens:0,system:3,attach:4,akismet:[0,2],helpdesksit:5,option:[6,4,1],especi:4,tool:6,copi:[4,2],haven:4,project:[0,4],htaccess:4,minut:5,ani:5,packag:[0,4],have:[4,2],tabl:4,need:[0,5,6,4],django:[0,1,2,3,4,5,6],built:1,note:[5,6,2],mix:6,ideal:4,which:[0,1,5,2],parti:[0,3],sure:4,who:0,paid:2,most:[5,6],beta:6,regular:5,bsd:0,don:[5,4],url:[5,4],request:[0,3],face:0,deni:4,determin:5,someth:4,show:0,text:[6,4],verbos:5,syntax:3,session:4,staff:[0,6],yoursit:5,onli:2,hourli:5,helpdesk:[0,1,2,3,4,5,6],configur:[0,1,5,2],apach:4,should:4,busi:0,folder:4,media_url:4,get:[0,4],pypi:4,pop3:5,cannot:0,requir:4,enabl:2,integr:0,contain:[5,6],view:0,respond:0,set:[0,1,5,4,2],see:[0,3],mandatori:6,fail:4,close:0,xxxxx:5,statu:0,databas:[0,4],review:0,won:0,jutda:0,"import":5,email:0,altern:4,create_escalation_exclus:5,kei:[0,2],screen:5,mailbox:5,use_email_as_submitt:1,come:5,email_host_us:5,admin:[0,5,4],howev:[0,4],against:2,etc:0,context:0,share:4,com:[0,5,6,4,2],chmod:4,anti:2,reciev:0,quit:6,been:0,beer:4,much:5,basic:[0,5],get_email:5,both:[6,2],search:0,wish:5,imap:5,typepad_antispam_api_kei:2,look:0,servic:2,commerci:2,trick:4,defin:5,calcul:5,email_on_ticket_chang:1,dashboard:0,error:4,demo:[0,6],site:[5,4],pip:[0,4],"3rdparti":0,incom:2,welcom:0,media:[0,4],make:4,member:0,html:3,document:0,difficult:4,http:[0,2,3,4,5,6],abc123:2,capabl:0,user:[0,4,1],extern:0,yyyyyi:5,off:4,markup:4,person:2,exampl:[0,5,6,2],command:[3,5],thi:[0,5,6,4,2],model:[0,6],latest:4,just:[0,4],weekli:5,email_on_ticket_apichang:1,web:[0,5,4],cut:4,also:4,add:[5,4],els:4,save:[0,2],applic:0,read:0,know:4,bit:[6,4],like:4,specif:4,manual:5,resolv:0,integ:6,server:[5,4],api:[0,3,2],either:2,manag:[0,5,4],www:4,some:[0,5],intern:0,sampl:2,syncdb:4,per:1,substitut:4,condit:2,run:[5,4],usag:3,symlink:4,post:3,about:4,rossp:4,pythonpath:4,within:[0,2],automat:[1,5,2],ppp:5,inbox:5,formerli:0,ensur:4,your:[0,1,5,4,2],tickets_per_pag:1,git:4,log:[0,5],wai:1,spam:[0,2],aren:4,support:[0,6],submit:0,custom:[0,6],avail:2,start:0,includ:[0,3,6,4,2],submiss:[6,2],"function":2,form:6,continu:0,link:4,newer:0,login_view_ticketlist:1,line:4,"true":1,bug:6,"default":1,checkout:4,displai:4,below:1,featur:[0,6],creat:[6,3,5,4,1],exist:[0,4],file:[0,3,5,4,1],typepad:[0,2],doe:0,check:2,when:1,detail:[0,5],field:[0,6],other:0,futur:0,test:6,you:[0,1,2,3,4,5,6],weekend:5,escal:5,directori:4,htdoc:4,chown:4,ignor:4},objtypes:{},titles:["Welcome to django-helpdesk’s documentation!","django-helpdesk settings","django-helpdesk spam filtering","django-helpdesk Ticket API","Installation","django-helpdesk Configuration","django-helpdesk custom fields"],objnames:{},filenames:["index","settings","spam","api","install","configuration","custom_fields"]}) \ No newline at end of file +Search.setIndex({objects:{},terms:{all:[0,5,1],email_on_ticket_assign:3,forget:6,celebr:5,akismet_api_kei:2,code:[0,5,1],follow:[0,5,1,3],edg:5,content:[0,6,5],procur:1,depend:0,send:6,must:1,under:[0,1],aris:1,antispam:[0,2],neglig:1,merchant:1,sourc:1,everi:6,faq:0,ticket:[0,2,4,5,6,7],brows:0,relev:6,contenttyp:5,administr:7,list:[7,6,5,1],"try":[0,5],quick:0,helpdesk_default_set:[0,3],impli:1,direct:1,sign:2,design:0,download:5,further:1,click:6,even:1,index:5,knowledgebas:0,access:[0,4,5],hourli:6,"new":[5,3],"public":7,whatev:[6,5],themselv:[0,3],deriv:1,filamentgroup:1,disclaim:1,met:1,let:2,path:[6,5],userset:3,cronjob:6,queue:[0,6],prior:1,permit:1,action:1,chang:3,via:[0,4,6,5],modul:6,releas:[0,1],"boolean":7,foord:[1,2],instal:[0,5,1],httpd:5,from:[6,0,4,5,1],visit:[4,6,1],two:2,api_help:4,websit:6,doubt:7,call:5,recommend:5,type:7,more:0,peopl:0,notic:1,particular:1,known:0,compani:0,herebi:1,jutdahelpdesk:[0,7],account:2,hour:6,setup:6,work:[0,5],can:[0,7,5,3],purpos:1,overrid:3,claim:1,jehl:1,want:[5,3],tar:5,give:5,process:6,share:5,templat:[0,4],unassign:0,escalate_ticket:6,sundai:6,multipl:0,comfort:0,zzzz:6,write:5,how:[0,5],instead:2,filament:1,updat:6,product:[0,1],clone:5,befor:[6,1],date:6,associ:1,chown:5,github:5,third:1,grant:1,django:[0,1,2,3,4,5,6,7],caus:1,cannot:0,environ:6,allow:4,suggest:5,exclus:6,furnish:1,oper:3,help:[0,4,3],enter:6,offici:5,trade:1,through:0,still:7,entiti:3,group:[5,1],fit:1,tort:1,mail:[6,1],alter:4,email_host_password:6,them:[0,3],good:1,thei:[0,6,5,3],python:[0,5],dai:6,auth:5,interrupt:1,now:6,nor:1,term:[1,2],name:1,edit:[6,5],drop:5,februari:7,css:1,each:[6,7],found:0,smtp:6,email_host:6,michael:[1,2],saturdai:6,crontab:6,contributor:1,redistribut:1,connect:1,extract:5,event:1,special:1,out:1,variabl:6,shown:7,agre:1,"3rd":[0,4,1],profit:1,publish:1,categori:0,insid:5,free:[1,2],small:0,base:6,theori:1,dictionari:3,put:5,org:[5,1],basi:6,filter:[0,2],turn:5,isn:5,retain:1,assign:0,south:5,origin:6,softwar:[4,5,1],directli:6,media_root:5,restrict:1,mai:[0,1,2],instruct:4,alreadi:5,done:[6,2],owner:1,installed_app:5,open:0,differ:0,start:0,data:[5,1],licens:[0,1],system:4,attach:5,akismet:[0,1,2],john:1,helpdesksit:6,option:[7,5,3],especi:5,tool:7,copi:[5,1,2],checkout:5,holder:1,haven:5,kind:1,provid:1,poulton:1,structur:1,jqueri:[0,1],htaccess:5,minut:6,ani:[6,1],packag:[0,5],have:[5,2],tabl:5,need:[0,6,7,5],exclud:6,sell:1,built:3,note:[6,7,2],mix:7,ideal:5,exampl:[0,6,7,2],which:[0,2,6,1,3],sure:5,distribut:1,shall:1,who:0,paid:2,most:[6,7],beta:7,regular:6,plan:5,sublicens:1,bsd:[0,1],themerol:1,charg:1,don:[6,5],url:[6,5],request:[0,4],face:0,deni:5,determin:6,review:0,dot:1,show:0,text:[7,5],verbos:6,syntax:4,session:5,permiss:1,staff:[0,7],yoursit:6,onli:2,copyright:1,delet:6,helpdesk:[0,1,2,3,4,5,6,7],configur:[0,2,6,3],apach:5,should:5,theme:[0,1],busi:[0,1],folder:5,media_url:5,custom:[0,7],get:[0,5],express:1,pypi:5,pop3:6,mainten:5,liabl:1,requir:5,enabl:2,"default":3,integr:0,contain:[6,7],scott:1,view:0,respond:0,set:[0,2,6,5,3],see:[0,4,1],mandatori:7,fail:5,close:0,xxxxx:6,subject:1,project:[0,5,1],statu:0,databas:[0,5],someth:5,written:1,won:0,jutda:[0,1],fuzzyman:1,"import":6,neither:1,email:0,altern:5,create_escalation_exclus:6,kei:[0,2],screen:[6,1],mailbox:6,use_email_as_submitt:3,come:6,email_host_us:6,admin:[0,6,5],howev:[0,5,1],incident:1,against:2,etc:0,context:0,gener:[0,1],modif:1,com:[0,1,2,5,6,7],chmod:5,anti:2,damag:1,reciev:0,quit:7,modifi:1,been:0,whom:1,beer:5,much:6,basic:[0,6],get_email:6,both:[7,2],voidspac:1,search:0,imap:6,present:1,typepad_antispam_api_kei:2,look:0,servic:[1,2],commerci:2,trick:5,defin:6,calcul:6,email_on_ticket_chang:3,dashboard:0,abov:1,error:5,demo:[0,7],site:[6,5],typepad:[0,2],"3rdparti":1,contract:1,substanti:1,incom:2,welcom:0,author:1,parti:[0,4,1],make:5,member:0,binari:1,html:4,document:[0,1],difficult:5,http:[0,1,2,4,5,6,7],abc123:2,capabl:0,user:[0,5,3],extern:0,yyyyyi:6,noninfring:1,off:5,markup:5,person:[1,2],without:1,command:[4,6],greatest:5,thi:[0,1,2,5,6,7],model:[0,7],latest:5,just:[0,5],obtain:1,reserv:1,weekli:6,email_on_ticket_apichang:3,web:[0,6,5],cut:5,also:5,except:1,add:[6,5],els:5,save:[0,2],ross:1,applic:[0,1],advis:1,read:0,know:5,bit:[7,5],loss:1,like:5,specif:[5,1],resig:1,manual:6,resolv:0,integ:7,server:[6,5],api:[0,4,2],either:2,exemplari:1,manag:[0,6,5],www:[5,1],right:1,deal:1,some:[0,6,1],intern:0,sampl:2,syncdb:5,indirect:1,per:3,substitut:[5,1],condit:[1,2],reproduc:1,run:[6,5],liabil:1,usag:4,symlink:5,promot:1,repositori:5,post:4,about:5,materi:1,endors:1,rossp:5,pythonpath:5,within:[0,2],automat:[2,6,3],warranti:1,ppp:6,inbox:6,formerli:0,contrib:5,your:[0,2,6,5,3],merg:1,tickets_per_pag:3,git:5,log:[0,6],wai:[1,3],spam:[0,2],aren:5,support:[0,7],limit:1,submit:0,happi:6,avail:2,strict:1,includ:[0,1,2,4,5,7],submiss:[7,2],"function":2,media:[0,5],form:[7,1],continu:0,link:5,newer:0,login_view_ticketlist:3,line:5,"true":3,bug:7,possibl:1,whether:1,wish:6,smooth:[0,1],displai:5,below:[1,3],ensur:5,otherwis:1,featur:[0,7],creat:[7,4,6,5,3],exist:[0,5],file:[6,4,5,1,3],pip:[0,5],doe:0,check:2,when:3,detail:[0,6,1],field:[0,7],other:[0,1],futur:0,test:7,you:[0,1,2,3,4,5,6,7],consequenti:1,weekend:6,escal:6,directori:5,htdoc:5,portion:1,ignor:5},objtypes:{},titles:["Welcome to django-helpdesk’s documentation!","License","Spam Filtering","Settings","Ticket API","Installation","Configuration","Custom Fields"],objnames:{},filenames:["index","license","spam","settings","api","install","configuration","custom_fields"]}) \ No newline at end of file diff --git a/docs/html/settings.html b/docs/html/settings.html index b338fa18..cd385744 100644 --- a/docs/html/settings.html +++ b/docs/html/settings.html @@ -7,7 +7,7 @@ - django-helpdesk settings — django-helpdesk v0.1 documentation + Settings — django-helpdesk v0.1 documentation - - + +