Merge lp:~flo-fuchs/postorius/testing into lp:postorius
- testing
- Merge into trunk
Status: | Superseded |
---|---|
Proposed branch: | lp:~flo-fuchs/postorius/testing |
Merge into: | lp:postorius |
Diff against target: |
24038 lines (+17385/-5858) 82 files modified
.bzrignore (+8/-3) dev-requirements.txt (+4/-0) setup.py (+20/-16) src/postorius/__init__.py (+1/-1) src/postorius/auth/decorators.py (+1/-1) src/postorius/context_processors.py (+1/-1) src/postorius/doc/_build/html/.buildinfo (+0/-4) src/postorius/doc/_build/html/_sources/acknowledgements.txt (+0/-37) src/postorius/doc/_build/html/_sources/development.txt (+0/-224) src/postorius/doc/_build/html/_sources/index.txt (+0/-12) src/postorius/doc/_build/html/_sources/license.txt (+0/-34) src/postorius/doc/_build/html/_sources/news.txt (+0/-68) src/postorius/doc/_build/html/_sources/setup.txt (+0/-177) src/postorius/doc/_build/html/_sources/testing.txt (+0/-6) src/postorius/doc/_build/html/_sources/using.txt (+0/-32) src/postorius/doc/_build/html/_static/basic.css (+0/-540) src/postorius/doc/_build/html/_static/default.css (+0/-256) src/postorius/doc/_build/html/_static/doctools.js (+0/-247) src/postorius/doc/_build/html/_static/jquery.js (+0/-154) src/postorius/doc/_build/html/_static/pygments.css (+0/-62) src/postorius/doc/_build/html/_static/searchtools.js (+0/-560) src/postorius/doc/_build/html/_static/sidebar.js (+0/-151) src/postorius/doc/_build/html/_static/underscore.js (+0/-23) src/postorius/doc/_build/html/_static/websupport.js (+0/-808) src/postorius/doc/_build/html/acknowledgements.html (+0/-158) src/postorius/doc/_build/html/development.html (+0/-362) src/postorius/doc/_build/html/genindex.html (+0/-123) src/postorius/doc/_build/html/index.html (+0/-116) src/postorius/doc/_build/html/license.html (+0/-139) src/postorius/doc/_build/html/news.html (+0/-186) src/postorius/doc/_build/html/objects.inv (+0/-10) src/postorius/doc/_build/html/py-modindex.html (+0/-131) src/postorius/doc/_build/html/search.html (+0/-105) src/postorius/doc/_build/html/searchindex.js (+0/-1) src/postorius/doc/_build/html/setup.html (+0/-252) src/postorius/doc/_build/html/testing.html (+0/-155) src/postorius/doc/_build/html/using.html (+0/-402) src/postorius/doc/development.rst (+81/-152) src/postorius/doc/index.rst (+8/-2) src/postorius/doc/news.rst (+2/-2) src/postorius/doc/settings.py (+1/-1) src/postorius/doc/using.rst (+0/-32) src/postorius/fieldset_forms.py (+1/-1) src/postorius/forms.py (+1/-1) src/postorius/management/commands/mmclient.py (+1/-1) src/postorius/models.py (+1/-1) src/postorius/templatetags/nav_helpers.py (+1/-1) src/postorius/tests/__init__.py (+20/-8) src/postorius/tests/fixtures/vcr_cassettes/list_members_access.yaml (+4283/-0) src/postorius/tests/fixtures/vcr_cassettes/list_members_page.yaml (+1835/-0) src/postorius/tests/fixtures/vcr_cassettes/test_list_creation.yaml (+1834/-0) src/postorius/tests/fixtures/vcr_cassettes/test_list_index.yaml (+1375/-0) src/postorius/tests/fixtures/vcr_cassettes/test_list_members_add_moderator.yaml (+1268/-0) src/postorius/tests/fixtures/vcr_cassettes/test_list_members_add_owner.yaml (+1268/-0) src/postorius/tests/fixtures/vcr_cassettes/test_list_members_add_owner_new_owner_added.yaml (+110/-0) src/postorius/tests/fixtures/vcr_cassettes/test_list_members_new_moderator_added.yaml (+110/-0) src/postorius/tests/fixtures/vcr_cassettes/test_list_metrics.yaml (+2482/-0) src/postorius/tests/fixtures/vcr_cassettes/test_list_summary.yaml (+2142/-0) src/postorius/tests/mailman_api_tests/__init__.py (+1/-32) src/postorius/tests/mailman_api_tests/test_list_index.py (+28/-8) src/postorius/tests/mailman_api_tests/test_list_members.py (+106/-28) src/postorius/tests/mailman_api_tests/test_list_metrics.py (+61/-0) src/postorius/tests/mailman_api_tests/test_list_new.py (+32/-10) src/postorius/tests/mailman_api_tests/test_list_summary.py (+28/-7) src/postorius/tests/test_auth_decorators.py (+1/-1) src/postorius/tests/test_forms.py (+1/-1) src/postorius/tests/test_utils.py (+1/-1) src/postorius/tests/tests.py (+1/-1) src/postorius/tests/utils.py (+1/-1) src/postorius/urls.py (+1/-1) src/postorius/utils.py (+1/-1) src/postorius/views/__init__.py (+1/-1) src/postorius/views/api.py (+1/-1) src/postorius/views/generic.py (+1/-1) src/postorius/views/list.py (+1/-1) src/postorius/views/settings.py (+1/-1) src/postorius/views/user.py (+1/-1) src/postorius/views/views.py (+1/-1) testing/__init__.py (+30/-0) testing/test_mailman.cfg (+25/-0) testing/test_settings.py (+162/-0) tox.ini (+39/-0) |
To merge this branch: | bzr merge lp:~flo-fuchs/postorius/testing |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Mailman Coders | Pending | ||
Review via email: mp+249064@code.launchpad.net |
This proposal has been superseded by a proposal from 2015-02-10.
Commit message
Description of the change
This branch reworks certain parts of Postorius internal tests:
- vcrpy has been added to test those parts of Postorius that rely on a realistic
HTTP response from Mailman's administrative API.
- A tox config to test different Python and Django versions
(currently py27 and Django 1.5 - 1.7)
- The package contains a Django settings file for test purposes only, so it can
be tested independently from the postorius_
- Better developer documentation re how to write new tests.
- 199. By Florian Fuchs
-
remove dpulicate fixtures dir
- 200. By Florian Fuchs
-
- set minimum Django version to 1.5 in setup.py
- setup.py pip8 fixes - 201. By Florian Fuchs
-
- removed documentation build from repository
- removed an unused rst file
- removed some outdated development documentation - 202. By Florian Fuchs
-
added doc build dir to .bzrignore
- 203. By Florian Fuchs
-
Bump Copyright Years
- 204. By Florian Fuchs
-
Some documentation cleanup; New testing section (draft)
- 205. By Florian Fuchs
-
modified vcrpy setting to use yaml instead of json; add more testing documentation (draft)
- 206. By Florian Fuchs
-
reduced number of vcr cassette files used in current tests
- 207. By Florian Fuchs
-
add env for fixture re-recording to tox.ini
- 208. By Florian Fuchs
-
* add testing documentation
* add a sample mailman.cfg for testing - 209. By Florian Fuchs
-
typo in development docs
- 210. By Florian Fuchs
-
renamed tox env `rerecord` => `record`
Unmerged revisions
Preview Diff
1 | === modified file '.bzrignore' |
2 | --- .bzrignore 2012-03-23 14:40:25 +0000 |
3 | +++ .bzrignore 2015-02-10 16:10:33 +0000 |
4 | @@ -1,3 +1,8 @@ |
5 | -dev_setup/mmtest.db |
6 | -dev_setup/settings_local.py |
7 | -src/postorius.egg-info |
8 | +.tox |
9 | +.coverage |
10 | +__pycache__ |
11 | +*.egg-info |
12 | +build |
13 | +dist |
14 | +cover/ |
15 | +src/postorius/doc/_build/* |
16 | |
17 | === added file 'dev-requirements.txt' |
18 | --- dev-requirements.txt 1970-01-01 00:00:00 +0000 |
19 | +++ dev-requirements.txt 2015-02-10 16:10:33 +0000 |
20 | @@ -0,0 +1,4 @@ |
21 | +mock |
22 | +django-nose |
23 | +coverage==3.7.1 |
24 | +vcrpy |
25 | |
26 | === modified file 'setup.py' |
27 | --- setup.py 2015-01-19 15:03:09 +0000 |
28 | +++ setup.py 2015-02-10 16:10:33 +0000 |
29 | @@ -15,27 +15,31 @@ |
30 | # You should have received a copy of the GNU Lesser General Public License |
31 | # along with Postorius. If not, see <http://www.gnu.org/licenses/>. |
32 | |
33 | -import ez_setup |
34 | -ez_setup.use_setuptools() |
35 | +try: |
36 | + import setuptools |
37 | +except ImportError: |
38 | + import ez_setup |
39 | + ez_setup.use_setuptools() |
40 | |
41 | from setuptools import setup, find_packages |
42 | |
43 | + |
44 | setup( |
45 | - name = "postorius", |
46 | - version = '1.0.0b1', |
47 | - description = "A web user interface for GNU Mailman", |
48 | + name="postorius", |
49 | + version='1.0.0b1', |
50 | + description="A web user interface for GNU Mailman", |
51 | long_description=open('README.rst').read(), |
52 | - maintainer = "The Mailman GSOC Coders", |
53 | - license = 'GPLv3', |
54 | - keywords = 'email mailman django', |
55 | - url = "https://launchpad.net/postorius", |
56 | - classifiers = [ |
57 | + maintainer="The Mailman GSOC Coders", |
58 | + license='GPLv3', |
59 | + keywords='email mailman django', |
60 | + url="https://launchpad.net/postorius", |
61 | + classifiers=[ |
62 | "Programming Language :: Python", |
63 | ], |
64 | - packages = find_packages('src'), |
65 | - package_dir = {'': 'src'}, |
66 | - include_package_data = True, |
67 | - install_requires = ['django>=1.4', |
68 | - 'django-social-auth>=0.7.8', |
69 | - 'mailmanclient'] |
70 | + packages=find_packages('src'), |
71 | + package_dir={'': 'src'}, |
72 | + include_package_data=True, |
73 | + install_requires=['django>=1.5', |
74 | + 'django-social-auth>=0.7.8', |
75 | + 'mailmanclient'] |
76 | ) |
77 | |
78 | === modified file 'src/postorius/__init__.py' |
79 | --- src/postorius/__init__.py 2014-04-22 14:34:21 +0000 |
80 | +++ src/postorius/__init__.py 2015-02-10 16:10:33 +0000 |
81 | @@ -1,5 +1,5 @@ |
82 | # -*- coding: utf-8 -*- |
83 | -# Copyright (C) 1998-2014 by the Free Software Foundation, Inc. |
84 | +# Copyright (C) 1998-2015 by the Free Software Foundation, Inc. |
85 | # |
86 | # This file is part of Postorius. |
87 | # |
88 | |
89 | === modified file 'src/postorius/auth/decorators.py' |
90 | --- src/postorius/auth/decorators.py 2015-01-18 19:21:23 +0000 |
91 | +++ src/postorius/auth/decorators.py 2015-02-10 16:10:33 +0000 |
92 | @@ -1,5 +1,5 @@ |
93 | # -*- coding: utf-8 -*- |
94 | -# Copyright (C) 1998-2014 by the Free Software Foundation, Inc. |
95 | +# Copyright (C) 1998-2015 by the Free Software Foundation, Inc. |
96 | # |
97 | # This file is part of Postorius. |
98 | # |
99 | |
100 | === modified file 'src/postorius/context_processors.py' |
101 | --- src/postorius/context_processors.py 2014-03-15 21:36:39 +0000 |
102 | +++ src/postorius/context_processors.py 2015-02-10 16:10:33 +0000 |
103 | @@ -1,5 +1,5 @@ |
104 | # -*- coding: utf-8 -*- |
105 | -# Copyright (C) 2012-2014 by the Free Software Foundation, Inc. |
106 | +# Copyright (C) 2012-2015 by the Free Software Foundation, Inc. |
107 | # |
108 | # This file is part of Postorius. |
109 | # |
110 | |
111 | === removed directory 'src/postorius/doc/_build/doctrees' |
112 | === removed file 'src/postorius/doc/_build/doctrees/development.doctree' |
113 | Binary files src/postorius/doc/_build/doctrees/development.doctree 2012-11-04 19:54:09 +0000 and src/postorius/doc/_build/doctrees/development.doctree 1970-01-01 00:00:00 +0000 differ |
114 | === removed file 'src/postorius/doc/_build/doctrees/environment.pickle' |
115 | Binary files src/postorius/doc/_build/doctrees/environment.pickle 2012-11-04 19:54:09 +0000 and src/postorius/doc/_build/doctrees/environment.pickle 1970-01-01 00:00:00 +0000 differ |
116 | === removed file 'src/postorius/doc/_build/doctrees/index.doctree' |
117 | Binary files src/postorius/doc/_build/doctrees/index.doctree 2012-08-21 19:58:00 +0000 and src/postorius/doc/_build/doctrees/index.doctree 1970-01-01 00:00:00 +0000 differ |
118 | === removed file 'src/postorius/doc/_build/doctrees/license.doctree' |
119 | Binary files src/postorius/doc/_build/doctrees/license.doctree 2012-03-23 22:54:46 +0000 and src/postorius/doc/_build/doctrees/license.doctree 1970-01-01 00:00:00 +0000 differ |
120 | === removed file 'src/postorius/doc/_build/doctrees/news.doctree' |
121 | Binary files src/postorius/doc/_build/doctrees/news.doctree 2012-11-04 19:54:09 +0000 and src/postorius/doc/_build/doctrees/news.doctree 1970-01-01 00:00:00 +0000 differ |
122 | === removed file 'src/postorius/doc/_build/doctrees/setup.doctree' |
123 | Binary files src/postorius/doc/_build/doctrees/setup.doctree 2012-08-21 19:58:00 +0000 and src/postorius/doc/_build/doctrees/setup.doctree 1970-01-01 00:00:00 +0000 differ |
124 | === removed file 'src/postorius/doc/_build/doctrees/testing.doctree' |
125 | Binary files src/postorius/doc/_build/doctrees/testing.doctree 2012-07-20 00:00:43 +0000 and src/postorius/doc/_build/doctrees/testing.doctree 1970-01-01 00:00:00 +0000 differ |
126 | === removed file 'src/postorius/doc/_build/doctrees/using.doctree' |
127 | Binary files src/postorius/doc/_build/doctrees/using.doctree 2012-07-20 00:00:43 +0000 and src/postorius/doc/_build/doctrees/using.doctree 1970-01-01 00:00:00 +0000 differ |
128 | === removed directory 'src/postorius/doc/_build/html' |
129 | === removed file 'src/postorius/doc/_build/html/.buildinfo' |
130 | --- src/postorius/doc/_build/html/.buildinfo 2012-05-29 06:28:56 +0000 |
131 | +++ src/postorius/doc/_build/html/.buildinfo 1970-01-01 00:00:00 +0000 |
132 | @@ -1,4 +0,0 @@ |
133 | -# Sphinx build info version 1 |
134 | -# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. |
135 | -config: b7c499bf02394c05c2168ae495bae526 |
136 | -tags: fbb0d17656682115ca4d033fb2f83ba1 |
137 | |
138 | === removed directory 'src/postorius/doc/_build/html/_sources' |
139 | === removed file 'src/postorius/doc/_build/html/_sources/acknowledgements.txt' |
140 | --- src/postorius/doc/_build/html/_sources/acknowledgements.txt 2011-08-22 11:15:03 +0000 |
141 | +++ src/postorius/doc/_build/html/_sources/acknowledgements.txt 1970-01-01 00:00:00 +0000 |
142 | @@ -1,37 +0,0 @@ |
143 | -Acknowledgements |
144 | -================ |
145 | - |
146 | -Test Server |
147 | ------------ |
148 | - |
149 | -We're proud to provide you a development server which is sponsered by XXX #Todo |
150 | -Feel free to change anything you like, we can simply rest the DB from Time to Time. |
151 | - |
152 | -Missing Functionality |
153 | ---------------------- |
154 | - |
155 | -* Delete Domain |
156 | - * missing in REST |
157 | - * implemented in mailman3 a8 |
158 | - |
159 | -* Show a List of all subscribed users |
160 | - |
161 | -ACL |
162 | ---- |
163 | - |
164 | -* Middleware |
165 | - |
166 | - We don't have the Middleware which is required to work with users and it's permissions yet. For this reason we had to tweak some functions to be a hardcoded Demo object. |
167 | - |
168 | - * Login Check |
169 | - At the moment we're using a hardcoded List of allowed usernames and Passwords which are all stored in Plain within the AuthBackends Source File. |
170 | - * has_perm Decorator |
171 | - As we don't have a middleware to check for users and it's permissions we do only use one permission at the moment. The permission site domain_admin is hardcoded to user.username == "james@example.com" |
172 | - |
173 | - |
174 | - |
175 | -Ideas |
176 | ------ |
177 | - |
178 | -* ContactPage |
179 | -* |
180 | |
181 | === removed file 'src/postorius/doc/_build/html/_sources/development.txt' |
182 | --- src/postorius/doc/_build/html/_sources/development.txt 2012-11-04 19:54:09 +0000 |
183 | +++ src/postorius/doc/_build/html/_sources/development.txt 1970-01-01 00:00:00 +0000 |
184 | @@ -1,224 +0,0 @@ |
185 | -=========== |
186 | -Development |
187 | -=========== |
188 | - |
189 | -This is a short guide to help you get started with Postorius development. |
190 | - |
191 | - |
192 | -Directory layout |
193 | -================ |
194 | - |
195 | -Postorius is a Django application, so if you have developed with Django before, |
196 | -the file structure probably looks familiar. These are the basics: |
197 | - |
198 | -:: |
199 | - |
200 | - __init__.py |
201 | - auth/ # Custom authorization code (List owners and |
202 | - # moderators) |
203 | - context_processors.py # Some variables available in all templates |
204 | - doc/ # Sphinx documentation |
205 | - fieldset_forms.py # A custom form class to build html forms with |
206 | - # fieldsets |
207 | - forms.py # All kinds of classes to build and validate forms |
208 | - management/ # Commands to use with Django's manage.py script |
209 | - models.py # Code to connect to mailman.client and provide |
210 | - # a Django-style model API for lists, mm-users and |
211 | - # domains |
212 | - static/ # Static files (CSS, JS, images) |
213 | - templates/ # HTML Templates |
214 | - tests/ # Postorius test files |
215 | - urls.py # URL routes |
216 | - utils.py # Some handy utilities |
217 | - views/ |
218 | - views.py # View classes and functions for all views connected |
219 | - # in urls.py |
220 | - generic.py # Generic class-based views; Currently holds a |
221 | - # class for views based on a single mailing list |
222 | - |
223 | - |
224 | -Development Workflow |
225 | -==================== |
226 | - |
227 | -The source code is hosted on Launchpad_, which also means that we are using |
228 | -Bazaar for version control. |
229 | - |
230 | -.. _Launchpad: https://launchpad.net |
231 | - |
232 | -Changes are usually not made directly in the project's trunk branch, but in |
233 | -feature-related personal branches, which get reviewed and then merged into |
234 | -the trunk. |
235 | - |
236 | -The ideal workflow would be like this: |
237 | - |
238 | -1. File a bug to suggest a new feature or report a bug (or just pick one of |
239 | - the existing bugs). |
240 | -2. Create a new branch with your code changes. |
241 | -3. Make a "merge proposal" to get your code reviewed and merged. |
242 | - |
243 | -Launchpad has a nice tour_ which describes all this in detail. |
244 | - |
245 | -.. _tour: https://launchpad.net/+tour/index |
246 | - |
247 | - |
248 | - |
249 | -Writing View Code |
250 | -================= |
251 | - |
252 | -When the work on Postorius was started, the standard way to write view code in |
253 | -Django was to write a single function for each different view. Since then |
254 | -Django has introduced so-called 'class-based views' which make it much easier |
255 | -to reuse view functionality. While using simple functions is not discuraged, it |
256 | -makes sense to check if using a class-based approach could make sense. |
257 | - |
258 | -Check Postorius' ``views/views.py`` and ``views/generic.py`` for examples! |
259 | - |
260 | - |
261 | -Authentication/Authorization |
262 | -============================ |
263 | - |
264 | -Three of Django's default User roles are relvant for Postorius: |
265 | - |
266 | -- Superuser: Can do everything. |
267 | -- AnonymousUser: Can view list index and info pages. |
268 | -- Authenticated users: Can view list index and info pages. Can (un)subscribe |
269 | - from lists. |
270 | - |
271 | -Apart from these default roles, there are two others relevant in Postorius: |
272 | - |
273 | -- List owners: Can change list settings, moderate messages and delete their |
274 | - lists. |
275 | -- List moderators: Can moderate messages. |
276 | - |
277 | -There are a number of decorators to protect views from unauthorized users. |
278 | - |
279 | -- ``@user_passes_test(lambda u: u.is_superuser)`` (redirects to login form) |
280 | -- ``@login_required`` (redirects to login form) |
281 | -- ``@list_owner_required`` (returns 403) |
282 | -- ``@list_moderator_required`` (returns 403) |
283 | -- ``@superuser_or_403`` (returns 403) |
284 | -- ``@loggedin_or_403`` (returns 403) |
285 | -- ``@basic_auth_login`` |
286 | - |
287 | -Check out ``views/views.py`` or ``views/api.py`` for examples! |
288 | - |
289 | -The last one (basic_auth_login) checks the request header for HTTP Basic Auth |
290 | -credentials and uses those to authenticate against Django's session-based |
291 | -mechanism. It can be used in cases where a view is accessed from other clients |
292 | -than the web browser. |
293 | - |
294 | -Please make sure to put it outside the other auth decorators. |
295 | - |
296 | -Good: |
297 | - |
298 | -:: |
299 | - |
300 | - @basic_auth_login |
301 | - @list_owner_required |
302 | - def my_view_func(request): |
303 | - ... |
304 | - |
305 | -Won't work, because list_owner_required will not recognize the user: |
306 | - |
307 | -:: |
308 | - |
309 | - @list_owner_required |
310 | - @basic_auth_login |
311 | - def my_view_func(request): |
312 | - ... |
313 | - |
314 | - |
315 | -Accessing the Mailman API |
316 | -========================= |
317 | - |
318 | -Postorius uses mailman.client to connect to Mailman's REST API. In order to |
319 | -directly use the client, ``cd`` to your project folder and execute |
320 | -``python manage.py mmclient``. This will open a python shell (IPython, if |
321 | -that's available) and provide you with a client object connected to to your |
322 | -local Mailman API server (it uses the credentials from your settings.py). |
323 | - |
324 | -A quick example: |
325 | - |
326 | -:: |
327 | - |
328 | - $ python manage.py mmclient |
329 | - |
330 | - >>> client |
331 | - <Client (user:pwd) http://localhost:8001/3.0/> |
332 | - |
333 | - >>> print client.system['mailman_version'] |
334 | - GNU Mailman 3.0.0b2+ (Here Again) |
335 | - |
336 | - >>> mailman_dev = client.get_list('mailman-developers@python.org') |
337 | - >>> print mailman_dev settings |
338 | - {u'owner_address': u'mailman-developers@python.org', |
339 | - u'default_nonmember_action': u'hold', ...} |
340 | - |
341 | -For detailed information how to use mailman.client, check out its documentation_. |
342 | - |
343 | -.. _documentation: http://bazaar.launchpad.net/~mailman-coders/mailman.client/trunk/view/head:/src/mailmanclient/docs/using.txt |
344 | - |
345 | - |
346 | -Testing |
347 | -======= |
348 | - |
349 | -Currently only some of the Postorius code is covered by a test. We should change that! |
350 | - |
351 | -All test modules reside in the ``postorius/src/postorius/tests`` directory |
352 | -and this is where you should put your own tests, too. To make the django test |
353 | -runner find your tests, make sure to add them to the folder's ``__init__.py``: |
354 | - |
355 | -:: |
356 | - |
357 | - from postorius.tests import test_utils |
358 | - from postorius.tests.test_list_members import ListMembersViewTest |
359 | - from postorius.tests.test_list_settings import ListSettingsViewTest |
360 | - from postorius.tests.my_own_tests import MyOwnUnitTest |
361 | - |
362 | - __test__ = { |
363 | - "Test Utils": test_utils, |
364 | - "List Members": ListMembersViewTest, |
365 | - "List Settings": ListSettingsViewTest, |
366 | - "My Own Test": MyOwnUnitTest, |
367 | - } |
368 | - |
369 | - |
370 | -Running the tests |
371 | ------------------ |
372 | - |
373 | -To run the tests go to your project folder and run ``python manage.py test |
374 | -postorius`` from there. |
375 | - |
376 | - |
377 | -Testing mailman.client results |
378 | ------------------------------- |
379 | - |
380 | -Most of Postorius' code involves some results from calls to the mailman.client |
381 | -library. mailman.client is itself covered by tests, so Postorius' own tests |
382 | -don't need to check if mailman.client returns correct results. Instead we can |
383 | -just mock them! This has the big advantage that you can run the test suite |
384 | -without having to worry about the state of the local Mailman database. It also |
385 | -makes the tests run faster, because we spare ourselves the HTTP calls to the |
386 | -local Mailman REST API. |
387 | - |
388 | -This approach has the obvious downside that the Postorius tests will not |
389 | -recognize any changes to the Mailman API. So at some point there should be some |
390 | -separate integration tests to test the whole chain. But let's not worry about |
391 | -that for now. |
392 | - |
393 | - |
394 | -Mocking mailman.client objects |
395 | ------------------------------- |
396 | - |
397 | -Postorius uses Michael Foord's ``mock`` library for mocking. There are some |
398 | -shortcuts you can use to quickly create mock objects that behave a little bit |
399 | -like objects retreived from mailman.client, like: |
400 | - |
401 | -- create_mock_domain |
402 | -- create_mock_list |
403 | -- create_mock_member |
404 | - |
405 | -These ``create_mock_*`` functions are very simple tools that return MagigMock objects with the properties passed to them in a dictionary. They also set some defaults for properties that you didn't pass to its ``create_mock_*`` function. For instance, a mock list created with ``create_mock_list()`` will always have ``members``, ``moderators`` and ``owners`` properties. |
406 | - |
407 | - |
408 | -.. automodule:: postorius.tests.test_utils |
409 | |
410 | === removed file 'src/postorius/doc/_build/html/_sources/index.txt' |
411 | --- src/postorius/doc/_build/html/_sources/index.txt 2012-07-20 00:00:43 +0000 |
412 | +++ src/postorius/doc/_build/html/_sources/index.txt 1970-01-01 00:00:00 +0000 |
413 | @@ -1,12 +0,0 @@ |
414 | -Postorius - The New Mailman Web UI |
415 | -================================== |
416 | - |
417 | -Contents: |
418 | - |
419 | -.. toctree:: |
420 | - :maxdepth: 1 |
421 | - |
422 | - news.rst |
423 | - setup.rst |
424 | - development.rst |
425 | - |
426 | |
427 | === removed file 'src/postorius/doc/_build/html/_sources/license.txt' |
428 | --- src/postorius/doc/_build/html/_sources/license.txt 2011-08-18 13:47:20 +0000 |
429 | +++ src/postorius/doc/_build/html/_sources/license.txt 1970-01-01 00:00:00 +0000 |
430 | @@ -1,34 +0,0 @@ |
431 | -Contributions: |
432 | -============== |
433 | -Mailman is licensed unter *GPL* |
434 | ------------------------------ |
435 | -Copyright (C) 1998-2010 by the Free Software Foundation, Inc. |
436 | - |
437 | -This file is part of GNU Mailman. |
438 | - |
439 | -GNU Mailman is free software: you can redistribute it and/or modify it under |
440 | -the terms of the GNU General Public License as published by the Free |
441 | -Software Foundation, either version 3 of the License, or (at your option) |
442 | -any later version. |
443 | - |
444 | -GNU Mailman is distributed in the hope that it will be useful, but WITHOUT |
445 | -ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
446 | -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
447 | -more details. |
448 | - |
449 | -You should have received a copy of the GNU General Public License along with |
450 | -GNU Mailman. If not, see <http://www.gnu.org/licenses/>. |
451 | - |
452 | -RRZE Icon Set |
453 | -------------- |
454 | - |
455 | -**CreativeCommons Licence** |
456 | - |
457 | -The RRZE Icon Set is licenced under a Creative Commons Licence. |
458 | -Please see the website for the current licence text. |
459 | - |
460 | -More information about the Project could be found here: |
461 | -http://rrze-icon-set.berlios.de/licence.html |
462 | - |
463 | -Special thanks to: |
464 | -* Franziska Sponsel (created additional Icons specially for our Project) |
465 | |
466 | === removed file 'src/postorius/doc/_build/html/_sources/news.txt' |
467 | --- src/postorius/doc/_build/html/_sources/news.txt 2012-11-04 19:54:09 +0000 |
468 | +++ src/postorius/doc/_build/html/_sources/news.txt 1970-01-01 00:00:00 +0000 |
469 | @@ -1,68 +0,0 @@ |
470 | -================ |
471 | -News / Changelog |
472 | -================ |
473 | - |
474 | -Copyright (C) 2012 by the Free Software Foundation, Inc. |
475 | - |
476 | -The Postorius Django app provides a web user interface to |
477 | -access GNU Mailman. |
478 | - |
479 | -Postorius is free software: you can redistribute it and/or |
480 | -modify it under the terms of the GNU Lesser General Public License as |
481 | -published by the Free Software Foundation, version 3 of the License. |
482 | - |
483 | -Postorius is distributed in the hope that it will be useful, |
484 | -but WITHOUT ANY WARRANTY; without even the implied warranty of |
485 | -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser |
486 | -General Public License for more details. |
487 | - |
488 | -You should have received a copy of the GNU Lesser General Public License |
489 | -along with Postorius. If not, see <http://www.gnu.org/licenses/>. |
490 | - |
491 | - |
492 | -1.0 alpha 2 |
493 | -=========== |
494 | -(2012-XX-XX) |
495 | - |
496 | -* dev setup fix for Django 1.4 contributed by Rohan Jain |
497 | -* missing csrf tokens in templates contributed by Richard Wackerbarth (LP: 996658) |
498 | -* moderation: fixed typo in success message call |
499 | -* installation documentation for Apache/mod_wsgi |
500 | -* moved project files to separate branch |
501 | -* show error message if connection to Mailman API fails |
502 | -* added list members view |
503 | -* added developer documentation |
504 | -* added test helper utils |
505 | -* all code now conform to PEP8 |
506 | -* themes: removed obsolete MAILMAN_THEME settings from templates, contexts, file structure; contributed by Richard Wackerbarth (LP: 1043258) |
507 | -* added access control for list owners and moderators |
508 | -* added a mailmanclient shell to use as a `manage.py` command (`python manage.py mmclient`) |
509 | -* use "url from future" template tag in all templates. Contributed by Richard Wackerbarth. |
510 | -* added "new user" form. Contributed by George Chatzisofroniou. |
511 | -* added user subscription page |
512 | -* added decorator to allow login via http basic auth (to allow non-browser clients to use API views) |
513 | -* added api view for list index |
514 | -* several changes regarding style and navigation structure |
515 | - |
516 | - |
517 | -1.0 alpha 1 -- "Space Farm" |
518 | -=========================== |
519 | -(2012-03-23) |
520 | - |
521 | -Many thanks go out to Anna Senarclens de Grancy and Benedict Stein for |
522 | -developing the initial versions of this Django app during the Google Summer of |
523 | -Code 2010 and 2011. |
524 | - |
525 | -* add/remove/edit mailing lists |
526 | -* edit list settings |
527 | -* show all mailing lists on server |
528 | -* subscribe/unsubscribe/mass subscribe mailing lists |
529 | -* add/remove domains |
530 | -* show basic list info and metrics |
531 | -* login using django user account or using BrowserID |
532 | -* show basic user profile |
533 | -* accept/discard/reject/defer messages |
534 | -* Implementation of Django Messages contributed by Benedict Stein (LP: #920084) |
535 | -* Dependency check in setup.py contributed by Daniel Mizyrycki |
536 | -* Proper processing of acceptable aliases in list settings form contributed by |
537 | - Daniel Mizyrycki |
538 | |
539 | === removed file 'src/postorius/doc/_build/html/_sources/setup.txt' |
540 | --- src/postorius/doc/_build/html/_sources/setup.txt 2012-07-20 00:00:43 +0000 |
541 | +++ src/postorius/doc/_build/html/_sources/setup.txt 1970-01-01 00:00:00 +0000 |
542 | @@ -1,177 +0,0 @@ |
543 | -============ |
544 | -Installation |
545 | -============ |
546 | - |
547 | -.. note:: |
548 | - This installation guide covers Postorius, the web user interface for |
549 | - GNU Mailman 3. To install GNU Mailman follow the instructions in the documentation: |
550 | - http://packages.python.org/mailman/ |
551 | - |
552 | - |
553 | -Install Dependencies |
554 | -==================== |
555 | - |
556 | -Django: |
557 | - |
558 | -:: |
559 | - |
560 | - $ sudo pip install django |
561 | - |
562 | -mailman.client: |
563 | - |
564 | -:: |
565 | - |
566 | - $ bzr branch lp:mailman.client |
567 | - $ cd mailman.client |
568 | - $ sudo python setup.py install |
569 | - |
570 | - |
571 | -Install Postorius |
572 | -================= |
573 | - |
574 | - |
575 | -Latest release |
576 | --------------- |
577 | - |
578 | -If you just want to install the latest release of Postorius, install it from |
579 | -PyPi: |
580 | - |
581 | -:: |
582 | - |
583 | - $ sudo pip install postorius |
584 | - |
585 | -or: |
586 | - |
587 | -:: |
588 | - |
589 | - $ sudo easy_install postorius |
590 | - |
591 | - |
592 | -Latest dev version |
593 | ------------------- |
594 | - |
595 | -If you want to always be up to date with the latest development version, you |
596 | -should install Postorius using bazaar: |
597 | - |
598 | -:: |
599 | - |
600 | - $ bzr branch lp:postorius |
601 | - $ cd postorius |
602 | - $ sudo python setup.py develop |
603 | - $ cd .. |
604 | - |
605 | -You can always pull in the latest changes from the development branch: |
606 | - |
607 | -:: |
608 | - |
609 | - $ cd postorius |
610 | - $ bzr pull |
611 | - $ cd .. |
612 | - |
613 | -Make sure to keep mailman.client up to date as well: |
614 | - |
615 | -:: |
616 | - |
617 | - $ cd mailman.client |
618 | - $ bzr pull lp:mailman.client |
619 | - $ cd .. |
620 | - |
621 | - |
622 | -Setup your django project |
623 | -========================= |
624 | - |
625 | -Since you have now installed the necessary packages to run Postorius, it's |
626 | -time to setup your Django site. |
627 | - |
628 | -First, get the project directory from launchpad: |
629 | - |
630 | -:: |
631 | - |
632 | - $ bzr branch lp:~mailman-coders/postorius/postorius_standalone |
633 | - |
634 | -Second, change the database setting in ``postorius_standalone/settings.py`` to |
635 | -your preferred database. If you're OK with using sqlite, just change the path |
636 | -in line 48 to the correct location. |
637 | - |
638 | -.. note:: |
639 | - Detailed information on how to use different database engines can be found |
640 | - in the `Django documentation`_. |
641 | - |
642 | -.. _Django documentation: https://docs.djangoproject.com/en/1.4/ref/settings/#databases |
643 | - |
644 | -Third, prepare the database: |
645 | - |
646 | -:: |
647 | - |
648 | - $ cd postorius_standalone |
649 | - $ python manage.py syncdb |
650 | - $ cd .. |
651 | - |
652 | -This will create the ``.db file`` (if you ar using SQLite) and will setup all the |
653 | -necessary db tables. You will also be prompted to create a superuser which |
654 | -will act as an admin account for Postorius. |
655 | - |
656 | - |
657 | -.. seealso:: |
658 | - Robert Niederreiter has provided a `buildout for GNU Mailman 3 and |
659 | - Postorius`_. |
660 | - |
661 | -.. _buildout for GNU Mailman 3 and Postorius: |
662 | - https://github.com/bluedynamics/mailman.buildout |
663 | - |
664 | - |
665 | -Running the development server |
666 | -============================== |
667 | - |
668 | -The quickest way to run Postorius is to just start the development server: |
669 | - |
670 | -:: |
671 | - |
672 | - $ cd postorius_standalone |
673 | - $ python manage.py runserver |
674 | - |
675 | - |
676 | -.. warning:: |
677 | - You should use the development server only locally. While it's possible to |
678 | - make your site publicly available using the dev server, you should never |
679 | - do that in a production environment. |
680 | - |
681 | - |
682 | -Running Postorius on Apache with mod_wsgi |
683 | -========================================= |
684 | - |
685 | -.. note:: |
686 | - This guide assumes that you know how to setup a VirtualHost with Apache. |
687 | - If you are using SQLite, the ``.db`` file as well as its folder need to be |
688 | - writable by the web server. |
689 | - |
690 | -These settings need to be added to your Apache VirtualHost: |
691 | - |
692 | -:: |
693 | - |
694 | - Alias /static /path/to/postorius_standalone/static |
695 | - <Directory "/path/to/postorius_standalone/static"> |
696 | - Order deny,allow |
697 | - Allow from all |
698 | - </Directory> |
699 | - |
700 | - WSGIScriptAlias / /path/to/postorius_standalone/srv/postorius.wsgi |
701 | - <Directory "/path/to/postorius_standalone/srv"> |
702 | - Order deny,allow |
703 | - Allow from all |
704 | - </Directory> |
705 | - |
706 | -The first Alias serves the static files (CSS, JS, Images, etc.). The |
707 | -WSGIScriptAlias serves the Django application. The paths need to be changed |
708 | -depending on which location you downloaded ``postorius_standalone`` to. |
709 | - |
710 | -We're almost ready. But you need to collect the static files from Postorius |
711 | -(which resides somewhere on your pythonpath) to be able to serve them from the |
712 | -site directory. All you have to do is to change into the |
713 | -``postorius_standalone`` directory and run: |
714 | - |
715 | -:: |
716 | - |
717 | - $ python manage.py collectstatic |
718 | - |
719 | -After reloading the webserver Postorius should be running! |
720 | |
721 | === removed file 'src/postorius/doc/_build/html/_sources/testing.txt' |
722 | --- src/postorius/doc/_build/html/_sources/testing.txt 2012-07-20 00:00:43 +0000 |
723 | +++ src/postorius/doc/_build/html/_sources/testing.txt 1970-01-01 00:00:00 +0000 |
724 | @@ -1,6 +0,0 @@ |
725 | -============= |
726 | -Writing tests |
727 | -============= |
728 | - |
729 | - |
730 | -.. automodule:: postorius.tests.test_utils |
731 | |
732 | === removed file 'src/postorius/doc/_build/html/_sources/using.txt' |
733 | --- src/postorius/doc/_build/html/_sources/using.txt 2012-07-16 21:56:47 +0000 |
734 | +++ src/postorius/doc/_build/html/_sources/using.txt 1970-01-01 00:00:00 +0000 |
735 | @@ -1,32 +0,0 @@ |
736 | -Using the Django App - Developers Resource (outdated) |
737 | -===================================================== |
738 | - |
739 | -.. warning:: |
740 | - This user guide is outdated and needs to be updated. |
741 | - |
742 | -.. automodule:: tests.tests |
743 | - |
744 | -Running the tests explained above. |
745 | ----------------------------------- |
746 | -We've added our own test-suite to the Django App which will be executed together with the Django Test. Last thing you should do is running these tests. If they fail you did something wrong, if they succeed you can enjoy the site. |
747 | - |
748 | -Run the following in the Site Directory |
749 | - |
750 | - .. code-block:: bash |
751 | - |
752 | - $ python manage.py test |
753 | - |
754 | -.. note:: |
755 | - Please be aware that we want to run a development instance of mailman you need to stop the stable one first and the tests will open it's own mailman temporily. |
756 | - |
757 | -Accessing the REST Client for Testing |
758 | -------------------------------------- |
759 | - |
760 | -If you want to access the Functions, which we use in the views, directly feel free to run the following block of code within a Shell which does have it's current Directory within the Django Site Directory. |
761 | - |
762 | - .. code-block:: python |
763 | - |
764 | - from settings import API_USER, API_PASS |
765 | - from mailman.client import Client |
766 | - c = Client('http://localhost:8001/3.0', API_USER, API_PASS) |
767 | - #DEBUG: Python Session |
768 | |
769 | === removed directory 'src/postorius/doc/_build/html/_static' |
770 | === removed file 'src/postorius/doc/_build/html/_static/ajax-loader.gif' |
771 | Binary files src/postorius/doc/_build/html/_static/ajax-loader.gif 2012-05-29 06:28:56 +0000 and src/postorius/doc/_build/html/_static/ajax-loader.gif 1970-01-01 00:00:00 +0000 differ |
772 | === removed file 'src/postorius/doc/_build/html/_static/basic.css' |
773 | --- src/postorius/doc/_build/html/_static/basic.css 2012-08-21 19:58:00 +0000 |
774 | +++ src/postorius/doc/_build/html/_static/basic.css 1970-01-01 00:00:00 +0000 |
775 | @@ -1,540 +0,0 @@ |
776 | -/* |
777 | - * basic.css |
778 | - * ~~~~~~~~~ |
779 | - * |
780 | - * Sphinx stylesheet -- basic theme. |
781 | - * |
782 | - * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. |
783 | - * :license: BSD, see LICENSE for details. |
784 | - * |
785 | - */ |
786 | - |
787 | -/* -- main layout ----------------------------------------------------------- */ |
788 | - |
789 | -div.clearer { |
790 | - clear: both; |
791 | -} |
792 | - |
793 | -/* -- relbar ---------------------------------------------------------------- */ |
794 | - |
795 | -div.related { |
796 | - width: 100%; |
797 | - font-size: 90%; |
798 | -} |
799 | - |
800 | -div.related h3 { |
801 | - display: none; |
802 | -} |
803 | - |
804 | -div.related ul { |
805 | - margin: 0; |
806 | - padding: 0 0 0 10px; |
807 | - list-style: none; |
808 | -} |
809 | - |
810 | -div.related li { |
811 | - display: inline; |
812 | -} |
813 | - |
814 | -div.related li.right { |
815 | - float: right; |
816 | - margin-right: 5px; |
817 | -} |
818 | - |
819 | -/* -- sidebar --------------------------------------------------------------- */ |
820 | - |
821 | -div.sphinxsidebarwrapper { |
822 | - padding: 10px 5px 0 10px; |
823 | -} |
824 | - |
825 | -div.sphinxsidebar { |
826 | - float: left; |
827 | - width: 230px; |
828 | - margin-left: -100%; |
829 | - font-size: 90%; |
830 | -} |
831 | - |
832 | -div.sphinxsidebar ul { |
833 | - list-style: none; |
834 | -} |
835 | - |
836 | -div.sphinxsidebar ul ul, |
837 | -div.sphinxsidebar ul.want-points { |
838 | - margin-left: 20px; |
839 | - list-style: square; |
840 | -} |
841 | - |
842 | -div.sphinxsidebar ul ul { |
843 | - margin-top: 0; |
844 | - margin-bottom: 0; |
845 | -} |
846 | - |
847 | -div.sphinxsidebar form { |
848 | - margin-top: 10px; |
849 | -} |
850 | - |
851 | -div.sphinxsidebar input { |
852 | - border: 1px solid #98dbcc; |
853 | - font-family: sans-serif; |
854 | - font-size: 1em; |
855 | -} |
856 | - |
857 | -div.sphinxsidebar input[type="text"] { |
858 | - width: 170px; |
859 | -} |
860 | - |
861 | -div.sphinxsidebar input[type="submit"] { |
862 | - width: 30px; |
863 | -} |
864 | - |
865 | -img { |
866 | - border: 0; |
867 | -} |
868 | - |
869 | -/* -- search page ----------------------------------------------------------- */ |
870 | - |
871 | -ul.search { |
872 | - margin: 10px 0 0 20px; |
873 | - padding: 0; |
874 | -} |
875 | - |
876 | -ul.search li { |
877 | - padding: 5px 0 5px 20px; |
878 | - background-image: url(file.png); |
879 | - background-repeat: no-repeat; |
880 | - background-position: 0 7px; |
881 | -} |
882 | - |
883 | -ul.search li a { |
884 | - font-weight: bold; |
885 | -} |
886 | - |
887 | -ul.search li div.context { |
888 | - color: #888; |
889 | - margin: 2px 0 0 30px; |
890 | - text-align: left; |
891 | -} |
892 | - |
893 | -ul.keywordmatches li.goodmatch a { |
894 | - font-weight: bold; |
895 | -} |
896 | - |
897 | -/* -- index page ------------------------------------------------------------ */ |
898 | - |
899 | -table.contentstable { |
900 | - width: 90%; |
901 | -} |
902 | - |
903 | -table.contentstable p.biglink { |
904 | - line-height: 150%; |
905 | -} |
906 | - |
907 | -a.biglink { |
908 | - font-size: 1.3em; |
909 | -} |
910 | - |
911 | -span.linkdescr { |
912 | - font-style: italic; |
913 | - padding-top: 5px; |
914 | - font-size: 90%; |
915 | -} |
916 | - |
917 | -/* -- general index --------------------------------------------------------- */ |
918 | - |
919 | -table.indextable { |
920 | - width: 100%; |
921 | -} |
922 | - |
923 | -table.indextable td { |
924 | - text-align: left; |
925 | - vertical-align: top; |
926 | -} |
927 | - |
928 | -table.indextable dl, table.indextable dd { |
929 | - margin-top: 0; |
930 | - margin-bottom: 0; |
931 | -} |
932 | - |
933 | -table.indextable tr.pcap { |
934 | - height: 10px; |
935 | -} |
936 | - |
937 | -table.indextable tr.cap { |
938 | - margin-top: 10px; |
939 | - background-color: #f2f2f2; |
940 | -} |
941 | - |
942 | -img.toggler { |
943 | - margin-right: 3px; |
944 | - margin-top: 3px; |
945 | - cursor: pointer; |
946 | -} |
947 | - |
948 | -div.modindex-jumpbox { |
949 | - border-top: 1px solid #ddd; |
950 | - border-bottom: 1px solid #ddd; |
951 | - margin: 1em 0 1em 0; |
952 | - padding: 0.4em; |
953 | -} |
954 | - |
955 | -div.genindex-jumpbox { |
956 | - border-top: 1px solid #ddd; |
957 | - border-bottom: 1px solid #ddd; |
958 | - margin: 1em 0 1em 0; |
959 | - padding: 0.4em; |
960 | -} |
961 | - |
962 | -/* -- general body styles --------------------------------------------------- */ |
963 | - |
964 | -a.headerlink { |
965 | - visibility: hidden; |
966 | -} |
967 | - |
968 | -h1:hover > a.headerlink, |
969 | -h2:hover > a.headerlink, |
970 | -h3:hover > a.headerlink, |
971 | -h4:hover > a.headerlink, |
972 | -h5:hover > a.headerlink, |
973 | -h6:hover > a.headerlink, |
974 | -dt:hover > a.headerlink { |
975 | - visibility: visible; |
976 | -} |
977 | - |
978 | -div.body p.caption { |
979 | - text-align: inherit; |
980 | -} |
981 | - |
982 | -div.body td { |
983 | - text-align: left; |
984 | -} |
985 | - |
986 | -.field-list ul { |
987 | - padding-left: 1em; |
988 | -} |
989 | - |
990 | -.first { |
991 | - margin-top: 0 !important; |
992 | -} |
993 | - |
994 | -p.rubric { |
995 | - margin-top: 30px; |
996 | - font-weight: bold; |
997 | -} |
998 | - |
999 | -img.align-left, .figure.align-left, object.align-left { |
1000 | - clear: left; |
1001 | - float: left; |
1002 | - margin-right: 1em; |
1003 | -} |
1004 | - |
1005 | -img.align-right, .figure.align-right, object.align-right { |
1006 | - clear: right; |
1007 | - float: right; |
1008 | - margin-left: 1em; |
1009 | -} |
1010 | - |
1011 | -img.align-center, .figure.align-center, object.align-center { |
1012 | - display: block; |
1013 | - margin-left: auto; |
1014 | - margin-right: auto; |
1015 | -} |
1016 | - |
1017 | -.align-left { |
1018 | - text-align: left; |
1019 | -} |
1020 | - |
1021 | -.align-center { |
1022 | - text-align: center; |
1023 | -} |
1024 | - |
1025 | -.align-right { |
1026 | - text-align: right; |
1027 | -} |
1028 | - |
1029 | -/* -- sidebars -------------------------------------------------------------- */ |
1030 | - |
1031 | -div.sidebar { |
1032 | - margin: 0 0 0.5em 1em; |
1033 | - border: 1px solid #ddb; |
1034 | - padding: 7px 7px 0 7px; |
1035 | - background-color: #ffe; |
1036 | - width: 40%; |
1037 | - float: right; |
1038 | -} |
1039 | - |
1040 | -p.sidebar-title { |
1041 | - font-weight: bold; |
1042 | -} |
1043 | - |
1044 | -/* -- topics ---------------------------------------------------------------- */ |
1045 | - |
1046 | -div.topic { |
1047 | - border: 1px solid #ccc; |
1048 | - padding: 7px 7px 0 7px; |
1049 | - margin: 10px 0 10px 0; |
1050 | -} |
1051 | - |
1052 | -p.topic-title { |
1053 | - font-size: 1.1em; |
1054 | - font-weight: bold; |
1055 | - margin-top: 10px; |
1056 | -} |
1057 | - |
1058 | -/* -- admonitions ----------------------------------------------------------- */ |
1059 | - |
1060 | -div.admonition { |
1061 | - margin-top: 10px; |
1062 | - margin-bottom: 10px; |
1063 | - padding: 7px; |
1064 | -} |
1065 | - |
1066 | -div.admonition dt { |
1067 | - font-weight: bold; |
1068 | -} |
1069 | - |
1070 | -div.admonition dl { |
1071 | - margin-bottom: 0; |
1072 | -} |
1073 | - |
1074 | -p.admonition-title { |
1075 | - margin: 0px 10px 5px 0px; |
1076 | - font-weight: bold; |
1077 | -} |
1078 | - |
1079 | -div.body p.centered { |
1080 | - text-align: center; |
1081 | - margin-top: 25px; |
1082 | -} |
1083 | - |
1084 | -/* -- tables ---------------------------------------------------------------- */ |
1085 | - |
1086 | -table.docutils { |
1087 | - border: 0; |
1088 | - border-collapse: collapse; |
1089 | -} |
1090 | - |
1091 | -table.docutils td, table.docutils th { |
1092 | - padding: 1px 8px 1px 5px; |
1093 | - border-top: 0; |
1094 | - border-left: 0; |
1095 | - border-right: 0; |
1096 | - border-bottom: 1px solid #aaa; |
1097 | -} |
1098 | - |
1099 | -table.field-list td, table.field-list th { |
1100 | - border: 0 !important; |
1101 | -} |
1102 | - |
1103 | -table.footnote td, table.footnote th { |
1104 | - border: 0 !important; |
1105 | -} |
1106 | - |
1107 | -th { |
1108 | - text-align: left; |
1109 | - padding-right: 5px; |
1110 | -} |
1111 | - |
1112 | -table.citation { |
1113 | - border-left: solid 1px gray; |
1114 | - margin-left: 1px; |
1115 | -} |
1116 | - |
1117 | -table.citation td { |
1118 | - border-bottom: none; |
1119 | -} |
1120 | - |
1121 | -/* -- other body styles ----------------------------------------------------- */ |
1122 | - |
1123 | -ol.arabic { |
1124 | - list-style: decimal; |
1125 | -} |
1126 | - |
1127 | -ol.loweralpha { |
1128 | - list-style: lower-alpha; |
1129 | -} |
1130 | - |
1131 | -ol.upperalpha { |
1132 | - list-style: upper-alpha; |
1133 | -} |
1134 | - |
1135 | -ol.lowerroman { |
1136 | - list-style: lower-roman; |
1137 | -} |
1138 | - |
1139 | -ol.upperroman { |
1140 | - list-style: upper-roman; |
1141 | -} |
1142 | - |
1143 | -dl { |
1144 | - margin-bottom: 15px; |
1145 | -} |
1146 | - |
1147 | -dd p { |
1148 | - margin-top: 0px; |
1149 | -} |
1150 | - |
1151 | -dd ul, dd table { |
1152 | - margin-bottom: 10px; |
1153 | -} |
1154 | - |
1155 | -dd { |
1156 | - margin-top: 3px; |
1157 | - margin-bottom: 10px; |
1158 | - margin-left: 30px; |
1159 | -} |
1160 | - |
1161 | -dt:target, .highlighted { |
1162 | - background-color: #fbe54e; |
1163 | -} |
1164 | - |
1165 | -dl.glossary dt { |
1166 | - font-weight: bold; |
1167 | - font-size: 1.1em; |
1168 | -} |
1169 | - |
1170 | -.field-list ul { |
1171 | - margin: 0; |
1172 | - padding-left: 1em; |
1173 | -} |
1174 | - |
1175 | -.field-list p { |
1176 | - margin: 0; |
1177 | -} |
1178 | - |
1179 | -.refcount { |
1180 | - color: #060; |
1181 | -} |
1182 | - |
1183 | -.optional { |
1184 | - font-size: 1.3em; |
1185 | -} |
1186 | - |
1187 | -.versionmodified { |
1188 | - font-style: italic; |
1189 | -} |
1190 | - |
1191 | -.system-message { |
1192 | - background-color: #fda; |
1193 | - padding: 5px; |
1194 | - border: 3px solid red; |
1195 | -} |
1196 | - |
1197 | -.footnote:target { |
1198 | - background-color: #ffa; |
1199 | -} |
1200 | - |
1201 | -.line-block { |
1202 | - display: block; |
1203 | - margin-top: 1em; |
1204 | - margin-bottom: 1em; |
1205 | -} |
1206 | - |
1207 | -.line-block .line-block { |
1208 | - margin-top: 0; |
1209 | - margin-bottom: 0; |
1210 | - margin-left: 1.5em; |
1211 | -} |
1212 | - |
1213 | -.guilabel, .menuselection { |
1214 | - font-family: sans-serif; |
1215 | -} |
1216 | - |
1217 | -.accelerator { |
1218 | - text-decoration: underline; |
1219 | -} |
1220 | - |
1221 | -.classifier { |
1222 | - font-style: oblique; |
1223 | -} |
1224 | - |
1225 | -abbr, acronym { |
1226 | - border-bottom: dotted 1px; |
1227 | - cursor: help; |
1228 | -} |
1229 | - |
1230 | -/* -- code displays --------------------------------------------------------- */ |
1231 | - |
1232 | -pre { |
1233 | - overflow: auto; |
1234 | - overflow-y: hidden; /* fixes display issues on Chrome browsers */ |
1235 | -} |
1236 | - |
1237 | -td.linenos pre { |
1238 | - padding: 5px 0px; |
1239 | - border: 0; |
1240 | - background-color: transparent; |
1241 | - color: #aaa; |
1242 | -} |
1243 | - |
1244 | -table.highlighttable { |
1245 | - margin-left: 0.5em; |
1246 | -} |
1247 | - |
1248 | -table.highlighttable td { |
1249 | - padding: 0 0.5em 0 0.5em; |
1250 | -} |
1251 | - |
1252 | -tt.descname { |
1253 | - background-color: transparent; |
1254 | - font-weight: bold; |
1255 | - font-size: 1.2em; |
1256 | -} |
1257 | - |
1258 | -tt.descclassname { |
1259 | - background-color: transparent; |
1260 | -} |
1261 | - |
1262 | -tt.xref, a tt { |
1263 | - background-color: transparent; |
1264 | - font-weight: bold; |
1265 | -} |
1266 | - |
1267 | -h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt { |
1268 | - background-color: transparent; |
1269 | -} |
1270 | - |
1271 | -.viewcode-link { |
1272 | - float: right; |
1273 | -} |
1274 | - |
1275 | -.viewcode-back { |
1276 | - float: right; |
1277 | - font-family: sans-serif; |
1278 | -} |
1279 | - |
1280 | -div.viewcode-block:target { |
1281 | - margin: -1px -10px; |
1282 | - padding: 0 10px; |
1283 | -} |
1284 | - |
1285 | -/* -- math display ---------------------------------------------------------- */ |
1286 | - |
1287 | -img.math { |
1288 | - vertical-align: middle; |
1289 | -} |
1290 | - |
1291 | -div.body div.math p { |
1292 | - text-align: center; |
1293 | -} |
1294 | - |
1295 | -span.eqno { |
1296 | - float: right; |
1297 | -} |
1298 | - |
1299 | -/* -- printout stylesheet --------------------------------------------------- */ |
1300 | - |
1301 | -@media print { |
1302 | - div.document, |
1303 | - div.documentwrapper, |
1304 | - div.bodywrapper { |
1305 | - margin: 0 !important; |
1306 | - width: 100%; |
1307 | - } |
1308 | - |
1309 | - div.sphinxsidebar, |
1310 | - div.related, |
1311 | - div.footer, |
1312 | - #top-link { |
1313 | - display: none; |
1314 | - } |
1315 | -} |
1316 | \ No newline at end of file |
1317 | |
1318 | === removed file 'src/postorius/doc/_build/html/_static/comment-bright.png' |
1319 | Binary files src/postorius/doc/_build/html/_static/comment-bright.png 2012-05-29 06:28:56 +0000 and src/postorius/doc/_build/html/_static/comment-bright.png 1970-01-01 00:00:00 +0000 differ |
1320 | === removed file 'src/postorius/doc/_build/html/_static/comment-close.png' |
1321 | Binary files src/postorius/doc/_build/html/_static/comment-close.png 2012-05-29 06:28:56 +0000 and src/postorius/doc/_build/html/_static/comment-close.png 1970-01-01 00:00:00 +0000 differ |
1322 | === removed file 'src/postorius/doc/_build/html/_static/comment.png' |
1323 | Binary files src/postorius/doc/_build/html/_static/comment.png 2012-05-29 06:28:56 +0000 and src/postorius/doc/_build/html/_static/comment.png 1970-01-01 00:00:00 +0000 differ |
1324 | === removed file 'src/postorius/doc/_build/html/_static/default.css' |
1325 | --- src/postorius/doc/_build/html/_static/default.css 2012-03-23 22:54:46 +0000 |
1326 | +++ src/postorius/doc/_build/html/_static/default.css 1970-01-01 00:00:00 +0000 |
1327 | @@ -1,256 +0,0 @@ |
1328 | -/* |
1329 | - * default.css_t |
1330 | - * ~~~~~~~~~~~~~ |
1331 | - * |
1332 | - * Sphinx stylesheet -- default theme. |
1333 | - * |
1334 | - * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. |
1335 | - * :license: BSD, see LICENSE for details. |
1336 | - * |
1337 | - */ |
1338 | - |
1339 | -@import url("basic.css"); |
1340 | - |
1341 | -/* -- page layout ----------------------------------------------------------- */ |
1342 | - |
1343 | -body { |
1344 | - font-family: sans-serif; |
1345 | - font-size: 100%; |
1346 | - background-color: #11303d; |
1347 | - color: #000; |
1348 | - margin: 0; |
1349 | - padding: 0; |
1350 | -} |
1351 | - |
1352 | -div.document { |
1353 | - background-color: #1c4e63; |
1354 | -} |
1355 | - |
1356 | -div.documentwrapper { |
1357 | - float: left; |
1358 | - width: 100%; |
1359 | -} |
1360 | - |
1361 | -div.bodywrapper { |
1362 | - margin: 0 0 0 230px; |
1363 | -} |
1364 | - |
1365 | -div.body { |
1366 | - background-color: #ffffff; |
1367 | - color: #000000; |
1368 | - padding: 0 20px 30px 20px; |
1369 | -} |
1370 | - |
1371 | -div.footer { |
1372 | - color: #ffffff; |
1373 | - width: 100%; |
1374 | - padding: 9px 0 9px 0; |
1375 | - text-align: center; |
1376 | - font-size: 75%; |
1377 | -} |
1378 | - |
1379 | -div.footer a { |
1380 | - color: #ffffff; |
1381 | - text-decoration: underline; |
1382 | -} |
1383 | - |
1384 | -div.related { |
1385 | - background-color: #133f52; |
1386 | - line-height: 30px; |
1387 | - color: #ffffff; |
1388 | -} |
1389 | - |
1390 | -div.related a { |
1391 | - color: #ffffff; |
1392 | -} |
1393 | - |
1394 | -div.sphinxsidebar { |
1395 | -} |
1396 | - |
1397 | -div.sphinxsidebar h3 { |
1398 | - font-family: 'Trebuchet MS', sans-serif; |
1399 | - color: #ffffff; |
1400 | - font-size: 1.4em; |
1401 | - font-weight: normal; |
1402 | - margin: 0; |
1403 | - padding: 0; |
1404 | -} |
1405 | - |
1406 | -div.sphinxsidebar h3 a { |
1407 | - color: #ffffff; |
1408 | -} |
1409 | - |
1410 | -div.sphinxsidebar h4 { |
1411 | - font-family: 'Trebuchet MS', sans-serif; |
1412 | - color: #ffffff; |
1413 | - font-size: 1.3em; |
1414 | - font-weight: normal; |
1415 | - margin: 5px 0 0 0; |
1416 | - padding: 0; |
1417 | -} |
1418 | - |
1419 | -div.sphinxsidebar p { |
1420 | - color: #ffffff; |
1421 | -} |
1422 | - |
1423 | -div.sphinxsidebar p.topless { |
1424 | - margin: 5px 10px 10px 10px; |
1425 | -} |
1426 | - |
1427 | -div.sphinxsidebar ul { |
1428 | - margin: 10px; |
1429 | - padding: 0; |
1430 | - color: #ffffff; |
1431 | -} |
1432 | - |
1433 | -div.sphinxsidebar a { |
1434 | - color: #98dbcc; |
1435 | -} |
1436 | - |
1437 | -div.sphinxsidebar input { |
1438 | - border: 1px solid #98dbcc; |
1439 | - font-family: sans-serif; |
1440 | - font-size: 1em; |
1441 | -} |
1442 | - |
1443 | - |
1444 | - |
1445 | -/* -- hyperlink styles ------------------------------------------------------ */ |
1446 | - |
1447 | -a { |
1448 | - color: #355f7c; |
1449 | - text-decoration: none; |
1450 | -} |
1451 | - |
1452 | -a:visited { |
1453 | - color: #355f7c; |
1454 | - text-decoration: none; |
1455 | -} |
1456 | - |
1457 | -a:hover { |
1458 | - text-decoration: underline; |
1459 | -} |
1460 | - |
1461 | - |
1462 | - |
1463 | -/* -- body styles ----------------------------------------------------------- */ |
1464 | - |
1465 | -div.body h1, |
1466 | -div.body h2, |
1467 | -div.body h3, |
1468 | -div.body h4, |
1469 | -div.body h5, |
1470 | -div.body h6 { |
1471 | - font-family: 'Trebuchet MS', sans-serif; |
1472 | - background-color: #f2f2f2; |
1473 | - font-weight: normal; |
1474 | - color: #20435c; |
1475 | - border-bottom: 1px solid #ccc; |
1476 | - margin: 20px -20px 10px -20px; |
1477 | - padding: 3px 0 3px 10px; |
1478 | -} |
1479 | - |
1480 | -div.body h1 { margin-top: 0; font-size: 200%; } |
1481 | -div.body h2 { font-size: 160%; } |
1482 | -div.body h3 { font-size: 140%; } |
1483 | -div.body h4 { font-size: 120%; } |
1484 | -div.body h5 { font-size: 110%; } |
1485 | -div.body h6 { font-size: 100%; } |
1486 | - |
1487 | -a.headerlink { |
1488 | - color: #c60f0f; |
1489 | - font-size: 0.8em; |
1490 | - padding: 0 4px 0 4px; |
1491 | - text-decoration: none; |
1492 | -} |
1493 | - |
1494 | -a.headerlink:hover { |
1495 | - background-color: #c60f0f; |
1496 | - color: white; |
1497 | -} |
1498 | - |
1499 | -div.body p, div.body dd, div.body li { |
1500 | - text-align: justify; |
1501 | - line-height: 130%; |
1502 | -} |
1503 | - |
1504 | -div.admonition p.admonition-title + p { |
1505 | - display: inline; |
1506 | -} |
1507 | - |
1508 | -div.admonition p { |
1509 | - margin-bottom: 5px; |
1510 | -} |
1511 | - |
1512 | -div.admonition pre { |
1513 | - margin-bottom: 5px; |
1514 | -} |
1515 | - |
1516 | -div.admonition ul, div.admonition ol { |
1517 | - margin-bottom: 5px; |
1518 | -} |
1519 | - |
1520 | -div.note { |
1521 | - background-color: #eee; |
1522 | - border: 1px solid #ccc; |
1523 | -} |
1524 | - |
1525 | -div.seealso { |
1526 | - background-color: #ffc; |
1527 | - border: 1px solid #ff6; |
1528 | -} |
1529 | - |
1530 | -div.topic { |
1531 | - background-color: #eee; |
1532 | -} |
1533 | - |
1534 | -div.warning { |
1535 | - background-color: #ffe4e4; |
1536 | - border: 1px solid #f66; |
1537 | -} |
1538 | - |
1539 | -p.admonition-title { |
1540 | - display: inline; |
1541 | -} |
1542 | - |
1543 | -p.admonition-title:after { |
1544 | - content: ":"; |
1545 | -} |
1546 | - |
1547 | -pre { |
1548 | - padding: 5px; |
1549 | - background-color: #eeffcc; |
1550 | - color: #333333; |
1551 | - line-height: 120%; |
1552 | - border: 1px solid #ac9; |
1553 | - border-left: none; |
1554 | - border-right: none; |
1555 | -} |
1556 | - |
1557 | -tt { |
1558 | - background-color: #ecf0f3; |
1559 | - padding: 0 1px 0 1px; |
1560 | - font-size: 0.95em; |
1561 | -} |
1562 | - |
1563 | -th { |
1564 | - background-color: #ede; |
1565 | -} |
1566 | - |
1567 | -.warning tt { |
1568 | - background: #efc2c2; |
1569 | -} |
1570 | - |
1571 | -.note tt { |
1572 | - background: #d6d6d6; |
1573 | -} |
1574 | - |
1575 | -.viewcode-back { |
1576 | - font-family: sans-serif; |
1577 | -} |
1578 | - |
1579 | -div.viewcode-block:target { |
1580 | - background-color: #f4debf; |
1581 | - border-top: 1px solid #ac9; |
1582 | - border-bottom: 1px solid #ac9; |
1583 | -} |
1584 | \ No newline at end of file |
1585 | |
1586 | === removed file 'src/postorius/doc/_build/html/_static/doctools.js' |
1587 | --- src/postorius/doc/_build/html/_static/doctools.js 2012-05-29 06:28:56 +0000 |
1588 | +++ src/postorius/doc/_build/html/_static/doctools.js 1970-01-01 00:00:00 +0000 |
1589 | @@ -1,247 +0,0 @@ |
1590 | -/* |
1591 | - * doctools.js |
1592 | - * ~~~~~~~~~~~ |
1593 | - * |
1594 | - * Sphinx JavaScript utilities for all documentation. |
1595 | - * |
1596 | - * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. |
1597 | - * :license: BSD, see LICENSE for details. |
1598 | - * |
1599 | - */ |
1600 | - |
1601 | -/** |
1602 | - * select a different prefix for underscore |
1603 | - */ |
1604 | -$u = _.noConflict(); |
1605 | - |
1606 | -/** |
1607 | - * make the code below compatible with browsers without |
1608 | - * an installed firebug like debugger |
1609 | -if (!window.console || !console.firebug) { |
1610 | - var names = ["log", "debug", "info", "warn", "error", "assert", "dir", |
1611 | - "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", |
1612 | - "profile", "profileEnd"]; |
1613 | - window.console = {}; |
1614 | - for (var i = 0; i < names.length; ++i) |
1615 | - window.console[names[i]] = function() {}; |
1616 | -} |
1617 | - */ |
1618 | - |
1619 | -/** |
1620 | - * small helper function to urldecode strings |
1621 | - */ |
1622 | -jQuery.urldecode = function(x) { |
1623 | - return decodeURIComponent(x).replace(/\+/g, ' '); |
1624 | -} |
1625 | - |
1626 | -/** |
1627 | - * small helper function to urlencode strings |
1628 | - */ |
1629 | -jQuery.urlencode = encodeURIComponent; |
1630 | - |
1631 | -/** |
1632 | - * This function returns the parsed url parameters of the |
1633 | - * current request. Multiple values per key are supported, |
1634 | - * it will always return arrays of strings for the value parts. |
1635 | - */ |
1636 | -jQuery.getQueryParameters = function(s) { |
1637 | - if (typeof s == 'undefined') |
1638 | - s = document.location.search; |
1639 | - var parts = s.substr(s.indexOf('?') + 1).split('&'); |
1640 | - var result = {}; |
1641 | - for (var i = 0; i < parts.length; i++) { |
1642 | - var tmp = parts[i].split('=', 2); |
1643 | - var key = jQuery.urldecode(tmp[0]); |
1644 | - var value = jQuery.urldecode(tmp[1]); |
1645 | - if (key in result) |
1646 | - result[key].push(value); |
1647 | - else |
1648 | - result[key] = [value]; |
1649 | - } |
1650 | - return result; |
1651 | -}; |
1652 | - |
1653 | -/** |
1654 | - * small function to check if an array contains |
1655 | - * a given item. |
1656 | - */ |
1657 | -jQuery.contains = function(arr, item) { |
1658 | - for (var i = 0; i < arr.length; i++) { |
1659 | - if (arr[i] == item) |
1660 | - return true; |
1661 | - } |
1662 | - return false; |
1663 | -}; |
1664 | - |
1665 | -/** |
1666 | - * highlight a given string on a jquery object by wrapping it in |
1667 | - * span elements with the given class name. |
1668 | - */ |
1669 | -jQuery.fn.highlightText = function(text, className) { |
1670 | - function highlight(node) { |
1671 | - if (node.nodeType == 3) { |
1672 | - var val = node.nodeValue; |
1673 | - var pos = val.toLowerCase().indexOf(text); |
1674 | - if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { |
1675 | - var span = document.createElement("span"); |
1676 | - span.className = className; |
1677 | - span.appendChild(document.createTextNode(val.substr(pos, text.length))); |
1678 | - node.parentNode.insertBefore(span, node.parentNode.insertBefore( |
1679 | - document.createTextNode(val.substr(pos + text.length)), |
1680 | - node.nextSibling)); |
1681 | - node.nodeValue = val.substr(0, pos); |
1682 | - } |
1683 | - } |
1684 | - else if (!jQuery(node).is("button, select, textarea")) { |
1685 | - jQuery.each(node.childNodes, function() { |
1686 | - highlight(this); |
1687 | - }); |
1688 | - } |
1689 | - } |
1690 | - return this.each(function() { |
1691 | - highlight(this); |
1692 | - }); |
1693 | -}; |
1694 | - |
1695 | -/** |
1696 | - * Small JavaScript module for the documentation. |
1697 | - */ |
1698 | -var Documentation = { |
1699 | - |
1700 | - init : function() { |
1701 | - this.fixFirefoxAnchorBug(); |
1702 | - this.highlightSearchWords(); |
1703 | - this.initIndexTable(); |
1704 | - }, |
1705 | - |
1706 | - /** |
1707 | - * i18n support |
1708 | - */ |
1709 | - TRANSLATIONS : {}, |
1710 | - PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, |
1711 | - LOCALE : 'unknown', |
1712 | - |
1713 | - // gettext and ngettext don't access this so that the functions |
1714 | - // can safely bound to a different name (_ = Documentation.gettext) |
1715 | - gettext : function(string) { |
1716 | - var translated = Documentation.TRANSLATIONS[string]; |
1717 | - if (typeof translated == 'undefined') |
1718 | - return string; |
1719 | - return (typeof translated == 'string') ? translated : translated[0]; |
1720 | - }, |
1721 | - |
1722 | - ngettext : function(singular, plural, n) { |
1723 | - var translated = Documentation.TRANSLATIONS[singular]; |
1724 | - if (typeof translated == 'undefined') |
1725 | - return (n == 1) ? singular : plural; |
1726 | - return translated[Documentation.PLURALEXPR(n)]; |
1727 | - }, |
1728 | - |
1729 | - addTranslations : function(catalog) { |
1730 | - for (var key in catalog.messages) |
1731 | - this.TRANSLATIONS[key] = catalog.messages[key]; |
1732 | - this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); |
1733 | - this.LOCALE = catalog.locale; |
1734 | - }, |
1735 | - |
1736 | - /** |
1737 | - * add context elements like header anchor links |
1738 | - */ |
1739 | - addContextElements : function() { |
1740 | - $('div[id] > :header:first').each(function() { |
1741 | - $('<a class="headerlink">\u00B6</a>'). |
1742 | - attr('href', '#' + this.id). |
1743 | - attr('title', _('Permalink to this headline')). |
1744 | - appendTo(this); |
1745 | - }); |
1746 | - $('dt[id]').each(function() { |
1747 | - $('<a class="headerlink">\u00B6</a>'). |
1748 | - attr('href', '#' + this.id). |
1749 | - attr('title', _('Permalink to this definition')). |
1750 | - appendTo(this); |
1751 | - }); |
1752 | - }, |
1753 | - |
1754 | - /** |
1755 | - * workaround a firefox stupidity |
1756 | - */ |
1757 | - fixFirefoxAnchorBug : function() { |
1758 | - if (document.location.hash && $.browser.mozilla) |
1759 | - window.setTimeout(function() { |
1760 | - document.location.href += ''; |
1761 | - }, 10); |
1762 | - }, |
1763 | - |
1764 | - /** |
1765 | - * highlight the search words provided in the url in the text |
1766 | - */ |
1767 | - highlightSearchWords : function() { |
1768 | - var params = $.getQueryParameters(); |
1769 | - var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; |
1770 | - if (terms.length) { |
1771 | - var body = $('div.body'); |
1772 | - window.setTimeout(function() { |
1773 | - $.each(terms, function() { |
1774 | - body.highlightText(this.toLowerCase(), 'highlighted'); |
1775 | - }); |
1776 | - }, 10); |
1777 | - $('<p class="highlight-link"><a href="javascript:Documentation.' + |
1778 | - 'hideSearchWords()">' + _('Hide Search Matches') + '</a></p>') |
1779 | - .appendTo($('#searchbox')); |
1780 | - } |
1781 | - }, |
1782 | - |
1783 | - /** |
1784 | - * init the domain index toggle buttons |
1785 | - */ |
1786 | - initIndexTable : function() { |
1787 | - var togglers = $('img.toggler').click(function() { |
1788 | - var src = $(this).attr('src'); |
1789 | - var idnum = $(this).attr('id').substr(7); |
1790 | - $('tr.cg-' + idnum).toggle(); |
1791 | - if (src.substr(-9) == 'minus.png') |
1792 | - $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); |
1793 | - else |
1794 | - $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); |
1795 | - }).css('display', ''); |
1796 | - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { |
1797 | - togglers.click(); |
1798 | - } |
1799 | - }, |
1800 | - |
1801 | - /** |
1802 | - * helper function to hide the search marks again |
1803 | - */ |
1804 | - hideSearchWords : function() { |
1805 | - $('#searchbox .highlight-link').fadeOut(300); |
1806 | - $('span.highlighted').removeClass('highlighted'); |
1807 | - }, |
1808 | - |
1809 | - /** |
1810 | - * make the url absolute |
1811 | - */ |
1812 | - makeURL : function(relativeURL) { |
1813 | - return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; |
1814 | - }, |
1815 | - |
1816 | - /** |
1817 | - * get the current relative url |
1818 | - */ |
1819 | - getCurrentURL : function() { |
1820 | - var path = document.location.pathname; |
1821 | - var parts = path.split(/\//); |
1822 | - $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { |
1823 | - if (this == '..') |
1824 | - parts.pop(); |
1825 | - }); |
1826 | - var url = parts.join('/'); |
1827 | - return path.substring(url.lastIndexOf('/') + 1, path.length - 1); |
1828 | - } |
1829 | -}; |
1830 | - |
1831 | -// quick alias for translations |
1832 | -_ = Documentation.gettext; |
1833 | - |
1834 | -$(document).ready(function() { |
1835 | - Documentation.init(); |
1836 | -}); |
1837 | |
1838 | === removed file 'src/postorius/doc/_build/html/_static/down-pressed.png' |
1839 | Binary files src/postorius/doc/_build/html/_static/down-pressed.png 2012-05-29 06:28:56 +0000 and src/postorius/doc/_build/html/_static/down-pressed.png 1970-01-01 00:00:00 +0000 differ |
1840 | === removed file 'src/postorius/doc/_build/html/_static/down.png' |
1841 | Binary files src/postorius/doc/_build/html/_static/down.png 2012-05-29 06:28:56 +0000 and src/postorius/doc/_build/html/_static/down.png 1970-01-01 00:00:00 +0000 differ |
1842 | === removed file 'src/postorius/doc/_build/html/_static/file.png' |
1843 | Binary files src/postorius/doc/_build/html/_static/file.png 2011-08-17 16:19:11 +0000 and src/postorius/doc/_build/html/_static/file.png 1970-01-01 00:00:00 +0000 differ |
1844 | === removed file 'src/postorius/doc/_build/html/_static/jquery.js' |
1845 | --- src/postorius/doc/_build/html/_static/jquery.js 2012-03-23 22:54:46 +0000 |
1846 | +++ src/postorius/doc/_build/html/_static/jquery.js 1970-01-01 00:00:00 +0000 |
1847 | @@ -1,154 +0,0 @@ |
1848 | -/*! |
1849 | - * jQuery JavaScript Library v1.4.2 |
1850 | - * http://jquery.com/ |
1851 | - * |
1852 | - * Copyright 2010, John Resig |
1853 | - * Dual licensed under the MIT or GPL Version 2 licenses. |
1854 | - * http://jquery.org/license |
1855 | - * |
1856 | - * Includes Sizzle.js |
1857 | - * http://sizzlejs.com/ |
1858 | - * Copyright 2010, The Dojo Foundation |
1859 | - * Released under the MIT, BSD, and GPL Licenses. |
1860 | - * |
1861 | - * Date: Sat Feb 13 22:33:48 2010 -0500 |
1862 | - */ |
1863 | -(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<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i? |
1864 | -e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r= |
1865 | -j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g, |
1866 | -"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e= |
1867 | -true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, |
1868 | -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))&& |
1869 | -(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, |
1870 | -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=== |
1871 | -"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, |
1872 | -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<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)|| |
1873 | -c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded", |
1874 | -L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype, |
1875 | -"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+ |
1876 | -a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f], |
1877 | -d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]=== |
1878 | -a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&& |
1879 | -!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari= |
1880 | -true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>"; |
1881 | -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, |
1882 | -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= |
1883 | -false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";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= |
1884 | -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, |
1885 | -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]; |
1886 | -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, |
1887 | -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=== |
1888 | -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, |
1889 | -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<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ", |
1890 | -i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ", |
1891 | -" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className= |
1892 | -this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-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<d;j++){var i= |
1893 | -e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= |
1894 | -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"); |
1895 | -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, |
1896 | -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("."); |
1897 | -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), |
1898 | -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<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!= |
1899 | -null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type= |
1900 | -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()&& |
1901 | -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; |
1902 | -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<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), |
1903 | -fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop|| |
1904 | -d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this, |
1905 | -"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent= |
1906 | -a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y, |
1907 | -isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit= |
1908 | -{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}}; |
1909 | -if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-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", |
1910 | -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, |
1911 | -"_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, |
1912 | -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;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&& |
1913 | -!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}}, |
1914 | -toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector, |
1915 | -u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "), |
1916 | -function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q]; |
1917 | -if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, |
1918 | -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(); |
1919 | -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|| |
1920 | -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<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[]; |
1921 | -for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length- |
1922 | -1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/, |
1923 | -CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}}, |
1924 | -relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]= |
1925 | -l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[]; |
1926 | -h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=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()}, |
1927 | -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, |
1928 | -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)}, |
1929 | -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)}}, |
1930 | -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 h<l[3]-0},gt:function(g,h,l){return h>l[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= |
1931 | -h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m= |
1932 | -m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/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=== |
1933 | -"="?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, |
1934 | -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<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition|| |
1935 | -!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m= |
1936 | -h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";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"&& |
1937 | -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="<a href='#'></a>"; |
1938 | -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="<p class='TEST'></p>";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}}(); |
1939 | -(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";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)}: |
1940 | -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<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/, |
1941 | -gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length; |
1942 | -c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= |
1943 | -{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-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=== |
1944 | -"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", |
1945 | -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")? |
1946 | -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=== |
1947 | -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=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)? |
1948 | -a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_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<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= |
1949 | -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}, |
1950 | -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)})}, |
1951 | -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, |
1952 | -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); |
1953 | -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, |
1954 | -""):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;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&& |
1955 | -this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]|| |
1956 | -u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length=== |
1957 | -1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||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]); |
1958 | -return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?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)||["", |
1959 | -""])[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]==="<table>"&&!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= |
1960 | -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]? |
1961 | -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= |
1962 | -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= |
1963 | -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, |
1964 | -"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= |
1965 | -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= |
1966 | -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=/<script(.|\s)*?\/script>/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!== |
1967 | -"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("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, |
1968 | -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(" "), |
1969 | -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, |
1970 | -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&& |
1971 | -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)? |
1972 | -"&":"?")+(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=== |
1973 | -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= |
1974 | -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", |
1975 | -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|| |
1976 | -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); |
1977 | -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=== |
1978 | -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=== |
1979 | -"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; |
1980 | -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<b;a++){var d=c.data(this[a],"olddisplay"); |
1981 | -this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").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<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a], |
1982 | -"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)}, |
1983 | -animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing= |
1984 | -j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]); |
1985 | -this.each(function(){for(var f=d.length-1;f>=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=== |
1986 | -"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]|| |
1987 | -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; |
1988 | -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= |
1989 | -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, |
1990 | -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.length;b++)a[b]()||a.splice(b--,1);a.length|| |
1991 | -c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement? |
1992 | -function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b= |
1993 | -this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle; |
1994 | -k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&& |
1995 | -f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>"; |
1996 | -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); |
1997 | -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, |
1998 | -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- |
1999 | -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": |
2000 | -"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 |
2001 | -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); |
2002 | |
2003 | === removed file 'src/postorius/doc/_build/html/_static/minus.png' |
2004 | Binary files src/postorius/doc/_build/html/_static/minus.png 2011-08-17 16:19:11 +0000 and src/postorius/doc/_build/html/_static/minus.png 1970-01-01 00:00:00 +0000 differ |
2005 | === removed file 'src/postorius/doc/_build/html/_static/plus.png' |
2006 | Binary files src/postorius/doc/_build/html/_static/plus.png 2011-08-17 16:19:11 +0000 and src/postorius/doc/_build/html/_static/plus.png 1970-01-01 00:00:00 +0000 differ |
2007 | === removed file 'src/postorius/doc/_build/html/_static/pygments.css' |
2008 | --- src/postorius/doc/_build/html/_static/pygments.css 2012-03-23 22:54:46 +0000 |
2009 | +++ src/postorius/doc/_build/html/_static/pygments.css 1970-01-01 00:00:00 +0000 |
2010 | @@ -1,62 +0,0 @@ |
2011 | -.highlight .hll { background-color: #ffffcc } |
2012 | -.highlight { background: #eeffcc; } |
2013 | -.highlight .c { color: #408090; font-style: italic } /* Comment */ |
2014 | -.highlight .err { border: 1px solid #FF0000 } /* Error */ |
2015 | -.highlight .k { color: #007020; font-weight: bold } /* Keyword */ |
2016 | -.highlight .o { color: #666666 } /* Operator */ |
2017 | -.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ |
2018 | -.highlight .cp { color: #007020 } /* Comment.Preproc */ |
2019 | -.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ |
2020 | -.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ |
2021 | -.highlight .gd { color: #A00000 } /* Generic.Deleted */ |
2022 | -.highlight .ge { font-style: italic } /* Generic.Emph */ |
2023 | -.highlight .gr { color: #FF0000 } /* Generic.Error */ |
2024 | -.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ |
2025 | -.highlight .gi { color: #00A000 } /* Generic.Inserted */ |
2026 | -.highlight .go { color: #303030 } /* Generic.Output */ |
2027 | -.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ |
2028 | -.highlight .gs { font-weight: bold } /* Generic.Strong */ |
2029 | -.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ |
2030 | -.highlight .gt { color: #0040D0 } /* Generic.Traceback */ |
2031 | -.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ |
2032 | -.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ |
2033 | -.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ |
2034 | -.highlight .kp { color: #007020 } /* Keyword.Pseudo */ |
2035 | -.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ |
2036 | -.highlight .kt { color: #902000 } /* Keyword.Type */ |
2037 | -.highlight .m { color: #208050 } /* Literal.Number */ |
2038 | -.highlight .s { color: #4070a0 } /* Literal.String */ |
2039 | -.highlight .na { color: #4070a0 } /* Name.Attribute */ |
2040 | -.highlight .nb { color: #007020 } /* Name.Builtin */ |
2041 | -.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ |
2042 | -.highlight .no { color: #60add5 } /* Name.Constant */ |
2043 | -.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ |
2044 | -.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ |
2045 | -.highlight .ne { color: #007020 } /* Name.Exception */ |
2046 | -.highlight .nf { color: #06287e } /* Name.Function */ |
2047 | -.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ |
2048 | -.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ |
2049 | -.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ |
2050 | -.highlight .nv { color: #bb60d5 } /* Name.Variable */ |
2051 | -.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ |
2052 | -.highlight .w { color: #bbbbbb } /* Text.Whitespace */ |
2053 | -.highlight .mf { color: #208050 } /* Literal.Number.Float */ |
2054 | -.highlight .mh { color: #208050 } /* Literal.Number.Hex */ |
2055 | -.highlight .mi { color: #208050 } /* Literal.Number.Integer */ |
2056 | -.highlight .mo { color: #208050 } /* Literal.Number.Oct */ |
2057 | -.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ |
2058 | -.highlight .sc { color: #4070a0 } /* Literal.String.Char */ |
2059 | -.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ |
2060 | -.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ |
2061 | -.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ |
2062 | -.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ |
2063 | -.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ |
2064 | -.highlight .sx { color: #c65d09 } /* Literal.String.Other */ |
2065 | -.highlight .sr { color: #235388 } /* Literal.String.Regex */ |
2066 | -.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ |
2067 | -.highlight .ss { color: #517918 } /* Literal.String.Symbol */ |
2068 | -.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ |
2069 | -.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ |
2070 | -.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ |
2071 | -.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ |
2072 | -.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ |
2073 | \ No newline at end of file |
2074 | |
2075 | === removed file 'src/postorius/doc/_build/html/_static/searchtools.js' |
2076 | --- src/postorius/doc/_build/html/_static/searchtools.js 2012-05-29 06:28:56 +0000 |
2077 | +++ src/postorius/doc/_build/html/_static/searchtools.js 1970-01-01 00:00:00 +0000 |
2078 | @@ -1,560 +0,0 @@ |
2079 | -/* |
2080 | - * searchtools.js_t |
2081 | - * ~~~~~~~~~~~~~~~~ |
2082 | - * |
2083 | - * Sphinx JavaScript utilties for the full-text search. |
2084 | - * |
2085 | - * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. |
2086 | - * :license: BSD, see LICENSE for details. |
2087 | - * |
2088 | - */ |
2089 | - |
2090 | -/** |
2091 | - * helper function to return a node containing the |
2092 | - * search summary for a given text. keywords is a list |
2093 | - * of stemmed words, hlwords is the list of normal, unstemmed |
2094 | - * words. the first one is used to find the occurance, the |
2095 | - * latter for highlighting it. |
2096 | - */ |
2097 | - |
2098 | -jQuery.makeSearchSummary = function(text, keywords, hlwords) { |
2099 | - var textLower = text.toLowerCase(); |
2100 | - var start = 0; |
2101 | - $.each(keywords, function() { |
2102 | - var i = textLower.indexOf(this.toLowerCase()); |
2103 | - if (i > -1) |
2104 | - start = i; |
2105 | - }); |
2106 | - start = Math.max(start - 120, 0); |
2107 | - var excerpt = ((start > 0) ? '...' : '') + |
2108 | - $.trim(text.substr(start, 240)) + |
2109 | - ((start + 240 - text.length) ? '...' : ''); |
2110 | - var rv = $('<div class="context"></div>').text(excerpt); |
2111 | - $.each(hlwords, function() { |
2112 | - rv = rv.highlightText(this, 'highlighted'); |
2113 | - }); |
2114 | - return rv; |
2115 | -} |
2116 | - |
2117 | - |
2118 | -/** |
2119 | - * Porter Stemmer |
2120 | - */ |
2121 | -var Stemmer = function() { |
2122 | - |
2123 | - var step2list = { |
2124 | - ational: 'ate', |
2125 | - tional: 'tion', |
2126 | - enci: 'ence', |
2127 | - anci: 'ance', |
2128 | - izer: 'ize', |
2129 | - bli: 'ble', |
2130 | - alli: 'al', |
2131 | - entli: 'ent', |
2132 | - eli: 'e', |
2133 | - ousli: 'ous', |
2134 | - ization: 'ize', |
2135 | - ation: 'ate', |
2136 | - ator: 'ate', |
2137 | - alism: 'al', |
2138 | - iveness: 'ive', |
2139 | - fulness: 'ful', |
2140 | - ousness: 'ous', |
2141 | - aliti: 'al', |
2142 | - iviti: 'ive', |
2143 | - biliti: 'ble', |
2144 | - logi: 'log' |
2145 | - }; |
2146 | - |
2147 | - var step3list = { |
2148 | - icate: 'ic', |
2149 | - ative: '', |
2150 | - alize: 'al', |
2151 | - iciti: 'ic', |
2152 | - ical: 'ic', |
2153 | - ful: '', |
2154 | - ness: '' |
2155 | - }; |
2156 | - |
2157 | - var c = "[^aeiou]"; // consonant |
2158 | - var v = "[aeiouy]"; // vowel |
2159 | - var C = c + "[^aeiouy]*"; // consonant sequence |
2160 | - var V = v + "[aeiou]*"; // vowel sequence |
2161 | - |
2162 | - var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 |
2163 | - var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 |
2164 | - var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 |
2165 | - var s_v = "^(" + C + ")?" + v; // vowel in stem |
2166 | - |
2167 | - this.stemWord = function (w) { |
2168 | - var stem; |
2169 | - var suffix; |
2170 | - var firstch; |
2171 | - var origword = w; |
2172 | - |
2173 | - if (w.length < 3) |
2174 | - return w; |
2175 | - |
2176 | - var re; |
2177 | - var re2; |
2178 | - var re3; |
2179 | - var re4; |
2180 | - |
2181 | - firstch = w.substr(0,1); |
2182 | - if (firstch == "y") |
2183 | - w = firstch.toUpperCase() + w.substr(1); |
2184 | - |
2185 | - // Step 1a |
2186 | - re = /^(.+?)(ss|i)es$/; |
2187 | - re2 = /^(.+?)([^s])s$/; |
2188 | - |
2189 | - if (re.test(w)) |
2190 | - w = w.replace(re,"$1$2"); |
2191 | - else if (re2.test(w)) |
2192 | - w = w.replace(re2,"$1$2"); |
2193 | - |
2194 | - // Step 1b |
2195 | - re = /^(.+?)eed$/; |
2196 | - re2 = /^(.+?)(ed|ing)$/; |
2197 | - if (re.test(w)) { |
2198 | - var fp = re.exec(w); |
2199 | - re = new RegExp(mgr0); |
2200 | - if (re.test(fp[1])) { |
2201 | - re = /.$/; |
2202 | - w = w.replace(re,""); |
2203 | - } |
2204 | - } |
2205 | - else if (re2.test(w)) { |
2206 | - var fp = re2.exec(w); |
2207 | - stem = fp[1]; |
2208 | - re2 = new RegExp(s_v); |
2209 | - if (re2.test(stem)) { |
2210 | - w = stem; |
2211 | - re2 = /(at|bl|iz)$/; |
2212 | - re3 = new RegExp("([^aeiouylsz])\\1$"); |
2213 | - re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); |
2214 | - if (re2.test(w)) |
2215 | - w = w + "e"; |
2216 | - else if (re3.test(w)) { |
2217 | - re = /.$/; |
2218 | - w = w.replace(re,""); |
2219 | - } |
2220 | - else if (re4.test(w)) |
2221 | - w = w + "e"; |
2222 | - } |
2223 | - } |
2224 | - |
2225 | - // Step 1c |
2226 | - re = /^(.+?)y$/; |
2227 | - if (re.test(w)) { |
2228 | - var fp = re.exec(w); |
2229 | - stem = fp[1]; |
2230 | - re = new RegExp(s_v); |
2231 | - if (re.test(stem)) |
2232 | - w = stem + "i"; |
2233 | - } |
2234 | - |
2235 | - // Step 2 |
2236 | - re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; |
2237 | - if (re.test(w)) { |
2238 | - var fp = re.exec(w); |
2239 | - stem = fp[1]; |
2240 | - suffix = fp[2]; |
2241 | - re = new RegExp(mgr0); |
2242 | - if (re.test(stem)) |
2243 | - w = stem + step2list[suffix]; |
2244 | - } |
2245 | - |
2246 | - // Step 3 |
2247 | - re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; |
2248 | - if (re.test(w)) { |
2249 | - var fp = re.exec(w); |
2250 | - stem = fp[1]; |
2251 | - suffix = fp[2]; |
2252 | - re = new RegExp(mgr0); |
2253 | - if (re.test(stem)) |
2254 | - w = stem + step3list[suffix]; |
2255 | - } |
2256 | - |
2257 | - // Step 4 |
2258 | - re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; |
2259 | - re2 = /^(.+?)(s|t)(ion)$/; |
2260 | - if (re.test(w)) { |
2261 | - var fp = re.exec(w); |
2262 | - stem = fp[1]; |
2263 | - re = new RegExp(mgr1); |
2264 | - if (re.test(stem)) |
2265 | - w = stem; |
2266 | - } |
2267 | - else if (re2.test(w)) { |
2268 | - var fp = re2.exec(w); |
2269 | - stem = fp[1] + fp[2]; |
2270 | - re2 = new RegExp(mgr1); |
2271 | - if (re2.test(stem)) |
2272 | - w = stem; |
2273 | - } |
2274 | - |
2275 | - // Step 5 |
2276 | - re = /^(.+?)e$/; |
2277 | - if (re.test(w)) { |
2278 | - var fp = re.exec(w); |
2279 | - stem = fp[1]; |
2280 | - re = new RegExp(mgr1); |
2281 | - re2 = new RegExp(meq1); |
2282 | - re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); |
2283 | - if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) |
2284 | - w = stem; |
2285 | - } |
2286 | - re = /ll$/; |
2287 | - re2 = new RegExp(mgr1); |
2288 | - if (re.test(w) && re2.test(w)) { |
2289 | - re = /.$/; |
2290 | - w = w.replace(re,""); |
2291 | - } |
2292 | - |
2293 | - // and turn initial Y back to y |
2294 | - if (firstch == "y") |
2295 | - w = firstch.toLowerCase() + w.substr(1); |
2296 | - return w; |
2297 | - } |
2298 | -} |
2299 | - |
2300 | - |
2301 | -/** |
2302 | - * Search Module |
2303 | - */ |
2304 | -var Search = { |
2305 | - |
2306 | - _index : null, |
2307 | - _queued_query : null, |
2308 | - _pulse_status : -1, |
2309 | - |
2310 | - init : function() { |
2311 | - var params = $.getQueryParameters(); |
2312 | - if (params.q) { |
2313 | - var query = params.q[0]; |
2314 | - $('input[name="q"]')[0].value = query; |
2315 | - this.performSearch(query); |
2316 | - } |
2317 | - }, |
2318 | - |
2319 | - loadIndex : function(url) { |
2320 | - $.ajax({type: "GET", url: url, data: null, success: null, |
2321 | - dataType: "script", cache: true}); |
2322 | - }, |
2323 | - |
2324 | - setIndex : function(index) { |
2325 | - var q; |
2326 | - this._index = index; |
2327 | - if ((q = this._queued_query) !== null) { |
2328 | - this._queued_query = null; |
2329 | - Search.query(q); |
2330 | - } |
2331 | - }, |
2332 | - |
2333 | - hasIndex : function() { |
2334 | - return this._index !== null; |
2335 | - }, |
2336 | - |
2337 | - deferQuery : function(query) { |
2338 | - this._queued_query = query; |
2339 | - }, |
2340 | - |
2341 | - stopPulse : function() { |
2342 | - this._pulse_status = 0; |
2343 | - }, |
2344 | - |
2345 | - startPulse : function() { |
2346 | - if (this._pulse_status >= 0) |
2347 | - return; |
2348 | - function pulse() { |
2349 | - Search._pulse_status = (Search._pulse_status + 1) % 4; |
2350 | - var dotString = ''; |
2351 | - for (var i = 0; i < Search._pulse_status; i++) |
2352 | - dotString += '.'; |
2353 | - Search.dots.text(dotString); |
2354 | - if (Search._pulse_status > -1) |
2355 | - window.setTimeout(pulse, 500); |
2356 | - }; |
2357 | - pulse(); |
2358 | - }, |
2359 | - |
2360 | - /** |
2361 | - * perform a search for something |
2362 | - */ |
2363 | - performSearch : function(query) { |
2364 | - // create the required interface elements |
2365 | - this.out = $('#search-results'); |
2366 | - this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out); |
2367 | - this.dots = $('<span></span>').appendTo(this.title); |
2368 | - this.status = $('<p style="display: none"></p>').appendTo(this.out); |
2369 | - this.output = $('<ul class="search"/>').appendTo(this.out); |
2370 | - |
2371 | - $('#search-progress').text(_('Preparing search...')); |
2372 | - this.startPulse(); |
2373 | - |
2374 | - // index already loaded, the browser was quick! |
2375 | - if (this.hasIndex()) |
2376 | - this.query(query); |
2377 | - else |
2378 | - this.deferQuery(query); |
2379 | - }, |
2380 | - |
2381 | - query : function(query) { |
2382 | - var stopwords = ["and","then","into","it","as","are","in","if","for","no","there","their","was","is","be","to","that","but","they","not","such","with","by","a","on","these","of","will","this","near","the","or","at"]; |
2383 | - |
2384 | - // Stem the searchterms and add them to the correct list |
2385 | - var stemmer = new Stemmer(); |
2386 | - var searchterms = []; |
2387 | - var excluded = []; |
2388 | - var hlterms = []; |
2389 | - var tmp = query.split(/\s+/); |
2390 | - var objectterms = []; |
2391 | - for (var i = 0; i < tmp.length; i++) { |
2392 | - if (tmp[i] != "") { |
2393 | - objectterms.push(tmp[i].toLowerCase()); |
2394 | - } |
2395 | - |
2396 | - if ($u.indexOf(stopwords, tmp[i]) != -1 || tmp[i].match(/^\d+$/) || |
2397 | - tmp[i] == "") { |
2398 | - // skip this "word" |
2399 | - continue; |
2400 | - } |
2401 | - // stem the word |
2402 | - var word = stemmer.stemWord(tmp[i]).toLowerCase(); |
2403 | - // select the correct list |
2404 | - if (word[0] == '-') { |
2405 | - var toAppend = excluded; |
2406 | - word = word.substr(1); |
2407 | - } |
2408 | - else { |
2409 | - var toAppend = searchterms; |
2410 | - hlterms.push(tmp[i].toLowerCase()); |
2411 | - } |
2412 | - // only add if not already in the list |
2413 | - if (!$.contains(toAppend, word)) |
2414 | - toAppend.push(word); |
2415 | - }; |
2416 | - var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" ")); |
2417 | - |
2418 | - // console.debug('SEARCH: searching for:'); |
2419 | - // console.info('required: ', searchterms); |
2420 | - // console.info('excluded: ', excluded); |
2421 | - |
2422 | - // prepare search |
2423 | - var filenames = this._index.filenames; |
2424 | - var titles = this._index.titles; |
2425 | - var terms = this._index.terms; |
2426 | - var fileMap = {}; |
2427 | - var files = null; |
2428 | - // different result priorities |
2429 | - var importantResults = []; |
2430 | - var objectResults = []; |
2431 | - var regularResults = []; |
2432 | - var unimportantResults = []; |
2433 | - $('#search-progress').empty(); |
2434 | - |
2435 | - // lookup as object |
2436 | - for (var i = 0; i < objectterms.length; i++) { |
2437 | - var others = [].concat(objectterms.slice(0,i), |
2438 | - objectterms.slice(i+1, objectterms.length)) |
2439 | - var results = this.performObjectSearch(objectterms[i], others); |
2440 | - // Assume first word is most likely to be the object, |
2441 | - // other words more likely to be in description. |
2442 | - // Therefore put matches for earlier words first. |
2443 | - // (Results are eventually used in reverse order). |
2444 | - objectResults = results[0].concat(objectResults); |
2445 | - importantResults = results[1].concat(importantResults); |
2446 | - unimportantResults = results[2].concat(unimportantResults); |
2447 | - } |
2448 | - |
2449 | - // perform the search on the required terms |
2450 | - for (var i = 0; i < searchterms.length; i++) { |
2451 | - var word = searchterms[i]; |
2452 | - // no match but word was a required one |
2453 | - if ((files = terms[word]) == null) |
2454 | - break; |
2455 | - if (files.length == undefined) { |
2456 | - files = [files]; |
2457 | - } |
2458 | - // create the mapping |
2459 | - for (var j = 0; j < files.length; j++) { |
2460 | - var file = files[j]; |
2461 | - if (file in fileMap) |
2462 | - fileMap[file].push(word); |
2463 | - else |
2464 | - fileMap[file] = [word]; |
2465 | - } |
2466 | - } |
2467 | - |
2468 | - // now check if the files don't contain excluded terms |
2469 | - for (var file in fileMap) { |
2470 | - var valid = true; |
2471 | - |
2472 | - // check if all requirements are matched |
2473 | - if (fileMap[file].length != searchterms.length) |
2474 | - continue; |
2475 | - |
2476 | - // ensure that none of the excluded terms is in the |
2477 | - // search result. |
2478 | - for (var i = 0; i < excluded.length; i++) { |
2479 | - if (terms[excluded[i]] == file || |
2480 | - $.contains(terms[excluded[i]] || [], file)) { |
2481 | - valid = false; |
2482 | - break; |
2483 | - } |
2484 | - } |
2485 | - |
2486 | - // if we have still a valid result we can add it |
2487 | - // to the result list |
2488 | - if (valid) |
2489 | - regularResults.push([filenames[file], titles[file], '', null]); |
2490 | - } |
2491 | - |
2492 | - // delete unused variables in order to not waste |
2493 | - // memory until list is retrieved completely |
2494 | - delete filenames, titles, terms; |
2495 | - |
2496 | - // now sort the regular results descending by title |
2497 | - regularResults.sort(function(a, b) { |
2498 | - var left = a[1].toLowerCase(); |
2499 | - var right = b[1].toLowerCase(); |
2500 | - return (left > right) ? -1 : ((left < right) ? 1 : 0); |
2501 | - }); |
2502 | - |
2503 | - // combine all results |
2504 | - var results = unimportantResults.concat(regularResults) |
2505 | - .concat(objectResults).concat(importantResults); |
2506 | - |
2507 | - // print the results |
2508 | - var resultCount = results.length; |
2509 | - function displayNextItem() { |
2510 | - // results left, load the summary and display it |
2511 | - if (results.length) { |
2512 | - var item = results.pop(); |
2513 | - var listItem = $('<li style="display:none"></li>'); |
2514 | - if (DOCUMENTATION_OPTIONS.FILE_SUFFIX == '') { |
2515 | - // dirhtml builder |
2516 | - var dirname = item[0] + '/'; |
2517 | - if (dirname.match(/\/index\/$/)) { |
2518 | - dirname = dirname.substring(0, dirname.length-6); |
2519 | - } else if (dirname == 'index/') { |
2520 | - dirname = ''; |
2521 | - } |
2522 | - listItem.append($('<a/>').attr('href', |
2523 | - DOCUMENTATION_OPTIONS.URL_ROOT + dirname + |
2524 | - highlightstring + item[2]).html(item[1])); |
2525 | - } else { |
2526 | - // normal html builders |
2527 | - listItem.append($('<a/>').attr('href', |
2528 | - item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX + |
2529 | - highlightstring + item[2]).html(item[1])); |
2530 | - } |
2531 | - if (item[3]) { |
2532 | - listItem.append($('<span> (' + item[3] + ')</span>')); |
2533 | - Search.output.append(listItem); |
2534 | - listItem.slideDown(5, function() { |
2535 | - displayNextItem(); |
2536 | - }); |
2537 | - } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) { |
2538 | - $.get(DOCUMENTATION_OPTIONS.URL_ROOT + '_sources/' + |
2539 | - item[0] + '.txt', function(data) { |
2540 | - if (data != '') { |
2541 | - listItem.append($.makeSearchSummary(data, searchterms, hlterms)); |
2542 | - Search.output.append(listItem); |
2543 | - } |
2544 | - listItem.slideDown(5, function() { |
2545 | - displayNextItem(); |
2546 | - }); |
2547 | - }, "text"); |
2548 | - } else { |
2549 | - // no source available, just display title |
2550 | - Search.output.append(listItem); |
2551 | - listItem.slideDown(5, function() { |
2552 | - displayNextItem(); |
2553 | - }); |
2554 | - } |
2555 | - } |
2556 | - // search finished, update title and status message |
2557 | - else { |
2558 | - Search.stopPulse(); |
2559 | - Search.title.text(_('Search Results')); |
2560 | - if (!resultCount) |
2561 | - Search.status.text(_('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.')); |
2562 | - else |
2563 | - Search.status.text(_('Search finished, found %s page(s) matching the search query.').replace('%s', resultCount)); |
2564 | - Search.status.fadeIn(500); |
2565 | - } |
2566 | - } |
2567 | - displayNextItem(); |
2568 | - }, |
2569 | - |
2570 | - performObjectSearch : function(object, otherterms) { |
2571 | - var filenames = this._index.filenames; |
2572 | - var objects = this._index.objects; |
2573 | - var objnames = this._index.objnames; |
2574 | - var titles = this._index.titles; |
2575 | - |
2576 | - var importantResults = []; |
2577 | - var objectResults = []; |
2578 | - var unimportantResults = []; |
2579 | - |
2580 | - for (var prefix in objects) { |
2581 | - for (var name in objects[prefix]) { |
2582 | - var fullname = (prefix ? prefix + '.' : '') + name; |
2583 | - if (fullname.toLowerCase().indexOf(object) > -1) { |
2584 | - var match = objects[prefix][name]; |
2585 | - var objname = objnames[match[1]][2]; |
2586 | - var title = titles[match[0]]; |
2587 | - // If more than one term searched for, we require other words to be |
2588 | - // found in the name/title/description |
2589 | - if (otherterms.length > 0) { |
2590 | - var haystack = (prefix + ' ' + name + ' ' + |
2591 | - objname + ' ' + title).toLowerCase(); |
2592 | - var allfound = true; |
2593 | - for (var i = 0; i < otherterms.length; i++) { |
2594 | - if (haystack.indexOf(otherterms[i]) == -1) { |
2595 | - allfound = false; |
2596 | - break; |
2597 | - } |
2598 | - } |
2599 | - if (!allfound) { |
2600 | - continue; |
2601 | - } |
2602 | - } |
2603 | - var descr = objname + _(', in ') + title; |
2604 | - anchor = match[3]; |
2605 | - if (anchor == '') |
2606 | - anchor = fullname; |
2607 | - else if (anchor == '-') |
2608 | - anchor = objnames[match[1]][1] + '-' + fullname; |
2609 | - result = [filenames[match[0]], fullname, '#'+anchor, descr]; |
2610 | - switch (match[2]) { |
2611 | - case 1: objectResults.push(result); break; |
2612 | - case 0: importantResults.push(result); break; |
2613 | - case 2: unimportantResults.push(result); break; |
2614 | - } |
2615 | - } |
2616 | - } |
2617 | - } |
2618 | - |
2619 | - // sort results descending |
2620 | - objectResults.sort(function(a, b) { |
2621 | - return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0); |
2622 | - }); |
2623 | - |
2624 | - importantResults.sort(function(a, b) { |
2625 | - return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0); |
2626 | - }); |
2627 | - |
2628 | - unimportantResults.sort(function(a, b) { |
2629 | - return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0); |
2630 | - }); |
2631 | - |
2632 | - return [importantResults, objectResults, unimportantResults] |
2633 | - } |
2634 | -} |
2635 | - |
2636 | -$(document).ready(function() { |
2637 | - Search.init(); |
2638 | -}); |
2639 | \ No newline at end of file |
2640 | |
2641 | === removed file 'src/postorius/doc/_build/html/_static/sidebar.js' |
2642 | --- src/postorius/doc/_build/html/_static/sidebar.js 2012-05-29 06:28:56 +0000 |
2643 | +++ src/postorius/doc/_build/html/_static/sidebar.js 1970-01-01 00:00:00 +0000 |
2644 | @@ -1,151 +0,0 @@ |
2645 | -/* |
2646 | - * sidebar.js |
2647 | - * ~~~~~~~~~~ |
2648 | - * |
2649 | - * This script makes the Sphinx sidebar collapsible. |
2650 | - * |
2651 | - * .sphinxsidebar contains .sphinxsidebarwrapper. This script adds |
2652 | - * in .sphixsidebar, after .sphinxsidebarwrapper, the #sidebarbutton |
2653 | - * used to collapse and expand the sidebar. |
2654 | - * |
2655 | - * When the sidebar is collapsed the .sphinxsidebarwrapper is hidden |
2656 | - * and the width of the sidebar and the margin-left of the document |
2657 | - * are decreased. When the sidebar is expanded the opposite happens. |
2658 | - * This script saves a per-browser/per-session cookie used to |
2659 | - * remember the position of the sidebar among the pages. |
2660 | - * Once the browser is closed the cookie is deleted and the position |
2661 | - * reset to the default (expanded). |
2662 | - * |
2663 | - * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. |
2664 | - * :license: BSD, see LICENSE for details. |
2665 | - * |
2666 | - */ |
2667 | - |
2668 | -$(function() { |
2669 | - // global elements used by the functions. |
2670 | - // the 'sidebarbutton' element is defined as global after its |
2671 | - // creation, in the add_sidebar_button function |
2672 | - var bodywrapper = $('.bodywrapper'); |
2673 | - var sidebar = $('.sphinxsidebar'); |
2674 | - var sidebarwrapper = $('.sphinxsidebarwrapper'); |
2675 | - |
2676 | - // for some reason, the document has no sidebar; do not run into errors |
2677 | - if (!sidebar.length) return; |
2678 | - |
2679 | - // original margin-left of the bodywrapper and width of the sidebar |
2680 | - // with the sidebar expanded |
2681 | - var bw_margin_expanded = bodywrapper.css('margin-left'); |
2682 | - var ssb_width_expanded = sidebar.width(); |
2683 | - |
2684 | - // margin-left of the bodywrapper and width of the sidebar |
2685 | - // with the sidebar collapsed |
2686 | - var bw_margin_collapsed = '.8em'; |
2687 | - var ssb_width_collapsed = '.8em'; |
2688 | - |
2689 | - // colors used by the current theme |
2690 | - var dark_color = $('.related').css('background-color'); |
2691 | - var light_color = $('.document').css('background-color'); |
2692 | - |
2693 | - function sidebar_is_collapsed() { |
2694 | - return sidebarwrapper.is(':not(:visible)'); |
2695 | - } |
2696 | - |
2697 | - function toggle_sidebar() { |
2698 | - if (sidebar_is_collapsed()) |
2699 | - expand_sidebar(); |
2700 | - else |
2701 | - collapse_sidebar(); |
2702 | - } |
2703 | - |
2704 | - function collapse_sidebar() { |
2705 | - sidebarwrapper.hide(); |
2706 | - sidebar.css('width', ssb_width_collapsed); |
2707 | - bodywrapper.css('margin-left', bw_margin_collapsed); |
2708 | - sidebarbutton.css({ |
2709 | - 'margin-left': '0', |
2710 | - 'height': bodywrapper.height() |
2711 | - }); |
2712 | - sidebarbutton.find('span').text('»'); |
2713 | - sidebarbutton.attr('title', _('Expand sidebar')); |
2714 | - document.cookie = 'sidebar=collapsed'; |
2715 | - } |
2716 | - |
2717 | - function expand_sidebar() { |
2718 | - bodywrapper.css('margin-left', bw_margin_expanded); |
2719 | - sidebar.css('width', ssb_width_expanded); |
2720 | - sidebarwrapper.show(); |
2721 | - sidebarbutton.css({ |
2722 | - 'margin-left': ssb_width_expanded-12, |
2723 | - 'height': bodywrapper.height() |
2724 | - }); |
2725 | - sidebarbutton.find('span').text('«'); |
2726 | - sidebarbutton.attr('title', _('Collapse sidebar')); |
2727 | - document.cookie = 'sidebar=expanded'; |
2728 | - } |
2729 | - |
2730 | - function add_sidebar_button() { |
2731 | - sidebarwrapper.css({ |
2732 | - 'float': 'left', |
2733 | - 'margin-right': '0', |
2734 | - 'width': ssb_width_expanded - 28 |
2735 | - }); |
2736 | - // create the button |
2737 | - sidebar.append( |
2738 | - '<div id="sidebarbutton"><span>«</span></div>' |
2739 | - ); |
2740 | - var sidebarbutton = $('#sidebarbutton'); |
2741 | - light_color = sidebarbutton.css('background-color'); |
2742 | - // find the height of the viewport to center the '<<' in the page |
2743 | - var viewport_height; |
2744 | - if (window.innerHeight) |
2745 | - viewport_height = window.innerHeight; |
2746 | - else |
2747 | - viewport_height = $(window).height(); |
2748 | - sidebarbutton.find('span').css({ |
2749 | - 'display': 'block', |
2750 | - 'margin-top': (viewport_height - sidebar.position().top - 20) / 2 |
2751 | - }); |
2752 | - |
2753 | - sidebarbutton.click(toggle_sidebar); |
2754 | - sidebarbutton.attr('title', _('Collapse sidebar')); |
2755 | - sidebarbutton.css({ |
2756 | - 'color': '#FFFFFF', |
2757 | - 'border-left': '1px solid ' + dark_color, |
2758 | - 'font-size': '1.2em', |
2759 | - 'cursor': 'pointer', |
2760 | - 'height': bodywrapper.height(), |
2761 | - 'padding-top': '1px', |
2762 | - 'margin-left': ssb_width_expanded - 12 |
2763 | - }); |
2764 | - |
2765 | - sidebarbutton.hover( |
2766 | - function () { |
2767 | - $(this).css('background-color', dark_color); |
2768 | - }, |
2769 | - function () { |
2770 | - $(this).css('background-color', light_color); |
2771 | - } |
2772 | - ); |
2773 | - } |
2774 | - |
2775 | - function set_position_from_cookie() { |
2776 | - if (!document.cookie) |
2777 | - return; |
2778 | - var items = document.cookie.split(';'); |
2779 | - for(var k=0; k<items.length; k++) { |
2780 | - var key_val = items[k].split('='); |
2781 | - var key = key_val[0]; |
2782 | - if (key == 'sidebar') { |
2783 | - var value = key_val[1]; |
2784 | - if ((value == 'collapsed') && (!sidebar_is_collapsed())) |
2785 | - collapse_sidebar(); |
2786 | - else if ((value == 'expanded') && (sidebar_is_collapsed())) |
2787 | - expand_sidebar(); |
2788 | - } |
2789 | - } |
2790 | - } |
2791 | - |
2792 | - add_sidebar_button(); |
2793 | - var sidebarbutton = $('#sidebarbutton'); |
2794 | - set_position_from_cookie(); |
2795 | -}); |
2796 | |
2797 | === removed file 'src/postorius/doc/_build/html/_static/underscore.js' |
2798 | --- src/postorius/doc/_build/html/_static/underscore.js 2012-05-29 06:28:56 +0000 |
2799 | +++ src/postorius/doc/_build/html/_static/underscore.js 1970-01-01 00:00:00 +0000 |
2800 | @@ -1,23 +0,0 @@ |
2801 | -// Underscore.js 0.5.5 |
2802 | -// (c) 2009 Jeremy Ashkenas, DocumentCloud Inc. |
2803 | -// Underscore is freely distributable under the terms of the MIT license. |
2804 | -// Portions of Underscore are inspired by or borrowed from Prototype.js, |
2805 | -// Oliver Steele's Functional, and John Resig's Micro-Templating. |
2806 | -// For all details and documentation: |
2807 | -// http://documentcloud.github.com/underscore/ |
2808 | -(function(){var j=this,n=j._,i=function(a){this._wrapped=a},m=typeof StopIteration!=="undefined"?StopIteration:"__break__",b=j._=function(a){return new i(a)};if(typeof exports!=="undefined")exports._=b;var k=Array.prototype.slice,o=Array.prototype.unshift,p=Object.prototype.toString,q=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;b.VERSION="0.5.5";b.each=function(a,c,d){try{if(a.forEach)a.forEach(c,d);else if(b.isArray(a)||b.isArguments(a))for(var e=0,f=a.length;e<f;e++)c.call(d, |
2809 | -a[e],e,a);else{var g=b.keys(a);f=g.length;for(e=0;e<f;e++)c.call(d,a[g[e]],g[e],a)}}catch(h){if(h!=m)throw h;}return a};b.map=function(a,c,d){if(a&&b.isFunction(a.map))return a.map(c,d);var e=[];b.each(a,function(f,g,h){e.push(c.call(d,f,g,h))});return e};b.reduce=function(a,c,d,e){if(a&&b.isFunction(a.reduce))return a.reduce(b.bind(d,e),c);b.each(a,function(f,g,h){c=d.call(e,c,f,g,h)});return c};b.reduceRight=function(a,c,d,e){if(a&&b.isFunction(a.reduceRight))return a.reduceRight(b.bind(d,e),c); |
2810 | -var f=b.clone(b.toArray(a)).reverse();b.each(f,function(g,h){c=d.call(e,c,g,h,a)});return c};b.detect=function(a,c,d){var e;b.each(a,function(f,g,h){if(c.call(d,f,g,h)){e=f;b.breakLoop()}});return e};b.select=function(a,c,d){if(a&&b.isFunction(a.filter))return a.filter(c,d);var e=[];b.each(a,function(f,g,h){c.call(d,f,g,h)&&e.push(f)});return e};b.reject=function(a,c,d){var e=[];b.each(a,function(f,g,h){!c.call(d,f,g,h)&&e.push(f)});return e};b.all=function(a,c,d){c=c||b.identity;if(a&&b.isFunction(a.every))return a.every(c, |
2811 | -d);var e=true;b.each(a,function(f,g,h){(e=e&&c.call(d,f,g,h))||b.breakLoop()});return e};b.any=function(a,c,d){c=c||b.identity;if(a&&b.isFunction(a.some))return a.some(c,d);var e=false;b.each(a,function(f,g,h){if(e=c.call(d,f,g,h))b.breakLoop()});return e};b.include=function(a,c){if(b.isArray(a))return b.indexOf(a,c)!=-1;var d=false;b.each(a,function(e){if(d=e===c)b.breakLoop()});return d};b.invoke=function(a,c){var d=b.rest(arguments,2);return b.map(a,function(e){return(c?e[c]:e).apply(e,d)})};b.pluck= |
2812 | -function(a,c){return b.map(a,function(d){return d[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a))return Math.max.apply(Math,a);var e={computed:-Infinity};b.each(a,function(f,g,h){g=c?c.call(d,f,g,h):f;g>=e.computed&&(e={value:f,computed:g})});return e.value};b.min=function(a,c,d){if(!c&&b.isArray(a))return Math.min.apply(Math,a);var e={computed:Infinity};b.each(a,function(f,g,h){g=c?c.call(d,f,g,h):f;g<e.computed&&(e={value:f,computed:g})});return e.value};b.sortBy=function(a,c,d){return b.pluck(b.map(a, |
2813 | -function(e,f,g){return{value:e,criteria:c.call(d,e,f,g)}}).sort(function(e,f){e=e.criteria;f=f.criteria;return e<f?-1:e>f?1:0}),"value")};b.sortedIndex=function(a,c,d){d=d||b.identity;for(var e=0,f=a.length;e<f;){var g=e+f>>1;d(a[g])<d(c)?(e=g+1):(f=g)}return e};b.toArray=function(a){if(!a)return[];if(a.toArray)return a.toArray();if(b.isArray(a))return a;if(b.isArguments(a))return k.call(a);return b.values(a)};b.size=function(a){return b.toArray(a).length};b.first=function(a,c,d){return c&&!d?k.call(a, |
2814 | -0,c):a[0]};b.rest=function(a,c,d){return k.call(a,b.isUndefined(c)||d?1:c)};b.last=function(a){return a[a.length-1]};b.compact=function(a){return b.select(a,function(c){return!!c})};b.flatten=function(a){return b.reduce(a,[],function(c,d){if(b.isArray(d))return c.concat(b.flatten(d));c.push(d);return c})};b.without=function(a){var c=b.rest(arguments);return b.select(a,function(d){return!b.include(c,d)})};b.uniq=function(a,c){return b.reduce(a,[],function(d,e,f){if(0==f||(c===true?b.last(d)!=e:!b.include(d, |
2815 | -e)))d.push(e);return d})};b.intersect=function(a){var c=b.rest(arguments);return b.select(b.uniq(a),function(d){return b.all(c,function(e){return b.indexOf(e,d)>=0})})};b.zip=function(){for(var a=b.toArray(arguments),c=b.max(b.pluck(a,"length")),d=new Array(c),e=0;e<c;e++)d[e]=b.pluck(a,String(e));return d};b.indexOf=function(a,c){if(a.indexOf)return a.indexOf(c);for(var d=0,e=a.length;d<e;d++)if(a[d]===c)return d;return-1};b.lastIndexOf=function(a,c){if(a.lastIndexOf)return a.lastIndexOf(c);for(var d= |
2816 | -a.length;d--;)if(a[d]===c)return d;return-1};b.range=function(a,c,d){var e=b.toArray(arguments),f=e.length<=1;a=f?0:e[0];c=f?e[0]:e[1];d=e[2]||1;e=Math.ceil((c-a)/d);if(e<=0)return[];e=new Array(e);f=a;for(var g=0;1;f+=d){if((d>0?f-c:c-f)>=0)return e;e[g++]=f}};b.bind=function(a,c){var d=b.rest(arguments,2);return function(){return a.apply(c||j,d.concat(b.toArray(arguments)))}};b.bindAll=function(a){var c=b.rest(arguments);if(c.length==0)c=b.functions(a);b.each(c,function(d){a[d]=b.bind(a[d],a)}); |
2817 | -return a};b.delay=function(a,c){var d=b.rest(arguments,2);return setTimeout(function(){return a.apply(a,d)},c)};b.defer=function(a){return b.delay.apply(b,[a,1].concat(b.rest(arguments)))};b.wrap=function(a,c){return function(){var d=[a].concat(b.toArray(arguments));return c.apply(c,d)}};b.compose=function(){var a=b.toArray(arguments);return function(){for(var c=b.toArray(arguments),d=a.length-1;d>=0;d--)c=[a[d].apply(this,c)];return c[0]}};b.keys=function(a){if(b.isArray(a))return b.range(0,a.length); |
2818 | -var c=[];for(var d in a)q.call(a,d)&&c.push(d);return c};b.values=function(a){return b.map(a,b.identity)};b.functions=function(a){return b.select(b.keys(a),function(c){return b.isFunction(a[c])}).sort()};b.extend=function(a,c){for(var d in c)a[d]=c[d];return a};b.clone=function(a){if(b.isArray(a))return a.slice(0);return b.extend({},a)};b.tap=function(a,c){c(a);return a};b.isEqual=function(a,c){if(a===c)return true;var d=typeof a;if(d!=typeof c)return false;if(a==c)return true;if(!a&&c||a&&!c)return false; |
2819 | -if(a.isEqual)return a.isEqual(c);if(b.isDate(a)&&b.isDate(c))return a.getTime()===c.getTime();if(b.isNaN(a)&&b.isNaN(c))return true;if(b.isRegExp(a)&&b.isRegExp(c))return a.source===c.source&&a.global===c.global&&a.ignoreCase===c.ignoreCase&&a.multiline===c.multiline;if(d!=="object")return false;if(a.length&&a.length!==c.length)return false;d=b.keys(a);var e=b.keys(c);if(d.length!=e.length)return false;for(var f in a)if(!b.isEqual(a[f],c[f]))return false;return true};b.isEmpty=function(a){return b.keys(a).length== |
2820 | -0};b.isElement=function(a){return!!(a&&a.nodeType==1)};b.isArray=function(a){return!!(a&&a.concat&&a.unshift)};b.isArguments=function(a){return a&&b.isNumber(a.length)&&!b.isArray(a)&&!r.call(a,"length")};b.isFunction=function(a){return!!(a&&a.constructor&&a.call&&a.apply)};b.isString=function(a){return!!(a===""||a&&a.charCodeAt&&a.substr)};b.isNumber=function(a){return p.call(a)==="[object Number]"};b.isDate=function(a){return!!(a&&a.getTimezoneOffset&&a.setUTCFullYear)};b.isRegExp=function(a){return!!(a&& |
2821 | -a.test&&a.exec&&(a.ignoreCase||a.ignoreCase===false))};b.isNaN=function(a){return b.isNumber(a)&&isNaN(a)};b.isNull=function(a){return a===null};b.isUndefined=function(a){return typeof a=="undefined"};b.noConflict=function(){j._=n;return this};b.identity=function(a){return a};b.breakLoop=function(){throw m;};var s=0;b.uniqueId=function(a){var c=s++;return a?a+c:c};b.template=function(a,c){a=new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+a.replace(/[\r\t\n]/g, |
2822 | -" ").replace(/'(?=[^%]*%>)/g,"\t").split("'").join("\\'").split("\t").join("'").replace(/<%=(.+?)%>/g,"',$1,'").split("<%").join("');").split("%>").join("p.push('")+"');}return p.join('');");return c?a(c):a};b.forEach=b.each;b.foldl=b.inject=b.reduce;b.foldr=b.reduceRight;b.filter=b.select;b.every=b.all;b.some=b.any;b.head=b.first;b.tail=b.rest;b.methods=b.functions;var l=function(a,c){return c?b(a).chain():a};b.each(b.functions(b),function(a){var c=b[a];i.prototype[a]=function(){var d=b.toArray(arguments); |
2823 | -o.call(d,this._wrapped);return l(c.apply(b,d),this._chain)}});b.each(["pop","push","reverse","shift","sort","splice","unshift"],function(a){var c=Array.prototype[a];i.prototype[a]=function(){c.apply(this._wrapped,arguments);return l(this._wrapped,this._chain)}});b.each(["concat","join","slice"],function(a){var c=Array.prototype[a];i.prototype[a]=function(){return l(c.apply(this._wrapped,arguments),this._chain)}});i.prototype.chain=function(){this._chain=true;return this};i.prototype.value=function(){return this._wrapped}})(); |
2824 | |
2825 | === removed file 'src/postorius/doc/_build/html/_static/up-pressed.png' |
2826 | Binary files src/postorius/doc/_build/html/_static/up-pressed.png 2012-05-29 06:28:56 +0000 and src/postorius/doc/_build/html/_static/up-pressed.png 1970-01-01 00:00:00 +0000 differ |
2827 | === removed file 'src/postorius/doc/_build/html/_static/up.png' |
2828 | Binary files src/postorius/doc/_build/html/_static/up.png 2012-05-29 06:28:56 +0000 and src/postorius/doc/_build/html/_static/up.png 1970-01-01 00:00:00 +0000 differ |
2829 | === removed file 'src/postorius/doc/_build/html/_static/websupport.js' |
2830 | --- src/postorius/doc/_build/html/_static/websupport.js 2012-05-29 06:28:56 +0000 |
2831 | +++ src/postorius/doc/_build/html/_static/websupport.js 1970-01-01 00:00:00 +0000 |
2832 | @@ -1,808 +0,0 @@ |
2833 | -/* |
2834 | - * websupport.js |
2835 | - * ~~~~~~~~~~~~~ |
2836 | - * |
2837 | - * sphinx.websupport utilties for all documentation. |
2838 | - * |
2839 | - * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. |
2840 | - * :license: BSD, see LICENSE for details. |
2841 | - * |
2842 | - */ |
2843 | - |
2844 | -(function($) { |
2845 | - $.fn.autogrow = function() { |
2846 | - return this.each(function() { |
2847 | - var textarea = this; |
2848 | - |
2849 | - $.fn.autogrow.resize(textarea); |
2850 | - |
2851 | - $(textarea) |
2852 | - .focus(function() { |
2853 | - textarea.interval = setInterval(function() { |
2854 | - $.fn.autogrow.resize(textarea); |
2855 | - }, 500); |
2856 | - }) |
2857 | - .blur(function() { |
2858 | - clearInterval(textarea.interval); |
2859 | - }); |
2860 | - }); |
2861 | - }; |
2862 | - |
2863 | - $.fn.autogrow.resize = function(textarea) { |
2864 | - var lineHeight = parseInt($(textarea).css('line-height'), 10); |
2865 | - var lines = textarea.value.split('\n'); |
2866 | - var columns = textarea.cols; |
2867 | - var lineCount = 0; |
2868 | - $.each(lines, function() { |
2869 | - lineCount += Math.ceil(this.length / columns) || 1; |
2870 | - }); |
2871 | - var height = lineHeight * (lineCount + 1); |
2872 | - $(textarea).css('height', height); |
2873 | - }; |
2874 | -})(jQuery); |
2875 | - |
2876 | -(function($) { |
2877 | - var comp, by; |
2878 | - |
2879 | - function init() { |
2880 | - initEvents(); |
2881 | - initComparator(); |
2882 | - } |
2883 | - |
2884 | - function initEvents() { |
2885 | - $('a.comment-close').live("click", function(event) { |
2886 | - event.preventDefault(); |
2887 | - hide($(this).attr('id').substring(2)); |
2888 | - }); |
2889 | - $('a.vote').live("click", function(event) { |
2890 | - event.preventDefault(); |
2891 | - handleVote($(this)); |
2892 | - }); |
2893 | - $('a.reply').live("click", function(event) { |
2894 | - event.preventDefault(); |
2895 | - openReply($(this).attr('id').substring(2)); |
2896 | - }); |
2897 | - $('a.close-reply').live("click", function(event) { |
2898 | - event.preventDefault(); |
2899 | - closeReply($(this).attr('id').substring(2)); |
2900 | - }); |
2901 | - $('a.sort-option').live("click", function(event) { |
2902 | - event.preventDefault(); |
2903 | - handleReSort($(this)); |
2904 | - }); |
2905 | - $('a.show-proposal').live("click", function(event) { |
2906 | - event.preventDefault(); |
2907 | - showProposal($(this).attr('id').substring(2)); |
2908 | - }); |
2909 | - $('a.hide-proposal').live("click", function(event) { |
2910 | - event.preventDefault(); |
2911 | - hideProposal($(this).attr('id').substring(2)); |
2912 | - }); |
2913 | - $('a.show-propose-change').live("click", function(event) { |
2914 | - event.preventDefault(); |
2915 | - showProposeChange($(this).attr('id').substring(2)); |
2916 | - }); |
2917 | - $('a.hide-propose-change').live("click", function(event) { |
2918 | - event.preventDefault(); |
2919 | - hideProposeChange($(this).attr('id').substring(2)); |
2920 | - }); |
2921 | - $('a.accept-comment').live("click", function(event) { |
2922 | - event.preventDefault(); |
2923 | - acceptComment($(this).attr('id').substring(2)); |
2924 | - }); |
2925 | - $('a.delete-comment').live("click", function(event) { |
2926 | - event.preventDefault(); |
2927 | - deleteComment($(this).attr('id').substring(2)); |
2928 | - }); |
2929 | - $('a.comment-markup').live("click", function(event) { |
2930 | - event.preventDefault(); |
2931 | - toggleCommentMarkupBox($(this).attr('id').substring(2)); |
2932 | - }); |
2933 | - } |
2934 | - |
2935 | - /** |
2936 | - * Set comp, which is a comparator function used for sorting and |
2937 | - * inserting comments into the list. |
2938 | - */ |
2939 | - function setComparator() { |
2940 | - // If the first three letters are "asc", sort in ascending order |
2941 | - // and remove the prefix. |
2942 | - if (by.substring(0,3) == 'asc') { |
2943 | - var i = by.substring(3); |
2944 | - comp = function(a, b) { return a[i] - b[i]; }; |
2945 | - } else { |
2946 | - // Otherwise sort in descending order. |
2947 | - comp = function(a, b) { return b[by] - a[by]; }; |
2948 | - } |
2949 | - |
2950 | - // Reset link styles and format the selected sort option. |
2951 | - $('a.sel').attr('href', '#').removeClass('sel'); |
2952 | - $('a.by' + by).removeAttr('href').addClass('sel'); |
2953 | - } |
2954 | - |
2955 | - /** |
2956 | - * Create a comp function. If the user has preferences stored in |
2957 | - * the sortBy cookie, use those, otherwise use the default. |
2958 | - */ |
2959 | - function initComparator() { |
2960 | - by = 'rating'; // Default to sort by rating. |
2961 | - // If the sortBy cookie is set, use that instead. |
2962 | - if (document.cookie.length > 0) { |
2963 | - var start = document.cookie.indexOf('sortBy='); |
2964 | - if (start != -1) { |
2965 | - start = start + 7; |
2966 | - var end = document.cookie.indexOf(";", start); |
2967 | - if (end == -1) { |
2968 | - end = document.cookie.length; |
2969 | - by = unescape(document.cookie.substring(start, end)); |
2970 | - } |
2971 | - } |
2972 | - } |
2973 | - setComparator(); |
2974 | - } |
2975 | - |
2976 | - /** |
2977 | - * Show a comment div. |
2978 | - */ |
2979 | - function show(id) { |
2980 | - $('#ao' + id).hide(); |
2981 | - $('#ah' + id).show(); |
2982 | - var context = $.extend({id: id}, opts); |
2983 | - var popup = $(renderTemplate(popupTemplate, context)).hide(); |
2984 | - popup.find('textarea[name="proposal"]').hide(); |
2985 | - popup.find('a.by' + by).addClass('sel'); |
2986 | - var form = popup.find('#cf' + id); |
2987 | - form.submit(function(event) { |
2988 | - event.preventDefault(); |
2989 | - addComment(form); |
2990 | - }); |
2991 | - $('#s' + id).after(popup); |
2992 | - popup.slideDown('fast', function() { |
2993 | - getComments(id); |
2994 | - }); |
2995 | - } |
2996 | - |
2997 | - /** |
2998 | - * Hide a comment div. |
2999 | - */ |
3000 | - function hide(id) { |
3001 | - $('#ah' + id).hide(); |
3002 | - $('#ao' + id).show(); |
3003 | - var div = $('#sc' + id); |
3004 | - div.slideUp('fast', function() { |
3005 | - div.remove(); |
3006 | - }); |
3007 | - } |
3008 | - |
3009 | - /** |
3010 | - * Perform an ajax request to get comments for a node |
3011 | - * and insert the comments into the comments tree. |
3012 | - */ |
3013 | - function getComments(id) { |
3014 | - $.ajax({ |
3015 | - type: 'GET', |
3016 | - url: opts.getCommentsURL, |
3017 | - data: {node: id}, |
3018 | - success: function(data, textStatus, request) { |
3019 | - var ul = $('#cl' + id); |
3020 | - var speed = 100; |
3021 | - $('#cf' + id) |
3022 | - .find('textarea[name="proposal"]') |
3023 | - .data('source', data.source); |
3024 | - |
3025 | - if (data.comments.length === 0) { |
3026 | - ul.html('<li>No comments yet.</li>'); |
3027 | - ul.data('empty', true); |
3028 | - } else { |
3029 | - // If there are comments, sort them and put them in the list. |
3030 | - var comments = sortComments(data.comments); |
3031 | - speed = data.comments.length * 100; |
3032 | - appendComments(comments, ul); |
3033 | - ul.data('empty', false); |
3034 | - } |
3035 | - $('#cn' + id).slideUp(speed + 200); |
3036 | - ul.slideDown(speed); |
3037 | - }, |
3038 | - error: function(request, textStatus, error) { |
3039 | - showError('Oops, there was a problem retrieving the comments.'); |
3040 | - }, |
3041 | - dataType: 'json' |
3042 | - }); |
3043 | - } |
3044 | - |
3045 | - /** |
3046 | - * Add a comment via ajax and insert the comment into the comment tree. |
3047 | - */ |
3048 | - function addComment(form) { |
3049 | - var node_id = form.find('input[name="node"]').val(); |
3050 | - var parent_id = form.find('input[name="parent"]').val(); |
3051 | - var text = form.find('textarea[name="comment"]').val(); |
3052 | - var proposal = form.find('textarea[name="proposal"]').val(); |
3053 | - |
3054 | - if (text == '') { |
3055 | - showError('Please enter a comment.'); |
3056 | - return; |
3057 | - } |
3058 | - |
3059 | - // Disable the form that is being submitted. |
3060 | - form.find('textarea,input').attr('disabled', 'disabled'); |
3061 | - |
3062 | - // Send the comment to the server. |
3063 | - $.ajax({ |
3064 | - type: "POST", |
3065 | - url: opts.addCommentURL, |
3066 | - dataType: 'json', |
3067 | - data: { |
3068 | - node: node_id, |
3069 | - parent: parent_id, |
3070 | - text: text, |
3071 | - proposal: proposal |
3072 | - }, |
3073 | - success: function(data, textStatus, error) { |
3074 | - // Reset the form. |
3075 | - if (node_id) { |
3076 | - hideProposeChange(node_id); |
3077 | - } |
3078 | - form.find('textarea') |
3079 | - .val('') |
3080 | - .add(form.find('input')) |
3081 | - .removeAttr('disabled'); |
3082 | - var ul = $('#cl' + (node_id || parent_id)); |
3083 | - if (ul.data('empty')) { |
3084 | - $(ul).empty(); |
3085 | - ul.data('empty', false); |
3086 | - } |
3087 | - insertComment(data.comment); |
3088 | - var ao = $('#ao' + node_id); |
3089 | - ao.find('img').attr({'src': opts.commentBrightImage}); |
3090 | - if (node_id) { |
3091 | - // if this was a "root" comment, remove the commenting box |
3092 | - // (the user can get it back by reopening the comment popup) |
3093 | - $('#ca' + node_id).slideUp(); |
3094 | - } |
3095 | - }, |
3096 | - error: function(request, textStatus, error) { |
3097 | - form.find('textarea,input').removeAttr('disabled'); |
3098 | - showError('Oops, there was a problem adding the comment.'); |
3099 | - } |
3100 | - }); |
3101 | - } |
3102 | - |
3103 | - /** |
3104 | - * Recursively append comments to the main comment list and children |
3105 | - * lists, creating the comment tree. |
3106 | - */ |
3107 | - function appendComments(comments, ul) { |
3108 | - $.each(comments, function() { |
3109 | - var div = createCommentDiv(this); |
3110 | - ul.append($(document.createElement('li')).html(div)); |
3111 | - appendComments(this.children, div.find('ul.comment-children')); |
3112 | - // To avoid stagnating data, don't store the comments children in data. |
3113 | - this.children = null; |
3114 | - div.data('comment', this); |
3115 | - }); |
3116 | - } |
3117 | - |
3118 | - /** |
3119 | - * After adding a new comment, it must be inserted in the correct |
3120 | - * location in the comment tree. |
3121 | - */ |
3122 | - function insertComment(comment) { |
3123 | - var div = createCommentDiv(comment); |
3124 | - |
3125 | - // To avoid stagnating data, don't store the comments children in data. |
3126 | - comment.children = null; |
3127 | - div.data('comment', comment); |
3128 | - |
3129 | - var ul = $('#cl' + (comment.node || comment.parent)); |
3130 | - var siblings = getChildren(ul); |
3131 | - |
3132 | - var li = $(document.createElement('li')); |
3133 | - li.hide(); |
3134 | - |
3135 | - // Determine where in the parents children list to insert this comment. |
3136 | - for(i=0; i < siblings.length; i++) { |
3137 | - if (comp(comment, siblings[i]) <= 0) { |
3138 | - $('#cd' + siblings[i].id) |
3139 | - .parent() |
3140 | - .before(li.html(div)); |
3141 | - li.slideDown('fast'); |
3142 | - return; |
3143 | - } |
3144 | - } |
3145 | - |
3146 | - // If we get here, this comment rates lower than all the others, |
3147 | - // or it is the only comment in the list. |
3148 | - ul.append(li.html(div)); |
3149 | - li.slideDown('fast'); |
3150 | - } |
3151 | - |
3152 | - function acceptComment(id) { |
3153 | - $.ajax({ |
3154 | - type: 'POST', |
3155 | - url: opts.acceptCommentURL, |
3156 | - data: {id: id}, |
3157 | - success: function(data, textStatus, request) { |
3158 | - $('#cm' + id).fadeOut('fast'); |
3159 | - $('#cd' + id).removeClass('moderate'); |
3160 | - }, |
3161 | - error: function(request, textStatus, error) { |
3162 | - showError('Oops, there was a problem accepting the comment.'); |
3163 | - } |
3164 | - }); |
3165 | - } |
3166 | - |
3167 | - function deleteComment(id) { |
3168 | - $.ajax({ |
3169 | - type: 'POST', |
3170 | - url: opts.deleteCommentURL, |
3171 | - data: {id: id}, |
3172 | - success: function(data, textStatus, request) { |
3173 | - var div = $('#cd' + id); |
3174 | - if (data == 'delete') { |
3175 | - // Moderator mode: remove the comment and all children immediately |
3176 | - div.slideUp('fast', function() { |
3177 | - div.remove(); |
3178 | - }); |
3179 | - return; |
3180 | - } |
3181 | - // User mode: only mark the comment as deleted |
3182 | - div |
3183 | - .find('span.user-id:first') |
3184 | - .text('[deleted]').end() |
3185 | - .find('div.comment-text:first') |
3186 | - .text('[deleted]').end() |
3187 | - .find('#cm' + id + ', #dc' + id + ', #ac' + id + ', #rc' + id + |
3188 | - ', #sp' + id + ', #hp' + id + ', #cr' + id + ', #rl' + id) |
3189 | - .remove(); |
3190 | - var comment = div.data('comment'); |
3191 | - comment.username = '[deleted]'; |
3192 | - comment.text = '[deleted]'; |
3193 | - div.data('comment', comment); |
3194 | - }, |
3195 | - error: function(request, textStatus, error) { |
3196 | - showError('Oops, there was a problem deleting the comment.'); |
3197 | - } |
3198 | - }); |
3199 | - } |
3200 | - |
3201 | - function showProposal(id) { |
3202 | - $('#sp' + id).hide(); |
3203 | - $('#hp' + id).show(); |
3204 | - $('#pr' + id).slideDown('fast'); |
3205 | - } |
3206 | - |
3207 | - function hideProposal(id) { |
3208 | - $('#hp' + id).hide(); |
3209 | - $('#sp' + id).show(); |
3210 | - $('#pr' + id).slideUp('fast'); |
3211 | - } |
3212 | - |
3213 | - function showProposeChange(id) { |
3214 | - $('#pc' + id).hide(); |
3215 | - $('#hc' + id).show(); |
3216 | - var textarea = $('#pt' + id); |
3217 | - textarea.val(textarea.data('source')); |
3218 | - $.fn.autogrow.resize(textarea[0]); |
3219 | - textarea.slideDown('fast'); |
3220 | - } |
3221 | - |
3222 | - function hideProposeChange(id) { |
3223 | - $('#hc' + id).hide(); |
3224 | - $('#pc' + id).show(); |
3225 | - var textarea = $('#pt' + id); |
3226 | - textarea.val('').removeAttr('disabled'); |
3227 | - textarea.slideUp('fast'); |
3228 | - } |
3229 | - |
3230 | - function toggleCommentMarkupBox(id) { |
3231 | - $('#mb' + id).toggle(); |
3232 | - } |
3233 | - |
3234 | - /** Handle when the user clicks on a sort by link. */ |
3235 | - function handleReSort(link) { |
3236 | - var classes = link.attr('class').split(/\s+/); |
3237 | - for (var i=0; i<classes.length; i++) { |
3238 | - if (classes[i] != 'sort-option') { |
3239 | - by = classes[i].substring(2); |
3240 | - } |
3241 | - } |
3242 | - setComparator(); |
3243 | - // Save/update the sortBy cookie. |
3244 | - var expiration = new Date(); |
3245 | - expiration.setDate(expiration.getDate() + 365); |
3246 | - document.cookie= 'sortBy=' + escape(by) + |
3247 | - ';expires=' + expiration.toUTCString(); |
3248 | - $('ul.comment-ul').each(function(index, ul) { |
3249 | - var comments = getChildren($(ul), true); |
3250 | - comments = sortComments(comments); |
3251 | - appendComments(comments, $(ul).empty()); |
3252 | - }); |
3253 | - } |
3254 | - |
3255 | - /** |
3256 | - * Function to process a vote when a user clicks an arrow. |
3257 | - */ |
3258 | - function handleVote(link) { |
3259 | - if (!opts.voting) { |
3260 | - showError("You'll need to login to vote."); |
3261 | - return; |
3262 | - } |
3263 | - |
3264 | - var id = link.attr('id'); |
3265 | - if (!id) { |
3266 | - // Didn't click on one of the voting arrows. |
3267 | - return; |
3268 | - } |
3269 | - // If it is an unvote, the new vote value is 0, |
3270 | - // Otherwise it's 1 for an upvote, or -1 for a downvote. |
3271 | - var value = 0; |
3272 | - if (id.charAt(1) != 'u') { |
3273 | - value = id.charAt(0) == 'u' ? 1 : -1; |
3274 | - } |
3275 | - // The data to be sent to the server. |
3276 | - var d = { |
3277 | - comment_id: id.substring(2), |
3278 | - value: value |
3279 | - }; |
3280 | - |
3281 | - // Swap the vote and unvote links. |
3282 | - link.hide(); |
3283 | - $('#' + id.charAt(0) + (id.charAt(1) == 'u' ? 'v' : 'u') + d.comment_id) |
3284 | - .show(); |
3285 | - |
3286 | - // The div the comment is displayed in. |
3287 | - var div = $('div#cd' + d.comment_id); |
3288 | - var data = div.data('comment'); |
3289 | - |
3290 | - // If this is not an unvote, and the other vote arrow has |
3291 | - // already been pressed, unpress it. |
3292 | - if ((d.value !== 0) && (data.vote === d.value * -1)) { |
3293 | - $('#' + (d.value == 1 ? 'd' : 'u') + 'u' + d.comment_id).hide(); |
3294 | - $('#' + (d.value == 1 ? 'd' : 'u') + 'v' + d.comment_id).show(); |
3295 | - } |
3296 | - |
3297 | - // Update the comments rating in the local data. |
3298 | - data.rating += (data.vote === 0) ? d.value : (d.value - data.vote); |
3299 | - data.vote = d.value; |
3300 | - div.data('comment', data); |
3301 | - |
3302 | - // Change the rating text. |
3303 | - div.find('.rating:first') |
3304 | - .text(data.rating + ' point' + (data.rating == 1 ? '' : 's')); |
3305 | - |
3306 | - // Send the vote information to the server. |
3307 | - $.ajax({ |
3308 | - type: "POST", |
3309 | - url: opts.processVoteURL, |
3310 | - data: d, |
3311 | - error: function(request, textStatus, error) { |
3312 | - showError('Oops, there was a problem casting that vote.'); |
3313 | - } |
3314 | - }); |
3315 | - } |
3316 | - |
3317 | - /** |
3318 | - * Open a reply form used to reply to an existing comment. |
3319 | - */ |
3320 | - function openReply(id) { |
3321 | - // Swap out the reply link for the hide link |
3322 | - $('#rl' + id).hide(); |
3323 | - $('#cr' + id).show(); |
3324 | - |
3325 | - // Add the reply li to the children ul. |
3326 | - var div = $(renderTemplate(replyTemplate, {id: id})).hide(); |
3327 | - $('#cl' + id) |
3328 | - .prepend(div) |
3329 | - // Setup the submit handler for the reply form. |
3330 | - .find('#rf' + id) |
3331 | - .submit(function(event) { |
3332 | - event.preventDefault(); |
3333 | - addComment($('#rf' + id)); |
3334 | - closeReply(id); |
3335 | - }) |
3336 | - .find('input[type=button]') |
3337 | - .click(function() { |
3338 | - closeReply(id); |
3339 | - }); |
3340 | - div.slideDown('fast', function() { |
3341 | - $('#rf' + id).find('textarea').focus(); |
3342 | - }); |
3343 | - } |
3344 | - |
3345 | - /** |
3346 | - * Close the reply form opened with openReply. |
3347 | - */ |
3348 | - function closeReply(id) { |
3349 | - // Remove the reply div from the DOM. |
3350 | - $('#rd' + id).slideUp('fast', function() { |
3351 | - $(this).remove(); |
3352 | - }); |
3353 | - |
3354 | - // Swap out the hide link for the reply link |
3355 | - $('#cr' + id).hide(); |
3356 | - $('#rl' + id).show(); |
3357 | - } |
3358 | - |
3359 | - /** |
3360 | - * Recursively sort a tree of comments using the comp comparator. |
3361 | - */ |
3362 | - function sortComments(comments) { |
3363 | - comments.sort(comp); |
3364 | - $.each(comments, function() { |
3365 | - this.children = sortComments(this.children); |
3366 | - }); |
3367 | - return comments; |
3368 | - } |
3369 | - |
3370 | - /** |
3371 | - * Get the children comments from a ul. If recursive is true, |
3372 | - * recursively include childrens' children. |
3373 | - */ |
3374 | - function getChildren(ul, recursive) { |
3375 | - var children = []; |
3376 | - ul.children().children("[id^='cd']") |
3377 | - .each(function() { |
3378 | - var comment = $(this).data('comment'); |
3379 | - if (recursive) |
3380 | - comment.children = getChildren($(this).find('#cl' + comment.id), true); |
3381 | - children.push(comment); |
3382 | - }); |
3383 | - return children; |
3384 | - } |
3385 | - |
3386 | - /** Create a div to display a comment in. */ |
3387 | - function createCommentDiv(comment) { |
3388 | - if (!comment.displayed && !opts.moderator) { |
3389 | - return $('<div class="moderate">Thank you! Your comment will show up ' |
3390 | - + 'once it is has been approved by a moderator.</div>'); |
3391 | - } |
3392 | - // Prettify the comment rating. |
3393 | - comment.pretty_rating = comment.rating + ' point' + |
3394 | - (comment.rating == 1 ? '' : 's'); |
3395 | - // Make a class (for displaying not yet moderated comments differently) |
3396 | - comment.css_class = comment.displayed ? '' : ' moderate'; |
3397 | - // Create a div for this comment. |
3398 | - var context = $.extend({}, opts, comment); |
3399 | - var div = $(renderTemplate(commentTemplate, context)); |
3400 | - |
3401 | - // If the user has voted on this comment, highlight the correct arrow. |
3402 | - if (comment.vote) { |
3403 | - var direction = (comment.vote == 1) ? 'u' : 'd'; |
3404 | - div.find('#' + direction + 'v' + comment.id).hide(); |
3405 | - div.find('#' + direction + 'u' + comment.id).show(); |
3406 | - } |
3407 | - |
3408 | - if (opts.moderator || comment.text != '[deleted]') { |
3409 | - div.find('a.reply').show(); |
3410 | - if (comment.proposal_diff) |
3411 | - div.find('#sp' + comment.id).show(); |
3412 | - if (opts.moderator && !comment.displayed) |
3413 | - div.find('#cm' + comment.id).show(); |
3414 | - if (opts.moderator || (opts.username == comment.username)) |
3415 | - div.find('#dc' + comment.id).show(); |
3416 | - } |
3417 | - return div; |
3418 | - } |
3419 | - |
3420 | - /** |
3421 | - * A simple template renderer. Placeholders such as <%id%> are replaced |
3422 | - * by context['id'] with items being escaped. Placeholders such as <#id#> |
3423 | - * are not escaped. |
3424 | - */ |
3425 | - function renderTemplate(template, context) { |
3426 | - var esc = $(document.createElement('div')); |
3427 | - |
3428 | - function handle(ph, escape) { |
3429 | - var cur = context; |
3430 | - $.each(ph.split('.'), function() { |
3431 | - cur = cur[this]; |
3432 | - }); |
3433 | - return escape ? esc.text(cur || "").html() : cur; |
3434 | - } |
3435 | - |
3436 | - return template.replace(/<([%#])([\w\.]*)\1>/g, function() { |
3437 | - return handle(arguments[2], arguments[1] == '%' ? true : false); |
3438 | - }); |
3439 | - } |
3440 | - |
3441 | - /** Flash an error message briefly. */ |
3442 | - function showError(message) { |
3443 | - $(document.createElement('div')).attr({'class': 'popup-error'}) |
3444 | - .append($(document.createElement('div')) |
3445 | - .attr({'class': 'error-message'}).text(message)) |
3446 | - .appendTo('body') |
3447 | - .fadeIn("slow") |
3448 | - .delay(2000) |
3449 | - .fadeOut("slow"); |
3450 | - } |
3451 | - |
3452 | - /** Add a link the user uses to open the comments popup. */ |
3453 | - $.fn.comment = function() { |
3454 | - return this.each(function() { |
3455 | - var id = $(this).attr('id').substring(1); |
3456 | - var count = COMMENT_METADATA[id]; |
3457 | - var title = count + ' comment' + (count == 1 ? '' : 's'); |
3458 | - var image = count > 0 ? opts.commentBrightImage : opts.commentImage; |
3459 | - var addcls = count == 0 ? ' nocomment' : ''; |
3460 | - $(this) |
3461 | - .append( |
3462 | - $(document.createElement('a')).attr({ |
3463 | - href: '#', |
3464 | - 'class': 'sphinx-comment-open' + addcls, |
3465 | - id: 'ao' + id |
3466 | - }) |
3467 | - .append($(document.createElement('img')).attr({ |
3468 | - src: image, |
3469 | - alt: 'comment', |
3470 | - title: title |
3471 | - })) |
3472 | - .click(function(event) { |
3473 | - event.preventDefault(); |
3474 | - show($(this).attr('id').substring(2)); |
3475 | - }) |
3476 | - ) |
3477 | - .append( |
3478 | - $(document.createElement('a')).attr({ |
3479 | - href: '#', |
3480 | - 'class': 'sphinx-comment-close hidden', |
3481 | - id: 'ah' + id |
3482 | - }) |
3483 | - .append($(document.createElement('img')).attr({ |
3484 | - src: opts.closeCommentImage, |
3485 | - alt: 'close', |
3486 | - title: 'close' |
3487 | - })) |
3488 | - .click(function(event) { |
3489 | - event.preventDefault(); |
3490 | - hide($(this).attr('id').substring(2)); |
3491 | - }) |
3492 | - ); |
3493 | - }); |
3494 | - }; |
3495 | - |
3496 | - var opts = { |
3497 | - processVoteURL: '/_process_vote', |
3498 | - addCommentURL: '/_add_comment', |
3499 | - getCommentsURL: '/_get_comments', |
3500 | - acceptCommentURL: '/_accept_comment', |
3501 | - deleteCommentURL: '/_delete_comment', |
3502 | - commentImage: '/static/_static/comment.png', |
3503 | - closeCommentImage: '/static/_static/comment-close.png', |
3504 | - loadingImage: '/static/_static/ajax-loader.gif', |
3505 | - commentBrightImage: '/static/_static/comment-bright.png', |
3506 | - upArrow: '/static/_static/up.png', |
3507 | - downArrow: '/static/_static/down.png', |
3508 | - upArrowPressed: '/static/_static/up-pressed.png', |
3509 | - downArrowPressed: '/static/_static/down-pressed.png', |
3510 | - voting: false, |
3511 | - moderator: false |
3512 | - }; |
3513 | - |
3514 | - if (typeof COMMENT_OPTIONS != "undefined") { |
3515 | - opts = jQuery.extend(opts, COMMENT_OPTIONS); |
3516 | - } |
3517 | - |
3518 | - var popupTemplate = '\ |
3519 | - <div class="sphinx-comments" id="sc<%id%>">\ |
3520 | - <p class="sort-options">\ |
3521 | - Sort by:\ |
3522 | - <a href="#" class="sort-option byrating">best rated</a>\ |
3523 | - <a href="#" class="sort-option byascage">newest</a>\ |
3524 | - <a href="#" class="sort-option byage">oldest</a>\ |
3525 | - </p>\ |
3526 | - <div class="comment-header">Comments</div>\ |
3527 | - <div class="comment-loading" id="cn<%id%>">\ |
3528 | - loading comments... <img src="<%loadingImage%>" alt="" /></div>\ |
3529 | - <ul id="cl<%id%>" class="comment-ul"></ul>\ |
3530 | - <div id="ca<%id%>">\ |
3531 | - <p class="add-a-comment">Add a comment\ |
3532 | - (<a href="#" class="comment-markup" id="ab<%id%>">markup</a>):</p>\ |
3533 | - <div class="comment-markup-box" id="mb<%id%>">\ |
3534 | - reStructured text markup: <i>*emph*</i>, <b>**strong**</b>, \ |
3535 | - <tt>``code``</tt>, \ |
3536 | - code blocks: <tt>::</tt> and an indented block after blank line</div>\ |
3537 | - <form method="post" id="cf<%id%>" class="comment-form" action="">\ |
3538 | - <textarea name="comment" cols="80"></textarea>\ |
3539 | - <p class="propose-button">\ |
3540 | - <a href="#" id="pc<%id%>" class="show-propose-change">\ |
3541 | - Propose a change ▹\ |
3542 | - </a>\ |
3543 | - <a href="#" id="hc<%id%>" class="hide-propose-change">\ |
3544 | - Propose a change ▿\ |
3545 | - </a>\ |
3546 | - </p>\ |
3547 | - <textarea name="proposal" id="pt<%id%>" cols="80"\ |
3548 | - spellcheck="false"></textarea>\ |
3549 | - <input type="submit" value="Add comment" />\ |
3550 | - <input type="hidden" name="node" value="<%id%>" />\ |
3551 | - <input type="hidden" name="parent" value="" />\ |
3552 | - </form>\ |
3553 | - </div>\ |
3554 | - </div>'; |
3555 | - |
3556 | - var commentTemplate = '\ |
3557 | - <div id="cd<%id%>" class="sphinx-comment<%css_class%>">\ |
3558 | - <div class="vote">\ |
3559 | - <div class="arrow">\ |
3560 | - <a href="#" id="uv<%id%>" class="vote" title="vote up">\ |
3561 | - <img src="<%upArrow%>" />\ |
3562 | - </a>\ |
3563 | - <a href="#" id="uu<%id%>" class="un vote" title="vote up">\ |
3564 | - <img src="<%upArrowPressed%>" />\ |
3565 | - </a>\ |
3566 | - </div>\ |
3567 | - <div class="arrow">\ |
3568 | - <a href="#" id="dv<%id%>" class="vote" title="vote down">\ |
3569 | - <img src="<%downArrow%>" id="da<%id%>" />\ |
3570 | - </a>\ |
3571 | - <a href="#" id="du<%id%>" class="un vote" title="vote down">\ |
3572 | - <img src="<%downArrowPressed%>" />\ |
3573 | - </a>\ |
3574 | - </div>\ |
3575 | - </div>\ |
3576 | - <div class="comment-content">\ |
3577 | - <p class="tagline comment">\ |
3578 | - <span class="user-id"><%username%></span>\ |
3579 | - <span class="rating"><%pretty_rating%></span>\ |
3580 | - <span class="delta"><%time.delta%></span>\ |
3581 | - </p>\ |
3582 | - <div class="comment-text comment"><#text#></div>\ |
3583 | - <p class="comment-opts comment">\ |
3584 | - <a href="#" class="reply hidden" id="rl<%id%>">reply ▹</a>\ |
3585 | - <a href="#" class="close-reply" id="cr<%id%>">reply ▿</a>\ |
3586 | - <a href="#" id="sp<%id%>" class="show-proposal">proposal ▹</a>\ |
3587 | - <a href="#" id="hp<%id%>" class="hide-proposal">proposal ▿</a>\ |
3588 | - <a href="#" id="dc<%id%>" class="delete-comment hidden">delete</a>\ |
3589 | - <span id="cm<%id%>" class="moderation hidden">\ |
3590 | - <a href="#" id="ac<%id%>" class="accept-comment">accept</a>\ |
3591 | - </span>\ |
3592 | - </p>\ |
3593 | - <pre class="proposal" id="pr<%id%>">\ |
3594 | -<#proposal_diff#>\ |
3595 | - </pre>\ |
3596 | - <ul class="comment-children" id="cl<%id%>"></ul>\ |
3597 | - </div>\ |
3598 | - <div class="clearleft"></div>\ |
3599 | - </div>\ |
3600 | - </div>'; |
3601 | - |
3602 | - var replyTemplate = '\ |
3603 | - <li>\ |
3604 | - <div class="reply-div" id="rd<%id%>">\ |
3605 | - <form id="rf<%id%>">\ |
3606 | - <textarea name="comment" cols="80"></textarea>\ |
3607 | - <input type="submit" value="Add reply" />\ |
3608 | - <input type="button" value="Cancel" />\ |
3609 | - <input type="hidden" name="parent" value="<%id%>" />\ |
3610 | - <input type="hidden" name="node" value="" />\ |
3611 | - </form>\ |
3612 | - </div>\ |
3613 | - </li>'; |
3614 | - |
3615 | - $(document).ready(function() { |
3616 | - init(); |
3617 | - }); |
3618 | -})(jQuery); |
3619 | - |
3620 | -$(document).ready(function() { |
3621 | - // add comment anchors for all paragraphs that are commentable |
3622 | - $('.sphinx-has-comment').comment(); |
3623 | - |
3624 | - // highlight search words in search results |
3625 | - $("div.context").each(function() { |
3626 | - var params = $.getQueryParameters(); |
3627 | - var terms = (params.q) ? params.q[0].split(/\s+/) : []; |
3628 | - var result = $(this); |
3629 | - $.each(terms, function() { |
3630 | - result.highlightText(this.toLowerCase(), 'highlighted'); |
3631 | - }); |
3632 | - }); |
3633 | - |
3634 | - // directly open comment window if requested |
3635 | - var anchor = document.location.hash; |
3636 | - if (anchor.substring(0, 9) == '#comment-') { |
3637 | - $('#ao' + anchor.substring(9)).click(); |
3638 | - document.location.hash = '#s' + anchor.substring(9); |
3639 | - } |
3640 | -}); |
3641 | |
3642 | === removed file 'src/postorius/doc/_build/html/acknowledgements.html' |
3643 | --- src/postorius/doc/_build/html/acknowledgements.html 2012-03-23 22:54:46 +0000 |
3644 | +++ src/postorius/doc/_build/html/acknowledgements.html 1970-01-01 00:00:00 +0000 |
3645 | @@ -1,158 +0,0 @@ |
3646 | - |
3647 | - |
3648 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
3649 | - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
3650 | - |
3651 | -<html xmlns="http://www.w3.org/1999/xhtml"> |
3652 | - <head> |
3653 | - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
3654 | - |
3655 | - <title>Acknowledgements — mailmanweb v0.1 documentation</title> |
3656 | - <link rel="stylesheet" href="_static/default.css" type="text/css" /> |
3657 | - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> |
3658 | - <script type="text/javascript"> |
3659 | - var DOCUMENTATION_OPTIONS = { |
3660 | - URL_ROOT: '', |
3661 | - VERSION: '0.1', |
3662 | - COLLAPSE_INDEX: false, |
3663 | - FILE_SUFFIX: '.html', |
3664 | - HAS_SOURCE: true |
3665 | - }; |
3666 | - </script> |
3667 | - <script type="text/javascript" src="_static/jquery.js"></script> |
3668 | - <script type="text/javascript" src="_static/underscore.js"></script> |
3669 | - <script type="text/javascript" src="_static/doctools.js"></script> |
3670 | - <link rel="top" title="mailmanweb v0.1 documentation" href="index.html" /> |
3671 | - </head> |
3672 | - <body> |
3673 | - <div class="related"> |
3674 | - <h3>Navigation</h3> |
3675 | - <ul> |
3676 | - <li class="right" style="margin-right: 10px"> |
3677 | - <a href="genindex.html" title="General Index" |
3678 | - accesskey="I">index</a></li> |
3679 | - <li class="right" > |
3680 | - <a href="py-modindex.html" title="Python Module Index" |
3681 | - >modules</a> |</li> |
3682 | - <li><a href="index.html">mailmanweb v0.1 documentation</a> »</li> |
3683 | - </ul> |
3684 | - </div> |
3685 | - |
3686 | - <div class="document"> |
3687 | - <div class="documentwrapper"> |
3688 | - <div class="bodywrapper"> |
3689 | - <div class="body"> |
3690 | - |
3691 | - <div class="section" id="acknowledgements"> |
3692 | -<h1>Acknowledgements<a class="headerlink" href="#acknowledgements" title="Permalink to this headline">¶</a></h1> |
3693 | -<div class="section" id="test-server"> |
3694 | -<h2>Test Server<a class="headerlink" href="#test-server" title="Permalink to this headline">¶</a></h2> |
3695 | -<p>We’re proud to provide you a development server which is sponsered by XXX #Todo |
3696 | -Feel free to change anything you like, we can simply rest the DB from Time to Time.</p> |
3697 | -</div> |
3698 | -<div class="section" id="missing-functionality"> |
3699 | -<h2>Missing Functionality<a class="headerlink" href="#missing-functionality" title="Permalink to this headline">¶</a></h2> |
3700 | -<ul> |
3701 | -<li><dl class="first docutils"> |
3702 | -<dt>Delete Domain</dt> |
3703 | -<dd><ul class="first last simple"> |
3704 | -<li>missing in REST</li> |
3705 | -<li>implemented in mailman3 a8</li> |
3706 | -</ul> |
3707 | -</dd> |
3708 | -</dl> |
3709 | -</li> |
3710 | -<li><p class="first">Show a List of all subscribed users</p> |
3711 | -</li> |
3712 | -</ul> |
3713 | -</div> |
3714 | -<div class="section" id="acl"> |
3715 | -<h2>ACL<a class="headerlink" href="#acl" title="Permalink to this headline">¶</a></h2> |
3716 | -<ul> |
3717 | -<li><p class="first">Middleware</p> |
3718 | -<blockquote> |
3719 | -<div><p>We don’t have the Middleware which is required to work with users and it’s permissions yet. For this reason we had to tweak some functions to be a hardcoded Demo object.</p> |
3720 | -<ul> |
3721 | -<li><dl class="first docutils"> |
3722 | -<dt>Login Check</dt> |
3723 | -<dd><p class="first last">At the moment we’re using a hardcoded List of allowed usernames and Passwords which are all stored in Plain within the AuthBackends Source File.</p> |
3724 | -</dd> |
3725 | -</dl> |
3726 | -</li> |
3727 | -<li><dl class="first docutils"> |
3728 | -<dt>has_perm Decorator</dt> |
3729 | -<dd><p class="first last">As we don’t have a middleware to check for users and it’s permissions we do only use one permission at the moment. The permission site domain_admin is hardcoded to user.username == “<a class="reference external" href="mailto:james%40example.com">james<span>@</span>example<span>.</span>com</a>“</p> |
3730 | -</dd> |
3731 | -</dl> |
3732 | -</li> |
3733 | -</ul> |
3734 | -</div></blockquote> |
3735 | -</li> |
3736 | -</ul> |
3737 | -</div> |
3738 | -<div class="section" id="ideas"> |
3739 | -<h2>Ideas<a class="headerlink" href="#ideas" title="Permalink to this headline">¶</a></h2> |
3740 | -<ul class="simple"> |
3741 | -<li>ContactPage</li> |
3742 | -<li></li> |
3743 | -</ul> |
3744 | -</div> |
3745 | -</div> |
3746 | - |
3747 | - |
3748 | - </div> |
3749 | - </div> |
3750 | - </div> |
3751 | - <div class="sphinxsidebar"> |
3752 | - <div class="sphinxsidebarwrapper"> |
3753 | - <h3><a href="index.html">Table Of Contents</a></h3> |
3754 | - <ul> |
3755 | -<li><a class="reference internal" href="#">Acknowledgements</a><ul> |
3756 | -<li><a class="reference internal" href="#test-server">Test Server</a></li> |
3757 | -<li><a class="reference internal" href="#missing-functionality">Missing Functionality</a></li> |
3758 | -<li><a class="reference internal" href="#acl">ACL</a></li> |
3759 | -<li><a class="reference internal" href="#ideas">Ideas</a></li> |
3760 | -</ul> |
3761 | -</li> |
3762 | -</ul> |
3763 | - |
3764 | - <h3>This Page</h3> |
3765 | - <ul class="this-page-menu"> |
3766 | - <li><a href="_sources/acknowledgements.txt" |
3767 | - rel="nofollow">Show Source</a></li> |
3768 | - </ul> |
3769 | -<div id="searchbox" style="display: none"> |
3770 | - <h3>Quick search</h3> |
3771 | - <form class="search" action="search.html" method="get"> |
3772 | - <input type="text" name="q" size="18" /> |
3773 | - <input type="submit" value="Go" /> |
3774 | - <input type="hidden" name="check_keywords" value="yes" /> |
3775 | - <input type="hidden" name="area" value="default" /> |
3776 | - </form> |
3777 | - <p class="searchtip" style="font-size: 90%"> |
3778 | - Enter search terms or a module, class or function name. |
3779 | - </p> |
3780 | -</div> |
3781 | -<script type="text/javascript">$('#searchbox').show(0);</script> |
3782 | - </div> |
3783 | - </div> |
3784 | - <div class="clearer"></div> |
3785 | - </div> |
3786 | - <div class="related"> |
3787 | - <h3>Navigation</h3> |
3788 | - <ul> |
3789 | - <li class="right" style="margin-right: 10px"> |
3790 | - <a href="genindex.html" title="General Index" |
3791 | - >index</a></li> |
3792 | - <li class="right" > |
3793 | - <a href="py-modindex.html" title="Python Module Index" |
3794 | - >modules</a> |</li> |
3795 | - <li><a href="index.html">mailmanweb v0.1 documentation</a> »</li> |
3796 | - </ul> |
3797 | - </div> |
3798 | - <div class="footer"> |
3799 | - © Copyright 2011, Benedict Stein. |
3800 | - Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. |
3801 | - </div> |
3802 | - </body> |
3803 | -</html> |
3804 | \ No newline at end of file |
3805 | |
3806 | === removed file 'src/postorius/doc/_build/html/development.html' |
3807 | --- src/postorius/doc/_build/html/development.html 2012-11-04 19:54:09 +0000 |
3808 | +++ src/postorius/doc/_build/html/development.html 1970-01-01 00:00:00 +0000 |
3809 | @@ -1,362 +0,0 @@ |
3810 | - |
3811 | - |
3812 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
3813 | - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
3814 | - |
3815 | - |
3816 | -<html xmlns="http://www.w3.org/1999/xhtml"> |
3817 | - <head> |
3818 | - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
3819 | - |
3820 | - <title>Development — Postorius 1.0a2 documentation</title> |
3821 | - |
3822 | - <link rel="stylesheet" href="_static/default.css" type="text/css" /> |
3823 | - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> |
3824 | - |
3825 | - <script type="text/javascript"> |
3826 | - var DOCUMENTATION_OPTIONS = { |
3827 | - URL_ROOT: '', |
3828 | - VERSION: '1.0a2', |
3829 | - COLLAPSE_INDEX: false, |
3830 | - FILE_SUFFIX: '.html', |
3831 | - HAS_SOURCE: true |
3832 | - }; |
3833 | - </script> |
3834 | - <script type="text/javascript" src="_static/jquery.js"></script> |
3835 | - <script type="text/javascript" src="_static/underscore.js"></script> |
3836 | - <script type="text/javascript" src="_static/doctools.js"></script> |
3837 | - <link rel="top" title="Postorius 1.0a2 documentation" href="index.html" /> |
3838 | - <link rel="prev" title="Installation" href="setup.html" /> |
3839 | - </head> |
3840 | - <body> |
3841 | - <div class="related"> |
3842 | - <h3>Navigation</h3> |
3843 | - <ul> |
3844 | - <li class="right" style="margin-right: 10px"> |
3845 | - <a href="genindex.html" title="General Index" |
3846 | - accesskey="I">index</a></li> |
3847 | - <li class="right" > |
3848 | - <a href="py-modindex.html" title="Python Module Index" |
3849 | - >modules</a> |</li> |
3850 | - <li class="right" > |
3851 | - <a href="setup.html" title="Installation" |
3852 | - accesskey="P">previous</a> |</li> |
3853 | - <li><a href="index.html">Postorius 1.0a2 documentation</a> »</li> |
3854 | - </ul> |
3855 | - </div> |
3856 | - |
3857 | - <div class="document"> |
3858 | - <div class="documentwrapper"> |
3859 | - <div class="bodywrapper"> |
3860 | - <div class="body"> |
3861 | - |
3862 | - <div class="section" id="development"> |
3863 | -<h1>Development<a class="headerlink" href="#development" title="Permalink to this headline">¶</a></h1> |
3864 | -<p>This is a short guide to help you get started with Postorius development.</p> |
3865 | -<div class="section" id="directory-layout"> |
3866 | -<h2>Directory layout<a class="headerlink" href="#directory-layout" title="Permalink to this headline">¶</a></h2> |
3867 | -<p>Postorius is a Django application, so if you have developed with Django before, |
3868 | -the file structure probably looks familiar. These are the basics:</p> |
3869 | -<div class="highlight-python"><pre>__init__.py |
3870 | -auth/ # Custom authorization code (List owners and |
3871 | - # moderators) |
3872 | -context_processors.py # Some variables available in all templates |
3873 | -doc/ # Sphinx documentation |
3874 | -fieldset_forms.py # A custom form class to build html forms with |
3875 | - # fieldsets |
3876 | -forms.py # All kinds of classes to build and validate forms |
3877 | -management/ # Commands to use with Django's manage.py script |
3878 | -models.py # Code to connect to mailman.client and provide |
3879 | - # a Django-style model API for lists, mm-users and |
3880 | - # domains |
3881 | -static/ # Static files (CSS, JS, images) |
3882 | -templates/ # HTML Templates |
3883 | -tests/ # Postorius test files |
3884 | -urls.py # URL routes |
3885 | -utils.py # Some handy utilities |
3886 | -views/ |
3887 | - views.py # View classes and functions for all views connected |
3888 | - # in urls.py |
3889 | - generic.py # Generic class-based views; Currently holds a |
3890 | - # class for views based on a single mailing list</pre> |
3891 | -</div> |
3892 | -</div> |
3893 | -<div class="section" id="development-workflow"> |
3894 | -<h2>Development Workflow<a class="headerlink" href="#development-workflow" title="Permalink to this headline">¶</a></h2> |
3895 | -<p>The source code is hosted on <a class="reference external" href="https://launchpad.net">Launchpad</a>, which also means that we are using |
3896 | -Bazaar for version control.</p> |
3897 | -<p>Changes are usually not made directly in the project’s trunk branch, but in |
3898 | -feature-related personal branches, which get reviewed and then merged into |
3899 | -the trunk.</p> |
3900 | -<p>The ideal workflow would be like this:</p> |
3901 | -<ol class="arabic simple"> |
3902 | -<li>File a bug to suggest a new feature or report a bug (or just pick one of |
3903 | -the existing bugs).</li> |
3904 | -<li>Create a new branch with your code changes.</li> |
3905 | -<li>Make a “merge proposal” to get your code reviewed and merged.</li> |
3906 | -</ol> |
3907 | -<p>Launchpad has a nice <a class="reference external" href="https://launchpad.net/+tour/index">tour</a> which describes all this in detail.</p> |
3908 | -</div> |
3909 | -<div class="section" id="writing-view-code"> |
3910 | -<h2>Writing View Code<a class="headerlink" href="#writing-view-code" title="Permalink to this headline">¶</a></h2> |
3911 | -<p>When the work on Postorius was started, the standard way to write view code in |
3912 | -Django was to write a single function for each different view. Since then |
3913 | -Django has introduced so-called ‘class-based views’ which make it much easier |
3914 | -to reuse view functionality. While using simple functions is not discuraged, it |
3915 | -makes sense to check if using a class-based approach could make sense.</p> |
3916 | -<p>Check Postorius’ <tt class="docutils literal"><span class="pre">views/views.py</span></tt> and <tt class="docutils literal"><span class="pre">views/generic.py</span></tt> for examples!</p> |
3917 | -</div> |
3918 | -<div class="section" id="authentication-authorization"> |
3919 | -<h2>Authentication/Authorization<a class="headerlink" href="#authentication-authorization" title="Permalink to this headline">¶</a></h2> |
3920 | -<p>Three of Django’s default User roles are relvant for Postorius:</p> |
3921 | -<ul class="simple"> |
3922 | -<li>Superuser: Can do everything.</li> |
3923 | -<li>AnonymousUser: Can view list index and info pages.</li> |
3924 | -<li>Authenticated users: Can view list index and info pages. Can (un)subscribe |
3925 | -from lists.</li> |
3926 | -</ul> |
3927 | -<p>Apart from these default roles, there are two others relevant in Postorius:</p> |
3928 | -<ul class="simple"> |
3929 | -<li>List owners: Can change list settings, moderate messages and delete their |
3930 | -lists.</li> |
3931 | -<li>List moderators: Can moderate messages.</li> |
3932 | -</ul> |
3933 | -<p>There are a number of decorators to protect views from unauthorized users.</p> |
3934 | -<ul class="simple"> |
3935 | -<li><tt class="docutils literal"><span class="pre">@user_passes_test(lambda</span> <span class="pre">u:</span> <span class="pre">u.is_superuser)</span></tt> (redirects to login form)</li> |
3936 | -<li><tt class="docutils literal"><span class="pre">@login_required</span></tt> (redirects to login form)</li> |
3937 | -<li><tt class="docutils literal"><span class="pre">@list_owner_required</span></tt> (returns 403)</li> |
3938 | -<li><tt class="docutils literal"><span class="pre">@list_moderator_required</span></tt> (returns 403)</li> |
3939 | -<li><tt class="docutils literal"><span class="pre">@superuser_or_403</span></tt> (returns 403)</li> |
3940 | -<li><tt class="docutils literal"><span class="pre">@loggedin_or_403</span></tt> (returns 403)</li> |
3941 | -<li><tt class="docutils literal"><span class="pre">@basic_auth_login</span></tt></li> |
3942 | -</ul> |
3943 | -<p>Check out <tt class="docutils literal"><span class="pre">views/views.py</span></tt> or <tt class="docutils literal"><span class="pre">views/api.py</span></tt> for examples!</p> |
3944 | -<p>The last one (basic_auth_login) checks the request header for HTTP Basic Auth |
3945 | -credentials and uses those to authenticate against Django’s session-based |
3946 | -mechanism. It can be used in cases where a view is accessed from other clients |
3947 | -than the web browser.</p> |
3948 | -<p>Please make sure to put it outside the other auth decorators.</p> |
3949 | -<p>Good:</p> |
3950 | -<div class="highlight-python"><div class="highlight"><pre><span class="nd">@basic_auth_login</span> |
3951 | -<span class="nd">@list_owner_required</span> |
3952 | -<span class="k">def</span> <span class="nf">my_view_func</span><span class="p">(</span><span class="n">request</span><span class="p">):</span> |
3953 | - <span class="o">...</span> |
3954 | -</pre></div> |
3955 | -</div> |
3956 | -<p>Won’t work, because list_owner_required will not recognize the user:</p> |
3957 | -<div class="highlight-python"><div class="highlight"><pre><span class="nd">@list_owner_required</span> |
3958 | -<span class="nd">@basic_auth_login</span> |
3959 | -<span class="k">def</span> <span class="nf">my_view_func</span><span class="p">(</span><span class="n">request</span><span class="p">):</span> |
3960 | - <span class="o">...</span> |
3961 | -</pre></div> |
3962 | -</div> |
3963 | -</div> |
3964 | -<div class="section" id="accessing-the-mailman-api"> |
3965 | -<h2>Accessing the Mailman API<a class="headerlink" href="#accessing-the-mailman-api" title="Permalink to this headline">¶</a></h2> |
3966 | -<p>Postorius uses mailman.client to connect to Mailman’s REST API. In order to |
3967 | -directly use the client, <tt class="docutils literal"><span class="pre">cd</span></tt> to your project folder and execute |
3968 | -<tt class="docutils literal"><span class="pre">python</span> <span class="pre">manage.py</span> <span class="pre">mmclient</span></tt>. This will open a python shell (IPython, if |
3969 | -that’s available) and provide you with a client object connected to to your |
3970 | -local Mailman API server (it uses the credentials from your settings.py).</p> |
3971 | -<p>A quick example:</p> |
3972 | -<div class="highlight-python"><pre>$ python manage.py mmclient |
3973 | - |
3974 | ->>> client |
3975 | -<Client (user:pwd) http://localhost:8001/3.0/> |
3976 | - |
3977 | ->>> print client.system['mailman_version'] |
3978 | -GNU Mailman 3.0.0b2+ (Here Again) |
3979 | - |
3980 | ->>> mailman_dev = client.get_list('mailman-developers@python.org') |
3981 | ->>> print mailman_dev settings |
3982 | -{u'owner_address': u'mailman-developers@python.org', |
3983 | - u'default_nonmember_action': u'hold', ...}</pre> |
3984 | -</div> |
3985 | -<p>For detailed information how to use mailman.client, check out its <a class="reference external" href="http://bazaar.launchpad.net/~mailman-coders/mailman.client/trunk/view/head:/src/mailmanclient/docs/using.txt">documentation</a>.</p> |
3986 | -</div> |
3987 | -<div class="section" id="testing"> |
3988 | -<h2>Testing<a class="headerlink" href="#testing" title="Permalink to this headline">¶</a></h2> |
3989 | -<p>Currently only some of the Postorius code is covered by a test. We should change that!</p> |
3990 | -<p>All test modules reside in the <tt class="docutils literal"><span class="pre">postorius/src/postorius/tests</span></tt> directory |
3991 | -and this is where you should put your own tests, too. To make the django test |
3992 | -runner find your tests, make sure to add them to the folder’s <tt class="docutils literal"><span class="pre">__init__.py</span></tt>:</p> |
3993 | -<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">postorius.tests</span> <span class="kn">import</span> <span class="n">test_utils</span> |
3994 | -<span class="kn">from</span> <span class="nn">postorius.tests.test_list_members</span> <span class="kn">import</span> <span class="n">ListMembersViewTest</span> |
3995 | -<span class="kn">from</span> <span class="nn">postorius.tests.test_list_settings</span> <span class="kn">import</span> <span class="n">ListSettingsViewTest</span> |
3996 | -<span class="kn">from</span> <span class="nn">postorius.tests.my_own_tests</span> <span class="kn">import</span> <span class="n">MyOwnUnitTest</span> |
3997 | - |
3998 | -<span class="n">__test__</span> <span class="o">=</span> <span class="p">{</span> |
3999 | - <span class="s">"Test Utils"</span><span class="p">:</span> <span class="n">test_utils</span><span class="p">,</span> |
4000 | - <span class="s">"List Members"</span><span class="p">:</span> <span class="n">ListMembersViewTest</span><span class="p">,</span> |
4001 | - <span class="s">"List Settings"</span><span class="p">:</span> <span class="n">ListSettingsViewTest</span><span class="p">,</span> |
4002 | - <span class="s">"My Own Test"</span><span class="p">:</span> <span class="n">MyOwnUnitTest</span><span class="p">,</span> |
4003 | -<span class="p">}</span> |
4004 | -</pre></div> |
4005 | -</div> |
4006 | -<div class="section" id="running-the-tests"> |
4007 | -<h3>Running the tests<a class="headerlink" href="#running-the-tests" title="Permalink to this headline">¶</a></h3> |
4008 | -<p>To run the tests go to your project folder and run <tt class="docutils literal"><span class="pre">python</span> <span class="pre">manage.py</span> <span class="pre">test</span> |
4009 | -<span class="pre">postorius</span></tt> from there.</p> |
4010 | -</div> |
4011 | -<div class="section" id="testing-mailman-client-results"> |
4012 | -<h3>Testing mailman.client results<a class="headerlink" href="#testing-mailman-client-results" title="Permalink to this headline">¶</a></h3> |
4013 | -<p>Most of Postorius’ code involves some results from calls to the mailman.client |
4014 | -library. mailman.client is itself covered by tests, so Postorius’ own tests |
4015 | -don’t need to check if mailman.client returns correct results. Instead we can |
4016 | -just mock them! This has the big advantage that you can run the test suite |
4017 | -without having to worry about the state of the local Mailman database. It also |
4018 | -makes the tests run faster, because we spare ourselves the HTTP calls to the |
4019 | -local Mailman REST API.</p> |
4020 | -<p>This approach has the obvious downside that the Postorius tests will not |
4021 | -recognize any changes to the Mailman API. So at some point there should be some |
4022 | -separate integration tests to test the whole chain. But let’s not worry about |
4023 | -that for now.</p> |
4024 | -</div> |
4025 | -<div class="section" id="mocking-mailman-client-objects"> |
4026 | -<h3>Mocking mailman.client objects<a class="headerlink" href="#mocking-mailman-client-objects" title="Permalink to this headline">¶</a></h3> |
4027 | -<p>Postorius uses Michael Foord’s <tt class="docutils literal"><span class="pre">mock</span></tt> library for mocking. There are some |
4028 | -shortcuts you can use to quickly create mock objects that behave a little bit |
4029 | -like objects retreived from mailman.client, like:</p> |
4030 | -<ul class="simple"> |
4031 | -<li>create_mock_domain</li> |
4032 | -<li>create_mock_list</li> |
4033 | -<li>create_mock_member</li> |
4034 | -</ul> |
4035 | -<p>These <tt class="docutils literal"><span class="pre">create_mock_*</span></tt> functions are very simple tools that return MagigMock objects with the properties passed to them in a dictionary. They also set some defaults for properties that you didn’t pass to its <tt class="docutils literal"><span class="pre">create_mock_*</span></tt> function. For instance, a mock list created with <tt class="docutils literal"><span class="pre">create_mock_list()</span></tt> will always have <tt class="docutils literal"><span class="pre">members</span></tt>, <tt class="docutils literal"><span class="pre">moderators</span></tt> and <tt class="docutils literal"><span class="pre">owners</span></tt> properties.</p> |
4036 | -<span class="target" id="module-postorius.tests.test_utils"></span><div class="section" id="domains"> |
4037 | -<h4>Domains<a class="headerlink" href="#domains" title="Permalink to this headline">¶</a></h4> |
4038 | -<p><tt class="docutils literal"><span class="pre">postorius.tests.utils.create_mock_domain</span></tt> creates a mock domain object:</p> |
4039 | -<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">properties</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span><span class="n">contact_address</span><span class="o">=</span><span class="s">'postmaster@example.org'</span><span class="p">,</span> |
4040 | -<span class="gp">... </span> <span class="n">description</span><span class="o">=</span><span class="s">'Example dot Org'</span><span class="p">,</span> |
4041 | -<span class="gp">... </span> <span class="n">mail_host</span><span class="o">=</span><span class="s">'example.org'</span><span class="p">,</span> |
4042 | -<span class="gp">... </span> <span class="n">url_host</span><span class="o">=</span><span class="s">'www.example.org'</span><span class="p">)</span> |
4043 | -<span class="gp">>>> </span><span class="n">mock_domain</span> <span class="o">=</span> <span class="n">create_mock_domain</span><span class="p">(</span><span class="n">properties</span><span class="p">)</span> |
4044 | -<span class="gp">>>> </span><span class="k">print</span> <span class="n">mock_domain</span> |
4045 | -<span class="go"><MagicMock name='Domain' id='...'></span> |
4046 | -<span class="gp">>>> </span><span class="k">print</span> <span class="n">mock_domain</span><span class="o">.</span><span class="n">contact_address</span> |
4047 | -<span class="go">postmaster@example.org</span> |
4048 | -<span class="gp">>>> </span><span class="k">print</span> <span class="n">mock_domain</span><span class="o">.</span><span class="n">description</span> |
4049 | -<span class="go">Example dot Org</span> |
4050 | -<span class="gp">>>> </span><span class="k">print</span> <span class="n">mock_domain</span><span class="o">.</span><span class="n">mail_host</span> |
4051 | -<span class="go">example.org</span> |
4052 | -<span class="gp">>>> </span><span class="k">print</span> <span class="n">mock_domain</span><span class="o">.</span><span class="n">url_host</span> |
4053 | -<span class="go">www.example.org</span> |
4054 | -</pre></div> |
4055 | -</div> |
4056 | -</div> |
4057 | -<div class="section" id="mailing-lists"> |
4058 | -<h4>Mailing Lists<a class="headerlink" href="#mailing-lists" title="Permalink to this headline">¶</a></h4> |
4059 | -<p><tt class="docutils literal"><span class="pre">postorius.tests.utils.create_mock_list</span></tt> creates a mock list object:</p> |
4060 | -<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">properties</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span><span class="n">fqdn_listname</span><span class="o">=</span><span class="s">'testlist@example.org'</span><span class="p">,</span> |
4061 | -<span class="gp">... </span> <span class="n">mail_host</span><span class="o">=</span><span class="s">'example.org'</span><span class="p">,</span> |
4062 | -<span class="gp">... </span> <span class="n">list_name</span><span class="o">=</span><span class="s">'testlist'</span><span class="p">,</span> |
4063 | -<span class="gp">... </span> <span class="n">display_name</span><span class="o">=</span><span class="s">'Test List'</span><span class="p">)</span> |
4064 | -<span class="gp">>>> </span><span class="n">mock_list</span> <span class="o">=</span> <span class="n">create_mock_list</span><span class="p">(</span><span class="n">properties</span><span class="p">)</span> |
4065 | -<span class="gp">>>> </span><span class="k">print</span> <span class="n">mock_list</span> |
4066 | -<span class="go"><MagicMock name='List' id='...'></span> |
4067 | -<span class="gp">>>> </span><span class="k">print</span> <span class="n">mock_list</span><span class="o">.</span><span class="n">fqdn_listname</span> |
4068 | -<span class="go">testlist@example.org</span> |
4069 | -<span class="gp">>>> </span><span class="k">print</span> <span class="n">mock_list</span><span class="o">.</span><span class="n">mail_host</span> |
4070 | -<span class="go">example.org</span> |
4071 | -<span class="gp">>>> </span><span class="k">print</span> <span class="n">mock_list</span><span class="o">.</span><span class="n">list_name</span> |
4072 | -<span class="go">testlist</span> |
4073 | -<span class="gp">>>> </span><span class="k">print</span> <span class="n">mock_list</span><span class="o">.</span><span class="n">display_name</span> |
4074 | -<span class="go">Test List</span> |
4075 | -</pre></div> |
4076 | -</div> |
4077 | -</div> |
4078 | -<div class="section" id="memberships"> |
4079 | -<h4>Memberships<a class="headerlink" href="#memberships" title="Permalink to this headline">¶</a></h4> |
4080 | -<p><tt class="docutils literal"><span class="pre">postorius.tests.utils.create_mock_list</span></tt> creates a mock list object:</p> |
4081 | -<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">properties</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span><span class="n">fqdn_listname</span><span class="o">=</span><span class="s">'testlist@example.org'</span><span class="p">,</span> |
4082 | -<span class="gp">... </span> <span class="n">address</span><span class="o">=</span><span class="s">'les@example.org'</span><span class="p">,)</span> |
4083 | -<span class="gp">>>> </span><span class="n">mock_member</span> <span class="o">=</span> <span class="n">create_mock_member</span><span class="p">(</span><span class="n">properties</span><span class="p">)</span> |
4084 | -<span class="gp">>>> </span><span class="k">print</span> <span class="n">mock_member</span> |
4085 | -<span class="go"><MagicMock name='Member' id='...'></span> |
4086 | -<span class="gp">>>> </span><span class="k">print</span> <span class="n">mock_member</span><span class="o">.</span><span class="n">fqdn_listname</span> |
4087 | -<span class="go">testlist@example.org</span> |
4088 | -<span class="gp">>>> </span><span class="k">print</span> <span class="n">mock_member</span><span class="o">.</span><span class="n">address</span> |
4089 | -<span class="go">les@example.org</span> |
4090 | -</pre></div> |
4091 | -</div> |
4092 | -</div> |
4093 | -</div> |
4094 | -</div> |
4095 | -</div> |
4096 | - |
4097 | - |
4098 | - </div> |
4099 | - </div> |
4100 | - </div> |
4101 | - <div class="sphinxsidebar"> |
4102 | - <div class="sphinxsidebarwrapper"> |
4103 | - <h3><a href="index.html">Table Of Contents</a></h3> |
4104 | - <ul> |
4105 | -<li><a class="reference internal" href="#">Development</a><ul> |
4106 | -<li><a class="reference internal" href="#directory-layout">Directory layout</a></li> |
4107 | -<li><a class="reference internal" href="#development-workflow">Development Workflow</a></li> |
4108 | -<li><a class="reference internal" href="#writing-view-code">Writing View Code</a></li> |
4109 | -<li><a class="reference internal" href="#authentication-authorization">Authentication/Authorization</a></li> |
4110 | -<li><a class="reference internal" href="#accessing-the-mailman-api">Accessing the Mailman API</a></li> |
4111 | -<li><a class="reference internal" href="#testing">Testing</a><ul> |
4112 | -<li><a class="reference internal" href="#running-the-tests">Running the tests</a></li> |
4113 | -<li><a class="reference internal" href="#testing-mailman-client-results">Testing mailman.client results</a></li> |
4114 | -<li><a class="reference internal" href="#mocking-mailman-client-objects">Mocking mailman.client objects</a><ul> |
4115 | -<li><a class="reference internal" href="#domains">Domains</a></li> |
4116 | -<li><a class="reference internal" href="#mailing-lists">Mailing Lists</a></li> |
4117 | -<li><a class="reference internal" href="#memberships">Memberships</a></li> |
4118 | -</ul> |
4119 | -</li> |
4120 | -</ul> |
4121 | -</li> |
4122 | -</ul> |
4123 | -</li> |
4124 | -</ul> |
4125 | - |
4126 | - <h4>Previous topic</h4> |
4127 | - <p class="topless"><a href="setup.html" |
4128 | - title="previous chapter">Installation</a></p> |
4129 | - <h3>This Page</h3> |
4130 | - <ul class="this-page-menu"> |
4131 | - <li><a href="_sources/development.txt" |
4132 | - rel="nofollow">Show Source</a></li> |
4133 | - </ul> |
4134 | -<div id="searchbox" style="display: none"> |
4135 | - <h3>Quick search</h3> |
4136 | - <form class="search" action="search.html" method="get"> |
4137 | - <input type="text" name="q" /> |
4138 | - <input type="submit" value="Go" /> |
4139 | - <input type="hidden" name="check_keywords" value="yes" /> |
4140 | - <input type="hidden" name="area" value="default" /> |
4141 | - </form> |
4142 | - <p class="searchtip" style="font-size: 90%"> |
4143 | - Enter search terms or a module, class or function name. |
4144 | - </p> |
4145 | -</div> |
4146 | -<script type="text/javascript">$('#searchbox').show(0);</script> |
4147 | - </div> |
4148 | - </div> |
4149 | - <div class="clearer"></div> |
4150 | - </div> |
4151 | - <div class="related"> |
4152 | - <h3>Navigation</h3> |
4153 | - <ul> |
4154 | - <li class="right" style="margin-right: 10px"> |
4155 | - <a href="genindex.html" title="General Index" |
4156 | - >index</a></li> |
4157 | - <li class="right" > |
4158 | - <a href="py-modindex.html" title="Python Module Index" |
4159 | - >modules</a> |</li> |
4160 | - <li class="right" > |
4161 | - <a href="setup.html" title="Installation" |
4162 | - >previous</a> |</li> |
4163 | - <li><a href="index.html">Postorius 1.0a2 documentation</a> »</li> |
4164 | - </ul> |
4165 | - </div> |
4166 | - <div class="footer"> |
4167 | - © Copyright 2012, The Free Software Foundation. |
4168 | - Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.2. |
4169 | - </div> |
4170 | - </body> |
4171 | -</html> |
4172 | \ No newline at end of file |
4173 | |
4174 | === removed file 'src/postorius/doc/_build/html/genindex.html' |
4175 | --- src/postorius/doc/_build/html/genindex.html 2012-10-05 15:45:38 +0000 |
4176 | +++ src/postorius/doc/_build/html/genindex.html 1970-01-01 00:00:00 +0000 |
4177 | @@ -1,123 +0,0 @@ |
4178 | - |
4179 | - |
4180 | - |
4181 | - |
4182 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
4183 | - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
4184 | - |
4185 | - |
4186 | -<html xmlns="http://www.w3.org/1999/xhtml"> |
4187 | - <head> |
4188 | - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
4189 | - |
4190 | - <title>Index — Postorius 1.0a2 documentation</title> |
4191 | - |
4192 | - <link rel="stylesheet" href="_static/default.css" type="text/css" /> |
4193 | - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> |
4194 | - |
4195 | - <script type="text/javascript"> |
4196 | - var DOCUMENTATION_OPTIONS = { |
4197 | - URL_ROOT: '', |
4198 | - VERSION: '1.0a2', |
4199 | - COLLAPSE_INDEX: false, |
4200 | - FILE_SUFFIX: '.html', |
4201 | - HAS_SOURCE: true |
4202 | - }; |
4203 | - </script> |
4204 | - <script type="text/javascript" src="_static/jquery.js"></script> |
4205 | - <script type="text/javascript" src="_static/underscore.js"></script> |
4206 | - <script type="text/javascript" src="_static/doctools.js"></script> |
4207 | - <link rel="top" title="Postorius 1.0a2 documentation" href="index.html" /> |
4208 | - </head> |
4209 | - <body> |
4210 | - <div class="related"> |
4211 | - <h3>Navigation</h3> |
4212 | - <ul> |
4213 | - <li class="right" style="margin-right: 10px"> |
4214 | - <a href="#" title="General Index" |
4215 | - accesskey="I">index</a></li> |
4216 | - <li class="right" > |
4217 | - <a href="py-modindex.html" title="Python Module Index" |
4218 | - >modules</a> |</li> |
4219 | - <li><a href="index.html">Postorius 1.0a2 documentation</a> »</li> |
4220 | - </ul> |
4221 | - </div> |
4222 | - |
4223 | - <div class="document"> |
4224 | - <div class="documentwrapper"> |
4225 | - <div class="bodywrapper"> |
4226 | - <div class="body"> |
4227 | - |
4228 | - |
4229 | -<h1 id="index">Index</h1> |
4230 | - |
4231 | -<div class="genindex-jumpbox"> |
4232 | - <a href="#P"><strong>P</strong></a> |
4233 | - | <a href="#T"><strong>T</strong></a> |
4234 | - |
4235 | -</div> |
4236 | -<h2 id="P">P</h2> |
4237 | -<table style="width: 100%" class="indextable genindextable"><tr> |
4238 | - <td style="width: 33%" valign="top"><dl> |
4239 | - |
4240 | - <dt><a href="development.html#module-postorius.tests.test_utils">postorius.tests.test_utils (module)</a> |
4241 | - </dt> |
4242 | - |
4243 | - </dl></td> |
4244 | -</tr></table> |
4245 | - |
4246 | -<h2 id="T">T</h2> |
4247 | -<table style="width: 100%" class="indextable genindextable"><tr> |
4248 | - <td style="width: 33%" valign="top"><dl> |
4249 | - |
4250 | - <dt><a href="using.html#module-tests.tests">tests.tests (module)</a> |
4251 | - </dt> |
4252 | - |
4253 | - </dl></td> |
4254 | -</tr></table> |
4255 | - |
4256 | - |
4257 | - |
4258 | - </div> |
4259 | - </div> |
4260 | - </div> |
4261 | - <div class="sphinxsidebar"> |
4262 | - <div class="sphinxsidebarwrapper"> |
4263 | - |
4264 | - |
4265 | - |
4266 | -<div id="searchbox" style="display: none"> |
4267 | - <h3>Quick search</h3> |
4268 | - <form class="search" action="search.html" method="get"> |
4269 | - <input type="text" name="q" /> |
4270 | - <input type="submit" value="Go" /> |
4271 | - <input type="hidden" name="check_keywords" value="yes" /> |
4272 | - <input type="hidden" name="area" value="default" /> |
4273 | - </form> |
4274 | - <p class="searchtip" style="font-size: 90%"> |
4275 | - Enter search terms or a module, class or function name. |
4276 | - </p> |
4277 | -</div> |
4278 | -<script type="text/javascript">$('#searchbox').show(0);</script> |
4279 | - </div> |
4280 | - </div> |
4281 | - <div class="clearer"></div> |
4282 | - </div> |
4283 | - <div class="related"> |
4284 | - <h3>Navigation</h3> |
4285 | - <ul> |
4286 | - <li class="right" style="margin-right: 10px"> |
4287 | - <a href="#" title="General Index" |
4288 | - >index</a></li> |
4289 | - <li class="right" > |
4290 | - <a href="py-modindex.html" title="Python Module Index" |
4291 | - >modules</a> |</li> |
4292 | - <li><a href="index.html">Postorius 1.0a2 documentation</a> »</li> |
4293 | - </ul> |
4294 | - </div> |
4295 | - <div class="footer"> |
4296 | - © Copyright 2012, The Free Software Foundation. |
4297 | - Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.2. |
4298 | - </div> |
4299 | - </body> |
4300 | -</html> |
4301 | \ No newline at end of file |
4302 | |
4303 | === removed file 'src/postorius/doc/_build/html/index.html' |
4304 | --- src/postorius/doc/_build/html/index.html 2012-08-21 19:58:00 +0000 |
4305 | +++ src/postorius/doc/_build/html/index.html 1970-01-01 00:00:00 +0000 |
4306 | @@ -1,116 +0,0 @@ |
4307 | - |
4308 | - |
4309 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
4310 | - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
4311 | - |
4312 | - |
4313 | -<html xmlns="http://www.w3.org/1999/xhtml"> |
4314 | - <head> |
4315 | - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
4316 | - |
4317 | - <title>Postorius - The New Mailman Web UI — Postorius 1.0a2 documentation</title> |
4318 | - |
4319 | - <link rel="stylesheet" href="_static/default.css" type="text/css" /> |
4320 | - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> |
4321 | - |
4322 | - <script type="text/javascript"> |
4323 | - var DOCUMENTATION_OPTIONS = { |
4324 | - URL_ROOT: '', |
4325 | - VERSION: '1.0a2', |
4326 | - COLLAPSE_INDEX: false, |
4327 | - FILE_SUFFIX: '.html', |
4328 | - HAS_SOURCE: true |
4329 | - }; |
4330 | - </script> |
4331 | - <script type="text/javascript" src="_static/jquery.js"></script> |
4332 | - <script type="text/javascript" src="_static/underscore.js"></script> |
4333 | - <script type="text/javascript" src="_static/doctools.js"></script> |
4334 | - <link rel="top" title="Postorius 1.0a2 documentation" href="#" /> |
4335 | - <link rel="next" title="News / Changelog" href="news.html" /> |
4336 | - </head> |
4337 | - <body> |
4338 | - <div class="related"> |
4339 | - <h3>Navigation</h3> |
4340 | - <ul> |
4341 | - <li class="right" style="margin-right: 10px"> |
4342 | - <a href="genindex.html" title="General Index" |
4343 | - accesskey="I">index</a></li> |
4344 | - <li class="right" > |
4345 | - <a href="py-modindex.html" title="Python Module Index" |
4346 | - >modules</a> |</li> |
4347 | - <li class="right" > |
4348 | - <a href="news.html" title="News / Changelog" |
4349 | - accesskey="N">next</a> |</li> |
4350 | - <li><a href="#">Postorius 1.0a2 documentation</a> »</li> |
4351 | - </ul> |
4352 | - </div> |
4353 | - |
4354 | - <div class="document"> |
4355 | - <div class="documentwrapper"> |
4356 | - <div class="bodywrapper"> |
4357 | - <div class="body"> |
4358 | - |
4359 | - <div class="section" id="postorius-the-new-mailman-web-ui"> |
4360 | -<h1>Postorius - The New Mailman Web UI<a class="headerlink" href="#postorius-the-new-mailman-web-ui" title="Permalink to this headline">¶</a></h1> |
4361 | -<p>Contents:</p> |
4362 | -<div class="toctree-wrapper compound"> |
4363 | -<ul> |
4364 | -<li class="toctree-l1"><a class="reference internal" href="news.html">News / Changelog</a></li> |
4365 | -<li class="toctree-l1"><a class="reference internal" href="setup.html">Installation</a></li> |
4366 | -<li class="toctree-l1"><a class="reference internal" href="development.html">Development</a></li> |
4367 | -</ul> |
4368 | -</div> |
4369 | -</div> |
4370 | - |
4371 | - |
4372 | - </div> |
4373 | - </div> |
4374 | - </div> |
4375 | - <div class="sphinxsidebar"> |
4376 | - <div class="sphinxsidebarwrapper"> |
4377 | - <h4>Next topic</h4> |
4378 | - <p class="topless"><a href="news.html" |
4379 | - title="next chapter">News / Changelog</a></p> |
4380 | - <h3>This Page</h3> |
4381 | - <ul class="this-page-menu"> |
4382 | - <li><a href="_sources/index.txt" |
4383 | - rel="nofollow">Show Source</a></li> |
4384 | - </ul> |
4385 | -<div id="searchbox" style="display: none"> |
4386 | - <h3>Quick search</h3> |
4387 | - <form class="search" action="search.html" method="get"> |
4388 | - <input type="text" name="q" /> |
4389 | - <input type="submit" value="Go" /> |
4390 | - <input type="hidden" name="check_keywords" value="yes" /> |
4391 | - <input type="hidden" name="area" value="default" /> |
4392 | - </form> |
4393 | - <p class="searchtip" style="font-size: 90%"> |
4394 | - Enter search terms or a module, class or function name. |
4395 | - </p> |
4396 | -</div> |
4397 | -<script type="text/javascript">$('#searchbox').show(0);</script> |
4398 | - </div> |
4399 | - </div> |
4400 | - <div class="clearer"></div> |
4401 | - </div> |
4402 | - <div class="related"> |
4403 | - <h3>Navigation</h3> |
4404 | - <ul> |
4405 | - <li class="right" style="margin-right: 10px"> |
4406 | - <a href="genindex.html" title="General Index" |
4407 | - >index</a></li> |
4408 | - <li class="right" > |
4409 | - <a href="py-modindex.html" title="Python Module Index" |
4410 | - >modules</a> |</li> |
4411 | - <li class="right" > |
4412 | - <a href="news.html" title="News / Changelog" |
4413 | - >next</a> |</li> |
4414 | - <li><a href="#">Postorius 1.0a2 documentation</a> »</li> |
4415 | - </ul> |
4416 | - </div> |
4417 | - <div class="footer"> |
4418 | - © Copyright 2012, The Free Software Foundation. |
4419 | - Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.2. |
4420 | - </div> |
4421 | - </body> |
4422 | -</html> |
4423 | \ No newline at end of file |
4424 | |
4425 | === removed file 'src/postorius/doc/_build/html/license.html' |
4426 | --- src/postorius/doc/_build/html/license.html 2012-03-23 22:54:46 +0000 |
4427 | +++ src/postorius/doc/_build/html/license.html 1970-01-01 00:00:00 +0000 |
4428 | @@ -1,139 +0,0 @@ |
4429 | - |
4430 | - |
4431 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
4432 | - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
4433 | - |
4434 | -<html xmlns="http://www.w3.org/1999/xhtml"> |
4435 | - <head> |
4436 | - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
4437 | - |
4438 | - <title>Contributions: — mailmanweb v0.1 documentation</title> |
4439 | - <link rel="stylesheet" href="_static/default.css" type="text/css" /> |
4440 | - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> |
4441 | - <script type="text/javascript"> |
4442 | - var DOCUMENTATION_OPTIONS = { |
4443 | - URL_ROOT: '', |
4444 | - VERSION: '0.1', |
4445 | - COLLAPSE_INDEX: false, |
4446 | - FILE_SUFFIX: '.html', |
4447 | - HAS_SOURCE: true |
4448 | - }; |
4449 | - </script> |
4450 | - <script type="text/javascript" src="_static/jquery.js"></script> |
4451 | - <script type="text/javascript" src="_static/underscore.js"></script> |
4452 | - <script type="text/javascript" src="_static/doctools.js"></script> |
4453 | - <link rel="top" title="mailmanweb v0.1 documentation" href="index.html" /> |
4454 | - <link rel="prev" title="Acknowledgements" href="acknowledgements.html" /> |
4455 | - </head> |
4456 | - <body> |
4457 | - <div class="related"> |
4458 | - <h3>Navigation</h3> |
4459 | - <ul> |
4460 | - <li class="right" style="margin-right: 10px"> |
4461 | - <a href="genindex.html" title="General Index" |
4462 | - accesskey="I">index</a></li> |
4463 | - <li class="right" > |
4464 | - <a href="py-modindex.html" title="Python Module Index" |
4465 | - >modules</a> |</li> |
4466 | - <li class="right" > |
4467 | - <a href="acknowledgements.html" title="Acknowledgements" |
4468 | - accesskey="P">previous</a> |</li> |
4469 | - <li><a href="index.html">mailmanweb v0.1 documentation</a> »</li> |
4470 | - </ul> |
4471 | - </div> |
4472 | - |
4473 | - <div class="document"> |
4474 | - <div class="documentwrapper"> |
4475 | - <div class="bodywrapper"> |
4476 | - <div class="body"> |
4477 | - |
4478 | - <div class="section" id="contributions"> |
4479 | -<h1>Contributions:<a class="headerlink" href="#contributions" title="Permalink to this headline">¶</a></h1> |
4480 | -<div class="section" id="mailman-is-licensed-unter-gpl"> |
4481 | -<h2>Mailman is licensed unter <em>GPL</em><a class="headerlink" href="#mailman-is-licensed-unter-gpl" title="Permalink to this headline">¶</a></h2> |
4482 | -<p>Copyright (C) 1998-2010 by the Free Software Foundation, Inc.</p> |
4483 | -<p>This file is part of GNU Mailman.</p> |
4484 | -<p>GNU Mailman is free software: you can redistribute it and/or modify it under |
4485 | -the terms of the GNU General Public License as published by the Free |
4486 | -Software Foundation, either version 3 of the License, or (at your option) |
4487 | -any later version.</p> |
4488 | -<p>GNU Mailman is distributed in the hope that it will be useful, but WITHOUT |
4489 | -ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
4490 | -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
4491 | -more details.</p> |
4492 | -<p>You should have received a copy of the GNU General Public License along with |
4493 | -GNU Mailman. If not, see <<a class="reference external" href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</p> |
4494 | -</div> |
4495 | -<div class="section" id="rrze-icon-set"> |
4496 | -<h2>RRZE Icon Set<a class="headerlink" href="#rrze-icon-set" title="Permalink to this headline">¶</a></h2> |
4497 | -<p><strong>CreativeCommons Licence</strong></p> |
4498 | -<p>The RRZE Icon Set is licenced under a Creative Commons Licence. |
4499 | -Please see the website for the current licence text.</p> |
4500 | -<p>More information about the Project could be found here: |
4501 | -<a class="reference external" href="http://rrze-icon-set.berlios.de/licence.html">http://rrze-icon-set.berlios.de/licence.html</a></p> |
4502 | -<p>Special thanks to: |
4503 | -* Franziska Sponsel (created additional Icons specially for our Project)</p> |
4504 | -</div> |
4505 | -</div> |
4506 | - |
4507 | - |
4508 | - </div> |
4509 | - </div> |
4510 | - </div> |
4511 | - <div class="sphinxsidebar"> |
4512 | - <div class="sphinxsidebarwrapper"> |
4513 | - <h3><a href="index.html">Table Of Contents</a></h3> |
4514 | - <ul> |
4515 | -<li><a class="reference internal" href="#">Contributions:</a><ul> |
4516 | -<li><a class="reference internal" href="#mailman-is-licensed-unter-gpl">Mailman is licensed unter <em>GPL</em></a></li> |
4517 | -<li><a class="reference internal" href="#rrze-icon-set">RRZE Icon Set</a></li> |
4518 | -</ul> |
4519 | -</li> |
4520 | -</ul> |
4521 | - |
4522 | - <h4>Previous topic</h4> |
4523 | - <p class="topless"><a href="acknowledgements.html" |
4524 | - title="previous chapter">Acknowledgements</a></p> |
4525 | - <h3>This Page</h3> |
4526 | - <ul class="this-page-menu"> |
4527 | - <li><a href="_sources/license.txt" |
4528 | - rel="nofollow">Show Source</a></li> |
4529 | - </ul> |
4530 | -<div id="searchbox" style="display: none"> |
4531 | - <h3>Quick search</h3> |
4532 | - <form class="search" action="search.html" method="get"> |
4533 | - <input type="text" name="q" size="18" /> |
4534 | - <input type="submit" value="Go" /> |
4535 | - <input type="hidden" name="check_keywords" value="yes" /> |
4536 | - <input type="hidden" name="area" value="default" /> |
4537 | - </form> |
4538 | - <p class="searchtip" style="font-size: 90%"> |
4539 | - Enter search terms or a module, class or function name. |
4540 | - </p> |
4541 | -</div> |
4542 | -<script type="text/javascript">$('#searchbox').show(0);</script> |
4543 | - </div> |
4544 | - </div> |
4545 | - <div class="clearer"></div> |
4546 | - </div> |
4547 | - <div class="related"> |
4548 | - <h3>Navigation</h3> |
4549 | - <ul> |
4550 | - <li class="right" style="margin-right: 10px"> |
4551 | - <a href="genindex.html" title="General Index" |
4552 | - >index</a></li> |
4553 | - <li class="right" > |
4554 | - <a href="py-modindex.html" title="Python Module Index" |
4555 | - >modules</a> |</li> |
4556 | - <li class="right" > |
4557 | - <a href="acknowledgements.html" title="Acknowledgements" |
4558 | - >previous</a> |</li> |
4559 | - <li><a href="index.html">mailmanweb v0.1 documentation</a> »</li> |
4560 | - </ul> |
4561 | - </div> |
4562 | - <div class="footer"> |
4563 | - © Copyright 2011, Benedict Stein. |
4564 | - Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. |
4565 | - </div> |
4566 | - </body> |
4567 | -</html> |
4568 | \ No newline at end of file |
4569 | |
4570 | === removed file 'src/postorius/doc/_build/html/news.html' |
4571 | --- src/postorius/doc/_build/html/news.html 2012-11-04 19:54:09 +0000 |
4572 | +++ src/postorius/doc/_build/html/news.html 1970-01-01 00:00:00 +0000 |
4573 | @@ -1,186 +0,0 @@ |
4574 | - |
4575 | - |
4576 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
4577 | - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
4578 | - |
4579 | - |
4580 | -<html xmlns="http://www.w3.org/1999/xhtml"> |
4581 | - <head> |
4582 | - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
4583 | - |
4584 | - <title>News / Changelog — Postorius 1.0a2 documentation</title> |
4585 | - |
4586 | - <link rel="stylesheet" href="_static/default.css" type="text/css" /> |
4587 | - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> |
4588 | - |
4589 | - <script type="text/javascript"> |
4590 | - var DOCUMENTATION_OPTIONS = { |
4591 | - URL_ROOT: '', |
4592 | - VERSION: '1.0a2', |
4593 | - COLLAPSE_INDEX: false, |
4594 | - FILE_SUFFIX: '.html', |
4595 | - HAS_SOURCE: true |
4596 | - }; |
4597 | - </script> |
4598 | - <script type="text/javascript" src="_static/jquery.js"></script> |
4599 | - <script type="text/javascript" src="_static/underscore.js"></script> |
4600 | - <script type="text/javascript" src="_static/doctools.js"></script> |
4601 | - <link rel="top" title="Postorius 1.0a2 documentation" href="index.html" /> |
4602 | - <link rel="next" title="Installation" href="setup.html" /> |
4603 | - <link rel="prev" title="Postorius - The New Mailman Web UI" href="index.html" /> |
4604 | - </head> |
4605 | - <body> |
4606 | - <div class="related"> |
4607 | - <h3>Navigation</h3> |
4608 | - <ul> |
4609 | - <li class="right" style="margin-right: 10px"> |
4610 | - <a href="genindex.html" title="General Index" |
4611 | - accesskey="I">index</a></li> |
4612 | - <li class="right" > |
4613 | - <a href="py-modindex.html" title="Python Module Index" |
4614 | - >modules</a> |</li> |
4615 | - <li class="right" > |
4616 | - <a href="setup.html" title="Installation" |
4617 | - accesskey="N">next</a> |</li> |
4618 | - <li class="right" > |
4619 | - <a href="index.html" title="Postorius - The New Mailman Web UI" |
4620 | - accesskey="P">previous</a> |</li> |
4621 | - <li><a href="index.html">Postorius 1.0a2 documentation</a> »</li> |
4622 | - </ul> |
4623 | - </div> |
4624 | - |
4625 | - <div class="document"> |
4626 | - <div class="documentwrapper"> |
4627 | - <div class="bodywrapper"> |
4628 | - <div class="body"> |
4629 | - |
4630 | - <div class="section" id="news-changelog"> |
4631 | -<h1>News / Changelog<a class="headerlink" href="#news-changelog" title="Permalink to this headline">¶</a></h1> |
4632 | -<p>Copyright (C) 2012 by the Free Software Foundation, Inc.</p> |
4633 | -<p>The Postorius Django app provides a web user interface to |
4634 | -access GNU Mailman.</p> |
4635 | -<p>Postorius is free software: you can redistribute it and/or |
4636 | -modify it under the terms of the GNU Lesser General Public License as |
4637 | -published by the Free Software Foundation, version 3 of the License.</p> |
4638 | -<p>Postorius is distributed in the hope that it will be useful, |
4639 | -but WITHOUT ANY WARRANTY; without even the implied warranty of |
4640 | -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser |
4641 | -General Public License for more details.</p> |
4642 | -<p>You should have received a copy of the GNU Lesser General Public License |
4643 | -along with Postorius. If not, see <<a class="reference external" href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</p> |
4644 | -<div class="section" id="alpha-2"> |
4645 | -<h2>1.0 alpha 2<a class="headerlink" href="#alpha-2" title="Permalink to this headline">¶</a></h2> |
4646 | -<p>(2012-XX-XX)</p> |
4647 | -<ul class="simple"> |
4648 | -<li>dev setup fix for Django 1.4 contributed by Rohan Jain</li> |
4649 | -<li>missing csrf tokens in templates contributed by Richard Wackerbarth (LP: 996658)</li> |
4650 | -<li>moderation: fixed typo in success message call</li> |
4651 | -<li>installation documentation for Apache/mod_wsgi</li> |
4652 | -<li>moved project files to separate branch</li> |
4653 | -<li>show error message if connection to Mailman API fails</li> |
4654 | -<li>added list members view</li> |
4655 | -<li>added developer documentation</li> |
4656 | -<li>added test helper utils</li> |
4657 | -<li>all code now conform to PEP8</li> |
4658 | -<li>themes: removed obsolete MAILMAN_THEME settings from templates, contexts, file structure; contributed by Richard Wackerbarth (LP: 1043258)</li> |
4659 | -<li>added access control for list owners and moderators</li> |
4660 | -<li>added a mailmanclient shell to use as a <cite>manage.py</cite> command (<cite>python manage.py mmclient</cite>)</li> |
4661 | -<li>use “url from future” template tag in all templates. Contributed by Richard Wackerbarth.</li> |
4662 | -<li>added “new user” form. Contributed by George Chatzisofroniou.</li> |
4663 | -<li>added user subscription page</li> |
4664 | -<li>added decorator to allow login via http basic auth (to allow non-browser clients to use API views)</li> |
4665 | -<li>added api view for list index</li> |
4666 | -<li>several changes regarding style and navigation structure</li> |
4667 | -</ul> |
4668 | -</div> |
4669 | -<div class="section" id="alpha-1-space-farm"> |
4670 | -<h2>1.0 alpha 1 – “Space Farm”<a class="headerlink" href="#alpha-1-space-farm" title="Permalink to this headline">¶</a></h2> |
4671 | -<p>(2012-03-23)</p> |
4672 | -<p>Many thanks go out to Anna Senarclens de Grancy and Benedict Stein for |
4673 | -developing the initial versions of this Django app during the Google Summer of |
4674 | -Code 2010 and 2011.</p> |
4675 | -<ul class="simple"> |
4676 | -<li>add/remove/edit mailing lists</li> |
4677 | -<li>edit list settings</li> |
4678 | -<li>show all mailing lists on server</li> |
4679 | -<li>subscribe/unsubscribe/mass subscribe mailing lists</li> |
4680 | -<li>add/remove domains</li> |
4681 | -<li>show basic list info and metrics</li> |
4682 | -<li>login using django user account or using BrowserID</li> |
4683 | -<li>show basic user profile</li> |
4684 | -<li>accept/discard/reject/defer messages</li> |
4685 | -<li>Implementation of Django Messages contributed by Benedict Stein (LP: #920084)</li> |
4686 | -<li>Dependency check in setup.py contributed by Daniel Mizyrycki</li> |
4687 | -<li>Proper processing of acceptable aliases in list settings form contributed by |
4688 | -Daniel Mizyrycki</li> |
4689 | -</ul> |
4690 | -</div> |
4691 | -</div> |
4692 | - |
4693 | - |
4694 | - </div> |
4695 | - </div> |
4696 | - </div> |
4697 | - <div class="sphinxsidebar"> |
4698 | - <div class="sphinxsidebarwrapper"> |
4699 | - <h3><a href="index.html">Table Of Contents</a></h3> |
4700 | - <ul> |
4701 | -<li><a class="reference internal" href="#">News / Changelog</a><ul> |
4702 | -<li><a class="reference internal" href="#alpha-2">1.0 alpha 2</a></li> |
4703 | -<li><a class="reference internal" href="#alpha-1-space-farm">1.0 alpha 1 – “Space Farm”</a></li> |
4704 | -</ul> |
4705 | -</li> |
4706 | -</ul> |
4707 | - |
4708 | - <h4>Previous topic</h4> |
4709 | - <p class="topless"><a href="index.html" |
4710 | - title="previous chapter">Postorius - The New Mailman Web UI</a></p> |
4711 | - <h4>Next topic</h4> |
4712 | - <p class="topless"><a href="setup.html" |
4713 | - title="next chapter">Installation</a></p> |
4714 | - <h3>This Page</h3> |
4715 | - <ul class="this-page-menu"> |
4716 | - <li><a href="_sources/news.txt" |
4717 | - rel="nofollow">Show Source</a></li> |
4718 | - </ul> |
4719 | -<div id="searchbox" style="display: none"> |
4720 | - <h3>Quick search</h3> |
4721 | - <form class="search" action="search.html" method="get"> |
4722 | - <input type="text" name="q" /> |
4723 | - <input type="submit" value="Go" /> |
4724 | - <input type="hidden" name="check_keywords" value="yes" /> |
4725 | - <input type="hidden" name="area" value="default" /> |
4726 | - </form> |
4727 | - <p class="searchtip" style="font-size: 90%"> |
4728 | - Enter search terms or a module, class or function name. |
4729 | - </p> |
4730 | -</div> |
4731 | -<script type="text/javascript">$('#searchbox').show(0);</script> |
4732 | - </div> |
4733 | - </div> |
4734 | - <div class="clearer"></div> |
4735 | - </div> |
4736 | - <div class="related"> |
4737 | - <h3>Navigation</h3> |
4738 | - <ul> |
4739 | - <li class="right" style="margin-right: 10px"> |
4740 | - <a href="genindex.html" title="General Index" |
4741 | - >index</a></li> |
4742 | - <li class="right" > |
4743 | - <a href="py-modindex.html" title="Python Module Index" |
4744 | - >modules</a> |</li> |
4745 | - <li class="right" > |
4746 | - <a href="setup.html" title="Installation" |
4747 | - >next</a> |</li> |
4748 | - <li class="right" > |
4749 | - <a href="index.html" title="Postorius - The New Mailman Web UI" |
4750 | - >previous</a> |</li> |
4751 | - <li><a href="index.html">Postorius 1.0a2 documentation</a> »</li> |
4752 | - </ul> |
4753 | - </div> |
4754 | - <div class="footer"> |
4755 | - © Copyright 2012, The Free Software Foundation. |
4756 | - Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.2. |
4757 | - </div> |
4758 | - </body> |
4759 | -</html> |
4760 | \ No newline at end of file |
4761 | |
4762 | === removed file 'src/postorius/doc/_build/html/objects.inv' |
4763 | --- src/postorius/doc/_build/html/objects.inv 2012-10-05 15:45:38 +0000 |
4764 | +++ src/postorius/doc/_build/html/objects.inv 1970-01-01 00:00:00 +0000 |
4765 | @@ -1,10 +0,0 @@ |
4766 | -# Sphinx inventory version 2 |
4767 | -# Project: Postorius |
4768 | -# Version: 1.0a2 |
4769 | -# The remainder of this file is compressed using zlib. |
4770 | -xÚ�ŽM |
4771 | -Â0F÷9Å€nS̶7p! |
4772 | @¢Ò@þh&¢·×v"XÚ…›Y|óÞ|’qÑà |
4773 | -™Þëz� |
4774 | -òK†¶è |
4775 | -~§dªG8N‘°7¤oÚ |
4776 | F |
4777 | êñ>,AÎvaà¬- |
4778 | -ÂB¥›çç…>pçjqÑ2ϙ܃9J£«Í˜çµ’óKÙà}Ê#Nlªß¿›Ôºirßél}Ñ |
4779 | \ No newline at end of file |
4780 | |
4781 | === removed file 'src/postorius/doc/_build/html/py-modindex.html' |
4782 | --- src/postorius/doc/_build/html/py-modindex.html 2012-10-05 15:45:38 +0000 |
4783 | +++ src/postorius/doc/_build/html/py-modindex.html 1970-01-01 00:00:00 +0000 |
4784 | @@ -1,131 +0,0 @@ |
4785 | - |
4786 | - |
4787 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
4788 | - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
4789 | - |
4790 | - |
4791 | -<html xmlns="http://www.w3.org/1999/xhtml"> |
4792 | - <head> |
4793 | - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
4794 | - |
4795 | - <title>Python Module Index — Postorius 1.0a2 documentation</title> |
4796 | - |
4797 | - <link rel="stylesheet" href="_static/default.css" type="text/css" /> |
4798 | - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> |
4799 | - |
4800 | - <script type="text/javascript"> |
4801 | - var DOCUMENTATION_OPTIONS = { |
4802 | - URL_ROOT: '', |
4803 | - VERSION: '1.0a2', |
4804 | - COLLAPSE_INDEX: false, |
4805 | - FILE_SUFFIX: '.html', |
4806 | - HAS_SOURCE: true |
4807 | - }; |
4808 | - </script> |
4809 | - <script type="text/javascript" src="_static/jquery.js"></script> |
4810 | - <script type="text/javascript" src="_static/underscore.js"></script> |
4811 | - <script type="text/javascript" src="_static/doctools.js"></script> |
4812 | - <link rel="top" title="Postorius 1.0a2 documentation" href="index.html" /> |
4813 | - |
4814 | - |
4815 | - |
4816 | - </head> |
4817 | - <body> |
4818 | - <div class="related"> |
4819 | - <h3>Navigation</h3> |
4820 | - <ul> |
4821 | - <li class="right" style="margin-right: 10px"> |
4822 | - <a href="genindex.html" title="General Index" |
4823 | - accesskey="I">index</a></li> |
4824 | - <li class="right" > |
4825 | - <a href="#" title="Python Module Index" |
4826 | - >modules</a> |</li> |
4827 | - <li><a href="index.html">Postorius 1.0a2 documentation</a> »</li> |
4828 | - </ul> |
4829 | - </div> |
4830 | - |
4831 | - <div class="document"> |
4832 | - <div class="documentwrapper"> |
4833 | - <div class="bodywrapper"> |
4834 | - <div class="body"> |
4835 | - |
4836 | - |
4837 | - <h1>Python Module Index</h1> |
4838 | - |
4839 | - <div class="modindex-jumpbox"> |
4840 | - <a href="#cap-p"><strong>p</strong></a> | |
4841 | - <a href="#cap-t"><strong>t</strong></a> |
4842 | - </div> |
4843 | - |
4844 | - <table class="indextable modindextable" cellspacing="0" cellpadding="2"> |
4845 | - <tr class="pcap"><td></td><td> </td><td></td></tr> |
4846 | - <tr class="cap" id="cap-p"><td></td><td> |
4847 | - <strong>p</strong></td><td></td></tr> |
4848 | - <tr> |
4849 | - <td><img src="_static/minus.png" class="toggler" |
4850 | - id="toggle-1" style="display: none" alt="-" /></td> |
4851 | - <td> |
4852 | - <tt class="xref">postorius</tt></td><td> |
4853 | - <em></em></td></tr> |
4854 | - <tr class="cg-1"> |
4855 | - <td></td> |
4856 | - <td> |
4857 | - <a href="development.html#module-postorius.tests.test_utils"><tt class="xref">postorius.tests.test_utils</tt></a></td><td> |
4858 | - <em></em></td></tr> |
4859 | - <tr class="pcap"><td></td><td> </td><td></td></tr> |
4860 | - <tr class="cap" id="cap-t"><td></td><td> |
4861 | - <strong>t</strong></td><td></td></tr> |
4862 | - <tr> |
4863 | - <td><img src="_static/minus.png" class="toggler" |
4864 | - id="toggle-2" style="display: none" alt="-" /></td> |
4865 | - <td> |
4866 | - <tt class="xref">tests</tt></td><td> |
4867 | - <em></em></td></tr> |
4868 | - <tr class="cg-2"> |
4869 | - <td></td> |
4870 | - <td> |
4871 | - <a href="using.html#module-tests.tests"><tt class="xref">tests.tests</tt></a></td><td> |
4872 | - <em></em></td></tr> |
4873 | - </table> |
4874 | - |
4875 | - |
4876 | - </div> |
4877 | - </div> |
4878 | - </div> |
4879 | - <div class="sphinxsidebar"> |
4880 | - <div class="sphinxsidebarwrapper"> |
4881 | -<div id="searchbox" style="display: none"> |
4882 | - <h3>Quick search</h3> |
4883 | - <form class="search" action="search.html" method="get"> |
4884 | - <input type="text" name="q" /> |
4885 | - <input type="submit" value="Go" /> |
4886 | - <input type="hidden" name="check_keywords" value="yes" /> |
4887 | - <input type="hidden" name="area" value="default" /> |
4888 | - </form> |
4889 | - <p class="searchtip" style="font-size: 90%"> |
4890 | - Enter search terms or a module, class or function name. |
4891 | - </p> |
4892 | -</div> |
4893 | -<script type="text/javascript">$('#searchbox').show(0);</script> |
4894 | - </div> |
4895 | - </div> |
4896 | - <div class="clearer"></div> |
4897 | - </div> |
4898 | - <div class="related"> |
4899 | - <h3>Navigation</h3> |
4900 | - <ul> |
4901 | - <li class="right" style="margin-right: 10px"> |
4902 | - <a href="genindex.html" title="General Index" |
4903 | - >index</a></li> |
4904 | - <li class="right" > |
4905 | - <a href="#" title="Python Module Index" |
4906 | - >modules</a> |</li> |
4907 | - <li><a href="index.html">Postorius 1.0a2 documentation</a> »</li> |
4908 | - </ul> |
4909 | - </div> |
4910 | - <div class="footer"> |
4911 | - © Copyright 2012, The Free Software Foundation. |
4912 | - Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.2. |
4913 | - </div> |
4914 | - </body> |
4915 | -</html> |
4916 | \ No newline at end of file |
4917 | |
4918 | === removed file 'src/postorius/doc/_build/html/search.html' |
4919 | --- src/postorius/doc/_build/html/search.html 2012-08-21 19:58:00 +0000 |
4920 | +++ src/postorius/doc/_build/html/search.html 1970-01-01 00:00:00 +0000 |
4921 | @@ -1,105 +0,0 @@ |
4922 | - |
4923 | - |
4924 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
4925 | - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
4926 | - |
4927 | - |
4928 | -<html xmlns="http://www.w3.org/1999/xhtml"> |
4929 | - <head> |
4930 | - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
4931 | - |
4932 | - <title>Search — Postorius 1.0a2 documentation</title> |
4933 | - |
4934 | - <link rel="stylesheet" href="_static/default.css" type="text/css" /> |
4935 | - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> |
4936 | - |
4937 | - <script type="text/javascript"> |
4938 | - var DOCUMENTATION_OPTIONS = { |
4939 | - URL_ROOT: '', |
4940 | - VERSION: '1.0a2', |
4941 | - COLLAPSE_INDEX: false, |
4942 | - FILE_SUFFIX: '.html', |
4943 | - HAS_SOURCE: true |
4944 | - }; |
4945 | - </script> |
4946 | - <script type="text/javascript" src="_static/jquery.js"></script> |
4947 | - <script type="text/javascript" src="_static/underscore.js"></script> |
4948 | - <script type="text/javascript" src="_static/doctools.js"></script> |
4949 | - <script type="text/javascript" src="_static/searchtools.js"></script> |
4950 | - <link rel="top" title="Postorius 1.0a2 documentation" href="index.html" /> |
4951 | - <script type="text/javascript"> |
4952 | - jQuery(function() { Search.loadIndex("searchindex.js"); }); |
4953 | - </script> |
4954 | - |
4955 | - |
4956 | - </head> |
4957 | - <body> |
4958 | - <div class="related"> |
4959 | - <h3>Navigation</h3> |
4960 | - <ul> |
4961 | - <li class="right" style="margin-right: 10px"> |
4962 | - <a href="genindex.html" title="General Index" |
4963 | - accesskey="I">index</a></li> |
4964 | - <li class="right" > |
4965 | - <a href="py-modindex.html" title="Python Module Index" |
4966 | - >modules</a> |</li> |
4967 | - <li><a href="index.html">Postorius 1.0a2 documentation</a> »</li> |
4968 | - </ul> |
4969 | - </div> |
4970 | - |
4971 | - <div class="document"> |
4972 | - <div class="documentwrapper"> |
4973 | - <div class="bodywrapper"> |
4974 | - <div class="body"> |
4975 | - |
4976 | - <h1 id="search-documentation">Search</h1> |
4977 | - <div id="fallback" class="admonition warning"> |
4978 | - <script type="text/javascript">$('#fallback').hide();</script> |
4979 | - <p> |
4980 | - Please activate JavaScript to enable the search |
4981 | - functionality. |
4982 | - </p> |
4983 | - </div> |
4984 | - <p> |
4985 | - From here you can search these documents. Enter your search |
4986 | - words into the box below and click "search". Note that the search |
4987 | - function will automatically search for all of the words. Pages |
4988 | - containing fewer words won't appear in the result list. |
4989 | - </p> |
4990 | - <form action="" method="get"> |
4991 | - <input type="text" name="q" value="" /> |
4992 | - <input type="submit" value="search" /> |
4993 | - <span id="search-progress" style="padding-left: 10px"></span> |
4994 | - </form> |
4995 | - |
4996 | - <div id="search-results"> |
4997 | - |
4998 | - </div> |
4999 | - |
5000 | - </div> |