From patchwork Thu Sep 19 17:55:38 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Antonio Terceiro X-Patchwork-Id: 20466 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-ve0-f197.google.com (mail-ve0-f197.google.com [209.85.128.197]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id 472AD23906 for ; Thu, 19 Sep 2013 17:55:42 +0000 (UTC) Received: by mail-ve0-f197.google.com with SMTP id jy13sf9191254veb.8 for ; Thu, 19 Sep 2013 10:55:42 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:delivered-to:mime-version:to:from:subject :message-id:date:reply-to:sender:errors-to:precedence :x-original-sender:x-original-authentication-results:mailing-list :list-id:list-post:list-help:list-archive:list-unsubscribe :content-type; bh=p1PmIPvwPWdHyxc5jiMZGr75zSB2fG7LTW1wScyMep4=; b=Of/RuZSPbmKHlgX05PaaY27eLOcmg+Xi5H3xNbrXKuVXcRCojMqv0bqK5ePviyWZJC LPFCJLrBCM/eSjqDgmgoQ2LsshVYXdgaGWuRROXEzB/7gYqt8eXhU+K32CG6DYYGIiYe Toi7XtlLCQXgs9X63QNYsPFc9XYop/DFT0EJ4uCBsBhbx12F2/u+zY0WyvyyPuioewrX shmdXOsQAtFH4hpusRyMqkiVWr6V67wdOqri1N/Z4XZfv1M5+Etal6Wiv2vcjVwvciN/ /9Wd8sBKor1FaSOedF2GAZBVpez6euQSwYD6OAyM2+MV3w8D/OTnirdPSfUftoZB1tMJ nNHw== X-Gm-Message-State: ALoCoQlNi8fbBiF677ueU/ykszXAOvm1i+R2BxVNKyFbqUtUFRRSP4pCNQoHjW9ZrfUlfm1xFHe8 X-Received: by 10.236.17.161 with SMTP id j21mr811307yhj.55.1379613342020; Thu, 19 Sep 2013 10:55:42 -0700 (PDT) X-BeenThere: patchwork-forward@linaro.org Received: by 10.49.121.231 with SMTP id ln7ls4107126qeb.57.gmail; Thu, 19 Sep 2013 10:55:41 -0700 (PDT) X-Received: by 10.58.75.131 with SMTP id c3mr2296052vew.12.1379613341500; Thu, 19 Sep 2013 10:55:41 -0700 (PDT) Received: from mail-vc0-f177.google.com (mail-vc0-f177.google.com [209.85.220.177]) by mx.google.com with ESMTPS id ry8si2077660vcb.46.1969.12.31.16.00.00 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 19 Sep 2013 10:55:41 -0700 (PDT) Received-SPF: neutral (google.com: 209.85.220.177 is neither permitted nor denied by best guess record for domain of patch+caf_=patchwork-forward=linaro.org@linaro.org) client-ip=209.85.220.177; Received: by mail-vc0-f177.google.com with SMTP id hv10so4409114vcb.22 for ; Thu, 19 Sep 2013 10:55:41 -0700 (PDT) X-Received: by 10.52.164.16 with SMTP id ym16mr939116vdb.39.1379613341258; Thu, 19 Sep 2013 10:55:41 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patches@linaro.org Received: by 10.220.174.196 with SMTP id u4csp291373vcz; Thu, 19 Sep 2013 10:55:40 -0700 (PDT) X-Received: by 10.229.244.8 with SMTP id lo8mr6226606qcb.20.1379613340145; Thu, 19 Sep 2013 10:55:40 -0700 (PDT) Received: from indium.canonical.com (indium.canonical.com. [91.189.90.7]) by mx.google.com with ESMTPS id o3si4151325qat.43.1969.12.31.16.00.00 (version=TLSv1 cipher=RC4-SHA bits=128/128); Thu, 19 Sep 2013 10:55:40 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of bounces@canonical.com designates 91.189.90.7 as permitted sender) client-ip=91.189.90.7; Received: from ackee.canonical.com ([91.189.89.26]) by indium.canonical.com with esmtp (Exim 4.71 #1 (Debian)) id 1VMiS2-0002MU-CV for ; Thu, 19 Sep 2013 17:55:38 +0000 Received: from ackee.canonical.com (localhost [127.0.0.1]) by ackee.canonical.com (Postfix) with ESMTP id 352EDE0504 for ; Thu, 19 Sep 2013 17:55:38 +0000 (UTC) MIME-Version: 1.0 X-Launchpad-Project: lava-server X-Launchpad-Branch: ~linaro-validation/lava-server/trunk X-Launchpad-Message-Rationale: Subscriber X-Launchpad-Branch-Revision-Number: 431 X-Launchpad-Notification-Type: branch-revision To: Linaro Patch Tracker From: noreply@launchpad.net Subject: [Branch ~linaro-validation/lava-server/trunk] Rev 431: This package is obsolete Message-Id: <20130919175538.25181.68970.launchpad@ackee.canonical.com> Date: Thu, 19 Sep 2013 17:55:38 -0000 Reply-To: noreply@launchpad.net Sender: bounces@canonical.com Errors-To: bounces@canonical.com Precedence: list X-Generated-By: Launchpad (canonical.com); Revision="16765"; Instance="launchpad-lazr.conf" X-Launchpad-Hash: f3d519d68d11b478c262e45ffc6533989823574c X-Removed-Original-Auth: Dkim didn't pass. X-Original-Sender: noreply@launchpad.net X-Original-Authentication-Results: mx.google.com; spf=neutral (google.com: 209.85.220.177 is neither permitted nor denied by best guess record for domain of patch+caf_=patchwork-forward=linaro.org@linaro.org) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org List-ID: X-Google-Group-Id: 836684582541 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , ------------------------------------------------------------ revno: 431 committer: Antonio Terceiro branch nick: trunk timestamp: Thu 2013-09-19 14:47:42 -0300 message: This package is obsolete removed: COPYING.AGPL-3 HACKING INSTALL MANIFEST.in NEWS README create-devel-db.sh demo/ demo/MANIFEST.in demo/demo_app/ demo/demo_app/__init__.py demo/demo_app/admin.py demo/demo_app/extension.py demo/demo_app/models.py demo/demo_app/static/ demo/demo_app/static/example.txt demo/demo_app/templates/ demo/demo_app/templates/demo_app/ demo/demo_app/templates/demo_app/hello.html demo/demo_app/tests.py demo/demo_app/urls.py demo/demo_app/views.py demo/setup.py doc/ doc/changes.rst doc/conf.py doc/extending.rst doc/index.rst doc/installation.rst doc/process.rst doc/reference.rst google_analytics/ google_analytics/LICENSE google_analytics/USAGE google_analytics/__init__.py google_analytics/admin.py google_analytics/migrations/ google_analytics/migrations/0001_initial.py google_analytics/migrations/__init__.py google_analytics/models.py google_analytics/templates/ google_analytics/templates/google_analytics/ google_analytics/templates/google_analytics/analytics_template.html google_analytics/templatetags/ google_analytics/templatetags/__init__.py google_analytics/templatetags/analytics.py lava/ lava/__init__.py lava/utils/ lava/utils/__init__.py lava/utils/data_tables/ lava/utils/data_tables/__init__.py lava/utils/data_tables/backends.py lava/utils/data_tables/interface.py lava/utils/data_tables/query.py lava/utils/data_tables/tables.py lava/utils/data_tables/views.py lava_markitup/ lava_markitup/__init__.py lava_markitup/models.py lava_markitup/static/ lava_markitup/static/lava_markitup/ lava_markitup/static/lava_markitup/jquery.markitup.js lava_markitup/static/lava_markitup/preview.css lava_markitup/static/lava_markitup/sets/ lava_markitup/static/lava_markitup/sets/markdown/ lava_markitup/static/lava_markitup/sets/markdown/images/ lava_markitup/static/lava_markitup/sets/markdown/images/bold.png lava_markitup/static/lava_markitup/sets/markdown/images/code.png lava_markitup/static/lava_markitup/sets/markdown/images/h1.png lava_markitup/static/lava_markitup/sets/markdown/images/h2.png lava_markitup/static/lava_markitup/sets/markdown/images/h3.png lava_markitup/static/lava_markitup/sets/markdown/images/h4.png lava_markitup/static/lava_markitup/sets/markdown/images/h5.png lava_markitup/static/lava_markitup/sets/markdown/images/h6.png lava_markitup/static/lava_markitup/sets/markdown/images/italic.png lava_markitup/static/lava_markitup/sets/markdown/images/link.png lava_markitup/static/lava_markitup/sets/markdown/images/list-bullet.png lava_markitup/static/lava_markitup/sets/markdown/images/list-numeric.png lava_markitup/static/lava_markitup/sets/markdown/images/picture.png lava_markitup/static/lava_markitup/sets/markdown/images/preview.png lava_markitup/static/lava_markitup/sets/markdown/images/quotes.png lava_markitup/static/lava_markitup/sets/markdown/set.js lava_markitup/static/lava_markitup/sets/markdown/style.css lava_markitup/static/lava_markitup/skins/ lava_markitup/static/lava_markitup/skins/simple/ lava_markitup/static/lava_markitup/skins/simple/images/ lava_markitup/static/lava_markitup/skins/simple/images/handle.png lava_markitup/static/lava_markitup/skins/simple/images/menu.png lava_markitup/static/lava_markitup/skins/simple/images/submenu.png lava_markitup/static/lava_markitup/skins/simple/style.css lava_markitup/static/lava_markitup/templates/ lava_markitup/static/lava_markitup/templates/preview.css lava_markitup/static/lava_markitup/templates/preview.html lava_markitup/templates/ lava_markitup/templates/lava_markitup/ lava_markitup/templates/lava_markitup/preview.html lava_markitup/tests.py lava_markitup/urls.py lava_markitup/views.py lava_projects/ lava_projects/__init__.py lava_projects/extension.py lava_projects/migrations/ lava_projects/migrations/0001_add_model_Project.py lava_projects/migrations/0002_add_model_ProjectFormerIdentifier.py lava_projects/migrations/0003_auto__del_projectformeridentifier__del_project.py lava_projects/migrations/__init__.py lava_projects/models.py lava_server/ lava_server/__init__.py lava_server/bread_crumbs.py lava_server/context_processors.py lava_server/extension.py lava_server/htdocs/ lava_server/htdocs/css/ lava_server/htdocs/css/Aristo/ lava_server/htdocs/css/Aristo/images/ lava_server/htdocs/css/Aristo/images/bg_fallback.png lava_server/htdocs/css/Aristo/images/icon_sprite.png lava_server/htdocs/css/Aristo/images/progress_bar.gif lava_server/htdocs/css/Aristo/images/slider_handles.png lava_server/htdocs/css/Aristo/images/ui-icons_222222_256x240.png lava_server/htdocs/css/Aristo/images/ui-icons_454545_256x240.png lava_server/htdocs/css/Aristo/jquery-ui-1.8.7.custom.css lava_server/htdocs/css/default.css lava_server/htdocs/css/demo_table_jui.css lava_server/htdocs/css/login.css lava_server/htdocs/images/ lava_server/htdocs/images/ajax-loader.gif lava_server/htdocs/images/avatar-default-symbolic.svg lava_server/htdocs/images/dark-noise.png lava_server/htdocs/images/details_close.png lava_server/htdocs/images/details_open.png lava_server/htdocs/images/lin-bullet.gif lava_server/htdocs/images/linaro-sprinkles.png lava_server/htdocs/images/linaro-sprinkles.svg lava_server/htdocs/images/logo.png lava_server/htdocs/js/ lava_server/htdocs/js/jquery-1.5.1.min.js lava_server/htdocs/js/jquery-ui-1.8.12.custom.min.js lava_server/htdocs/js/jquery.cookie.js lava_server/htdocs/js/jquery.dataTables.min.js lava_server/htdocs/js/jquery.lava.sidebar.js lava_server/htdocs/js/jquery.pseudofocus.js lava_server/htdocs/js/jquery.slugify.js lava_server/htdocs/js/jquery.watermark.min.js lava_server/manage.py lava_server/settings/ lava_server/settings/__init__.py lava_server/settings/common.py lava_server/settings/debian.py lava_server/settings/development.py lava_server/settings/production.py lava_server/templates/ lava_server/templates/403.html lava_server/templates/404.html lava_server/templates/500.html lava_server/templates/admin/ lava_server/templates/admin/app_index.html lava_server/templates/ajax_table.html lava_server/templates/index.html lava_server/templates/layouts/ lava_server/templates/layouts/base.html lava_server/templates/layouts/content.html lava_server/templates/layouts/content_with_sidebar.html lava_server/templates/layouts/dialog.html lava_server/templates/layouts/form.html lava_server/templates/layouts/fullscreen.html lava_server/templates/linaro_django_xmlrpc/ lava_server/templates/linaro_django_xmlrpc/api.html lava_server/templates/linaro_django_xmlrpc/authtoken_confirm_delete.html lava_server/templates/linaro_django_xmlrpc/create_token.html lava_server/templates/linaro_django_xmlrpc/edit_token.html lava_server/templates/linaro_django_xmlrpc/tokens.html lava_server/templates/me.html lava_server/templates/registration/ lava_server/templates/registration/base.html lava_server/templates/registration/login.html lava_server/templates/registration/password_change_done.html lava_server/templates/registration/password_change_form.html lava_server/templates/registration/password_reset_complete.html lava_server/templates/registration/password_reset_confirm.html lava_server/templates/registration/password_reset_done.html lava_server/templates/registration/password_reset_email.html lava_server/templates/registration/password_reset_form.html lava_server/templates/version_details.html lava_server/tests.py lava_server/urls.py lava_server/views.py lava_server/xmlrpc.py run-postgresql-instance.sh setup.cfg setup.py added: README.obsolete.txt --- lp:lava-server https://code.launchpad.net/~linaro-validation/lava-server/trunk You are subscribed to branch lp:lava-server. To unsubscribe from this branch go to https://code.launchpad.net/~linaro-validation/lava-server/trunk/+edit-subscription === removed file 'COPYING.AGPL-3' --- COPYING.AGPL-3 2010-09-22 08:51:55 +0000 +++ COPYING.AGPL-3 1970-01-01 00:00:00 +0000 @@ -1,661 +0,0 @@ - GNU AFFERO GENERAL PUBLIC LICENSE - Version 3, 19 November 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU Affero General Public License is a free, copyleft license for -software and other kinds of works, specifically designed to ensure -cooperation with the community in the case of network server software. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -our General Public Licenses are intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - Developers that use our General Public Licenses protect your rights -with two steps: (1) assert copyright on the software, and (2) offer -you this License which gives you legal permission to copy, distribute -and/or modify the software. - - A secondary benefit of defending all users' freedom is that -improvements made in alternate versions of the program, if they -receive widespread use, become available for other developers to -incorporate. Many developers of free software are heartened and -encouraged by the resulting cooperation. However, in the case of -software used on network servers, this result may fail to come about. -The GNU General Public License permits making a modified version and -letting the public access it on a server without ever releasing its -source code to the public. - - The GNU Affero General Public License is designed specifically to -ensure that, in such cases, the modified source code becomes available -to the community. It requires the operator of a network server to -provide the source code of the modified version running there to the -users of that server. Therefore, public use of a modified version, on -a publicly accessible server, gives the public access to the source -code of the modified version. - - An older license, called the Affero General Public License and -published by Affero, was designed to accomplish similar goals. This is -a different license, not a version of the Affero GPL, but Affero has -released a new version of the Affero GPL which permits relicensing under -this license. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU Affero General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Remote Network Interaction; Use with the GNU General Public License. - - Notwithstanding any other provision of this License, if you modify the -Program, your modified version must prominently offer all users -interacting with it remotely through a computer network (if your version -supports such interaction) an opportunity to receive the Corresponding -Source of your version by providing access to the Corresponding Source -from a network server at no charge, through some standard or customary -means of facilitating copying of software. This Corresponding Source -shall include the Corresponding Source for any work covered by version 3 -of the GNU General Public License that is incorporated pursuant to the -following paragraph. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the work with which it is combined will remain governed by version -3 of the GNU General Public License. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU Affero General Public License from time to time. Such new versions -will be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU Affero General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU Affero General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU Affero General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If your software can interact with users remotely through a computer -network, you should also make sure that it provides a way for users to -get its source. For example, if your program is a web application, its -interface could display a "Source" link that leads users to an archive -of the code. There are many ways you could offer source, and different -solutions will be better for different programs; see section 13 for the -specific requirements. - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU AGPL, see -. === removed file 'HACKING' --- HACKING 2011-05-23 14:47:12 +0000 +++ HACKING 1970-01-01 00:00:00 +0000 @@ -1,1 +0,0 @@ -TBD === removed file 'INSTALL' --- INSTALL 2011-05-23 14:47:12 +0000 +++ INSTALL 1970-01-01 00:00:00 +0000 @@ -1,4 +0,0 @@ -Installation -============ - -TBD === removed file 'MANIFEST.in' --- MANIFEST.in 2011-11-09 00:27:24 +0000 +++ MANIFEST.in 1970-01-01 00:00:00 +0000 @@ -1,11 +0,0 @@ -include COPYING -include COPYING.AGPL-3 -include HACKING -include INSTALL -include NEWS -include README -recursive-include lava_server/htdocs *.gif *.png *.js *.css *.svg -recursive-include lava_server/templates *.html -recursive-include lava_projects/templates *.html -recursive-include lava_markitup/templates *.html -recursive-include lava_markitup/static *.gif *.png *.js *.css *.html === removed file 'NEWS' --- NEWS 2011-05-23 14:47:12 +0000 +++ NEWS 1970-01-01 00:00:00 +0000 @@ -1,3 +0,0 @@ -Release 0.1 - - * Separated from launch-control === removed file 'README' --- README 2011-05-23 14:47:12 +0000 +++ README 1970-01-01 00:00:00 +0000 @@ -1,15 +0,0 @@ -Deployment instructions -======================= - -TBD - -Installation -============ - -See INSTALL - -Reporting Bugs -============== - -All bugs should be reported to the launchpad project at -https://bugs.launchpad.net/lava-server/+filebug === added file 'README.obsolete.txt' --- README.obsolete.txt 1970-01-01 00:00:00 +0000 +++ README.obsolete.txt 2013-09-19 17:47:42 +0000 @@ -0,0 +1,3 @@ +This package is obsolete. + +See http://git.linaro.org/gitweb?p=lava/lava-server.git instead === removed file 'create-devel-db.sh' --- create-devel-db.sh 2011-10-28 00:29:27 +0000 +++ create-devel-db.sh 1970-01-01 00:00:00 +0000 @@ -1,32 +0,0 @@ -echo "Setting up development database..." - -lava_instance_user=devel -lava_password=devel -lava_database=devel - -echo "Dropping old database and user" -sudo -u postgres dropdb $lava_database -sudo -u postgres dropuser $lava_instance_user - -echo "Creating new user and database" -# Create database user -sudo -u postgres createuser \ - --no-createdb \ - --encrypted \ - --login \ - --no-superuser \ - --no-createrole \ - --no-password \ - $lava_instance_user - -# Set a password for our new user -sudo -u postgres psql \ - --quiet \ - --command="ALTER USER \"$lava_instance_user\" WITH PASSWORD '$lava_password'" - -# Create a database for our new user -sudo -u postgres createdb \ - --encoding=UTF-8 \ - --owner=$lava_instance_user \ - --no-password \ - $lava_database === removed directory 'demo' === removed file 'demo/MANIFEST.in' --- demo/MANIFEST.in 2011-06-30 15:40:40 +0000 +++ demo/MANIFEST.in 1970-01-01 00:00:00 +0000 @@ -1,1 +0,0 @@ -recursive-include demo_app/templates *.html === removed directory 'demo/demo_app' === removed file 'demo/demo_app/__init__.py' --- demo/demo_app/__init__.py 2011-05-24 16:18:15 +0000 +++ demo/demo_app/__init__.py 1970-01-01 00:00:00 +0000 @@ -1,20 +0,0 @@ -# Copyright (C) 2010, 2011 Linaro Limited -# -# Author: Zygmunt Krynicki -# -# This file is part of LAVA Server. -# -# LAVA Server is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License version 3 -# as published by the Free Software Foundation -# -# LAVA Server is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with LAVA Server. If not, see . - - -__version__ = (0, 1, 0, "dev", 0) === removed file 'demo/demo_app/admin.py' --- demo/demo_app/admin.py 2011-05-24 13:31:05 +0000 +++ demo/demo_app/admin.py 1970-01-01 00:00:00 +0000 @@ -1,5 +0,0 @@ -from django.contrib import admin - -from demo_app.models import Message - -admin.site.register(Message) === removed file 'demo/demo_app/extension.py' --- demo/demo_app/extension.py 2011-06-02 04:54:33 +0000 +++ demo/demo_app/extension.py 1970-01-01 00:00:00 +0000 @@ -1,54 +0,0 @@ -# Copyright (C) 2010, 2011 Linaro Limited -# -# Author: Zygmunt Krynicki -# -# This file is part of LAVA Server. -# -# LAVA Server is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License version 3 -# as published by the Free Software Foundation -# -# LAVA Server is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with LAVA Server. If not, see . - -import versiontools -from lava_server.extension import LavaServerExtension - -import demo_app - - -class DemoExtension(LavaServerExtension): - """ - Demo extension that shows how to integrate third party - components into LAVA server. - """ - - @property - def app_name(self): - return "demo_app" - - @property - def name(self): - return "Demo" - - @property - def api_class(self): - from demo_app.models import DemoAPI - return DemoAPI - - @property - def main_view_name(self): - return "demo_app.views.hello" - - @property - def description(self): - return "Demo extension for LAVA server" - - @property - def version(self): - return versiontools.format_version(demo_app.__version__) === removed file 'demo/demo_app/models.py' --- demo/demo_app/models.py 2011-10-11 09:48:46 +0000 +++ demo/demo_app/models.py 1970-01-01 00:00:00 +0000 @@ -1,17 +0,0 @@ -from django.db import models - -from linaro_django_xmlrpc.models import ExposedAPI - - -class Message(models.Model): - - text = models.TextField() - - -class DemoAPI(ExposedAPI): - - def demoMethod(self): - """ - This is a demo method. - """ - return 42 === removed directory 'demo/demo_app/static' === removed file 'demo/demo_app/static/example.txt' --- demo/demo_app/static/example.txt 2011-07-13 11:17:13 +0000 +++ demo/demo_app/static/example.txt 1970-01-01 00:00:00 +0000 @@ -1,1 +0,0 @@ -Example static content === removed directory 'demo/demo_app/templates' === removed directory 'demo/demo_app/templates/demo_app' === removed file 'demo/demo_app/templates/demo_app/hello.html' --- demo/demo_app/templates/demo_app/hello.html 2011-07-12 02:23:50 +0000 +++ demo/demo_app/templates/demo_app/hello.html 1970-01-01 00:00:00 +0000 @@ -1,18 +0,0 @@ -{% extends "layouts/content.html" %} - - -{% block extension_navigation %} -

Additional per-extension navigation can be located here

-{% endblock %} - - -{% block breadcrumbs %} -{{ block.super }} -
  • Hello from demo application
  • -{% endblock %} - - -{% block content %} -

    Hello World from Demo Application Extension for LAVA Server

    -example.txt -{% endblock %} === removed file 'demo/demo_app/tests.py' --- demo/demo_app/tests.py 2011-05-24 13:31:05 +0000 +++ demo/demo_app/tests.py 1970-01-01 00:00:00 +0000 @@ -1,7 +0,0 @@ -from unittest import TestCase - - -class Test(TestCase): - - def test_foo(self): - self.assertTrue(True) === removed file 'demo/demo_app/urls.py' --- demo/demo_app/urls.py 2011-05-24 14:21:09 +0000 +++ demo/demo_app/urls.py 1970-01-01 00:00:00 +0000 @@ -1,6 +0,0 @@ -from django.conf.urls.defaults import url, patterns - - -urlpatterns = patterns( - 'demo_app.views', - url(r'hello$', 'hello')) === removed file 'demo/demo_app/views.py' --- demo/demo_app/views.py 2011-05-24 13:31:05 +0000 +++ demo/demo_app/views.py 1970-01-01 00:00:00 +0000 @@ -1,7 +0,0 @@ -from django.template import RequestContext -from django.shortcuts import render_to_response - - -def hello(request): - return render_to_response("demo_app/hello.html", {}, - RequestContext(request)) === removed file 'demo/setup.py' --- demo/setup.py 2011-10-11 09:48:46 +0000 +++ demo/setup.py 1970-01-01 00:00:00 +0000 @@ -1,43 +0,0 @@ -#!/usr/bin/env python -# -# Copyright (C) 2010 Linaro Limited -# -# Author: Zygmunt Krynicki -# -# This file is part of LAVA Server. -# -# LAVA Server is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# as published by the Free Software Foundation -# -# LAVA Server is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with LAVA Server. If not, see . - -from setuptools import setup, find_packages - - -setup( - name='lava-server-demo', - version=":versiontools:demo_app:", - author="Zygmunt Krynicki", - author_email="zygmunt.krynicki@linaro.org", - packages=find_packages(), - license="AGPL", - description="Demo application for LAVA Server", - entry_points=""" - [lava_server.extensions] - demo = demo_app.extension:DemoExtension - """, - long_description=""" - Demonstration on how to extend LAVA Server with - additional applications. - """, - install_requires=["lava-server >= 0.2"], - setup_requires=["versiontools >= 1.4"], - zip_safe=False, - include_package_data=True) === removed directory 'doc' === removed file 'doc/changes.rst' --- doc/changes.rst 2013-01-15 21:49:27 +0000 +++ doc/changes.rst 1970-01-01 00:00:00 +0000 @@ -1,152 +0,0 @@ -Version History -*************** - -.. _version_0_20: - -Version 0.20 -============ -* remove "project" concept - -.. _version_0_19: - -Version 0.19 -============ -* Improve user experience for 403 errors - -.. _version_0_18_1: - -Version 0.18.1 -============== -* Set the postgresql statement timeout to 30s. - -.. _version_0_18: - -Version 0.18 -============ -* Documentation updates. -* Make token page clearer about what the token actually is. -* Enable devserver if it is available (i.e. if an instance is using - buildout-development.cfg) -* If a table is queryset backed but not ajax enabled, render all the - data. -* Load font css over https. - -.. _version_0_17: - -Version 0.17 -============ -* Fixed some column sorting options -* Added a "me" extension for preferences - -.. _version_0_16: - -Version 0.16 -============ -* Set the DJANGO_SETTINGS_MODULE env variable for sub processes - -.. _version_0_15: - -Version 0.15 -============ - -* Allow settings.conf to define OPENID_LAUNCHPAD_TEAMS_MAPPING. -* Added configurable OpenID redirect domain support for login. - -.. _version_0_14: - -Version 0.14 -============ -* Allow the creating of DataTablesTables backed by sequences rather - than querysets. - -.. _version_0_13: - -Version 0.13 -============ -* Work with Django 1.4 -* Only offer to log in with openid if openid is enabled. -* Read SERVER_EMAIL from the settings.conf file. -* Fix a template bug encountered during the password reset process. - -.. _version_0_12: - -Version 0.12 -============ - -* Merge 0.11.1 release branch -* django-tables2 dependency fix -* ajex_table.html dependency fix - -.. _version_0_11_1: - -Version 0.11.1 -============== - -* Drop a copy of lava-utils-interface and add a dependency on the external - module. This makes lava-server co-installable with lava-utils-interface - -.. _version_0_11: - -Version 0.11 -============ -* Add code developed in lava-scheduler for super easy ajax-based pagination of - tables. - -.. _version_0_10_1: - -Version 0.10.1 -============== - -* Enable OPENID_LAUNCHPAD_TEAMS_MAPPING_AUTO -* Avoid evaluating the full queryset when handling request for the - data in a server-side driven table. - -.. _version_0_10: - -Version 0.10 -============ -Add scaffolding for server side pagination of tables -improve error 500 handler page -Merge HeadlesExtension and documentation update -add initial support for data-tables server side code - -.. _version_0_9_1: - -Version 0.9.1 -============= - -* Add :class:`lava_server.extension.HeadlessExtension`. This class is helpful - for writing GUI-less extensions for LAVA. -* Small documentation cleanup -* Initial code reference - -.. _version_0_9: - -Version 0.9 -=========== - -* Added support for data-tables serverside code -* LAVA Server now depends on django-1.3 -* Fixed bugs 915314, 915293 - -.. _version_0_8_2: - -Version 0.8.2 -============= - -* Fix the default mount point to be "" -* Make extensions aware of mount points - -.. _version_0_7_2: - -Version 0.7.2 -============= - -* Fix width of output in scheduler app -* fix wrapping issue with code blocks -* Add some documenation for lava-server -* Make the user menu stay inside the window on FF 3.6 -* Use user nickname when real name is empty -* Better compatibility with older firefox -* Add .svg files to manifes -* Fix sign-in/sign-out menu === removed file 'doc/conf.py' --- doc/conf.py 2011-11-14 18:15:05 +0000 +++ doc/conf.py 1970-01-01 00:00:00 +0000 @@ -1,204 +0,0 @@ -# -*- coding: utf-8 -*- -# -# LAVA Dashboard documentation build configuration file, created by -# sphinx-quickstart on Mon Dec 27 16:39:47 2010. -# -# This file is execfile()d with the current directory set to its containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys -import os - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.append(os.path.abspath('..')) - -# -- General configuration ----------------------------------------------------- - -# Add any Sphinx extension module names here, as strings. They can be extensions -# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.intersphinx', 'sphinx.ext.todo', 'sphinx.ext.coverage'] - -# Configuration for sphinx.ext.todo -todo_include_todos = True - -# Add any paths that contain templates here, relative to this directory. -templates_path = [] - -# The suffix of source filenames. -source_suffix = '.rst' - -# The encoding of source files. -#source_encoding = 'utf-8' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -project = u'LAVA Server' -copyright = u'2010-2011, Linaro Limited' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -import versiontools -import lava_server -version = "%d.%d" % lava_server.__version__[0:2] -# The full version, including alpha/beta/rc tags. -release = versiontools.format_version(lava_server.__version__) - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -#language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' - -# List of documents that shouldn't be included in the build. -#unused_docs = [] - -# List of directories, relative to source directory, that shouldn't be searched -# for source files. -exclude_trees = [] - -# The reST default role (used for this markup: `text`) to use for all documents. -#default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - - -# -- Options for HTML output --------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. Major themes that come with -# Sphinx are currently 'default' and 'sphinxdoc'. -html_theme = 'default' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -#html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -#html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -#html_logo = None - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = [] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_use_modindex = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = '' - -# Output file base name for HTML help builder. -htmlhelp_basename = 'LAVADocumentation' - - -# -- Options for LaTeX output -------------------------------------------------- - -# The paper size ('letter' or 'a4'). -#latex_paper_size = 'letter' - -# The font size ('10pt', '11pt' or '12pt'). -#latex_font_size = '10pt' - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, author, documentclass [howto/manual]). -latex_documents = [ - ('index', 'LAVAServer.tex', u'LAVA Server Documentation', - u'Linaro Validation Team', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -#latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# Additional stuff for the LaTeX preamble. -#latex_preamble = '' - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_use_modindex = True - - -# Example configuration for intersphinx: refer to the Python standard library. -intersphinx_mapping = {'http://docs.python.org/': None} === removed file 'doc/extending.rst' --- doc/extending.rst 2012-02-09 16:46:27 +0000 +++ doc/extending.rst 1970-01-01 00:00:00 +0000 @@ -1,50 +0,0 @@ -Adding Extensions to LAVA Server -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -LAVA Server can be used as the base for further extensions. Extensions -currently exist for things like adding scheduler support, a dashboard -interface, and additional views of test data. Extensions can add further data -models, menus, and views, and even APIs to the existing LAVA Server framework. - -Extensions are essentially just a django app. They hook into LAVA Server using -an pkg_resources entry points machinery. For a simple example of adding an -extension, see the 'demo' subdirectory in the lava-server source repository. - -setup.py -******** - -Your setup.py will need to add entry points for lava_server.extensions -for the extension you wish to add - -.. code-block:: python - - entry_points=""" - [lava_server.extensions] - demo = demo_app.extension:DemoExtension - """, - -The *DemoExtension* class will be defined below. - -The extension class -******************* - -The other thing your django extension to LAVA Server will need is a class that -implements the :class:`~lava_server.extension.IExtension` interface. This class -defines the properties and methods that are needed for LAVA Server to include -your extension. - -You may find a small demo extension in the source tree. You can use that as a -base for your own code. - -.. literalinclude:: ../demo/demo_app/extension.py - -Adding new XML-RPC methods -************************** - -As previously mentioned, the LAVA Server XML-RPC API can be extended with new -methods using LAVA Server extensions. In the *demo_app* example we have been -looking at, a new method called *demoMethod()* is added to the API and is -automatically added under a namespace called *demo*. It uses *ExposedAPI* from -*linaro_django_xmlrpc.models* to do this. - -.. literalinclude:: ../demo/demo_app/models.py === removed file 'doc/index.rst' --- doc/index.rst 2012-02-09 02:54:55 +0000 +++ doc/index.rst 1970-01-01 00:00:00 +0000 @@ -1,47 +0,0 @@ -========================= -LAVA Server Documentation -========================= - -Features -======== - -The LAVA Server is the core framework used by LAVA web apps. It provides the -main web interface to LAVA and supports extensions. - -.. seealso:: See what's new in :ref:`version_0.9.1` - -Indices and tables -================== - -.. toctree:: - :maxdepth: 2 - - installation.rst - extending.rst - process.rst - changes.rst - reference.rst - -* :ref:`search` - - -TODO List -========= - -This documentation is not finished (not even close yet). The following list -contains items that need more work. - -.. note:: - The source code for this document can be found in the lp:lava-project - branch. Please contribute patches to make the TODO list shorter. - -.. todolist:: - -.. _questions: - -Questions -^^^^^^^^^ - -If you have any questions, including to the content of this document, feel free -to ask them here: https://answers.launchpad.net/lava-project - === removed file 'doc/installation.rst' --- doc/installation.rst 2013-09-06 15:29:02 +0000 +++ doc/installation.rst 1970-01-01 00:00:00 +0000 @@ -1,6 +0,0 @@ -Installation -^^^^^^^^^^^^ - -We have a tool for installing the various components that make up -LAVA. See http://validation.linaro.org/static/docs/deployment-tool.html/ -or the Documentation link on any LAVA instance to learn more. === removed file 'doc/process.rst' --- doc/process.rst 2011-11-14 18:15:05 +0000 +++ doc/process.rst 1970-01-01 00:00:00 +0000 @@ -1,64 +0,0 @@ -Development process -=================== - -LAVA development process is based on Launchpad. If you are not familiar with -that system you should read the https://help.launchpad.net/ guide first. This -guide also includes the basics of Bazaar, our version control system of choice. - -Most of the work is done by the members of the Linaro Validation Team (you can -learn more about this team, in particular here: -launchpad.net/~linaro-validation). Having said that, the code is free and open -source software, we welcome third party contributions and new team members. - -Our team is spread geographically around the world, with some members in -Europe, America, Asia and Oceania. We are usually talking on our IRC channel -#linaro. - - -Release process -^^^^^^^^^^^^^^^ - -LAVA is being developed on a monthly release schedule. Each release is tagged -around 20th of each month. We publish all our releases on pypi (for actual -consumption, packaging, installation, etc.) and Launchpad (for reference). - -Launchpad release tarballs are following our YYYY.MM (year, month) pattern. -Should we need to release an upgrade to any existing release (such as a -critical bug fix) we append a sequential number preceded by a dash -(YYYY.MM-NN). - -Our PyPi releases use sensible version numbers instead. In general we use -MAJOR.MINOR.MICRO pattern (where MICRO is omitted when zero). Some components -are post 1.0, that is they have a major version greater than zero. For such -components we take extra care to ensure API stability, with sensible transition -periods, deprecation warnings and more. For other components (that have zero as -a major release number) our strategy is to keep them compatible as much as -possible but without ensuring a third party developer code would still work on -each upgrade. - - -Reporting Bugs -^^^^^^^^^^^^^^ - -New bugs can be reported here https://bugs.launchpad.net/lava/+filebug. - -If you are not sure which component is affected simply report it to any of the -LAVA sub-projects and let us handle the rest. As with any bug reports please -describe the problem and the version of LAVA you ware using. - -If you were using our public LAVA instance, the one used by Linaro for daily -activities (http://validation.linaro.org) try to include a link to a page -that manifests the problem as that makes debugging easier. - - -Patches, fixes and code -^^^^^^^^^^^^^^^^^^^^^^^ - -If you'd like to offer a patch (whether it is a bug fix, documentation update, -new feature or even a simple typo) it is best to follow this simple check-list: - -1. Download the trunk of the correct project -2. Add your code, change any existing files as needed -3. Commit in your local branch -4. Push to launchpad (to the public copy of your branch) -5. Propose a merge request === removed file 'doc/reference.rst' --- doc/reference.rst 2012-02-09 02:54:55 +0000 +++ doc/reference.rst 1970-01-01 00:00:00 +0000 @@ -1,14 +0,0 @@ -.. _code_reference: - -Code Rereference -================ - -.. automodule:: lava_server - :members: - -.. automodule:: lava_server.bread_crumbs - :members: - -.. automodule:: lava_server.extension - :members: - === removed directory 'google_analytics' === removed file 'google_analytics/LICENSE' --- google_analytics/LICENSE 2013-07-22 17:01:41 +0000 +++ google_analytics/LICENSE 1970-01-01 00:00:00 +0000 @@ -1,27 +0,0 @@ -Copyright (c) 2008, Clint Ecker -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this -list of conditions and the following disclaimer in the documentation and/or -other materials provided with the distribution. - -Neither the name of the nor the names of its contributors may -be used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file === removed file 'google_analytics/USAGE' --- google_analytics/USAGE 2013-07-22 17:01:41 +0000 +++ google_analytics/USAGE 1970-01-01 00:00:00 +0000 @@ -1,51 +0,0 @@ -I manage a lot of Django projects that present slightly-different forms to -users depending on the site/domain they're visiting. There's also a bunch of -custom submission code that differs from form to form, but that's neither here -nor there. - -I need different Google Analytics codes depending on the sites and after -sticking these tags into every single template, I thought it would be cool to -be able to manage these Google analytics accounts from the Django admin page. -I also added a mode of operation that excludes the admin interface altogether -(you can just use the template tag) - -==Two modes of operation== - -Administering and associating codes with Django sites ---------------------------------------------------------- -1. Add the `google_analytics` application to your `INSTALLED_APPS` - section of your `settings.py`. This mode requires that you be using - the Django sites framework too, so make sure you have that set up as - well. - -2. Add `GOOGLE_ANALYTICS_MODEL = True` to your `settings.py` - -3. Run a `./manage.py syncdb` to add the database tables - -4. Go to your project's admin page (usually `/admin/`) and click into a site - objects - -5. You'll now see a new field under the normal site information called - "Analytics Code". In this box you put your unique analytics code for - your project's domain. It looks like `UA-xxxxxx-x` and save the site. - -6. In your base template (usually a `base.html`) insert this tag at the very - top: `{% load analytics %}` - -7. In the same template, insert the following code right before the closing - body tag: `{% analytics %}` - - - -===Just using the template tag=== - -1. Add the `google_analytics` application to your `INSTALLED_APPS` section of - your `settings.py`. - -2. In your base template, usually a `base.html`, insert this tag at the very - top: `{% load analytics %}` - -3. In the same template, insert the following code right before the closing - body tag: `{% analytics "UA-xxxxxx-x" %}` the `UA-xxxxxx-x` is a - unique Google Analytics code for you domain when you sign up for a new - account. === removed file 'google_analytics/__init__.py' === removed file 'google_analytics/admin.py' --- google_analytics/admin.py 2013-08-06 14:25:08 +0000 +++ google_analytics/admin.py 1970-01-01 00:00:00 +0000 @@ -1,11 +0,0 @@ -from django.conf import settings -from django.contrib import admin - -from google_analytics.models import Analytic - -class AnalyticAdmin(admin.ModelAdmin): - list_display = ('site', 'analytics_code',) - -if getattr(settings, 'GOOGLE_ANALYTICS_MODEL', False): - admin.site.register(Analytic, AnalyticAdmin) - === removed directory 'google_analytics/migrations' === removed file 'google_analytics/migrations/0001_initial.py' --- google_analytics/migrations/0001_initial.py 2013-07-22 17:01:41 +0000 +++ google_analytics/migrations/0001_initial.py 1970-01-01 00:00:00 +0000 @@ -1,40 +0,0 @@ -# -*- coding: utf-8 -*- -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Adding model 'Analytic' - db.create_table('google_analytics_analytic', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('site', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['sites.Site'], unique=True)), - ('analytics_code', self.gf('django.db.models.fields.CharField')(max_length=100, blank=True)), - )) - db.send_create_signal('google_analytics', ['Analytic']) - - - def backwards(self, orm): - # Deleting model 'Analytic' - db.delete_table('google_analytics_analytic') - - - models = { - 'google_analytics.analytic': { - 'Meta': {'object_name': 'Analytic'}, - 'analytics_code': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'site': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['sites.Site']", 'unique': 'True'}) - }, - 'sites.site': { - 'Meta': {'ordering': "('domain',)", 'object_name': 'Site', 'db_table': "'django_site'"}, - 'domain': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - } - } - - complete_apps = ['google_analytics'] \ No newline at end of file === removed file 'google_analytics/migrations/__init__.py' === removed file 'google_analytics/models.py' --- google_analytics/models.py 2013-08-06 13:38:03 +0000 +++ google_analytics/models.py 1970-01-01 00:00:00 +0000 @@ -1,7 +0,0 @@ -from django.contrib import admin -from django.contrib.sites.models import Site -from django.db import models - -class Analytic(models.Model): - site = models.ForeignKey(Site, unique=True) - analytics_code = models.CharField(blank=True, max_length=100) === removed directory 'google_analytics/templates' === removed directory 'google_analytics/templates/google_analytics' === removed file 'google_analytics/templates/google_analytics/analytics_template.html' --- google_analytics/templates/google_analytics/analytics_template.html 2013-07-24 11:50:02 +0000 +++ google_analytics/templates/google_analytics/analytics_template.html 1970-01-01 00:00:00 +0000 @@ -1,17 +0,0 @@ - === removed directory 'google_analytics/templatetags' === removed file 'google_analytics/templatetags/__init__.py' === removed file 'google_analytics/templatetags/analytics.py' --- google_analytics/templatetags/analytics.py 2013-08-12 14:28:57 +0000 +++ google_analytics/templatetags/analytics.py 1970-01-01 00:00:00 +0000 @@ -1,55 +0,0 @@ -from django import template -from django.db import models -from django.contrib.sites.models import Site - -from django.template import Context, loader - - -register = template.Library() -Analytics = models.get_model('google_analytics', 'analytic') - -def do_get_analytics(parser, token): - try: - # split_contents() knows not to split quoted strings. - tag_name, code = token.split_contents() - except ValueError: - code = None - - if not code: - current_site = Site.objects.get_current() - else: - if not (code[0] == code[-1] and code[0] in ('"', "'")): - raise template.TemplateSyntaxError, "%r tag's argument should be in quotes" % tag_name - code = code[1:-1] - current_site = None - return AnalyticsNode(current_site, code) - -class AnalyticsNode(template.Node): - def __init__(self, site=None, code=None): - self.site = site - self.code = code - - def render(self, context): - content = '' - if self.site: - code_set = Analytics.objects.filter(site=self.site) - if code_set: - code = code_set[0].analytics_code - else: - return '' - elif self.code: - code = self.code - else: - return '' - - if code.strip() != '': - t = loader.get_template('google_analytics/analytics_template.html') - c = Context({ - 'analytics_code': code, - 'domain': '.'.join(self.site.domain.split('.')[-2:]) - }) - return t.render(c) - else: - return '' - -register.tag('analytics', do_get_analytics) === removed directory 'lava' === removed file 'lava/__init__.py' --- lava/__init__.py 2012-01-17 01:15:02 +0000 +++ lava/__init__.py 1970-01-01 00:00:00 +0000 @@ -1,3 +0,0 @@ -__import__('pkg_resources').declare_namespace(__name__) -# DO NOT ADD ANYTHING TO THIS FILE! -# IT MUST STAY AS IS (empty apart from the two lines above) === removed directory 'lava/utils' === removed file 'lava/utils/__init__.py' --- lava/utils/__init__.py 2012-01-17 01:16:42 +0000 +++ lava/utils/__init__.py 1970-01-01 00:00:00 +0000 @@ -1,3 +0,0 @@ -__import__('pkg_resources').declare_namespace(__name__) -# DO NOT ADD ANYTHING TO THIS FILE! -# IT MUST STAY AS IS (empty apart from the two lines above) === removed directory 'lava/utils/data_tables' === removed file 'lava/utils/data_tables/__init__.py' === removed file 'lava/utils/data_tables/backends.py' --- lava/utils/data_tables/backends.py 2012-08-18 00:06:49 +0000 +++ lava/utils/data_tables/backends.py 1970-01-01 00:00:00 +0000 @@ -1,275 +0,0 @@ -# Copyright (C) 2012 Linaro Limited -# -# Author: Zygmunt Krynicki -# Author: Michael Hudson-Doyle -# -# This file is part of LAVA Server. -# -# LAVA Server is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# as published by the Free Software Foundation -# -# LAVA Server is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with LAVA Server. If not, see . - -from django.core.exceptions import ImproperlyConfigured -from django.db.models import Q -from django.template import compile_string - -from django_tables2.rows import BoundRow - -from lava.utils.data_tables.interface import IBackend - - -class _BackendBase(IBackend): - """ - Common code for data backends to data tables - """ - - def process(self, query): - return { - 'sEcho': query.sEcho, - 'sColumns': query.sColumns - } - - -class ArrayBackend(_BackendBase): - """ - Array backend to data tables - - Stores all data in a plain python list. All filtering is handled in the - running process. It is suitable for very small data sets only but has the - advantage of being unrelated to any databases. - """ - - def __init__(self, data): - self.data = data - - def process(self, query): - # Get the basic response structure - response = super(ArrayBackend, self).process(query) - # 0) Copy original data - # TODO: add support for lazy copy (only if really needed) - data = list(self.data) - response['iTotalRecords'] = len(data) - # 1) Apply search/filtering - if query.sSearch: - if query.bRegex: - raise NotImplementedError("Searching with regular expresions is not implemented") - else: - data = [row for row in data if any((query.sSearch in unicode(cell) for cell in row))] - # Remember how many records matched filtering - response['iTotalDisplayRecords'] = len(data) - # TODO: Support regex search - # TODO: Support per-column search - # 2) Apply sorting - for column_index, order in reversed(query.sorting_columns): - data.sort(key=lambda row: row[column_index], reverse=order == 'desc') - # 3) Apply offset/limit - data = data[query.iDisplayStart:query.iDisplayStart + query.iDisplayLength] - # Remember the subset of the displayed data - response['aaData'] = data - return response - - - -class Column(object): - """ - Column definition for the QuerySetBackend - """ - - def __init__(self, name, sort_expr, callback): - self.name = name - self.sort_expr = sort_expr - self.callback = callback - - -class QuerySetBackend(_BackendBase): - """ - Database backend for data tables. - - Stores and processes/computes the data in the database. Needs a queryset - object and a mapping between colums and query values. - """ - - def __init__(self, queryset=None, queryset_cb=None, columns=None, - searching_columns=None): - self.queryset = queryset - self.queryset_cb = queryset_cb - self.columns = columns - self.searching_columns = searching_columns - if queryset is None and queryset_cb is None: - raise ImproperlyConfigured( - "QuerySetBackend requires either queryset or queryset_cb") - if not columns: - raise ImproperlyConfigured( - "QuerySetBackend requires columns") - - def process(self, query): - # Get the basic response structure - response = super(QuerySetBackend, self).process(query) - # Get a queryset object - if self.queryset is not None: - queryset = self.queryset - else: - queryset = self.queryset_cb(query.request) - # 1) Apply search/filtering - if query.sSearch: - if query.bRegex: - raise NotImplementedError("Searching with regular expresions is not implemented") - else: - if self.searching_columns is None: - raise NotImplementedError("Searching is not implemented") - terms = query.sSearch.split() - andQ = None - for term in terms: - orQ = None - for col in self.searching_columns: - q = Q(**{col+"__icontains" : term}) - orQ = orQ | q if orQ else q - andQ = andQ & orQ if andQ else orQ - response['iTotalRecords'] = queryset.count() - queryset = queryset.filter(andQ) - response['iTotalDisplayRecords'] = queryset.count() - else: - response['iTotalRecords'] = response['iTotalDisplayRecords'] = queryset.count() - # TODO: Support per-column search - # 2) Apply sorting - order_by = [ - "{asc_desc}{column}".format( - asc_desc="-" if order == 'desc' else '', - column=self.columns[column_index].sort_expr) - for column_index, order in query.sorting_columns] - queryset = queryset.order_by(*order_by) - # 3) Apply offset/limit - queryset = queryset[query.iDisplayStart:query.iDisplayStart + query.iDisplayLength] - # Compute the response - # Note, despite the 'aaData'' identifier we're - # returing aoData-typed result (array of objects) - # print queryset.values(*[column.filter_expr for column in self.columns]) - response['aaData'] = [ - dict([(column.name, column.callback(object)) - for column in self.columns]) - for object in queryset] - return response - - -simple_nodelist = compile_string('{{ value }}', None) - - -class TableBackend(_BackendBase): - """ - Database backend for data tables. - - Stores and processes/computes the data in the database. - """ - - def __init__(self, table): - self.table = table - - def _render_cell(self, col, data): - """Render data for a column. - - The intent here is to match as precisely as possible the way a cell - would be rendered into HTML by django-tables2. There are two bits of - magic in play here: - - 1) calling the correct render or render_FOO method with the correct - arguments, and - 2) the default Django rendering (escaping if needed, calling unicode() - on model objects etc). - - The first magic is implemented in BoundRow.__getitem__, so we go - through that, and we get the default Django rendering behaviour by - actually rendering what __getitem__ returns in a trivially simple - template (DataTables just sets the innerHTML of the cell to what we - return with no escaping or what have you, so this results in - consistent behaviour). - """ - context = self.table.context - context.update({"value": BoundRow(self.table, data)[col.name]}) - try: - return simple_nodelist.render(context) - finally: - context.pop() - - def _build_q_for_search(self, sSearch): - """Construct a Q object that searches for sSearch. - - The search is split into words, and we return each row that matches - all words. - - A row matches a word if the word appears in (in the sense of - 'icontains') one of the `searchable_columns`. This clearly only - really works for text columns. Extending this to work on - IntegerFields with choices seems possible (you can translate matching - a word into matching the values corresponding to choices whose names - contain the word) but going significantly beyond that would require - some hairy machinery (you could imagine auto generating a model for - each table that stores the rendered rows and searching in that... but - that's mad, surely). - """ - terms = sSearch.split() - andQ = None - for term in terms: - orQ = None - for col in self.table.searchable_columns: - q = Q(**{col+"__icontains" : term}) - orQ = orQ | q if orQ else q - andQ = andQ & orQ if andQ else orQ - return andQ - - def apply_sorting_columns(self, queryset, sorting_columns): - """Sort queryset accoding to sorting_columns. - - `sorting_columns` uses the format used by DataTables, e.g. [[0, - 'asc']] or [[4, 'desc']] or even [[0, 'asc'], [1, 'desc']]. - """ - if not sorting_columns: - return queryset - order_by = [] - for column_index, order in sorting_columns: - col = self.table.columns[column_index] - order_by.append( - "{asc_desc}{column}".format( - asc_desc="-" if order == 'desc' else '', - column=col.accessor.replace('.', '__'))) - return queryset.order_by(*order_by) - - def process(self, query): - """Return the JSON data described by `query`.""" - # Get the basic response structure - response = super(TableBackend, self).process(query) - queryset = self.table.full_queryset - response['iTotalRecords'] = self.table.full_length - # 1) Apply search/filtering - if query.sSearch: - if query.bRegex: - raise NotImplementedError( - "Searching with regular expresions is not implemented") - else: - if self.table.searchable_columns is None: - raise NotImplementedError("Searching is not implemented") - queryset = queryset.filter( - self._build_q_for_search(query.sSearch)) - response['iTotalDisplayRecords'] = queryset.count() - else: - response['iTotalDisplayRecords'] = response['iTotalRecords'] - # TODO: Support per-column search - # 2) Apply sorting - queryset = self.apply_sorting_columns(queryset, query.sorting_columns) - # 3) Apply offset/limit - queryset = queryset[query.iDisplayStart:query.iDisplayStart + query.iDisplayLength] - # Compute the response - # Note, despite the 'aaData' identifier we're - # returing aoData-typed result (array of objects) - response['aaData'] = [ - dict([(column.name, self._render_cell(column, object)) - for column in self.table.columns]) - for object in queryset] - return response === removed file 'lava/utils/data_tables/interface.py' --- lava/utils/data_tables/interface.py 2012-01-17 01:26:01 +0000 +++ lava/utils/data_tables/interface.py 1970-01-01 00:00:00 +0000 @@ -1,34 +0,0 @@ -# Copyright (C) 2012 Linaro Limited -# -# Author: Zygmunt Krynicki -# -# This file is part of LAVA Server. -# -# LAVA Server is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# as published by the Free Software Foundation -# -# LAVA Server is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with LAVA Server. If not, see . - -from lava.utils.interface import Interface, abstractmethod - - -class IBackend(Interface): - """ - Interface for data-store-and-compute backends to data-tables. - """ - - @abstractmethod - def process(self, query): - """ - Process data query. - - Process the query and return a JSON response object compatible with - data tables. - """ === removed file 'lava/utils/data_tables/query.py' --- lava/utils/data_tables/query.py 2012-08-21 01:41:49 +0000 +++ lava/utils/data_tables/query.py 1970-01-01 00:00:00 +0000 @@ -1,67 +0,0 @@ -# Copyright (C) 2012 Linaro Limited -# -# Author: Zygmunt Krynicki -# -# This file is part of LAVA Server. -# -# LAVA Server is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# as published by the Free Software Foundation -# -# LAVA Server is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with LAVA Server. If not, see . - - -class DataTableQuery(object): - """ - Query to data table server backend - """ - - DEFAULT_DISPLAY_LENGTH = 10 - - def __init__(self, request): - # Store the request object - self.request = request - - # Number of columns - self.iColumns = int(request.GET.get('iColumns', 0)) - self.sColumns = request.GET.get('sColumns', '') - - # Echo data (seems to be cache poison, needs follow up checks) - self.sEcho = request.GET.get('sEcho', 0) - - # Some unspecified value - # XXX: What is this for? - self._ = request.GET.get('_', '') - - # Data window parameters - self.iDisplayStart = int(request.GET.get('iDisplayStart', 0)) - self.iDisplayLength = int(request.GET.get('iDisplayLength', self.DEFAULT_DISPLAY_LENGTH)) - - # Sorting/ordering parameters - self.sorting_columns = [] - self.iSortingCols = int(request.GET.get('iSortingCols', 0)) - for i in range(self.iSortingCols): - column_index = int(request.GET.get('iSortCol_{0}'.format(i), 0)) - sortable = request.GET.get('bSortable_{0}'.format(column_index), 'false') == 'true' - if sortable: - sorting_direction = request.GET.get('sSortDir_{0}'.format(i), 'asc') - self.sorting_columns.append((column_index, sorting_direction)) - - # Global search parameters - self.sSearch = request.GET.get('sSearch', '') - self.bRegex = request.GET.get('bRegex', 'false') == 'true' - - # Per-column search parameters - self.search_columns = [] - for i in range(self.iColumns): - searchable = request.GET.get('bSearchable_{0}'.format(i), 'false') == 'true' - if searchable: - regex = request.GET.get('bRegex_{0}'.format(i), 'false') == 'true' - term = request.GET.get('sSearch_{0}'.format(i), '') - self.search_columns.append((i, regex, term)) === removed file 'lava/utils/data_tables/tables.py' --- lava/utils/data_tables/tables.py 2012-09-20 20:56:49 +0000 +++ lava/utils/data_tables/tables.py 1970-01-01 00:00:00 +0000 @@ -1,266 +0,0 @@ -# Copyright (C) 2012 Linaro Limited -# -# Author: Michael Hudson-Doyle -# -# This file is part of LAVA Server. -# -# LAVA Server is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# as published by the Free Software Foundation -# -# LAVA Server is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with LAVA Server. If not, see . - -"""Tables designed to be used with the DataTables jQuery plug in. - -It is expected that most tables will be backed onto database queries, but it -is possible to create tables backed onto regular Python instances. - -There are just three steps to creating a database-backed table: - -1) Define the table, which means the columns and the queryset that supplies - them with data:: - - class BookTable(DataTablesTable): - author = Column() - title = Column() - def get_queryset(self): - return Book.objects.all() - -2) Define a view for providing the data from the table in json format:: - - def book_table_json(request): - return BookTable.json(request) - - Don't forget urls.py: - - url(r'^book_table_json$', 'book_table_json'), - -3) Include the table in the view for the page you are building:: - - def book_list(request): - return render_to_response( - 'my_bookshop_app/book_list.html', - { - 'book_table': BookTable('booklist', reverse(book_table_json)) - }, - RequestContext(request)) - - and in the template:: - - - - {% load django_tables2 %} - - ... - - {% render_table book_table %} - -That's it! - -If the table depends on some parameter, you can pass paramters which end up -getting passed to the get_queryset method. For example:: - - class AuthorBookTable(DataTablesTable): - title = Column() - def get_queryset(self, author): - return author.books - - def author_book_table_json(request, name): - author = get_object_or_404(Author, name=name) - return AuthorBookTable.json(request, (author,)) - - def author_book_list(request, name): - return render_to_response( - author = get_object_or_404(Author, name=name) - 'my_bookshop_app/author_book_list.html', - { - 'author': author, - 'author_book_table': AuthorBookTable( - 'booklist', reverse(author_book_table_json)) - }, - RequestContext(request)) - -In general, usage is designed to be very similar to using the raw -django-tables2 tables. Because the data in the table rendered into html and -in the json view need to be consistent, many of the options that you can pass -to Table's __init__ are not available for DataTablesTable. In practice this -means that you need a DataTablesTable subclass for each different table. - -If you want to create a DataTablesTable based table, just pass a sequence to -the data= argument of the constructor (and do not pass anything for the source -argument) and supply the table instance to {% render_table %} (no need for a -get_queryset method or a json view in this case). The 'params' argument in -this case, if passed, is stored on the instance where it can be accessed if -needed when rendering a column. -""" - -import simplejson - -from django.template import RequestContext - -from django_tables2.tables import Table -from django_tables2.utils import AttributeDict - -from lava.utils.data_tables.views import DataTableView -from lava.utils.data_tables.backends import TableBackend - - -class DataTablesTable(Table): - """A table designed to be used with the DataTables jQuery plug in. - """ - - def __init__(self, id, source=None, params=(), sortable=None, - empty_text=None, attrs=None, template=None, data=None): - """Initialize the table. - - Options that Table supports that affect the data presented are not - supported in this subclass. Extra paramters are: - - :param id: The id of the table in the resulting HTML. You just need - to provide something that will be unique in the generated page. - :param source: The URL to get json data from. - :param params: A tuple of arguments to pass to the get_queryset() - method. - :param data: The data to base the table on, if any. - """ - if data is not None: - if source is not None or self.source is not None: - raise AssertionError( - "Do not specify both data and source when building a " - "DataTablesTable") - self.params = params - data_backed_table = True - else: - data_backed_table = False - data = [] - if source is not None: - self.source = source - if template is None: - template = 'ajax_table.html' - # Even if this is an ajax backed table, we pass data here and patch - # the queryset in below because of a bootstrapping issue: we want to - # sort the initial queryset, and this is much cleaner if the table has - # has its .columns set up which is only done in Table.__init__... - super(DataTablesTable, self).__init__( - data=data, sortable=sortable, empty_text=empty_text, attrs=attrs, - template=template) - self._full_length = None - if not data_backed_table: - self._compute_queryset(params) - # We are careful about modifying the attrs here -- if it comes from - # class Meta:-type options, we don't want to modify the original - # value! - if self.attrs: - attrs = AttributeDict(self.attrs) - else: - attrs = AttributeDict() - attrs.update({ - 'id': id, - # Forcing class to display here is a bit specific really. - 'class': 'display', - }) - self.attrs = attrs - - def _compute_queryset(self, params): - self.full_queryset = self.get_queryset(*params) - ordering = self.datatable_opts.get('aaSorting', [[0, 'asc']]) - sorted_queryset = TableBackend(self).apply_sorting_columns( - self.full_queryset, ordering) - display_length = self.datatable_opts.get('iDisplayLength', 10) - if getattr(self.data, 'list', None) is not None: - del self.data.list - if self.source: - self.data.queryset = sorted_queryset[:display_length] - else: - self.data.queryset = sorted_queryset - - @property - def full_length(self): - if self._full_length is None: - self._full_length = self.full_queryset.count() - return self._full_length - - @classmethod - def json(cls, request, params=()): - """Format table data according to request. - - This method is designed to be called from the view that is passed as - the 'source' argument to a table. The simplest implementation of such - a view would be something like:: - - def table_data(request): - return MyTable.json(request) - - but in general the view might take paramters and pass them as the - `params` argument to this function. - - :param params: A tuple of arguments to pass to the table's - get_queryset() method. - """ - table = cls(None, params=params) - table.context = RequestContext(request) - return DataTableView.as_view( - backend=TableBackend(table) - )(request) - - def datatable_options(self): - """The DataTable options for this table, serialized as JSON.""" - opts = { - 'bJQueryUI': True, - 'bProcessing': True, - 'bFilter': True, - } - opts.update(self.datatable_opts) - if self.source is not None: - opts.update({ - 'bServerSide': True, - 'sAjaxSource': self.source, - 'bFilter': bool(self.searchable_columns), - 'iDeferLoading': self.full_queryset.count(), - }) - aoColumnDefs = opts['aoColumnDefs'] = [] - for col in self.columns: - aoColumnDefs.append({ - 'bSortable': bool(col.sortable), - 'mDataProp': col.name, - 'aTargets': [col.name], - }) - return simplejson.dumps(opts) - - # Any subclass might want to provide values for datatable_opts. - - # Extra DataTable options. Values you might want to override here include - # 'iDisplayLength' (how big to make the table's pages by default) and - # 'aaSorting' (the initial sort of the table). See - # http://datatables.net/usage/options for more. - datatable_opts = {} - - # Subclasses that use dynamic data *must* override get_queryset() and may - # want to provide values for source, and searchable_columns. - - def get_queryset(self, *args): - """The data the table displays. - - The return data will be sorted, filtered and sliced depending on how - the table is manipulated by the user. - """ - raise NotImplementedError(self.get_queryset) - - # The URL to get data from (i.e. the sAjaxSource of the table). Often - # it's more convenient to pass this to the table __init__ to allow the - # code to be laid out in a more logical order. - source = None - - # Perform searches by looking in these columns. Searching will not be - # enabled unless you set this. Searching is only supported in textual - # columns for now (supporting an IntegerField with Choices seems possible - # too). - searchable_columns = [] === removed file 'lava/utils/data_tables/views.py' --- lava/utils/data_tables/views.py 2012-01-17 01:43:59 +0000 +++ lava/utils/data_tables/views.py 1970-01-01 00:00:00 +0000 @@ -1,42 +0,0 @@ -# Copyright (C) 2012 Linaro Limited -# -# Author: Zygmunt Krynicki -# -# This file is part of LAVA Server. -# -# LAVA Server is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# as published by the Free Software Foundation -# -# LAVA Server is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with LAVA Server. If not, see . - -from django.core.exceptions import ImproperlyConfigured -from django.http import HttpResponse -from django.utils import simplejson -from django.views.generic import View - -from lava.utils.data_tables.query import DataTableQuery - - -class DataTableView(View): - """ - View for processing data table requests - """ - - backend = None - - def get(self, request, *args, **kwargs): - if self.backend is None: - raise ImproperlyConfigured( - "DataTableView requires a definition of a backend") - query = DataTableQuery(request) - result = self.backend.process(query) - return HttpResponse( - simplejson.dumps(result), - mimetype='application/json') === removed directory 'lava_markitup' === removed file 'lava_markitup/__init__.py' === removed file 'lava_markitup/models.py' === removed directory 'lava_markitup/static' === removed directory 'lava_markitup/static/lava_markitup' === removed file 'lava_markitup/static/lava_markitup/jquery.markitup.js' --- lava_markitup/static/lava_markitup/jquery.markitup.js 2011-09-23 08:17:10 +0000 +++ lava_markitup/static/lava_markitup/jquery.markitup.js 1970-01-01 00:00:00 +0000 @@ -1,593 +0,0 @@ -// ---------------------------------------------------------------------------- -// markItUp! Universal MarkUp Engine, JQuery plugin -// v 1.1.x -// Dual licensed under the MIT and GPL licenses. -// ---------------------------------------------------------------------------- -// Copyright (C) 2007-2011 Jay Salvat -// http://markitup.jaysalvat.com/ -// ---------------------------------------------------------------------------- -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// ---------------------------------------------------------------------------- -(function($) { - $.fn.markItUp = function(settings, extraSettings) { - var options, ctrlKey, shiftKey, altKey; - ctrlKey = shiftKey = altKey = false; - - options = { id: '', - nameSpace: '', - root: '', - previewInWindow: '', // 'width=800, height=600, resizable=yes, scrollbars=yes' - previewAutoRefresh: true, - previewPosition: 'after', - previewTemplatePath: '~/templates/preview.html', - previewParser: false, - previewParserPath: '', - previewParserVar: 'data', - resizeHandle: true, - beforeInsert: '', - afterInsert: '', - onEnter: {}, - onShiftEnter: {}, - onCtrlEnter: {}, - onTab: {}, - markupSet: [ { /* set */ } ] - }; - $.extend(options, settings, extraSettings); - - // compute markItUp! path - if (!options.root) { - $('script').each(function(a, tag) { - miuScript = $(tag).get(0).src.match(/(.*)jquery\.markitup(\.pack)?\.js$/); - if (miuScript !== null) { - options.root = miuScript[1]; - } - }); - } - - return this.each(function() { - var $$, textarea, levels, scrollPosition, caretPosition, caretOffset, - clicked, hash, header, footer, previewWindow, template, iFrame, abort; - $$ = $(this); - textarea = this; - levels = []; - abort = false; - scrollPosition = caretPosition = 0; - caretOffset = -1; - - options.previewParserPath = localize(options.previewParserPath); - options.previewTemplatePath = localize(options.previewTemplatePath); - - // apply the computed path to ~/ - function localize(data, inText) { - if (inText) { - return data.replace(/("|')~\//g, "$1"+options.root); - } - return data.replace(/^~\//, options.root); - } - - // init and build editor - function init() { - id = ''; nameSpace = ''; - if (options.id) { - id = 'id="'+options.id+'"'; - } else if ($$.attr("id")) { - id = 'id="markItUp'+($$.attr("id").substr(0, 1).toUpperCase())+($$.attr("id").substr(1))+'"'; - - } - if (options.nameSpace) { - nameSpace = 'class="'+options.nameSpace+'"'; - } - $$.wrap('
    '); - $$.wrap('
    '); - $$.wrap('
    '); - $$.addClass("markItUpEditor"); - - // add the header before the textarea - header = $('
    ').insertBefore($$); - $(dropMenus(options.markupSet)).appendTo(header); - - // add the footer after the textarea - footer = $('
    ').insertAfter($$); - - // add the resize handle after textarea - if (options.resizeHandle === true && $.browser.safari !== true) { - resizeHandle = $('
    ') - .insertAfter($$) - .bind("mousedown", function(e) { - var h = $$.height(), y = e.clientY, mouseMove, mouseUp; - mouseMove = function(e) { - $$.css("height", Math.max(20, e.clientY+h-y)+"px"); - return false; - }; - mouseUp = function(e) { - $("html").unbind("mousemove", mouseMove).unbind("mouseup", mouseUp); - return false; - }; - $("html").bind("mousemove", mouseMove).bind("mouseup", mouseUp); - }); - footer.append(resizeHandle); - } - - // listen key events - $$.keydown(keyPressed).keyup(keyPressed); - - // bind an event to catch external calls - $$.bind("insertion", function(e, settings) { - if (settings.target !== false) { - get(); - } - if (textarea === $.markItUp.focused) { - markup(settings); - } - }); - - // remember the last focus - $$.focus(function() { - $.markItUp.focused = this; - }); - } - - // recursively build header with dropMenus from markupset - function dropMenus(markupSet) { - var ul = $('
      '), i = 0; - $('li:hover > ul', ul).css('display', 'block'); - $.each(markupSet, function() { - var button = this, t = '', title, li, j; - title = (button.key) ? (button.name||'')+' [Ctrl+'+button.key+']' : (button.name||''); - key = (button.key) ? 'accesskey="'+button.key+'"' : ''; - if (button.separator) { - li = $('
    • '+(button.separator||'')+'
    • ').appendTo(ul); - } else { - i++; - for (j = levels.length -1; j >= 0; j--) { - t += levels[j]+"-"; - } - li = $('
    • '+(button.name||'')+'
    • ') - .bind("contextmenu", function() { // prevent contextmenu on mac and allow ctrl+click - return false; - }).click(function() { - return false; - }).bind("focusin", function(){ - $$.focus(); - }).mouseup(function() { - if (button.call) { - eval(button.call)(); - } - setTimeout(function() { markup(button) },1); - return false; - }).hover(function() { - $('> ul', this).show(); - $(document).one('click', function() { // close dropmenu if click outside - $('ul ul', header).hide(); - } - ); - }, function() { - $('> ul', this).hide(); - } - ).appendTo(ul); - if (button.dropMenu) { - levels.push(i); - $(li).addClass('markItUpDropMenu').append(dropMenus(button.dropMenu)); - } - } - }); - levels.pop(); - return ul; - } - - // markItUp! markups - function magicMarkups(string) { - if (string) { - string = string.toString(); - string = string.replace(/\(\!\(([\s\S]*?)\)\!\)/g, - function(x, a) { - var b = a.split('|!|'); - if (altKey === true) { - return (b[1] !== undefined) ? b[1] : b[0]; - } else { - return (b[1] === undefined) ? "" : b[0]; - } - } - ); - // [![prompt]!], [![prompt:!:value]!] - string = string.replace(/\[\!\[([\s\S]*?)\]\!\]/g, - function(x, a) { - var b = a.split(':!:'); - if (abort === true) { - return false; - } - value = prompt(b[0], (b[1]) ? b[1] : ''); - if (value === null) { - abort = true; - } - return value; - } - ); - return string; - } - return ""; - } - - // prepare action - function prepare(action) { - if ($.isFunction(action)) { - action = action(hash); - } - return magicMarkups(action); - } - - // build block to insert - function build(string) { - var openWith = prepare(clicked.openWith); - var placeHolder = prepare(clicked.placeHolder); - var replaceWith = prepare(clicked.replaceWith); - var closeWith = prepare(clicked.closeWith); - var openBlockWith = prepare(clicked.openBlockWith); - var closeBlockWith = prepare(clicked.closeBlockWith); - var multiline = clicked.multiline; - - if (replaceWith !== "") { - block = openWith + replaceWith + closeWith; - } else if (selection === '' && placeHolder !== '') { - block = openWith + placeHolder + closeWith; - } else { - string = string || selection; - - var lines = selection.split(/\r?\n/), blocks = []; - - for (var l=0; l < lines.length; l++) { - line = lines[l]; - var trailingSpaces; - if (trailingSpaces = line.match(/ *$/)) { - blocks.push(openWith + line.replace(/ *$/g, '') + closeWith + trailingSpaces); - } else { - blocks.push(openWith + line + closeWith); - } - } - - block = blocks.join("\n"); - } - - block = openBlockWith + block + closeBlockWith; - - return { block:block, - openWith:openWith, - replaceWith:replaceWith, - placeHolder:placeHolder, - closeWith:closeWith - }; - } - - // define markup to insert - function markup(button) { - var len, j, n, i; - hash = clicked = button; - get(); - $.extend(hash, { line:"", - root:options.root, - textarea:textarea, - selection:(selection||''), - caretPosition:caretPosition, - ctrlKey:ctrlKey, - shiftKey:shiftKey, - altKey:altKey - } - ); - // callbacks before insertion - prepare(options.beforeInsert); - prepare(clicked.beforeInsert); - if ((ctrlKey === true && shiftKey === true) || button.multiline === true) { - prepare(clicked.beforeMultiInsert); - } - $.extend(hash, { line:1 }); - - if ((ctrlKey === true && shiftKey === true)) { - lines = selection.split(/\r?\n/); - for (j = 0, n = lines.length, i = 0; i < n; i++) { - if ($.trim(lines[i]) !== '') { - $.extend(hash, { line:++j, selection:lines[i] } ); - lines[i] = build(lines[i]).block; - } else { - lines[i] = ""; - } - } - string = { block:lines.join('\n')}; - start = caretPosition; - len = string.block.length + (($.browser.opera) ? n-1 : 0); - } else if (ctrlKey === true) { - string = build(selection); - start = caretPosition + string.openWith.length; - len = string.block.length - string.openWith.length - string.closeWith.length; - len = len - (string.block.match(/ $/) ? 1 : 0); - len -= fixIeBug(string.block); - } else if (shiftKey === true) { - string = build(selection); - start = caretPosition; - len = string.block.length; - len -= fixIeBug(string.block); - } else { - string = build(selection); - start = caretPosition + string.block.length ; - len = 0; - start -= fixIeBug(string.block); - } - if ((selection === '' && string.replaceWith === '')) { - caretOffset += fixOperaBug(string.block); - - start = caretPosition + string.openWith.length; - len = string.block.length - string.openWith.length - string.closeWith.length; - - caretOffset = $$.val().substring(caretPosition, $$.val().length).length; - caretOffset -= fixOperaBug($$.val().substring(0, caretPosition)); - } - $.extend(hash, { caretPosition:caretPosition, scrollPosition:scrollPosition } ); - - if (string.block !== selection && abort === false) { - insert(string.block); - set(start, len); - } else { - caretOffset = -1; - } - get(); - - $.extend(hash, { line:'', selection:selection }); - - // callbacks after insertion - if ((ctrlKey === true && shiftKey === true) || button.multiline === true) { - prepare(clicked.afterMultiInsert); - } - prepare(clicked.afterInsert); - prepare(options.afterInsert); - - // refresh preview if opened - if (previewWindow && options.previewAutoRefresh) { - refreshPreview(); - } - - // reinit keyevent - shiftKey = altKey = ctrlKey = abort = false; - } - - // Substract linefeed in Opera - function fixOperaBug(string) { - if ($.browser.opera) { - return string.length - string.replace(/\n*/g, '').length; - } - return 0; - } - // Substract linefeed in IE - function fixIeBug(string) { - if ($.browser.msie) { - return string.length - string.replace(/\r*/g, '').length; - } - return 0; - } - - // add markup - function insert(block) { - if (document.selection) { - var newSelection = document.selection.createRange(); - newSelection.text = block; - } else { - textarea.value = textarea.value.substring(0, caretPosition) + block + textarea.value.substring(caretPosition + selection.length, textarea.value.length); - } - } - - // set a selection - function set(start, len) { - if (textarea.createTextRange){ - // quick fix to make it work on Opera 9.5 - if ($.browser.opera && $.browser.version >= 9.5 && len == 0) { - return false; - } - range = textarea.createTextRange(); - range.collapse(true); - range.moveStart('character', start); - range.moveEnd('character', len); - range.select(); - } else if (textarea.setSelectionRange ){ - textarea.setSelectionRange(start, start + len); - } - textarea.scrollTop = scrollPosition; - textarea.focus(); - } - - // get the selection - function get() { - textarea.focus(); - - scrollPosition = textarea.scrollTop; - if (document.selection) { - selection = document.selection.createRange().text; - if ($.browser.msie) { // ie - var range = document.selection.createRange(), rangeCopy = range.duplicate(); - rangeCopy.moveToElementText(textarea); - caretPosition = -1; - while(rangeCopy.inRange(range)) { - rangeCopy.moveStart('character'); - caretPosition ++; - } - } else { // opera - caretPosition = textarea.selectionStart; - } - } else { // gecko & webkit - caretPosition = textarea.selectionStart; - - selection = textarea.value.substring(caretPosition, textarea.selectionEnd); - } - return selection; - } - - // open preview window - function preview() { - if (!previewWindow || previewWindow.closed) { - if (options.previewInWindow) { - previewWindow = window.open('', 'preview', options.previewInWindow); - $(window).unload(function() { - previewWindow.close(); - }); - } else { - iFrame = $(''); - if (options.previewPosition == 'after') { - iFrame.insertAfter(footer); - } else { - iFrame.insertBefore(header); - } - previewWindow = iFrame[iFrame.length - 1].contentWindow || frame[iFrame.length - 1]; - } - } else if (altKey === true) { - if (iFrame) { - iFrame.remove(); - } else { - previewWindow.close(); - } - previewWindow = iFrame = false; - } - if (!options.previewAutoRefresh) { - refreshPreview(); - } - if (options.previewInWindow) { - previewWindow.focus(); - } - } - - // refresh Preview window - function refreshPreview() { - renderPreview(); - } - - function renderPreview() { - var phtml; - if (options.previewParser && typeof options.previewParser === 'function') { - var data = options.previewParser( $$.val() ); - writeInPreview( localize(data, 1) ); - } else if (options.previewParserPath !== '') { - $.ajax({ - type: 'POST', - dataType: 'text', - global: false, - url: options.previewParserPath, - data: options.previewParserVar+'='+encodeURIComponent($$.val()), - success: function(data) { - writeInPreview( localize(data, 1) ); - } - }); - } else { - if (!template) { - $.ajax({ - url: options.previewTemplatePath, - dataType: 'text', - global: false, - success: function(data) { - writeInPreview( localize(data, 1).replace(//g, $$.val()) ); - } - }); - } - } - return false; - } - - function writeInPreview(data) { - if (previewWindow.document) { - try { - sp = previewWindow.document.documentElement.scrollTop - } catch(e) { - sp = 0; - } - previewWindow.document.open(); - previewWindow.document.write(data); - previewWindow.document.close(); - previewWindow.document.documentElement.scrollTop = sp; - } - } - - // set keys pressed - function keyPressed(e) { - shiftKey = e.shiftKey; - altKey = e.altKey; - ctrlKey = (!(e.altKey && e.ctrlKey)) ? (e.ctrlKey || e.metaKey) : false; - - if (e.type === 'keydown') { - if (ctrlKey === true) { - li = $('a[accesskey="'+String.fromCharCode(e.keyCode)+'"]', header).parent('li'); - if (li.length !== 0) { - ctrlKey = false; - setTimeout(function() { - li.triggerHandler('mouseup'); - },1); - return false; - } - } - if (e.keyCode === 13 || e.keyCode === 10) { // Enter key - if (ctrlKey === true) { // Enter + Ctrl - ctrlKey = false; - markup(options.onCtrlEnter); - return options.onCtrlEnter.keepDefault; - } else if (shiftKey === true) { // Enter + Shift - shiftKey = false; - markup(options.onShiftEnter); - return options.onShiftEnter.keepDefault; - } else { // only Enter - markup(options.onEnter); - return options.onEnter.keepDefault; - } - } - if (e.keyCode === 9) { // Tab key - if (shiftKey == true || ctrlKey == true || altKey == true) { - return false; - } - if (caretOffset !== -1) { - get(); - caretOffset = $$.val().length - caretOffset; - set(caretOffset, 0); - caretOffset = -1; - return false; - } else { - markup(options.onTab); - return options.onTab.keepDefault; - } - } - } - } - - init(); - }); - }; - - $.fn.markItUpRemove = function() { - return this.each(function() { - var $$ = $(this).unbind().removeClass('markItUpEditor'); - $$.parent('div').parent('div.markItUp').parent('div').replaceWith($$); - } - ); - }; - - $.markItUp = function(settings) { - var options = { target:false }; - $.extend(options, settings); - if (options.target) { - return $(options.target).each(function() { - $(this).focus(); - $(this).trigger('insertion', [options]); - }); - } else { - $('textarea').trigger('insertion', [options]); - } - }; -})(jQuery); === removed file 'lava_markitup/static/lava_markitup/preview.css' --- lava_markitup/static/lava_markitup/preview.css 2011-09-23 08:17:10 +0000 +++ lava_markitup/static/lava_markitup/preview.css 1970-01-01 00:00:00 +0000 @@ -1,50 +0,0 @@ -body, input, th, td { - font-family: Ubuntu, Helvetica Neue, Verdana, sans-serif; - font-size: 10pt; -} - -code { - font-family: UbuntuBeta Mono, Lucida Console, Consolas, monospace; - font-size: 10pt; -} - -body { - color: #444; - padding: 1ex; - margin: 0; - background-color: white; -} - -a { - color: #08C; -} - - -h1 { - color: #222; - border-bottom: 3pt solid #444; -} - -h2 { - color: #222; - border-bottom: 2pt solid #444; -} - -h3 { - color: #111; -} - -blockquote { - border-left: 2pt solid #555; - padding-left: 1ex; - margin-left: 2ex; -} - - -code { - display: block; - font-family: UbuntuBeta Mono, monospace; - background-color: #888; - color: white; - padding: 0.5ex; -} === removed directory 'lava_markitup/static/lava_markitup/sets' === removed directory 'lava_markitup/static/lava_markitup/sets/markdown' === removed directory 'lava_markitup/static/lava_markitup/sets/markdown/images' === removed file 'lava_markitup/static/lava_markitup/sets/markdown/images/bold.png' Binary files lava_markitup/static/lava_markitup/sets/markdown/images/bold.png 2011-09-23 08:17:10 +0000 and lava_markitup/static/lava_markitup/sets/markdown/images/bold.png 1970-01-01 00:00:00 +0000 differ === removed file 'lava_markitup/static/lava_markitup/sets/markdown/images/code.png' Binary files lava_markitup/static/lava_markitup/sets/markdown/images/code.png 2011-09-23 08:17:10 +0000 and lava_markitup/static/lava_markitup/sets/markdown/images/code.png 1970-01-01 00:00:00 +0000 differ === removed file 'lava_markitup/static/lava_markitup/sets/markdown/images/h1.png' Binary files lava_markitup/static/lava_markitup/sets/markdown/images/h1.png 2011-09-23 08:17:10 +0000 and lava_markitup/static/lava_markitup/sets/markdown/images/h1.png 1970-01-01 00:00:00 +0000 differ === removed file 'lava_markitup/static/lava_markitup/sets/markdown/images/h2.png' Binary files lava_markitup/static/lava_markitup/sets/markdown/images/h2.png 2011-09-23 08:17:10 +0000 and lava_markitup/static/lava_markitup/sets/markdown/images/h2.png 1970-01-01 00:00:00 +0000 differ === removed file 'lava_markitup/static/lava_markitup/sets/markdown/images/h3.png' Binary files lava_markitup/static/lava_markitup/sets/markdown/images/h3.png 2011-09-23 08:17:10 +0000 and lava_markitup/static/lava_markitup/sets/markdown/images/h3.png 1970-01-01 00:00:00 +0000 differ === removed file 'lava_markitup/static/lava_markitup/sets/markdown/images/h4.png' Binary files lava_markitup/static/lava_markitup/sets/markdown/images/h4.png 2011-09-23 08:17:10 +0000 and lava_markitup/static/lava_markitup/sets/markdown/images/h4.png 1970-01-01 00:00:00 +0000 differ === removed file 'lava_markitup/static/lava_markitup/sets/markdown/images/h5.png' Binary files lava_markitup/static/lava_markitup/sets/markdown/images/h5.png 2011-09-23 08:17:10 +0000 and lava_markitup/static/lava_markitup/sets/markdown/images/h5.png 1970-01-01 00:00:00 +0000 differ === removed file 'lava_markitup/static/lava_markitup/sets/markdown/images/h6.png' Binary files lava_markitup/static/lava_markitup/sets/markdown/images/h6.png 2011-09-23 08:17:10 +0000 and lava_markitup/static/lava_markitup/sets/markdown/images/h6.png 1970-01-01 00:00:00 +0000 differ === removed file 'lava_markitup/static/lava_markitup/sets/markdown/images/italic.png' Binary files lava_markitup/static/lava_markitup/sets/markdown/images/italic.png 2011-09-23 08:17:10 +0000 and lava_markitup/static/lava_markitup/sets/markdown/images/italic.png 1970-01-01 00:00:00 +0000 differ === removed file 'lava_markitup/static/lava_markitup/sets/markdown/images/link.png' Binary files lava_markitup/static/lava_markitup/sets/markdown/images/link.png 2011-09-23 08:17:10 +0000 and lava_markitup/static/lava_markitup/sets/markdown/images/link.png 1970-01-01 00:00:00 +0000 differ === removed file 'lava_markitup/static/lava_markitup/sets/markdown/images/list-bullet.png' Binary files lava_markitup/static/lava_markitup/sets/markdown/images/list-bullet.png 2011-09-23 08:17:10 +0000 and lava_markitup/static/lava_markitup/sets/markdown/images/list-bullet.png 1970-01-01 00:00:00 +0000 differ === removed file 'lava_markitup/static/lava_markitup/sets/markdown/images/list-numeric.png' Binary files lava_markitup/static/lava_markitup/sets/markdown/images/list-numeric.png 2011-09-23 08:17:10 +0000 and lava_markitup/static/lava_markitup/sets/markdown/images/list-numeric.png 1970-01-01 00:00:00 +0000 differ === removed file 'lava_markitup/static/lava_markitup/sets/markdown/images/picture.png' Binary files lava_markitup/static/lava_markitup/sets/markdown/images/picture.png 2011-09-23 08:17:10 +0000 and lava_markitup/static/lava_markitup/sets/markdown/images/picture.png 1970-01-01 00:00:00 +0000 differ === removed file 'lava_markitup/static/lava_markitup/sets/markdown/images/preview.png' Binary files lava_markitup/static/lava_markitup/sets/markdown/images/preview.png 2011-09-23 08:17:10 +0000 and lava_markitup/static/lava_markitup/sets/markdown/images/preview.png 1970-01-01 00:00:00 +0000 differ === removed file 'lava_markitup/static/lava_markitup/sets/markdown/images/quotes.png' Binary files lava_markitup/static/lava_markitup/sets/markdown/images/quotes.png 2011-09-23 08:17:10 +0000 and lava_markitup/static/lava_markitup/sets/markdown/images/quotes.png 1970-01-01 00:00:00 +0000 differ === removed file 'lava_markitup/static/lava_markitup/sets/markdown/set.js' --- lava_markitup/static/lava_markitup/sets/markdown/set.js 2011-09-23 08:17:10 +0000 +++ lava_markitup/static/lava_markitup/sets/markdown/set.js 1970-01-01 00:00:00 +0000 @@ -1,52 +0,0 @@ -// ------------------------------------------------------------------- -// markItUp! -// ------------------------------------------------------------------- -// Copyright (C) 2008 Jay Salvat -// http://markitup.jaysalvat.com/ -// ------------------------------------------------------------------- -// MarkDown tags example -// http://en.wikipedia.org/wiki/Markdown -// http://daringfireball.net/projects/markdown/ -// ------------------------------------------------------------------- -// Feel free to add more tags -// ------------------------------------------------------------------- -mySettings = { - previewParserPath: '', - onShiftEnter: {keepDefault:false, openWith:'\n\n'}, - markupSet: [ - {name:'First Level Heading', key:'1', placeHolder:'Your title here...', closeWith:function(markItUp) { return miu.markdownTitle(markItUp, '=') } }, - {name:'Second Level Heading', key:'2', placeHolder:'Your title here...', closeWith:function(markItUp) { return miu.markdownTitle(markItUp, '-') } }, - {name:'Heading 3', key:'3', openWith:'### ', placeHolder:'Your title here...' }, - {name:'Heading 4', key:'4', openWith:'#### ', placeHolder:'Your title here...' }, - {name:'Heading 5', key:'5', openWith:'##### ', placeHolder:'Your title here...' }, - {name:'Heading 6', key:'6', openWith:'###### ', placeHolder:'Your title here...' }, - {separator:'---------------' }, - {name:'Bold', key:'B', openWith:'**', closeWith:'**'}, - {name:'Italic', key:'I', openWith:'_', closeWith:'_'}, - {separator:'---------------' }, - {name:'Bulleted List', openWith:'- ' }, - {name:'Numeric List', openWith:function(markItUp) { - return markItUp.line+'. '; - }}, - {separator:'---------------' }, - {name:'Picture', key:'P', replaceWith:'![[![Alternative text]!]]([![Url:!:http://]!] "[![Title]!]")'}, - {name:'Link', key:'L', openWith:'[', closeWith:']([![Url:!:http://]!] "[![Title]!]")', placeHolder:'Your text to link here...' }, - {separator:'---------------'}, - {name:'Quotes', openWith:'> '}, - {name:'Code Block / Code', openWith:'(!(\t|!|`)!)', closeWith:'(!(`)!)'}, - {separator:'---------------'}, - {name:'Preview', call:'preview', className:"preview"} - ] -} - -// mIu nameSpace to avoid conflict. -miu = { - markdownTitle: function(markItUp, char) { - heading = ''; - n = $.trim(markItUp.selection||markItUp.placeHolder).length; - for(i = 0; i < n; i++) { - heading += char; - } - return '\n'+heading; - } -} \ No newline at end of file === removed file 'lava_markitup/static/lava_markitup/sets/markdown/style.css' --- lava_markitup/static/lava_markitup/sets/markdown/style.css 2011-09-23 08:17:10 +0000 +++ lava_markitup/static/lava_markitup/sets/markdown/style.css 1970-01-01 00:00:00 +0000 @@ -1,54 +0,0 @@ -/* ------------------------------------------------------------------- -// markItUp! -// By Jay Salvat - http://markitup.jaysalvat.com/ -// ------------------------------------------------------------------*/ -.markItUp .markItUpButton1 a { - background-image:url(images/h1.png); -} -.markItUp .markItUpButton2 a { - background-image:url(images/h2.png); -} -.markItUp .markItUpButton3 a { - background-image:url(images/h3.png); -} -.markItUp .markItUpButton4 a { - background-image:url(images/h4.png); -} -.markItUp .markItUpButton5 a { - background-image:url(images/h5.png); -} -.markItUp .markItUpButton6 a { - background-image:url(images/h6.png); -} - -.markItUp .markItUpButton7 a { - background-image:url(images/bold.png); -} -.markItUp .markItUpButton8 a { - background-image:url(images/italic.png); -} - -.markItUp .markItUpButton9 a { - background-image:url(images/list-bullet.png); -} -.markItUp .markItUpButton10 a { - background-image:url(images/list-numeric.png); -} - -.markItUp .markItUpButton11 a { - background-image:url(images/picture.png); -} -.markItUp .markItUpButton12 a { - background-image:url(images/link.png); -} - -.markItUp .markItUpButton13 a { - background-image:url(images/quotes.png); -} -.markItUp .markItUpButton14 a { - background-image:url(images/code.png); -} - -.markItUp .preview a { - background-image:url(images/preview.png); -} \ No newline at end of file === removed directory 'lava_markitup/static/lava_markitup/skins' === removed directory 'lava_markitup/static/lava_markitup/skins/simple' === removed directory 'lava_markitup/static/lava_markitup/skins/simple/images' === removed file 'lava_markitup/static/lava_markitup/skins/simple/images/handle.png' Binary files lava_markitup/static/lava_markitup/skins/simple/images/handle.png 2011-09-23 08:17:10 +0000 and lava_markitup/static/lava_markitup/skins/simple/images/handle.png 1970-01-01 00:00:00 +0000 differ === removed file 'lava_markitup/static/lava_markitup/skins/simple/images/menu.png' Binary files lava_markitup/static/lava_markitup/skins/simple/images/menu.png 2011-09-23 08:17:10 +0000 and lava_markitup/static/lava_markitup/skins/simple/images/menu.png 1970-01-01 00:00:00 +0000 differ === removed file 'lava_markitup/static/lava_markitup/skins/simple/images/submenu.png' Binary files lava_markitup/static/lava_markitup/skins/simple/images/submenu.png 2011-09-23 08:17:10 +0000 and lava_markitup/static/lava_markitup/skins/simple/images/submenu.png 1970-01-01 00:00:00 +0000 differ === removed file 'lava_markitup/static/lava_markitup/skins/simple/style.css' --- lava_markitup/static/lava_markitup/skins/simple/style.css 2011-09-23 08:17:10 +0000 +++ lava_markitup/static/lava_markitup/skins/simple/style.css 1970-01-01 00:00:00 +0000 @@ -1,118 +0,0 @@ -/* ------------------------------------------------------------------- -// markItUp! Universal MarkUp Engine, JQuery plugin -// By Jay Salvat - http://markitup.jaysalvat.com/ -// ------------------------------------------------------------------*/ -.markItUp * { - margin:0px; padding:0px; - outline:none; -} -.markItUp a:link, -.markItUp a:visited { - color:#000; - text-decoration:none; -} -.markItUp { - width:700px; - margin:5px 0 5px 0; -} -.markItUpContainer { - font:11px Verdana, Arial, Helvetica, sans-serif; -} -.markItUpEditor { - font:12px 'Courier New', Courier, monospace; - padding:5px; - width:690px; - height:320px; - clear:both; - line-height:18px; - overflow:auto; -} -.markItUpPreviewFrame { - overflow:auto; - background-color:#FFF; - width:99.9%; - height:300px; - margin:5px 0; -} -.markItUpFooter { - width:100%; -} -.markItUpResizeHandle { - overflow:hidden; - width:22px; height:5px; - margin-left:auto; - margin-right:auto; - background-image:url(images/handle.png); - cursor:n-resize; -} -/***************************************************************************************/ -/* first row of buttons */ -.markItUpHeader ul li { - list-style:none; - float:left; - position:relative; -} -.markItUpHeader ul li:hover > ul{ - display:block; -} -.markItUpHeader ul .markItUpDropMenu { - background:transparent url(images/menu.png) no-repeat 115% 50%; - margin-right:5px; -} -.markItUpHeader ul .markItUpDropMenu li { - margin-right:0px; -} -/* next rows of buttons */ -.markItUpHeader ul ul { - display:none; - position:absolute; - top:18px; left:0px; - background:#FFF; - border:1px solid #000; -} -.markItUpHeader ul ul li { - float:none; - border-bottom:1px solid #000; -} -.markItUpHeader ul ul .markItUpDropMenu { - background:#FFF url(images/submenu.png) no-repeat 100% 50%; -} -.markItUpHeader ul .markItUpSeparator { - margin:0 10px; - width:1px; - height:16px; - overflow:hidden; - background-color:#CCC; -} -.markItUpHeader ul ul .markItUpSeparator { - width:auto; height:1px; - margin:0px; -} -/* next rows of buttons */ -.markItUpHeader ul ul ul { - position:absolute; - top:-1px; left:150px; -} -.markItUpHeader ul ul ul li { - float:none; -} -.markItUpHeader ul a { - display:block; - width:16px; height:16px; - text-indent:-10000px; - background-repeat:no-repeat; - padding:3px; - margin:0px; -} -.markItUpHeader ul ul a { - display:block; - padding-left:0px; - text-indent:0; - width:120px; - padding:5px 5px 5px 25px; - background-position:2px 50%; -} -.markItUpHeader ul ul a:hover { - color:#FFF; - background-color:#000; -} === removed directory 'lava_markitup/static/lava_markitup/templates' === removed file 'lava_markitup/static/lava_markitup/templates/preview.css' --- lava_markitup/static/lava_markitup/templates/preview.css 2011-09-23 08:17:10 +0000 +++ lava_markitup/static/lava_markitup/templates/preview.css 1970-01-01 00:00:00 +0000 @@ -1,5 +0,0 @@ -/* preview style examples */ -body { - background-color:#EFEFEF; - font:70% Verdana, Arial, Helvetica, sans-serif; -} \ No newline at end of file === removed file 'lava_markitup/static/lava_markitup/templates/preview.html' --- lava_markitup/static/lava_markitup/templates/preview.html 2011-09-23 08:17:10 +0000 +++ lava_markitup/static/lava_markitup/templates/preview.html 1970-01-01 00:00:00 +0000 @@ -1,11 +0,0 @@ - - - - -markItUp! preview template - - - - - - === removed directory 'lava_markitup/templates' === removed directory 'lava_markitup/templates/lava_markitup' === removed file 'lava_markitup/templates/lava_markitup/preview.html' --- lava_markitup/templates/lava_markitup/preview.html 2011-09-23 08:17:10 +0000 +++ lava_markitup/templates/lava_markitup/preview.html 1970-01-01 00:00:00 +0000 @@ -1,12 +0,0 @@ - - - - - Preview - - - - {{ markup|safe }} - - - === removed file 'lava_markitup/tests.py' === removed file 'lava_markitup/urls.py' --- lava_markitup/urls.py 2011-09-23 08:17:10 +0000 +++ lava_markitup/urls.py 1970-01-01 00:00:00 +0000 @@ -1,7 +0,0 @@ -from django.conf.urls.defaults import * - - -urlpatterns = patterns( - 'lava_markitup.views', - url('^markdown/$', 'preview_markdown', name='lava.markitup.markdown'), -) === removed file 'lava_markitup/views.py' --- lava_markitup/views.py 2012-05-04 04:37:19 +0000 +++ lava_markitup/views.py 1970-01-01 00:00:00 +0000 @@ -1,17 +0,0 @@ -from django.views.decorators.csrf import csrf_exempt -from django.http import HttpResponse -from django.template import RequestContext, loader -from markdown import markdown - - -@csrf_exempt -def preview_markdown(request): - """ - Convert markdown to HTML - """ - markup = request.POST.get("data", "") - template_name = "lava_markitup/preview.html" - t = loader.get_template(template_name) - c = RequestContext(request, { - 'markup': markdown(markup, safe_mode="escape")}) - return HttpResponse(t.render(c)) === removed directory 'lava_projects' === removed file 'lava_projects/__init__.py' --- lava_projects/__init__.py 2013-01-14 21:26:37 +0000 +++ lava_projects/__init__.py 1970-01-01 00:00:00 +0000 @@ -1,19 +0,0 @@ -# Copyright (C) 2010, 2011 Linaro Limited -# -# Author: Zygmunt Krynicki -# -# This file is part of LAVA Server. -# -# LAVA Server is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License version 3 -# as published by the Free Software Foundation -# -# LAVA Server is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with LAVA Server. If not, see . - -__version__ = (0, 1, 0, "final", 0) === removed file 'lava_projects/extension.py' --- lava_projects/extension.py 2013-01-14 21:26:37 +0000 +++ lava_projects/extension.py 1970-01-01 00:00:00 +0000 @@ -1,33 +0,0 @@ -# Copyright (C) 2010, 2011 Linaro Limited -# -# Author: Zygmunt Krynicki -# -# This file is part of LAVA Server. -# -# LAVA Server is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License version 3 -# as published by the Free Software Foundation -# -# LAVA Server is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with LAVA Server. If not, see . - -from lava_server.extension import DeprecatedExtension - - -class ProjectExtension(DeprecatedExtension): - """ - This has been deprecated but is just in place for south database migrations - """ - - @property - def app_name(self): - return "lava_projects" - - @property - def name(self): - return "Projects" === removed directory 'lava_projects/migrations' === removed file 'lava_projects/migrations/0001_add_model_Project.py' --- lava_projects/migrations/0001_add_model_Project.py 2013-01-14 21:26:37 +0000 +++ lava_projects/migrations/0001_add_model_Project.py 1970-01-01 00:00:00 +0000 @@ -1,91 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - - # Adding model 'Project' - db.create_table('lava_projects_project', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], null=True, blank=True)), - ('group', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.Group'], null=True, blank=True)), - ('is_public', self.gf('django.db.models.fields.BooleanField')(default=False)), - ('name', self.gf('django.db.models.fields.CharField')(max_length=100)), - ('identifier', self.gf('django.db.models.fields.SlugField')(unique=True, max_length=100, db_index=True)), - ('description', self.gf('django.db.models.fields.TextField')(blank=True)), - ('is_aggregate', self.gf('django.db.models.fields.BooleanField')(default=False)), - ('registered_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='projects', to=orm['auth.User'])), - ('registered_on', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), - )) - db.send_create_signal('lava_projects', ['Project']) - - - def backwards(self, orm): - - # Deleting model 'Project' - db.delete_table('lava_projects_project') - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'lava_projects.project': { - 'Meta': {'object_name': 'Project'}, - 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'group': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'identifier': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '100', 'db_index': 'True'}), - 'is_aggregate': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'registered_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'projects'", 'to': "orm['auth.User']"}), - 'registered_on': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}) - }, - 'lava_projects.projectfomeridentifier': { - 'Meta': {'object_name': 'ProjectFomerIdentifier'}, - 'former_identifier': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '100', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'former_identifiers'", 'to': "orm['lava_projects.Project']"}) - } - } - - complete_apps = ['lava_projects'] === removed file 'lava_projects/migrations/0002_add_model_ProjectFormerIdentifier.py' --- lava_projects/migrations/0002_add_model_ProjectFormerIdentifier.py 2013-01-14 21:26:37 +0000 +++ lava_projects/migrations/0002_add_model_ProjectFormerIdentifier.py 1970-01-01 00:00:00 +0000 @@ -1,88 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - - # Adding model 'ProjectFormerIdentifier' - db.create_table('lava_projects_projectformeridentifier', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('project', self.gf('django.db.models.fields.related.ForeignKey')(related_name='former_identifiers', to=orm['lava_projects.Project'])), - ('former_identifier', self.gf('django.db.models.fields.SlugField')(unique=True, max_length=100, db_index=True)), - ('renamed_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='project_former_identifiers_created', to=orm['auth.User'])), - ('renamed_on', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), - )) - db.send_create_signal('lava_projects', ['ProjectFormerIdentifier']) - - - def backwards(self, orm): - - # Deleting model 'ProjectFormerIdentifier' - db.delete_table('lava_projects_projectformeridentifier') - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'lava_projects.project': { - 'Meta': {'object_name': 'Project'}, - 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'group': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'identifier': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '100', 'db_index': 'True'}), - 'is_aggregate': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'registered_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'projects'", 'to': "orm['auth.User']"}), - 'registered_on': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}) - }, - 'lava_projects.projectformeridentifier': { - 'Meta': {'object_name': 'ProjectFormerIdentifier'}, - 'former_identifier': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '100', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'former_identifiers'", 'to': "orm['lava_projects.Project']"}), - 'renamed_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'project_former_identifiers_created'", 'to': "orm['auth.User']"}), - 'renamed_on': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['lava_projects'] === removed file 'lava_projects/migrations/0003_auto__del_projectformeridentifier__del_project.py' --- lava_projects/migrations/0003_auto__del_projectformeridentifier__del_project.py 2013-01-15 21:06:31 +0000 +++ lava_projects/migrations/0003_auto__del_projectformeridentifier__del_project.py 1970-01-01 00:00:00 +0000 @@ -1,53 +0,0 @@ -# -*- coding: utf-8 -*- -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - depends_on = ( - ("dashboard_app", "0027_auto__del_testingeffort"), - ) - - def forwards(self, orm): - # Deleting model 'ProjectFormerIdentifier' - db.delete_table('lava_projects_projectformeridentifier') - - # Deleting model 'Project' - db.delete_table('lava_projects_project') - - - def backwards(self, orm): - # Adding model 'ProjectFormerIdentifier' - db.create_table('lava_projects_projectformeridentifier', ( - ('renamed_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='project_former_identifiers_created', to=orm['auth.User'])), - ('renamed_on', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), - ('project', self.gf('django.db.models.fields.related.ForeignKey')(related_name='former_identifiers', to=orm['lava_projects.Project'])), - ('former_identifier', self.gf('django.db.models.fields.SlugField')(max_length=100, unique=True, db_index=True)), - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - )) - db.send_create_signal('lava_projects', ['ProjectFormerIdentifier']) - - # Adding model 'Project' - db.create_table('lava_projects_project', ( - ('description', self.gf('django.db.models.fields.TextField')(blank=True)), - ('registered_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='projects', to=orm['auth.User'])), - ('is_aggregate', self.gf('django.db.models.fields.BooleanField')(default=False)), - ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], null=True, blank=True)), - ('is_public', self.gf('django.db.models.fields.BooleanField')(default=False)), - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('group', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.Group'], null=True, blank=True)), - ('name', self.gf('django.db.models.fields.CharField')(max_length=100)), - ('registered_on', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), - ('identifier', self.gf('django.db.models.fields.SlugField')(max_length=100, unique=True, db_index=True)), - )) - db.send_create_signal('lava_projects', ['Project']) - - - models = { - - } - - complete_apps = ['lava_projects'] === removed file 'lava_projects/migrations/__init__.py' === removed file 'lava_projects/models.py' --- lava_projects/models.py 2013-01-15 21:06:31 +0000 +++ lava_projects/models.py 1970-01-01 00:00:00 +0000 @@ -1,19 +0,0 @@ -# Copyright (C) 2010, 2011 Linaro Limited -# -# Author: Zygmunt Krynicki -# -# This file is part of LAVA Server. -# -# LAVA Server is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License version 3 -# as published by the Free Software Foundation -# -# LAVA Server is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with LAVA Server. If not, see . - -# needed for south migrations === removed directory 'lava_server' === removed file 'lava_server/__init__.py' --- lava_server/__init__.py 2013-01-15 21:49:27 +0000 +++ lava_server/__init__.py 1970-01-01 00:00:00 +0000 @@ -1,26 +0,0 @@ -# Copyright (C) 2010, 2011 Linaro Limited -# -# Author: Zygmunt Krynicki -# -# This file is part of LAVA Server. -# -# LAVA Server is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License version 3 -# as published by the Free Software Foundation -# -# LAVA Server is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with LAVA Server. If not, see . - -""" -lava_server -=========== - -The LAVA server package. Contains only the version declaration. -""" - -__version__ = (0, 20, 0, "final", 0) === removed file 'lava_server/bread_crumbs.py' --- lava_server/bread_crumbs.py 2012-02-09 02:56:00 +0000 +++ lava_server/bread_crumbs.py 1970-01-01 00:00:00 +0000 @@ -1,183 +0,0 @@ -# Copyright (C) 2010, 2011 Linaro Limited -# -# Author: Zygmunt Krynicki -# -# This file is part of LAVA Server. -# -# LAVA Server is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License version 3 -# as published by the Free Software Foundation -# -# LAVA Server is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with LAVA Server. If not, see . - -""" -lava_server.bread_crumbs -======================== - -Bread crumb management for LAVA server. - -This system allows one to construct static trees of views or even site maps, -where each view has at most one parent. In this model any view could be -followed back through the parent link to create a bread crumb trail of named -URLs. - -It is important to emphasize that this system is STATIC, that is, it is not -based on browsing history. Regardless on how the user got to a particular view -the bread crumb system will report the same set of pages. The idea is not to -let users go back (that's the what the browser allows them to do) but to put -the current page into context of where it "belongs". - -To use this system apply the @BreadCrumb(name, parent=parent_view, -needs=['required', 'keywords']) decorator to your view function. To render -breadcrumbs you can use the default template that is a part of -"layout/content.html" template. Your context must include the bread_crumb_trail -variable. To construct it call BreadCrumbTrail.leading_to(your_view_name, ...) -passing any of the keyword arguments specified in needs of your and any parent -views (yes this is annoying). - -A mistake in pairing 'needs' to keywords passed to BreadCrumbTrail.leading_to() -will result in logged warnings (either a name of the URL being not -constructible). To fix that simply add the missing keyword argument and reload. -""" - -from django.core.urlresolvers import reverse -import logging - - -class BreadCrumb(object): - """ - A crumb of bread left in the forest of pages to let you go back to (no, not - to where you came from) where the developer desired you to go. - """ - - def __init__(self, name, parent=None, needs=None): - """ - Construct a bread crumb object. - - The name is the essential property creating the actual text visible on - web pages. It may be a static string or a new-style python string - template. Parent allows one to construct a static brad crumb tree where - each crubm may have at most one parent. Needs, if specified, must be - an array of strings that denote identifiers required to resolve the URL - of this bread crumb. The identifiers are obtained from the call - BreadCrumbTrail.leading_to(). - """ - self.name = name - self.view = None - self.parent = parent - self.needs = needs or [] - - def __repr__(self): - return "" % ( - self.name, self.view, self.parent) - - def __call__(self, view): - """ - Call method, used when decorating function-based views - - Id does not redefine the function (so is not a real decorator) but - instead stores the brad crumb object in the _bread_crumb attribute of - the function. - """ - self.view = view - view._bread_crumb = self - return view - - def get_name(self, kwargs): - """ - Get the name of this crumb. - - The name is formatted with the specified keyword arguments. - """ - try: - return self.name.format(**kwargs) - except: - logging.exception( - "Unable to construct breadcrumb name for view %r", self.view) - raise - - def get_absolute_url(self, kwargs): - """ - Get the URL of this crumb. - - The URL is constructed with a call to Dajngo's reverse() function. It - is supplemented with the same variables that were listed in needs array - in the bread crumb constructor. The arguments are passed in order, from - the kwargs dictionary. - """ - try: - return reverse( - self.view, - args=[kwargs[name] for name in self.needs]) - except: - logging.exception( - "Unable to construct breadcrumb URL for view %r", self.view) - raise - - -class LiveBreadCrumb(object): - """ - Bread crumb instance as observed by a particular request. - - It is a binding between the global view-specific bread crumb object and - dynamic request-specific keyword arguments. - - For convenience it provides two bread crumb functions (get_name() and - get_absolute_url()) that automatically provide the correct keyword - arguments. - """ - - def __init__(self, bread_crumb, kwargs): - self.bread_crumb = bread_crumb - self.kwargs = kwargs - - def __unicode__(self): - return self.get_name() - - def get_name(self): - return self.bread_crumb.get_name(self.kwargs) - - def get_absolute_url(self): - return self.bread_crumb.get_absolute_url(self.kwargs) - - -class BreadCrumbTrail(object): - """ - A list of live bread crumbs that lead from a particular view, along the - parent chain, all the way to the root view (that is without any parent - view). - """ - - def __init__(self, bread_crumb_list, kwargs): - self.bread_crumb_list = bread_crumb_list - self.kwargs = kwargs - - def __iter__(self): - for bread_crumb in self.bread_crumb_list: - yield LiveBreadCrumb(bread_crumb, self.kwargs) - - @classmethod - def leading_to(cls, view, **kwargs): - """ - Create an instance of BreadCrumbTrail that starts at the specified - view. - - Additional keyword arguments, if provided, will be available to - get_name() and get_absolute_url() of each LiveBreadCrumb that makes up - this trail. In practice they should contain a set of arguments that are - needed by any parent bread crumb URL or name. - - TODO: could we check this statically somehow? - """ - lst = [] - while view is not None: - lst.append(view._bread_crumb) - view = view._bread_crumb.parent - lst.reverse() - return cls(lst, kwargs or {}) === removed file 'lava_server/context_processors.py' --- lava_server/context_processors.py 2013-09-11 19:34:55 +0000 +++ lava_server/context_processors.py 1970-01-01 00:00:00 +0000 @@ -1,68 +0,0 @@ -# Copyright (C) 2010, 2011 Linaro Limited -# -# Author: Zygmunt Krynicki -# -# This file is part of LAVA Server. -# -# LAVA Server is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License version 3 -# as published by the Free Software Foundation -# -# LAVA Server is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with LAVA Server. If not, see . - -import os -import versiontools - -import lava_server -from lava_server.extension import Menu, loader -from django.core.urlresolvers import reverse -from django.conf import settings - - -def lava(request): - menu_list = [ - Menu("Home", reverse('lava.home')), - ] - for extension in loader.extensions: - menu = extension.get_menu() - if menu: - menu_list.append(menu) - menu_list.extend([ - Menu("API", reverse("lava.api_help"), [ - Menu("Available Methods", reverse("lava.api_help")), - Menu("Authentication Tokens", reverse("linaro_django_xmlrpc.views.tokens")), - ]), - Menu("Documentation", "/static/docs/"), - ]) - - try: - instance_name = os.environ["LAVA_INSTANCE"] - except KeyError: - try: - instance_name = os.path.basename(os.environ["VIRTUAL_ENV"]) - except KeyError: - instance_name = None - - return { - 'lava': { - 'menu_list': menu_list, - 'extension_list': loader.extensions, - 'instance_name': instance_name, - 'version': versiontools.format_version( - lava_server.__version__, hint=lava_server)}} - -def openid_available(request): - openid_enabled = "django_openid_auth.auth.OpenIDBackend" in settings.AUTHENTICATION_BACKENDS - # Check if we use generic OpenID or Launchpad.net - openid_url = getattr(settings, "OPENID_SSO_SERVER_URL", "") - if "ubuntu.com" in openid_url or "launchpad.net" in openid_url: - provider = 'Launchpad.net' - else: - provider = "OpenID" - return {"openid_available": openid_enabled, "openid_provider": provider} === removed file 'lava_server/extension.py' --- lava_server/extension.py 2013-01-14 21:26:37 +0000 +++ lava_server/extension.py 1970-01-01 00:00:00 +0000 @@ -1,394 +0,0 @@ -# Copyright (C) 2010, 2011 Linaro Limited -# -# Author: Zygmunt Krynicki -# Author: Michael Hudson-Doyle -# -# This file is part of LAVA Server. -# -# LAVA Server is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License version 3 -# as published by the Free Software Foundation -# -# LAVA Server is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with LAVA Server. If not, see . - -""" -lava_server.extension -===================== - -LAVA Server automatically loads extensions registered under the -``lava_server.extensions`` entry point namespace. Each entry point -must be a subclass of :class:`lava_server.extension.IExtension` -""" - - -from abc import ABCMeta, abstractmethod, abstractproperty -import logging -import pkg_resources - - -class IExtension(object): - """ - Interface for LAVA Server extensions. - """ - - __metaclass__ = ABCMeta - - @abstractmethod - def __init__(self, slug): - """ - Remember slug name - """ - - @abstractmethod - def contribute_to_settings(self, settings_module): - """ - Add elements required to initialize this extension into the project - settings module. - """ - - @abstractmethod - def contribute_to_settings_ex(self, settings_module, settings_object): - """ - This method is similar to contribute_to_settings() but allows - implementation to access a settings object from django-debian. This - allows extensions to read settings provided by local system - administrator. - """ - - @abstractmethod - def contribute_to_urlpatterns(self, urlpatterns, mount_point): - """ - Add application specific URLs to root URL patterns of lava-server - """ - - @abstractproperty - def api_class(self): - """ - Subclass of linaro_django_xmlrpc.models.ExposedAPI for this extension. - - The methods of the class returned from here will be available at /RPC2 - under the name used to register the extension. Return None if no - methods should be added. - """ - - @abstractproperty - def name(self): - """ - Name of this extension. - """ - - @abstractproperty - def version(self): - """ - Version of this extension. - """ - - @abstractproperty - def front_page_template(self): - """ - Name of the front page template to {% include %}, may be None - """ - - @abstractmethod - def get_front_page_context(self): - """ - Context available to the front page template - """ - - @abstractmethod - def get_main_url(self): - """ - Absolute URL of the main view - """ - - @abstractmethod - def get_menu(self): - """ - Return a Menu object - """ - - -# Old longish name, we know it's LAVA already -ILavaServerExtension = IExtension - - -class Menu(object): - """ - Menu (for navigation) - """ - - def __init__(self, label, url, sub_menu=None): - self.label = label - self.url = url - self.sub_menu = sub_menu or [] - - -class HeadlessExtension(ILavaServerExtension): - """ - Base class for building headless extensions. - - The only required things to implement are two ``@property`` functions. You - will need to implement :attr:`~ILavaServerExtension.name` and - :attr:`~ILavaServerExtension.version`. - - Meaningful extensions will want to implement - :meth:`~ILavaServerExtension.contribute_to_settings_ex` and add additional - applications to ``INSTALLED_APPS`` - """ - - def __init__(self, slug): - self.slug = slug - - def contribute_to_settings(self, settings_module): - pass - - def contribute_to_settings_ex(self, settings_module, settings_object): - pass - - def contribute_to_urlpatterns(self, urlpatterns, mount_point): - pass - - @property - def api_class(self): - return None - - @property - def front_page_template(self): - return None - - def get_front_page_context(self): - return {} - - def get_main_url(self): - pass - - def get_menu(self): - pass - -class DeprecatedExtension(HeadlessExtension): - """ - If an extension ever contributed to schema changes in the DB, then we - can't just delete it alltogher without causing problems with our - south migrations. This is a simple class to keep the extension somewhat - invisible to the UI, but visible to Django for the DB needs. - """ - @abstractproperty - def app_name(self): - """ - Name of this extension's primary django application. - (needed for south migrations) - """ - - def contribute_to_settings(self, settings_module): - settings_module['INSTALLED_APPS'].append(self.app_name) - settings_module['STATICFILES_PREPEND_LABEL_APPS'].append(self.app_name) - - @property - def version(self): - return "deprecated" - -class Extension(ILavaServerExtension): - """ - Base class for commmon extensions. - - This class implements most of the :class:`IExtension` interface leaving a - only handful of more concrete methods and properties to be implemented. - """ - - def __init__(self, slug): - self.slug = slug - - @abstractproperty - def app_name(self): - """ - Name of this extension's primary django application. - """ - - @abstractproperty - def main_view_name(self): - """ - Name of the main view - """ - - def get_menu(self): - from django.core.urlresolvers import reverse - return Menu(self.name, reverse(self.main_view_name)) - - @property - def front_page_template(self): - return None - - def get_front_page_context(self): - return {} - - @property - def api_class(self): - """ - Subclass of linaro_django_xmlrpc.models.ExposedAPI for this extension. - - Return None by default for no API. - """ - return None - - def contribute_to_settings(self, settings_module): - settings_module['INSTALLED_APPS'].append(self.app_name) - settings_module['STATICFILES_PREPEND_LABEL_APPS'].append(self.app_name) - - def contribute_to_settings_ex(self, settings_module, settings_object): - pass - - def contribute_to_urlpatterns(self, urlpatterns, mount_point): - from django.conf.urls.defaults import url, include - urlpatterns += [ - url(r'^{mount_point}{slug}/'.format(mount_point=mount_point, slug=self.slug), - include('{app_name}.urls'.format(app_name=self.app_name)))] - - def get_main_url(self): - from django.core.urlresolvers import reverse - return reverse(self.main_view_name) - - -LavaServerExtension = Extension - - -class ExtensionLoadError(Exception): - """ - Exception internally raised by extension loader - """ - - def __init__(self, extension, message): - self.extension = extension - self.message = message - - def __repr__(self): - return "ExtensionLoadError(extension={0!r}, message={1!r})".format( - self.extension, self.message) - - -class ExtensionLoader(object): - """ - Helper to load extensions - """ - - def __init__(self): - # Load this lazily so that others can import this module - self._extensions = None - self._mapper = None - - @property - def xmlrpc_mapper(self): - if self._mapper is None: - from lava_server.xmlrpc import LavaMapper - mapper = LavaMapper() - mapper.register_introspection_methods() - for extension in self.extensions: - api_class = extension.api_class - if api_class is not None: - mapper.register(api_class, extension.slug) - self._mapper = mapper - return self._mapper - - @property - def extensions(self): - """ - List of extensions - """ - - class ExtensionMapping(object): - """ - Class that exposes extensions by application name - """ - - def __init__(self, extension_list): - self._extension_list = extension_list - - def __getattr__(self, attr): - for extension in self._extension_list: - if extension.app_name == attr: - return extension - - class ExtensionList(list): - """ - List with an additional property, useful for Django views - """ - - @property - def as_mapping(self): - return ExtensionMapping(self) - - if self._extensions is None: - self._extensions = ExtensionList() - for name in self._find_extensions(): - try: - extension = self._load_extension(name) - except ExtensionLoadError as ex: - logging.exception( - "Unable to load extension %r: %s", name, ex.message) - else: - self._extensions.append(extension) - return self._extensions - - def contribute_to_settings(self, settings_module, settings_object=None): - """ - Contribute to lava-server settings module. - - The settings_object is optional (it may be None) and allows extensions - to look at the django-debian settings object. The settings_module - argument is a magic dictionary returned by locals() - """ - for extension in self.extensions: - extension.contribute_to_settings(settings_module) - if settings_object is not None: - extension.contribute_to_settings_ex( - settings_module, settings_object) - - def contribute_to_urlpatterns(self, urlpatterns, mount_point): - """ - Contribute to lava-server URL patterns - """ - for extension in self.extensions: - extension.contribute_to_urlpatterns(urlpatterns, mount_point) - - def _find_extensions(self): - return sorted( - pkg_resources.iter_entry_points( - 'lava_server.extensions'), - key=lambda ep: ep.name) - - def _load_extension(self, entrypoint): - """ - Load extension specified by the given name. - Name must be a string like "module:class". Module may be a - package with dotted syntax to address specific module. - - @return Imported extension instance, subclass of ILavaServerExtension - @raises ExtensionLoadError - """ - try: - extension_cls = entrypoint.load() - except ImportError: - logging.exception( - "Unable to load extension entry point: %r", entrypoint) - raise ExtensionLoadError( - entrypoint, - "Unable to load extension entry point") - if not issubclass(extension_cls, ILavaServerExtension): - raise ExtensionLoadError( - extension_cls, - "Class does not implement ILavaServerExtension interface") - try: - extension = extension_cls(entrypoint.name) - except: - raise ExtensionLoadError( - extension_cls, "Unable to instantiate class") - return extension - - -# Global loader instance -loader = ExtensionLoader() === removed directory 'lava_server/htdocs' === removed directory 'lava_server/htdocs/css' === removed directory 'lava_server/htdocs/css/Aristo' === removed directory 'lava_server/htdocs/css/Aristo/images' === removed file 'lava_server/htdocs/css/Aristo/images/bg_fallback.png' Binary files lava_server/htdocs/css/Aristo/images/bg_fallback.png 2011-06-02 22:59:21 +0000 and lava_server/htdocs/css/Aristo/images/bg_fallback.png 1970-01-01 00:00:00 +0000 differ === removed file 'lava_server/htdocs/css/Aristo/images/icon_sprite.png' Binary files lava_server/htdocs/css/Aristo/images/icon_sprite.png 2011-06-02 22:59:21 +0000 and lava_server/htdocs/css/Aristo/images/icon_sprite.png 1970-01-01 00:00:00 +0000 differ === removed file 'lava_server/htdocs/css/Aristo/images/progress_bar.gif' Binary files lava_server/htdocs/css/Aristo/images/progress_bar.gif 2011-06-02 22:59:21 +0000 and lava_server/htdocs/css/Aristo/images/progress_bar.gif 1970-01-01 00:00:00 +0000 differ === removed file 'lava_server/htdocs/css/Aristo/images/slider_handles.png' Binary files lava_server/htdocs/css/Aristo/images/slider_handles.png 2011-06-02 22:59:21 +0000 and lava_server/htdocs/css/Aristo/images/slider_handles.png 1970-01-01 00:00:00 +0000 differ === removed file 'lava_server/htdocs/css/Aristo/images/ui-icons_222222_256x240.png' Binary files lava_server/htdocs/css/Aristo/images/ui-icons_222222_256x240.png 2011-06-02 22:59:21 +0000 and lava_server/htdocs/css/Aristo/images/ui-icons_222222_256x240.png 1970-01-01 00:00:00 +0000 differ === removed file 'lava_server/htdocs/css/Aristo/images/ui-icons_454545_256x240.png' Binary files lava_server/htdocs/css/Aristo/images/ui-icons_454545_256x240.png 2011-06-02 22:59:21 +0000 and lava_server/htdocs/css/Aristo/images/ui-icons_454545_256x240.png 1970-01-01 00:00:00 +0000 differ === removed file 'lava_server/htdocs/css/Aristo/jquery-ui-1.8.7.custom.css' --- lava_server/htdocs/css/Aristo/jquery-ui-1.8.7.custom.css 2011-09-16 10:02:59 +0000 +++ lava_server/htdocs/css/Aristo/jquery-ui-1.8.7.custom.css 1970-01-01 00:00:00 +0000 @@ -1,756 +0,0 @@ -/* - * jQuery UI CSS Framework 1.8.7 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - */ - -/* Layout helpers -----------------------------------*/ -.ui-helper-hidden { display: none; } -.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } -.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } -.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } -.ui-helper-clearfix { display: inline-block; } -/* required comment for clearfix to work in Opera \*/ -* html .ui-helper-clearfix { height:1%; } -.ui-helper-clearfix { display:block; } -/* end clearfix */ -.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } - - -/* Interaction Cues -----------------------------------*/ -.ui-state-disabled { cursor: default !important; } - - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } - - -/* Misc visuals -----------------------------------*/ - -/* Overlays */ -.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } - - -/* - * jQuery UI CSS Framework 1.8.7 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - * - * To view and modify this theme, visit http://jqueryui.com/themeroller/?ctl=themeroller - */ - - -/* Component containers -----------------------------------*/ -.ui-widget { font-family: Arial,sans-serif; font-size: 1.1em; } -.ui-widget .ui-widget { font-size: 1em; } -.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Arial,sans-serif; font-size: 1em; } -.ui-widget-content { border: 1px solid #B6B6B6; background: #ffffff; color: #4F4F4F; } -.ui-widget-content a { color: #4F4F4F; } -.ui-widget-header { border: 1px solid #B6B6B6; color: #4F4F4F; font-weight: bold; } -.ui-widget-header { - background: url(images/bg_fallback.png) 0 0 repeat-x; - background: -webkit-gradient( - linear, - left bottom, - left top, - color-stop(1, rgb(237,237,237)), - color-stop(0, rgb(196,196,196)) - ); - background: -moz-linear-gradient( - center top, - rgb(237,237,237), - rgb(196,196,196) - ); -} -.ui-widget-header a { color: #4F4F4F; } - -/* Interaction states -----------------------------------*/ -.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #B6B6B6; font-weight: normal; color: #4F4F4F; } -.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { - background: url(images/bg_fallback.png) 0 0 repeat-x; - background: -webkit-gradient( - linear, - left bottom, - left top, - color-stop(1, rgb(237,237,237)), - color-stop(0, rgb(196,196,196)) - ); - background: -moz-linear-gradient( - center top, - rgb(237,237,237), - rgb(196,196,196) - ); - -webkit-box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset; - -moz-box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset; - box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset; -} -.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #4F4F4F; text-decoration: none; } -.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #9D9D9D; font-weight: normal; color: #313131; } -.ui-state-hover a, .ui-state-hover a:hover { color: #313131; text-decoration: none; } -.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { - outline: none; - color: #1c4257; border: 1px solid #7096ab; - background: url(images/bg_fallback.png) 0 -50px repeat-x; - background: -webkit-gradient( - linear, - left bottom, - left top, - color-stop(1, rgb(185,224,245)), - color-stop(0, rgb(146,189,214)) - ); - background: -moz-linear-gradient( - center top, - rgb(185,224,245), - rgb(146,189,214) - ); - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} -.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #313131; text-decoration: none; } -.ui-widget :active { outline: none; } - -/* Interaction Cues -----------------------------------*/ -.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight { border: 1px solid #d2dbf4; background: #f4f8fd; color: #0d2054; -moz-border-radius: 0 !important; -webkit-border-radius: 0 !important; border-radius: 0 !important; } -.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } -.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error { border: 1px solid #e2d0d0; background: #fcf0f0; color: #280b0b; -moz-border-radius: 0 !important; -webkit-border-radius: 0 !important; border-radius: 0 !important; } -.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; } -.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; } -.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } -.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } -.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } -.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } -.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } -.ui-state-default .ui-icon { background-image: url(images/ui-icons_454545_256x240.png); } -.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } -.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } -.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } -.ui-state-error .ui-icon, .ui-state-error-text .ui-icon { background: url(images/icon_sprite.png) -16px 0 no-repeat !important; } -.ui-state-highlight .ui-icon, .ui-state-error .ui-icon { margin-top: -1px; } - -/* positioning */ -.ui-icon-carat-1-n { background-position: 0 0; } -.ui-icon-carat-1-ne { background-position: -16px 0; } -.ui-icon-carat-1-e { background-position: -32px 0; } -.ui-icon-carat-1-se { background-position: -48px 0; } -.ui-icon-carat-1-s { background-position: -64px 0; } -.ui-icon-carat-1-sw { background-position: -80px 0; } -.ui-icon-carat-1-w { background-position: -96px 0; } -.ui-icon-carat-1-nw { background-position: -112px 0; } -.ui-icon-carat-2-n-s { background-position: -128px 0; } -.ui-icon-carat-2-e-w { background-position: -144px 0; } -.ui-icon-triangle-1-n { background-position: 0 -16px; } -.ui-icon-triangle-1-ne { background-position: -16px -16px; } -.ui-icon-triangle-1-e { background-position: -32px -16px; } -.ui-icon-triangle-1-se { background-position: -48px -16px; } -.ui-icon-triangle-1-s { background-position: -64px -16px; } -.ui-icon-triangle-1-sw { background-position: -80px -16px; } -.ui-icon-triangle-1-w { background-position: -96px -16px; } -.ui-icon-triangle-1-nw { background-position: -112px -16px; } -.ui-icon-triangle-2-n-s { background-position: -128px -16px; } -.ui-icon-triangle-2-e-w { background-position: -144px -16px; } -.ui-icon-arrow-1-n { background-position: 0 -32px; } -.ui-icon-arrow-1-ne { background-position: -16px -32px; } -.ui-icon-arrow-1-e { background-position: -32px -32px; } -.ui-icon-arrow-1-se { background-position: -48px -32px; } -.ui-icon-arrow-1-s { background-position: -64px -32px; } -.ui-icon-arrow-1-sw { background-position: -80px -32px; } -.ui-icon-arrow-1-w { background-position: -96px -32px; } -.ui-icon-arrow-1-nw { background-position: -112px -32px; } -.ui-icon-arrow-2-n-s { background-position: -128px -32px; } -.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -.ui-icon-arrow-2-e-w { background-position: -160px -32px; } -.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -.ui-icon-arrowstop-1-n { background-position: -192px -32px; } -.ui-icon-arrowstop-1-e { background-position: -208px -32px; } -.ui-icon-arrowstop-1-s { background-position: -224px -32px; } -.ui-icon-arrowstop-1-w { background-position: -240px -32px; } -.ui-icon-arrowthick-1-n { background-position: 0 -48px; } -.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -.ui-icon-arrowthick-1-e { background-position: -32px -48px; } -.ui-icon-arrowthick-1-se { background-position: -48px -48px; } -.ui-icon-arrowthick-1-s { background-position: -64px -48px; } -.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -.ui-icon-arrowthick-1-w { background-position: -96px -48px; } -.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -.ui-icon-arrow-4 { background-position: 0 -80px; } -.ui-icon-arrow-4-diag { background-position: -16px -80px; } -.ui-icon-extlink { background-position: -32px -80px; } -.ui-icon-newwin { background-position: -48px -80px; } -.ui-icon-refresh { background-position: -64px -80px; } -.ui-icon-shuffle { background-position: -80px -80px; } -.ui-icon-transfer-e-w { background-position: -96px -80px; } -.ui-icon-transferthick-e-w { background-position: -112px -80px; } -.ui-icon-folder-collapsed { background-position: 0 -96px; } -.ui-icon-folder-open { background-position: -16px -96px; } -.ui-icon-document { background-position: -32px -96px; } -.ui-icon-document-b { background-position: -48px -96px; } -.ui-icon-note { background-position: -64px -96px; } -.ui-icon-mail-closed { background-position: -80px -96px; } -.ui-icon-mail-open { background-position: -96px -96px; } -.ui-icon-suitcase { background-position: -112px -96px; } -.ui-icon-comment { background-position: -128px -96px; } -.ui-icon-person { background-position: -144px -96px; } -.ui-icon-print { background-position: -160px -96px; } -.ui-icon-trash { background-position: -176px -96px; } -.ui-icon-locked { background-position: -192px -96px; } -.ui-icon-unlocked { background-position: -208px -96px; } -.ui-icon-bookmark { background-position: -224px -96px; } -.ui-icon-tag { background-position: -240px -96px; } -.ui-icon-home { background-position: 0 -112px; } -.ui-icon-flag { background-position: -16px -112px; } -.ui-icon-calendar { background-position: -32px -112px; } -.ui-icon-cart { background-position: -48px -112px; } -.ui-icon-pencil { background-position: -64px -112px; } -.ui-icon-clock { background-position: -80px -112px; } -.ui-icon-disk { background-position: -96px -112px; } -.ui-icon-calculator { background-position: -112px -112px; } -.ui-icon-zoomin { background-position: -128px -112px; } -.ui-icon-zoomout { background-position: -144px -112px; } -.ui-icon-search { background-position: -160px -112px; } -.ui-icon-wrench { background-position: -176px -112px; } -.ui-icon-gear { background-position: -192px -112px; } -.ui-icon-heart { background-position: -208px -112px; } -.ui-icon-star { background-position: -224px -112px; } -.ui-icon-link { background-position: -240px -112px; } -.ui-icon-cancel { background-position: 0 -128px; } -.ui-icon-plus { background-position: -16px -128px; } -.ui-icon-plusthick { background-position: -32px -128px; } -.ui-icon-minus { background-position: -48px -128px; } -.ui-icon-minusthick { background-position: -64px -128px; } -.ui-icon-close { background-position: -80px -128px; } -.ui-icon-closethick { background-position: -96px -128px; } -.ui-icon-key { background-position: -112px -128px; } -.ui-icon-lightbulb { background-position: -128px -128px; } -.ui-icon-scissors { background-position: -144px -128px; } -.ui-icon-clipboard { background-position: -160px -128px; } -.ui-icon-copy { background-position: -176px -128px; } -.ui-icon-contact { background-position: -192px -128px; } -.ui-icon-image { background-position: -208px -128px; } -.ui-icon-video { background-position: -224px -128px; } -.ui-icon-script { background-position: -240px -128px; } -.ui-icon-alert { background-position: 0 -144px; } -.ui-icon-info { background: url(images/icon_sprite.png) 0 0 no-repeat !important; } -.ui-icon-notice { background-position: -32px -144px; } -.ui-icon-help { background-position: -48px -144px; } -.ui-icon-check { background-position: -64px -144px; } -.ui-icon-bullet { background-position: -80px -144px; } -.ui-icon-radio-off { background-position: -96px -144px; } -.ui-icon-radio-on { background-position: -112px -144px; } -.ui-icon-pin-w { background-position: -128px -144px; } -.ui-icon-pin-s { background-position: -144px -144px; } -.ui-icon-play { background-position: 0 -160px; } -.ui-icon-pause { background-position: -16px -160px; } -.ui-icon-seek-next { background-position: -32px -160px; } -.ui-icon-seek-prev { background-position: -48px -160px; } -.ui-icon-seek-end { background-position: -64px -160px; } -.ui-icon-seek-start { background-position: -80px -160px; } -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ -.ui-icon-seek-first { background-position: -80px -160px; } -.ui-icon-stop { background-position: -96px -160px; } -.ui-icon-eject { background-position: -112px -160px; } -.ui-icon-volume-off { background-position: -128px -160px; } -.ui-icon-volume-on { background-position: -144px -160px; } -.ui-icon-power { background-position: 0 -176px; } -.ui-icon-signal-diag { background-position: -16px -176px; } -.ui-icon-signal { background-position: -32px -176px; } -.ui-icon-battery-0 { background-position: -48px -176px; } -.ui-icon-battery-1 { background-position: -64px -176px; } -.ui-icon-battery-2 { background-position: -80px -176px; } -.ui-icon-battery-3 { background-position: -96px -176px; } -.ui-icon-circle-plus { background-position: 0 -192px; } -.ui-icon-circle-minus { background-position: -16px -192px; } -.ui-icon-circle-close { background-position: -32px -192px; } -.ui-icon-circle-triangle-e { background-position: -48px -192px; } -.ui-icon-circle-triangle-s { background-position: -64px -192px; } -.ui-icon-circle-triangle-w { background-position: -80px -192px; } -.ui-icon-circle-triangle-n { background-position: -96px -192px; } -.ui-icon-circle-arrow-e { background-position: -112px -192px; } -.ui-icon-circle-arrow-s { background-position: -128px -192px; } -.ui-icon-circle-arrow-w { background-position: -144px -192px; } -.ui-icon-circle-arrow-n { background-position: -160px -192px; } -.ui-icon-circle-zoomin { background-position: -176px -192px; } -.ui-icon-circle-zoomout { background-position: -192px -192px; } -.ui-icon-circle-check { background-position: -208px -192px; } -.ui-icon-circlesmall-plus { background-position: 0 -208px; } -.ui-icon-circlesmall-minus { background-position: -16px -208px; } -.ui-icon-circlesmall-close { background-position: -32px -208px; } -.ui-icon-squaresmall-plus { background-position: -48px -208px; } -.ui-icon-squaresmall-minus { background-position: -64px -208px; } -.ui-icon-squaresmall-close { background-position: -80px -208px; } -.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -.ui-icon-grip-solid-vertical { background-position: -32px -224px; } -.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -.ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ -.ui-corner-tl { -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; border-top-left-radius: 3px; } -.ui-corner-tr { -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; border-top-right-radius: 3px; } -.ui-corner-bl { -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; } -.ui-corner-br { -moz-border-radius-bottomright: 3px; -webkit-border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; } -.ui-corner-top { -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; border-top-left-radius: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; border-top-right-radius: 3px; } -.ui-corner-bottom { -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; -moz-border-radius-bottomright: 3px; -webkit-border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; } -.ui-corner-right { -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; border-top-right-radius: 3px; -moz-border-radius-bottomright: 3px; -webkit-border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; } -.ui-corner-left { -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; border-top-left-radius: 3px; -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; } -.ui-corner-all { -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; } - -/* Overlays */ -.ui-widget-overlay { background: #262b33; opacity: .70;filter:Alpha(Opacity=70); } -.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #000000; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* - * jQuery UI Resizable 1.8.7 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Resizable#theming - */ -.ui-resizable { position: relative;} -.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;} -.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } -.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } -.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } -.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } -.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } -.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } -.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } -.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } -.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* - * jQuery UI Selectable 1.8.7 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Selectable#theming - */ -.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } -/* - * jQuery UI Accordion 1.8.7 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Accordion#theming - */ -/* IE/Win - Fix animation bug - #4615 */ -.ui-accordion { width: 100%; } -.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } -.ui-accordion .ui-accordion-header, .ui-accordion .ui-accordion-content { -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; } -.ui-accordion .ui-accordion-li-fix { display: inline; } -.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } -.ui-accordion .ui-accordion-header a { display: block; font-size: 12px; font-weight: bold; padding: .5em .5em .5em .7em; } -.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } -.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } -.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } -.ui-accordion .ui-accordion-content-active { display: block; }/* - * jQuery UI Autocomplete 1.8.7 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Autocomplete#theming - */ -.ui-autocomplete { - position: absolute; cursor: default; z-index: 3; - -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; - -moz-box-shadow: 0 1px 5px rgba(0,0,0,0.3); - -webkit-box-shadow: 0 1px 5px rgba(0,0,0,0.3); -} - -/* workarounds */ -* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ - -/* - * jQuery UI Menu 1.8.7 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Menu#theming - */ -.ui-menu { - list-style:none; - padding: 2px; - margin: 0; - display:block; - float: left; -} -.ui-menu .ui-menu { - margin-top: -3px; -} -.ui-menu .ui-menu-item { - margin:0; - padding: 0; - zoom: 1; - float: left; - clear: left; - width: 100%; -} -.ui-menu .ui-menu-item a { - text-decoration:none; - display:block; - padding:.2em .4em; - line-height:1.5; - zoom:1; -} -.ui-menu .ui-menu-item a.ui-state-hover, -.ui-menu .ui-menu-item a.ui-state-active { - font-weight: normal; - margin: -1px; - background: #5f83b9; - color: #FFFFFF; - text-shadow: 0px 1px 1px #234386; - border-color: #466086; - -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; -} -/* - * jQuery UI Button 1.8.7 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Button#theming - */ -.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; -webkit-user-select: none; -moz-user-select: none; user-select: none; } /* the overflow property removes extra width in IE */ -.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ -button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ -.ui-button-icons-only { width: 3.4em; } -button.ui-button-icons-only { width: 3.7em; } - -/* button animation properties */ -.ui-button { - -webkit-transition: -webkit-box-shadow 0.25s ease-in-out; - -moz-transition: -moz-box-shadow 0.25s ease-in-out; - -o-transition: -o-box-shadow 0.25s ease-in-out; -} - -/*states*/ -.ui-button.ui-state-hover { - -moz-box-shadow: 0 0 8px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.8) inset; - -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.8) inset; - box-shadow: 0 0 8px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.8) inset; -} -.ui-button.ui-state-focus { - outline: none; - color: #1c4257; border-color: #7096ab; - background: url(images/bg_fallback.png) 0 -50px repeat-x; - background: -webkit-gradient( - linear, - left bottom, - left top, - color-stop(1, rgb(185,224,245)), - color-stop(0, rgb(146,189,214)) - ); - background: -moz-linear-gradient( - center top, - rgb(185,224,245), - rgb(146,189,214) - ); - -moz-box-shadow: 0 0 8px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.8) inset; - -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.8) inset; - box-shadow: 0 0 8px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.8) inset; -} - -/*button text element */ -.ui-button .ui-button-text { display: block; line-height: 1.4; font-size: 14px; font-weight: bold; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6); } -.ui-button-text-only .ui-button-text { padding: .4em 1em; } -.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } -.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } -.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } -.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } -/* no icon support for input elements, provide padding by default */ -input.ui-button { font-size: 14px; font-weight: bold; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6); padding: 0 1em !important; height: 33px; } -/*remove submit button internal padding in Firefox*/ -input.ui-button::-moz-focus-inner { - border: 0; - padding: 0; -} -/* fix webkits handling of the box model */ -@media screen and (-webkit-min-device-pixel-ratio:0) { - input.ui-button { - height: 31px !important; - } -} - - -/*button icon element(s) */ -.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } -.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } -.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } -.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } -.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } - -/*button sets*/ -.ui-buttonset { margin-right: 7px; } -.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } -.ui-buttonset .ui-button.ui-state-active { color: #1c4257; border-color: #7096ab; } -.ui-buttonset .ui-button.ui-state-active { - background-image: -webkit-gradient( - linear, - left bottom, - left top, - color-stop(1, rgb(185,224,245)), - color-stop(0, rgb(146,189,214)) - ); - background-image: -moz-linear-gradient( - center top, - rgb(185,224,245), - rgb(146,189,214) - ); - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} - -/* workarounds */ -button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ -/* - * jQuery UI Dialog 1.8.7 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Dialog#theming - */ -.ui-dialog { position: absolute; padding: 0; width: 300px; overflow: hidden; } -.ui-dialog { - -webkit-box-shadow: 0 2px 12px rgba(0,0,0,0.6); - -moz-box-shadow: 0 2px 12px rgba(0,0,0,0.6); -} -.ui-dialog .ui-dialog-titlebar { padding: 0.7em 1em 0.6em 1em; position: relative; border: none; border-bottom: 1px solid #979797; -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; } -.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; font-size: 14px; text-shadow: 0 1px 0 rgba(255,255,255,0.5); } -.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .8em; top: 55%; width: 16px; margin: -10px 0 0 0; padding: 0; height: 16px; } -.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; background: url(images/icon_sprite.png) 0 -16px no-repeat; } -.ui-dialog .ui-dialog-titlebar-close:hover span { background-position: -16px -16px; } -.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; border: 0; } -.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } -.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } -.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } -.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } -.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } -.ui-draggable .ui-dialog-titlebar { cursor: move; } -/* - * jQuery UI Slider 1.8.7 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Slider#theming - */ -.ui-slider { position: relative; text-align: left; background: #d7d7d7; z-index: 1; } -.ui-slider { -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.5) inset; -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.5) inset; box-shadow: 0 1px 2px rgba(0,0,0,0.5) inset; } -.ui-slider .ui-slider-handle { background: url(images/slider_handles.png) 0px -23px no-repeat; position: absolute; z-index: 2; width: 23px; height: 23px; cursor: default; border: none; outline: none; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; } -.ui-slider .ui-state-hover, .ui-slider .ui-state-active { background-position: 0 0; } -.ui-slider .ui-slider-range { background: #a3cae0; position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } -.ui-slider .ui-slider-range { -moz-box-shadow: 0 1px 2px rgba(17,35,45,0.6) inset; -webkit-box-shadow: 0 1px 2px rgba(17,35,45,0.6) inset; box-shadow: 0 1px 2px rgba(17,35,45,0.6) inset; } - - -.ui-slider-horizontal { height: 5px; } -.ui-slider-horizontal .ui-slider-handle { top: -8px; margin-left: -13px; } -.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } -.ui-slider-horizontal .ui-slider-range-min { left: 0; } -.ui-slider-horizontal .ui-slider-range-max { right: 0; } - -.ui-slider-vertical { width: 5px; height: 100px; } -.ui-slider-vertical .ui-slider-handle { left: -8px; margin-left: 0; margin-bottom: -13px; } -.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } -.ui-slider-vertical .ui-slider-range-min { bottom: 0; } -.ui-slider-vertical .ui-slider-range-max { top: 0; }/* - * jQuery UI Tabs 1.8.7 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Tabs#theming - */ -.ui-tabs { position: relative; zoom: 1; border: 0; background: transparent; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ -.ui-tabs .ui-tabs-nav { margin: 0; padding: 0; background: transparent; border-width: 0 0 1px 0; } -.ui-tabs .ui-tabs-nav { - -moz-border-radius: 0; - -webkit-border-radius: 0; - border-radius: 0; -} -.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } -.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; font-size: 12px; font-weight: bold; text-shadow: 0 1px 0 rgba(255,255,255,0.5); } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; background: #fff; border-color: #B6B6B6; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; outline: none; } -.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ -.ui-tabs .ui-tabs-panel { display: block; border-width: 0 1px 1px 1px; padding: 1em 1.4em; background: none; } -.ui-tabs .ui-tabs-panel { background: #FFF; - -moz-border-radius: 0; - -webkit-border-radius: 0; - border-radius: 0; -} -.ui-tabs .ui-tabs-hide { display: none !important; } -/* - * jQuery UI Datepicker 1.8.7 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Datepicker#theming - */ -.ui-datepicker { width: 17em; padding: 0; display: none; border-color: #DDDDDD; } -.ui-datepicker { - -moz-box-shadow: 0 4px 8px rgba(0,0,0,0.5); - -webkit-box-shadow: 0 4px 8px rgba(0,0,0,0.5); - box-shadow: 0 4px 8px rgba(0,0,0,0.5); -} -.ui-datepicker .ui-datepicker-header { position:relative; padding:.35em 0; border: none; border-bottom: 1px solid #B6B6B6; -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; } -.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 6px; width: 1.8em; height: 1.8em; } -.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { border: 1px none; } -.ui-datepicker .ui-datepicker-prev { left:2px; } -.ui-datepicker .ui-datepicker-next { right:2px; } -.ui-datepicker .ui-datepicker-prev span { background-position: 0px -32px !important; } -.ui-datepicker .ui-datepicker-next span { background-position: -16px -32px !important; } -.ui-datepicker .ui-datepicker-prev-hover span { background-position: 0px -48px !important; } -.ui-datepicker .ui-datepicker-next-hover span { background-position: -16px -48px !important; } -.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; background: url(images/icon_sprite.png) no-repeat; } -.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; font-size: 12px; text-shadow: 0 1px 0 rgba(255,255,255,0.6); } -.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } -.ui-datepicker select.ui-datepicker-month-year {width: 100%;} -.ui-datepicker select.ui-datepicker-month, -.ui-datepicker select.ui-datepicker-year { width: 49%;} -.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } -.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } -.ui-datepicker td { border: 0; padding: 1px; } -.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } -.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } -.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } -.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } -.ui-datepicker .ui-state-default { background: transparent; border-color: #FFF; } -.ui-datepicker .ui-state-active { background: #5F83B9; border-color: #5F83B9; color: #FFF; font-weight: bold; text-shadow: 0 1px 1px #234386; } - -/* with multiple calendars */ -.ui-datepicker.ui-datepicker-multi { width:auto; } -.ui-datepicker-multi .ui-datepicker-group { float:left; } -.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } -.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } -.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } -.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } -.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } -.ui-datepicker-row-break { clear:both; width:100%; } - -/* RTL support */ -.ui-datepicker-rtl { direction: rtl; } -.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } -.ui-datepicker-rtl .ui-datepicker-group { float:right; } -.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } -.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } - -/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ -.ui-datepicker-cover { - display: none; /*sorry for IE5*/ - display/**/: block; /*sorry for IE5*/ - position: absolute; /*must have*/ - z-index: -1; /*must have*/ - filter: mask(); /*must have*/ - top: -4px; /*must have*/ - left: -4px; /*must have*/ - width: 200px; /*must have*/ - height: 200px; /*must have*/ -}/* - * jQuery UI Progressbar 1.8.7 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Progressbar#theming - */ -.ui-progressbar { height: 12px; text-align: left; background: #FFF url(images/progress_bar.gif) 0 -14px repeat-x; } -.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; background: url(images/progress_bar.gif) 0 0 repeat-x; } - -/* Extra Input Field Styling */ -.ui-form textarea, .ui-form input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]) { - padding: 3px; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px; - border: 1px solid #cecece; - outline: none; - -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.1) inset, 0 1px 0 rgba(255,255,255,0.2); - -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.1) inset, 0 1px 0 rgba(255,255,255,0.2); - box-shadow: 0 1px 3px rgba(0,0,0,0.1) inset, 0 1px 0 rgba(255,255,255,0.2); - -webkit-transition: all 0.25s ease-in-out; - -moz-transition: all 0.25 ease-in-out; - -o-transition: all 0.25s ease-in-out; -} -.ui-form textarea:hover, .ui-form input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):hover { - border: 1px solid #bdbdbd; - -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.2) inset, 0 1px 0 rgba(255,255,255,0.2); - -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.2) inset, 0 1px 0 rgba(255,255,255,0.2); - box-shadow: 0 1px 3px rgba(0,0,0,0.2) inset, 0 1px 0 rgba(255,255,255,0.2); -} -.ui-form textarea:focus, .ui-form input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):focus { - border: 1px solid #95bdd4; - -webkit-box-shadow: 0 2px 3px rgba(161,202,226,0.5) inset, 0 1px 0 rgba(255,255,255,0.2); - -moz-box-shadow: 0 2px 3px rgba(161,202,226,0.5) inset, 0 1px 0 rgba(255,255,255,0.2); - box-shadow: 0 2px 3px rgba(161,202,226,0.5) inset, 0 1px 0 rgba(255,255,255,0.2); -} \ No newline at end of file === removed file 'lava_server/htdocs/css/default.css' --- lava_server/htdocs/css/default.css 2013-09-11 19:34:55 +0000 +++ lava_server/htdocs/css/default.css 1970-01-01 00:00:00 +0000 @@ -1,548 +0,0 @@ -html { - margin: 0; - padding: 0; - height: 100%; -} - -body { - padding: 0; - margin: 0; - height: 100%; - color: #EEE; - font-family: Ubuntu, Helvetica Neue, Verdana, sans-serif; -} - -body, input, th, td { - font-family: Ubuntu, Helvetica Neue, Verdana, sans-serif; - font-size: 10pt; -} - -code { - font-family: UbuntuBeta Mono, Lucida Console, Consolas, monospace; -} - -a { - color: #2e3436; -} - -a:hover { - color: #6C9D10; -} - - -/* Selection style */ - -::selection { - color: white; - background-color: #6C9D10; -} - -::-moz-selection { - color: white; - background-color: #6C9D10; -} - -::-webkit-selection { - color: white; - background-color: #6C9D10; -} - -/* The master container of all things, similar to body */ - -#lava-container { - color: #EEE; - position: relative; - height: 100%; /* IE6 */ - height: auto !important; /* good browsers */ - min-height: 100%; /* good browsers */ - min-width: 860px; -} - -/* Header */ - -#lava-panel { - color: #888a85; - background: -moz-linear-gradient(center top , #FFFFFF 0%, #F5F5F5 100%) repeat scroll 0 0 transparent; - border-bottom: 1px solid #dfdfdf; - - font-family: 'Cantarell', sans-serif; - font-weight: bold; - font-size: 14px; - - /* - border-bottom: 1px solid #333; - */ - - display: box; - display: -moz-box; - display: -webkit-box; - - height: 50px; - width: 100%; - position: relative; - z-index: 1000; - - -} - -#lava-panel .lava-panel-element .lava-panel-menu-text { - display: table-cell; - vertical-align: middle; - padding: 1.2ex 1ex; -} - -#lava-panel .lava-panel-element:hover { -} - -#lava-panel .lava-panel-element:active { - outline: none; -} - -#lava-panel .lava-panel-element{ - display: table-cell; - outline: none; -} - -#lava-panel .lava-panel-element.lava-indicator { - box-pack: end; - -moz-box-pack: end; - -webkit-box-pack: end; -} - -#lava-panel .lava-panel-element.has-menu { - cursor: pointer; -} - -#lava-panel .lava-panel-element.active { - color: white; - background: #98c13d; -} - -#lava-panel a { - color: inherit; - text-decoration: none; -} - -/* Panel menu items */ - -#lava-menu-bar-right, #lava-menu-bar-left { - height: 30px; - position: absolute; - top: 15px; - white-space: nowrap; - z-index: 1000; -} - -#lava-menu-bar-left { - left: 30px; - padding-left: 4px; -} - -#lava-menu-bar-right { - right: 30px; - padding-right: 5px; -} - -#lava-panel ul.lava-panel-menu { - list-style: none; - - position: absolute; - left: 0; - top: -1000px; - - background: white; - color: #888a85; - - border: 1px solid #BBB; - - margin: 0; - padding: 3px 0; - box-shadow: 5px 5px 15px rgba(0, 0, 0, 0.3); - - z-index: 1000; -} - -#lava-panel ul.lava-panel-menu li { - margin: 0; - padding: 0; - font-size: 10pt; - font-weight: bold; -} - -#lava-panel ul.lava-panel-menu li a { - display: block; - padding: 2pt 1ex; -} - -#lava-panel ul.lava-panel-menu li a:hover { - color: white; - background: #98c13d; -} - -/* User indicator */ - -#lava-user-indicator { - text-align: center; -} - -#lava-user-indicator ul.lava-panel-menu { - text-align: left; -} - -#lava-user-indicator img { - vertical-align: top; -} - -#lava-user-indicator .sign-in-hint { - color: #888a85; -} - -/* AJAX indicator */ - -#lava-ajax-indicator { - visibility: hidden; - opacity: 0.0; -} - -#lava-ajax-indicator img { - vertical-align: middle; -} - -/* Instance name indicator */ - -#lava-instance-name-indicator { - text-align: center; - padding-right: 20px; - vertical-align: middle; -} - -/* Logo */ - -#lava-logo-caption { - color: #739C18 !important; - font-weight: 900; - text-shadow: 0.1em 0.1em #c0e0c0 !important; -} - -/* Around content area */ - -#lava-around-content { - margin: 1em 3em; - background: #E9E9E9; - border: 1px solid #dfdfdf; - box-shadow: 0 0 3px rgba(0, 0, 0, 0.2); - color: #888a85; -} - -#lava-around-content:before { - display: block; - content: " "; - width: 100%; - height: 360px; - position: absolute; - top: 0; - left: 0; - z-index: -1000; -} - -/* Breadcrumbs */ - -#lava-breadcrumbs { - font-size: 10pt; - margin: 0; - padding: 10px; -} - -#lava-breadcrumbs ul { - display: inline-block; - margin: 0 0 0 1ex; - padding: 0; -} - -#lava-breadcrumbs ul li { - list-style: none; - display: inline; - margin: 0; - padding: 0; -} - -#lava-breadcrumbs ul li a { - text-decoration: underline; - color: inherit; -} - -#lava-breadcrumbs ul li:before { - content: " » "; -} - -#lava-breadcrumbs ul li:first-child:before { - content: ""; -} - -#lava-content-and-sidebar, -#lava-content-without-sidebar { - color: #444; - background-color: #F5F5F5; - border-top: 1px solid #DFDFDF; - - overflow-x: auto; - - display: table; - width: 100%; -} - - -/* Sidebar */ - -#lava-sidebar { - display: table-cell; - vertical-align: top; - - width: 230px; - text-align: justify; - - padding: 1ex; -} - -/* Content */ - -#lava-content { - display: table-cell; - vertical-align: top; - - padding: 1ex; -} - -/* Footer */ - -#lava-footer-sanitizer { - display: block; - content: " "; - padding-bottom: 100px; -} - -#lava-footer { - position: absolute; - bottom: 0; - left: 0; - right: 0; - clear: both; - - background: -moz-linear-gradient(center top , #F5F5F5 0%, #FFFFFF 100%) repeat scroll 0 0 transparent; - border-top: 1px solid #dfdfdf; - color: #888a85; - - margin: 0 auto; - height: 100px; - - text-align: center; - -} - -#lava-footer ul { - margin: 1em 1ex; - padding: 0; - list-style-type: none; -} - -#lava-footer ul li { - margin-left: 1ex; - padding: 0; - display: inline; -} - -#lava-footer ul li:before { - content: " | "; - margin-right: 1ex; -} - -#lava-footer ul li:first-child:before { - content: ""; -} - -/* Text listings */ - -ol.file_listing { - font-family: monospace; -} - -ol.file_listing li:target { - outline: 1px solid red; -} - -ol.file_listing li a:hover { - text-decoration: underline; -} - -ol.file_listing li a { - text-decoration: none; - color: inherit; -} - -/* Form styles */ - -table.form_helper { - border-collapse: collapse; -} - -table.form_helper th { - vertical-align: top; - text-align: right; - padding: 1ex; -} - -table.form_helper td { - padding: 1ex; -} - -table.form_helper input[type=text] { - width: 100%; -} - -table.form_helper p.help_text { - margin: 0.2ex 1ex; - color: #888a85; -} - -table.form_helper tr { - border-spacing: 0; - padding-top: 1ex; -} - -table.form_helper div.ui-state-error { - padding: 1ex; -} - -table.form_helper ul.errorlist { - list-style: none; - padding: 0; - margin: 0; -} - -/* Misc items */ - -.lava-chart { - clear: both; -} - - -h1 { - color: #98c13d; - clear: none; -} - -h2 { - color: #98c13d; - clear: none; -} - -h3 { - color: #98c13d; - clear: none; -} - -h4 { - clear: none; -} - -/* Console snippets */ - -div.console { - background-color: #6C9D10; - color: white; - border: 3px solid #000; - padding: 0.5ex; - overflow-x: scroll; -} - -div.console code { - white-space: pre-wrap; -} - -div.console ::selection { - color: #6C9D10; - background-color: white; -} - -div.console ::-moz-selection { - color: #6C9D10; - background-color: white; -} - -div.console ::-webkit-selection { - color: #6C9D10; - background-color: white; -} - -/* Sidebar UI */ -#lava-sidebar ul li { - background: url(../images/lin-bullet.gif) no-repeat left 2px; - list-style-type: none; - padding-left: 20px; -} - -#lava-sidebar span.has-tooltip { - border-bottom: 1px dotted; -} - -#lava-sidebar dl { - margin: 0 0 0 1em; - padding: 0; -} - -#lava-sidebar dt { - font-weight: bold; - margin: 0; - padding: 0; -} - -#lava-sidebar dd { - margin: 0 0 0.5ex 1em; - padding: 0; -} - -#lava-sidebar p.help_text { - color: #888a85; - padding: 2pt; -} - -#lava-sidebar .help-button { - margin: 0 0 0 0.5em; - font-size: 7pt; - font-weight: bold; - cursor: help; - background-color: #555; - color: white; - padding: 0.3em; -} - -#lava-sidebar ul { - margin: 0 0 0 1em; - padding: 0 0 0 0; - list-style-position: inside; - list-style-type: square; -} - -#lava-sidebar dd ul { - margin: 0 0 0 0; - padding: 0 0 0 0; -} - -#lava-sidebar dd p { - margin: 0.2ex 0; -} - -#lava-sidebar h3 { - margin: 2ex 0 1ex 0; - padding: 0 0 0 0; - font-size: 12pt; - font-weight: bold; - line-height: 1.2ex; - color: inherit; -} - -#lava-sidebar h3 + p { - margin: 0; - text-indent: 1ex; -} - === removed file 'lava_server/htdocs/css/demo_table_jui.css' --- lava_server/htdocs/css/demo_table_jui.css 2013-09-11 19:34:55 +0000 +++ lava_server/htdocs/css/demo_table_jui.css 1970-01-01 00:00:00 +0000 @@ -1,522 +0,0 @@ -/* - * File: demo_table_jui.css - * CVS: $Id$ - * Description: CSS descriptions for DataTables demo pages - * Author: Allan Jardine - * Created: Tue May 12 06:47:22 BST 2009 - * Modified: $Date$ by $Author$ - * Language: CSS - * Project: DataTables - * - * Copyright 2009 Allan Jardine. All Rights Reserved. - * - * *************************************************************************** - * DESCRIPTION - * - * The styles given here are suitable for the demos that are used with the standard DataTables - * distribution (see www.datatables.net). You will most likely wish to modify these styles to - * meet the layout requirements of your site. - * - * Common issues: - * 'full_numbers' pagination - I use an extra selector on the body tag to ensure that there is - * no conflict between the two pagination types. If you want to use full_numbers pagination - * ensure that you either have "example_alt_pagination" as a body class name, or better yet, - * modify that selector. - * Note that the path used for Images is relative. All images are by default located in - * ../images/ - relative to this CSS file. - */ - - -/* - * jQuery UI specific styling - */ - -.paging_two_button .ui-button { - float: left; - cursor: pointer; - * cursor: hand; -} - -.paging_full_numbers .ui-button { - padding: 2px 6px; - margin: 0; - cursor: pointer; - * cursor: hand; -} - -.dataTables_paginate .ui-button { - margin-right: -0.1em !important; -} - -.paging_full_numbers { - width: 350px !important; -} - -.dataTables_wrapper .ui-toolbar { - padding: 5px; -} - -.dataTables_paginate { - width: auto; -} - -.dataTables_info { - padding-top: 3px; -} - -table.display thead th { - padding: 3px 0px 3px 10px; - cursor: pointer; - * cursor: hand; -} - -div.dataTables_wrapper .ui-widget-header { - font-weight: normal; -} - -.ui-widget-header, .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { - background: -moz-linear-gradient(center top , #FFFFFF 0%, #F5F5F5 100%) repeat scroll 0 0 transparent; -} - - -/* - * Sort arrow icon positioning - */ -table.display thead th div.DataTables_sort_wrapper { - position: relative; - padding-right: 20px; - padding-right: 20px; -} - -table.display thead th div.DataTables_sort_wrapper span { - position: absolute; - top: 50%; - margin-top: -8px; - right: 0; -} - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * - * Everything below this line is the same as demo_table.css. This file is - * required for 'cleanliness' of the markup - * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * DataTables features - */ - -.dataTables_wrapper { - /* - position: relative; - min-height: 302px; - _height: 302px; - clear: both; - */ - margin: 1ex 0; -} - -.dataTables_processing { - position: absolute; - top: 0px; - left: 50%; - width: 250px; - margin-left: -125px; - border: 1px solid #ddd; - text-align: center; - color: #999; - font-size: 11px; - padding: 2px 0; -} - -.dataTables_length { - width: 40%; - float: left; -} - -.dataTables_filter { - width: 50%; - float: right; - text-align: right; -} - -.dataTables_info { - width: 50%; - float: left; -} - -.dataTables_paginate { - float: right; - text-align: right; -} - -/* Pagination nested */ -.paginate_disabled_previous, .paginate_enabled_previous, .paginate_disabled_next, .paginate_enabled_next { - height: 19px; - width: 19px; - margin-left: 3px; - float: left; -} - -.paginate_disabled_previous { - background-image: url('../images/back_disabled.jpg'); -} - -.paginate_enabled_previous { - background-image: url('../images/back_enabled.jpg'); -} - -.paginate_disabled_next { - background-image: url('../images/forward_disabled.jpg'); -} - -.paginate_enabled_next { - background-image: url('../images/forward_enabled.jpg'); -} - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * DataTables display - */ -table.display { - margin: 0 auto; - width: 100%; - border-collapse: collapse; -} - -table.display tfoot th { - padding: 3px 0px 3px 10px; - font-weight: bold; - font-weight: normal; -} - -table.display tr.heading2 td { - border-bottom: 1px solid #aaa; -} - -table.display td { - padding: 3px 10px; -} - -table.display td.center { - text-align: center; -} - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * DataTables sorting - */ - -.sorting_asc { - background: url('../images/sort_asc.png') no-repeat center right; -} - -.sorting_desc { - background: url('../images/sort_desc.png') no-repeat center right; -} - -.sorting { - background: url('../images/sort_both.png') no-repeat center right; -} - -.sorting_asc_disabled { - background: url('../images/sort_asc_disabled.png') no-repeat center right; -} - -.sorting_desc_disabled { - background: url('../images/sort_desc_disabled.png') no-repeat center right; -} - - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * DataTables row classes - */ -table.display tr.odd.gradeA { - background-color: #ddffdd; -} - -table.display tr.even.gradeA { - background-color: #eeffee; -} - - - - -table.display tr.odd.gradeA { - background-color: #ddffdd; -} - -table.display tr.even.gradeA { - background-color: #eeffee; -} - -table.display tr.odd.gradeC { - background-color: #ddddff; -} - -table.display tr.even.gradeC { - background-color: #eeeeff; -} - -table.display tr.odd.gradeX { - background-color: #ffdddd; -} - -table.display tr.even.gradeX { - background-color: #ffeeee; -} - -table.display tr.odd.gradeU { - background-color: #ddd; -} - -table.display tr.even.gradeU { - background-color: #eee; -} - - -tr.odd { - background-color: #E9EEE9; -} - -tr.even { - background-color: white; -} - - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Misc - */ -.dataTables_scroll { - clear: both; -} - -.top, .bottom { - padding: 15px; - background-color: #F5F5F5; - border: 1px solid #CCCCCC; -} - -.top .dataTables_info { - float: none; -} - -.clear { - clear: both; -} - -.dataTables_empty { - text-align: center; -} - -tfoot input { - margin: 0.5em 0; - width: 100%; - color: #444; -} - -tfoot input.search_init { - color: #999; -} - -td.group { - background-color: #d1cfd0; - border-bottom: 2px solid #A19B9E; - border-top: 2px solid #A19B9E; -} - -td.details { - background-color: #d1cfd0; - border: 2px solid #A19B9E; -} - - -.example_alt_pagination div.dataTables_info { - width: 40%; -} - -.paging_full_numbers span.paginate_button, - .paging_full_numbers span.paginate_active { - border: 1px solid #aaa; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - padding: 2px 5px; - margin: 0 3px; - cursor: pointer; - *cursor: hand; -} - -.paging_full_numbers span.paginate_button { - background-color: #ddd; -} - -.paging_full_numbers span.paginate_button:hover { - background-color: #ccc; -} - -.paging_full_numbers span.paginate_active { - background-color: #99B3FF; -} - -table.display tr.even.row_selected td { - background-color: #B0BED9; -} - -table.display tr.odd.row_selected td { - background-color: #9FAFD1; -} - - -/* - * Sorting classes for columns - */ -/* For the standard odd/even */ -tr.odd td.sorting_1 { - background-color: #DADADA; -} - -tr.odd td.sorting_2 { - background-color: #DFDFDF; -} - -tr.odd td.sorting_3 { - background-color: #E0E0E0; -} - -tr.even td.sorting_1 { - background-color: #E9E9E9; -} - -tr.even td.sorting_2 { - background-color: #F2F2F3; -} - -tr.even td.sorting_3 { - background-color: #F9F9F9; -} - - -/* For the Conditional-CSS grading rows */ -/* - Colour calculations (based off the main row colours) - Level 1: - dd > c4 - ee > d5 - Level 2: - dd > d1 - ee > e2 - */ -tr.odd.gradeA td.sorting_1 { - background-color: #c4ffc4; -} - -tr.odd.gradeA td.sorting_2 { - background-color: #d1ffd1; -} - -tr.odd.gradeA td.sorting_3 { - background-color: #d1ffd1; -} - -tr.even.gradeA td.sorting_1 { - background-color: #d5ffd5; -} - -tr.even.gradeA td.sorting_2 { - background-color: #e2ffe2; -} - -tr.even.gradeA td.sorting_3 { - background-color: #e2ffe2; -} - -tr.odd.gradeC td.sorting_1 { - background-color: #c4c4ff; -} - -tr.odd.gradeC td.sorting_2 { - background-color: #d1d1ff; -} - -tr.odd.gradeC td.sorting_3 { - background-color: #d1d1ff; -} - -tr.even.gradeC td.sorting_1 { - background-color: #d5d5ff; -} - -tr.even.gradeC td.sorting_2 { - background-color: #e2e2ff; -} - -tr.even.gradeC td.sorting_3 { - background-color: #e2e2ff; -} - -tr.odd.gradeX td.sorting_1 { - background-color: #ffc4c4; -} - -tr.odd.gradeX td.sorting_2 { - background-color: #ffd1d1; -} - -tr.odd.gradeX td.sorting_3 { - background-color: #ffd1d1; -} - -tr.even.gradeX td.sorting_1 { - background-color: #ffd5d5; -} - -tr.even.gradeX td.sorting_2 { - background-color: #ffe2e2; -} - -tr.even.gradeX td.sorting_3 { - background-color: #ffe2e2; -} - -tr.odd.gradeU td.sorting_1 { - background-color: #c4c4c4; -} - -tr.odd.gradeU td.sorting_2 { - background-color: #d1d1d1; -} - -tr.odd.gradeU td.sorting_3 { - background-color: #d1d1d1; -} - -tr.even.gradeU td.sorting_1 { - background-color: #d5d5d5; -} - -tr.even.gradeU td.sorting_2 { - background-color: #e2e2e2; -} - -tr.even.gradeU td.sorting_3 { - background-color: #e2e2e2; -} - -/* - * Row highlighting example - */ -.ex_highlight #example tbody tr.even:hover, #example tbody tr.even td.highlighted { - background-color: #ECFFB3; -} - -.ex_highlight #example tbody tr.odd:hover, #example tbody tr.odd td.highlighted { - background-color: #E6FF99; -} === removed file 'lava_server/htdocs/css/login.css' --- lava_server/htdocs/css/login.css 2013-09-10 20:58:07 +0000 +++ lava_server/htdocs/css/login.css 1970-01-01 00:00:00 +0000 @@ -1,194 +0,0 @@ -body { - color: #F5F4E1; - font-size: 10pt; - margin: 0; - padding: 0; - min-height: 500px; - min-width: 650px; -} - -body, p, input, th, td { - font-family: Ubuntu, Helvetica Neue, Verdana, sans-serif; -} - -#master_container { - margin: auto; - padding: 25pt 15pt 2em 15pt; -} - -#header h1 { - color: #6C9D10 ; - font-size: 32pt; - margin: 0.2em; - padding: 5pt; - text-align: center; -} - -#header h1.long { - font-size: 24pt; -} - -#content { - -moz-border-radius: 7pt; - -moz-box-shadow: 0 2pt 15pt #111; - -webkit-border-radius: 7pt; - -webkit-box-shadow: 0 2pt 15pt #111; - background-color: #393939; /* For browsers that don't support transparent backgrounds */ - background-color: rgba(255, 255, 255, 0.1); - _background-color: #393939; /* For IE6, it somehow understands the rgba line - above enough to discard the previous "fallback" value but not enough to - actually use it. */ - border-radius: 7pt; - box-shadow: 0 2pt 15pt #111; - color: #F5F4E1; - padding: 10pt; -} - -#content { - color: #222; -} - -#content p.error { - text-align: center; - font-weight: bold; -} - -ul.errorlist { - list-style-type: none; - padding: 0; -} - -ul.errorlist li { - font-weight: bold; -} - -#content a { - color: #888a85; -} - -#content a:hover { - color: #6C9D10; -} - -/* Main layout table */ - -table { - width: 100%; -} - -table th#lp_net_column { - font-size: 12pt; - width: 45%; -} - -table th#or_column { - font-size: 23pt; - padding: 10pt; - width: 10%; -} - -table td { - vertical-align: top; -} - -table th#local_account_column { - font-size: 12pt; - width: 45%; -} - -/* Form input fields */ - -input[type=text], input[type=password] { - -moz-border-radius: 3pt; - -webkit-border-radius: 3pt; - background-color: #515151; - background-color: rgba(255, 255, 255, 0.1); - border: 2pt solid #292929; - color: #888a85; - display: block; - margin: auto; - padding: 3pt; - width: 90%; -} - -input[type=text]:focus, input[type=password]:focus { - background-color: #F5F4E1; - border: 2pt solid #6C9D10; -} - -input[type=password] { - font-family: monospace; -} - - -a.button, input[type=submit], input[type=button], .button { - white-space: pre; - -moz-border-radius: 5pt; - -moz-box-shadow: 0 2pt 4pt #222; - -webkit-border-radius: 5pt; - -webkit-box-shadow: 0 2pt 4pt #222; - background-color: #D44917; - background: -moz-linear-gradient(center bottom, #6C9D10 6%, #98c13d 75%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0.06, rgb(212, 52, 16)), color-stop(0.75, rgb(212, 74, 23))); - border-radius: 5pt; - border: none; - box-shadow: 0 2pt 4pt #222; - color: #F5F4E1 !important; - font-size: 11pt; - font-weight: bold; - margin: 1em auto; - padding: 5pt; - text-decoration: none; -} - -input.watermark { - color: #BBB; - font-style: italic; -} - -/* IE6 CSS for the entire account management parts */ -#id_password, #id_new_password1, #id_new_password2 { - _font-family: monospace; -} - -#id_username, #id_password, #id_email, #id_new_password1, #id_new_password2 { - _background-color: #515151; - _border: 2pt solid #292929; - _color: white; - _display: block; - _margin: auto; - _padding: 3pt; - _width: 90%; -} - -#id_username:focus, #id_password:focus, #id_email:focus, #id_new_password1:focus, #id_new_password2:focus { - _background-color: #0c0c0c; - _border: 2pt solid rgb(212, 74, 23); -} - -.button, #id_submit { - _white-space: pre; - _background-color: #D44917; - _border: none; - _color: #F5F4E1 !important; - _font-size: 11pt; - _font-weight: bold; - _line-height: 2em; - _height: 2.5em; - _margin: 1em auto; - _padding: 5pt; - _text-decoration: none; -} - - -#footer { - color: #AAA; - font-size: smaller; - margin-top: 1em; - padding: 10pt; - text-align: justify; -} - -#footer a { - color: #AAA; -} === removed directory 'lava_server/htdocs/images' === removed file 'lava_server/htdocs/images/ajax-loader.gif' Binary files lava_server/htdocs/images/ajax-loader.gif 2011-11-08 23:47:23 +0000 and lava_server/htdocs/images/ajax-loader.gif 1970-01-01 00:00:00 +0000 differ === removed file 'lava_server/htdocs/images/avatar-default-symbolic.svg' --- lava_server/htdocs/images/avatar-default-symbolic.svg 2011-11-08 23:47:23 +0000 +++ lava_server/htdocs/images/avatar-default-symbolic.svg 1970-01-01 00:00:00 +0000 @@ -1,30 +0,0 @@ - - - - - - - - image/svg+xml - - Gnome Symbolic Icon Theme - - - - - - - Gnome Symbolic Icon Theme - - - - - - - - - - - - - === removed file 'lava_server/htdocs/images/dark-noise.png' Binary files lava_server/htdocs/images/dark-noise.png 2011-07-25 23:18:01 +0000 and lava_server/htdocs/images/dark-noise.png 1970-01-01 00:00:00 +0000 differ === removed file 'lava_server/htdocs/images/details_close.png' Binary files lava_server/htdocs/images/details_close.png 2011-07-08 03:02:35 +0000 and lava_server/htdocs/images/details_close.png 1970-01-01 00:00:00 +0000 differ === removed file 'lava_server/htdocs/images/details_open.png' Binary files lava_server/htdocs/images/details_open.png 2011-07-08 03:02:35 +0000 and lava_server/htdocs/images/details_open.png 1970-01-01 00:00:00 +0000 differ === removed file 'lava_server/htdocs/images/lin-bullet.gif' Binary files lava_server/htdocs/images/lin-bullet.gif 2011-11-08 23:47:23 +0000 and lava_server/htdocs/images/lin-bullet.gif 1970-01-01 00:00:00 +0000 differ === removed file 'lava_server/htdocs/images/linaro-sprinkles.png' Binary files lava_server/htdocs/images/linaro-sprinkles.png 2013-09-11 20:06:37 +0000 and lava_server/htdocs/images/linaro-sprinkles.png 1970-01-01 00:00:00 +0000 differ === removed file 'lava_server/htdocs/images/linaro-sprinkles.svg' --- lava_server/htdocs/images/linaro-sprinkles.svg 2013-09-11 19:34:55 +0000 +++ lava_server/htdocs/images/linaro-sprinkles.svg 1970-01-01 00:00:00 +0000 @@ -1,90 +0,0 @@ - - - -image/svg+xml \ No newline at end of file === removed file 'lava_server/htdocs/images/logo.png' Binary files lava_server/htdocs/images/logo.png 2013-09-10 20:55:55 +0000 and lava_server/htdocs/images/logo.png 1970-01-01 00:00:00 +0000 differ === removed directory 'lava_server/htdocs/js' === removed file 'lava_server/htdocs/js/jquery-1.5.1.min.js' --- lava_server/htdocs/js/jquery-1.5.1.min.js 2011-06-02 22:56:46 +0000 +++ lava_server/htdocs/js/jquery-1.5.1.min.js 1970-01-01 00:00:00 +0000 @@ -1,16 +0,0 @@ -/*! - * jQuery JavaScript Library v1.5.1 - * http://jquery.com/ - * - * Copyright 2011, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Wed Feb 23 13:55:29 2011 -0500 - */ -(function(a,b){function cg(a){return d.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cd(a){if(!bZ[a]){var b=d("<"+a+">").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";bZ[a]=c}return bZ[a]}function cc(a,b){var c={};d.each(cb.concat.apply([],cb.slice(0,b)),function(){c[this]=a});return c}function bY(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function bX(){try{return new a.XMLHttpRequest}catch(b){}}function bW(){d(a).unload(function(){for(var a in bU)bU[a](0,1)})}function bQ(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f={},g,h,i=e.length,j,k=e[0],l,m,n,o,p;for(g=1;g=0===c})}function N(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function F(a,b){return(a&&a!=="*"?a+".":"")+b.replace(r,"`").replace(s,"&")}function E(a){var b,c,e,f,g,h,i,j,k,l,m,n,o,q=[],r=[],s=d._data(this,"events");if(a.liveFired!==this&&s&&s.live&&!a.target.disabled&&(!a.button||a.type!=="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var t=s.live.slice(0);for(i=0;ic)break;a.currentTarget=f.elem,a.data=f.handleObj.data,a.handleObj=f.handleObj,o=f.handleObj.origHandler.apply(f.elem,arguments);if(o===!1||a.isPropagationStopped()){c=f.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function C(a,c,e){var f=d.extend({},e[0]);f.type=a,f.originalEvent={},f.liveFired=b,d.event.handle.call(c,f),f.isDefaultPrevented()&&e[0].preventDefault()}function w(){return!0}function v(){return!1}function g(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function f(a,c,f){if(f===b&&a.nodeType===1){f=a.getAttribute("data-"+c);if(typeof f==="string"){try{f=f==="true"?!0:f==="false"?!1:f==="null"?null:d.isNaN(f)?e.test(f)?d.parseJSON(f):f:parseFloat(f)}catch(g){}d.data(a,c,f)}else f=b}return f}var c=a.document,d=function(){function I(){if(!d.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(I,1);return}d.ready()}}var d=function(a,b){return new d.fn.init(a,b,g)},e=a.jQuery,f=a.$,g,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,i=/\S/,j=/^\s+/,k=/\s+$/,l=/\d/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=navigator.userAgent,w,x=!1,y,z="then done fail isResolved isRejected promise".split(" "),A,B=Object.prototype.toString,C=Object.prototype.hasOwnProperty,D=Array.prototype.push,E=Array.prototype.slice,F=String.prototype.trim,G=Array.prototype.indexOf,H={};d.fn=d.prototype={constructor:d,init:function(a,e,f){var g,i,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!e&&c.body){this.context=c,this[0]=c.body,this.selector="body",this.length=1;return this}if(typeof a==="string"){g=h.exec(a);if(!g||!g[1]&&e)return!e||e.jquery?(e||f).find(a):this.constructor(e).find(a);if(g[1]){e=e instanceof d?e[0]:e,k=e?e.ownerDocument||e:c,j=m.exec(a),j?d.isPlainObject(e)?(a=[c.createElement(j[1])],d.fn.attr.call(a,e,!0)):a=[k.createElement(j[1])]:(j=d.buildFragment([g[1]],[k]),a=(j.cacheable?d.clone(j.fragment):j.fragment).childNodes);return d.merge(this,a)}i=c.getElementById(g[2]);if(i&&i.parentNode){if(i.id!==g[2])return f.find(a);this.length=1,this[0]=i}this.context=c,this.selector=a;return this}if(d.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)},selector:"",jquery:"1.5.1",length:0,size:function(){return this.length},toArray:function(){return E.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var e=this.constructor();d.isArray(a)?D.apply(e,a):d.merge(e,a),e.prevObject=this,e.context=this.context,b==="find"?e.selector=this.selector+(this.selector?" ":"")+c:b&&(e.selector=this.selector+"."+b+"("+c+")");return e},each:function(a,b){return d.each(this,a,b)},ready:function(a){d.bindReady(),y.done(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(E.apply(this,arguments),"slice",E.call(arguments).join(","))},map:function(a){return this.pushStack(d.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:D,sort:[].sort,splice:[].splice},d.fn.init.prototype=d.fn,d.extend=d.fn.extend=function(){var a,c,e,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i==="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!=="object"&&!d.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;y.resolveWith(c,[d]),d.fn.trigger&&d(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!x){x=!0;if(c.readyState==="complete")return setTimeout(d.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",A,!1),a.addEventListener("load",d.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",A),a.attachEvent("onload",d.ready);var b=!1;try{b=a.frameElement==null}catch(e){}c.documentElement.doScroll&&b&&I()}}},isFunction:function(a){return d.type(a)==="function"},isArray:Array.isArray||function(a){return d.type(a)==="array"},isWindow:function(a){return a&&typeof a==="object"&&"setInterval"in a},isNaN:function(a){return a==null||!l.test(a)||isNaN(a)},type:function(a){return a==null?String(a):H[B.call(a)]||"object"},isPlainObject:function(a){if(!a||d.type(a)!=="object"||a.nodeType||d.isWindow(a))return!1;if(a.constructor&&!C.call(a,"constructor")&&!C.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a){}return c===b||C.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!=="string"||!b)return null;b=d.trim(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return a.JSON&&a.JSON.parse?a.JSON.parse(b):(new Function("return "+b))();d.error("Invalid JSON: "+b)},parseXML:function(b,c,e){a.DOMParser?(e=new DOMParser,c=e.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),e=c.documentElement,(!e||!e.nodeName||e.nodeName==="parsererror")&&d.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(a){if(a&&i.test(a)){var b=c.head||c.getElementsByTagName("head")[0]||c.documentElement,e=c.createElement("script");d.support.scriptEval()?e.appendChild(c.createTextNode(a)):e.text=a,b.insertBefore(e,b.firstChild),b.removeChild(e)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,e){var f,g=0,h=a.length,i=h===b||d.isFunction(a);if(e){if(i){for(f in a)if(c.apply(a[f],e)===!1)break}else for(;g1){var f=E.call(arguments,0),g=b,h=function(a){return function(b){f[a]=arguments.length>1?E.call(arguments,0):b,--g||c.resolveWith(e,f)}};while(b--)a=f[b],a&&d.isFunction(a.promise)?a.promise().then(h(b),c.reject):--g;g||c.resolveWith(e,f)}else c!==a&&c.resolve(a);return e},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}d.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.subclass=this.subclass,a.fn.init=function b(b,c){c&&c instanceof d&&!(c instanceof a)&&(c=a(c));return d.fn.init.call(this,b,c,e)},a.fn.init.prototype=a.fn;var e=a(c);return a},browser:{}}),y=d._Deferred(),d.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){H["[object "+b+"]"]=b.toLowerCase()}),w=d.uaMatch(v),w.browser&&(d.browser[w.browser]=!0,d.browser.version=w.version),d.browser.webkit&&(d.browser.safari=!0),G&&(d.inArray=function(a,b){return G.call(b,a)}),i.test(" ")&&(j=/^[\s\xA0]+/,k=/[\s\xA0]+$/),g=d(c),c.addEventListener?A=function(){c.removeEventListener("DOMContentLoaded",A,!1),d.ready()}:c.attachEvent&&(A=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",A),d.ready())});return d}();(function(){d.support={};var b=c.createElement("div");b.style.display="none",b.innerHTML="
      a";var e=b.getElementsByTagName("*"),f=b.getElementsByTagName("a")[0],g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=b.getElementsByTagName("input")[0];if(e&&e.length&&f){d.support={leadingWhitespace:b.firstChild.nodeType===3,tbody:!b.getElementsByTagName("tbody").length,htmlSerialize:!!b.getElementsByTagName("link").length,style:/red/.test(f.getAttribute("style")),hrefNormalized:f.getAttribute("href")==="/a",opacity:/^0.55$/.test(f.style.opacity),cssFloat:!!f.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,noCloneEvent:!0,noCloneChecked:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0},i.checked=!0,d.support.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,d.support.optDisabled=!h.disabled;var j=null;d.support.scriptEval=function(){if(j===null){var b=c.documentElement,e=c.createElement("script"),f="script"+d.now();try{e.appendChild(c.createTextNode("window."+f+"=1;"))}catch(g){}b.insertBefore(e,b.firstChild),a[f]?(j=!0,delete a[f]):j=!1,b.removeChild(e),b=e=f=null}return j};try{delete b.test}catch(k){d.support.deleteExpando=!1}!b.addEventListener&&b.attachEvent&&b.fireEvent&&(b.attachEvent("onclick",function l(){d.support.noCloneEvent=!1,b.detachEvent("onclick",l)}),b.cloneNode(!0).fireEvent("onclick")),b=c.createElement("div"),b.innerHTML="";var m=c.createDocumentFragment();m.appendChild(b.firstChild),d.support.checkClone=m.cloneNode(!0).cloneNode(!0).lastChild.checked,d(function(){var a=c.createElement("div"),b=c.getElementsByTagName("body")[0];if(b){a.style.width=a.style.paddingLeft="1px",b.appendChild(a),d.boxModel=d.support.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,d.support.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
      ",d.support.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
      t
      ";var e=a.getElementsByTagName("td");d.support.reliableHiddenOffsets=e[0].offsetHeight===0,e[0].style.display="",e[1].style.display="none",d.support.reliableHiddenOffsets=d.support.reliableHiddenOffsets&&e[0].offsetHeight===0,a.innerHTML="",b.removeChild(a).style.display="none",a=e=null}});var n=function(a){var b=c.createElement("div");a="on"+a;if(!b.attachEvent)return!0;var d=a in b;d||(b.setAttribute(a,"return;"),d=typeof b[a]==="function"),b=null;return d};d.support.submitBubbles=n("submit"),d.support.changeBubbles=n("change"),b=e=f=null}})();var e=/^(?:\{.*\}|\[.*\])$/;d.extend({cache:{},uuid:0,expando:"jQuery"+(d.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?d.cache[a[d.expando]]:a[d.expando];return!!a&&!g(a)},data:function(a,c,e,f){if(d.acceptData(a)){var g=d.expando,h=typeof c==="string",i,j=a.nodeType,k=j?d.cache:a,l=j?a[d.expando]:a[d.expando]&&d.expando;if((!l||f&&l&&!k[l][g])&&h&&e===b)return;l||(j?a[d.expando]=l=++d.uuid:l=d.expando),k[l]||(k[l]={},j||(k[l].toJSON=d.noop));if(typeof c==="object"||typeof c==="function")f?k[l][g]=d.extend(k[l][g],c):k[l]=d.extend(k[l],c);i=k[l],f&&(i[g]||(i[g]={}),i=i[g]),e!==b&&(i[c]=e);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,e){if(d.acceptData(b)){var f=d.expando,h=b.nodeType,i=h?d.cache:b,j=h?b[d.expando]:d.expando;if(!i[j])return;if(c){var k=e?i[j][f]:i[j];if(k){delete k[c];if(!g(k))return}}if(e){delete i[j][f];if(!g(i[j]))return}var l=i[j][f];d.support.deleteExpando||i!=a?delete i[j]:i[j]=null,l?(i[j]={},h||(i[j].toJSON=d.noop),i[j][f]=l):h&&(d.support.deleteExpando?delete b[d.expando]:b.removeAttribute?b.removeAttribute(d.expando):b[d.expando]=null)}},_data:function(a,b,c){return d.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=d.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),d.fn.extend({data:function(a,c){var e=null;if(typeof a==="undefined"){if(this.length){e=d.data(this[0]);if(this[0].nodeType===1){var g=this[0].attributes,h;for(var i=0,j=g.length;i-1)return!0;return!1},val:function(a){if(!arguments.length){var c=this[0];if(c){if(d.nodeName(c,"option")){var e=c.attributes.value;return!e||e.specified?c.value:c.text}if(d.nodeName(c,"select")){var f=c.selectedIndex,g=[],h=c.options,i=c.type==="select-one";if(f<0)return null;for(var k=i?f:0,l=i?f+1:h.length;k=0;else if(d.nodeName(this,"select")){var f=d.makeArray(e);d("option",this).each(function(){this.selected=d.inArray(d(this).val(),f)>=0}),f.length||(this.selectedIndex=-1)}else this.value=e}})}}),d.extend({attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,e,f){if(!a||a.nodeType===3||a.nodeType===8||a.nodeType===2)return b;if(f&&c in d.attrFn)return d(a)[c](e);var g=a.nodeType!==1||!d.isXMLDoc(a),h=e!==b;c=g&&d.props[c]||c;if(a.nodeType===1){var i=k.test(c);if(c==="selected"&&!d.support.optSelected){var j=a.parentNode;j&&(j.selectedIndex,j.parentNode&&j.parentNode.selectedIndex)}if((c in a||a[c]!==b)&&g&&!i){h&&(c==="type"&&l.test(a.nodeName)&&a.parentNode&&d.error("type property can't be changed"),e===null?a.nodeType===1&&a.removeAttribute(c):a[c]=e);if(d.nodeName(a,"form")&&a.getAttributeNode(c))return a.getAttributeNode(c).nodeValue;if(c==="tabIndex"){var o=a.getAttributeNode("tabIndex");return o&&o.specified?o.value:m.test(a.nodeName)||n.test(a.nodeName)&&a.href?0:b}return a[c]}if(!d.support.style&&g&&c==="style"){h&&(a.style.cssText=""+e);return a.style.cssText}h&&a.setAttribute(c,""+e);if(!a.attributes[c]&&(a.hasAttribute&&!a.hasAttribute(c)))return b;var p=!d.support.hrefNormalized&&g&&i?a.getAttribute(c,2):a.getAttribute(c);return p===null?b:p}h&&(a[c]=e);return a[c]}});var p=/\.(.*)$/,q=/^(?:textarea|input|select)$/i,r=/\./g,s=/ /g,t=/[^\w\s.|`]/g,u=function(a){return a.replace(t,"\\$&")};d.event={add:function(c,e,f,g){if(c.nodeType!==3&&c.nodeType!==8){try{d.isWindow(c)&&(c!==a&&!c.frameElement)&&(c=a)}catch(h){}if(f===!1)f=v;else if(!f)return;var i,j;f.handler&&(i=f,f=i.handler),f.guid||(f.guid=d.guid++);var k=d._data(c);if(!k)return;var l=k.events,m=k.handle;l||(k.events=l={}),m||(k.handle=m=function(){return typeof d!=="undefined"&&!d.event.triggered?d.event.handle.apply(m.elem,arguments):b}),m.elem=c,e=e.split(" ");var n,o=0,p;while(n=e[o++]){j=i?d.extend({},i):{handler:f,data:g},n.indexOf(".")>-1?(p=n.split("."),n=p.shift(),j.namespace=p.slice(0).sort().join(".")):(p=[],j.namespace=""),j.type=n,j.guid||(j.guid=f.guid);var q=l[n],r=d.event.special[n]||{};if(!q){q=l[n]=[];if(!r.setup||r.setup.call(c,g,p,m)===!1)c.addEventListener?c.addEventListener(n,m,!1):c.attachEvent&&c.attachEvent("on"+n,m)}r.add&&(r.add.call(c,j),j.handler.guid||(j.handler.guid=f.guid)),q.push(j),d.event.global[n]=!0}c=null}},global:{},remove:function(a,c,e,f){if(a.nodeType!==3&&a.nodeType!==8){e===!1&&(e=v);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=d.hasData(a)&&d._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(e=c.handler,c=c.type);if(!c||typeof c==="string"&&c.charAt(0)==="."){c=c||"";for(h in t)d.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+d.map(m.slice(0).sort(),u).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!e){for(j=0;j=0&&(a.type=f=f.slice(0,-1),a.exclusive=!0),e||(a.stopPropagation(),d.event.global[f]&&d.each(d.cache,function(){var b=d.expando,e=this[b];e&&e.events&&e.events[f]&&d.event.trigger(a,c,e.handle.elem)}));if(!e||e.nodeType===3||e.nodeType===8)return b;a.result=b,a.target=e,c=d.makeArray(c),c.unshift(a)}a.currentTarget=e;var h=d._data(e,"handle");h&&h.apply(e,c);var i=e.parentNode||e.ownerDocument;try{e&&e.nodeName&&d.noData[e.nodeName.toLowerCase()]||e["on"+f]&&e["on"+f].apply(e,c)===!1&&(a.result=!1,a.preventDefault())}catch(j){}if(!a.isPropagationStopped()&&i)d.event.trigger(a,c,i,!0);else if(!a.isDefaultPrevented()){var k,l=a.target,m=f.replace(p,""),n=d.nodeName(l,"a")&&m==="click",o=d.event.special[m]||{};if((!o._default||o._default.call(e,a)===!1)&&!n&&!(l&&l.nodeName&&d.noData[l.nodeName.toLowerCase()])){try{l[m]&&(k=l["on"+m],k&&(l["on"+m]=null),d.event.triggered=!0,l[m]())}catch(q){}k&&(l["on"+m]=k),d.event.triggered=!1}}},handle:function(c){var e,f,g,h,i,j=[],k=d.makeArray(arguments);c=k[0]=d.event.fix(c||a.event),c.currentTarget=this,e=c.type.indexOf(".")<0&&!c.exclusive,e||(g=c.type.split("."),c.type=g.shift(),j=g.slice(0).sort(),h=new RegExp("(^|\\.)"+j.join("\\.(?:.*\\.)?")+"(\\.|$)")),c.namespace=c.namespace||j.join("."),i=d._data(this,"events"),f=(i||{})[c.type];if(i&&f){f=f.slice(0);for(var l=0,m=f.length;l-1?d.map(a.options,function(a){return a.selected}).join("-"):"":a.nodeName.toLowerCase()==="select"&&(c=a.selectedIndex);return c},B=function B(a){var c=a.target,e,f;if(q.test(c.nodeName)&&!c.readOnly){e=d._data(c,"_change_data"),f=A(c),(a.type!=="focusout"||c.type!=="radio")&&d._data(c,"_change_data",f);if(e===b||f===e)return;if(e!=null||f)a.type="change",a.liveFired=b,d.event.trigger(a,arguments[1],c)}};d.event.special.change={filters:{focusout:B,beforedeactivate:B,click:function(a){var b=a.target,c=b.type;(c==="radio"||c==="checkbox"||b.nodeName.toLowerCase()==="select")&&B.call(this,a)},keydown:function(a){var b=a.target,c=b.type;(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&B.call(this,a)},beforeactivate:function(a){var b=a.target;d._data(b,"_change_data",A(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in z)d.event.add(this,c+".specialChange",z[c]);return q.test(this.nodeName)},teardown:function(a){d.event.remove(this,".specialChange");return q.test(this.nodeName)}},z=d.event.special.change.filters,z.focus=z.beforeactivate}c.addEventListener&&d.each({focus:"focusin",blur:"focusout"},function(a,b){function c(a){a=d.event.fix(a),a.type=b;return d.event.handle.call(this,a)}d.event.special[b]={setup:function(){this.addEventListener(a,c,!0)},teardown:function(){this.removeEventListener(a,c,!0)}}}),d.each(["bind","one"],function(a,c){d.fn[c]=function(a,e,f){if(typeof a==="object"){for(var g in a)this[c](g,e,a[g],f);return this}if(d.isFunction(e)||e===!1)f=e,e=b;var h=c==="one"?d.proxy(f,function(a){d(this).unbind(a,h);return f.apply(this,arguments)}):f;if(a==="unload"&&c!=="one")this.one(a,e,f);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},d.attrFn&&(d.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,e,g){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=="string")return e;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(f.call(n)==="[object Array]")if(u)if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&e.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&e.push(j[t]);else e.push.apply(e,n);else p(n,e);o&&(k(o,h,e,g),k.uniqueSort(e));return e};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b==="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){return"text"===a.getAttribute("type")},radio:function(a){return"radio"===a.type},checkbox:function(a){return"checkbox"===a.type},file:function(a){return"file"===a.type},password:function(a){return"password"===a.type},submit:function(a){return"submit"===a.type},image:function(a){return"image"===a.type},reset:function(a){return"reset"===a.type},button:function(a){return"button"===a.type||a.nodeName.toLowerCase()==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(f.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length==="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!=="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!=="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!=="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

      ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector,d=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(e){d=!0}b&&(k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(d||!l.match.PSEUDO.test(c)&&!/!=/.test(c))return b.call(a,c)}catch(e){}return k(c,null,null,[a]).length>0})}(),function(){var a=c.createElement("div");a.innerHTML="
      ";if(a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!=="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(var g=c;g0},closest:function(a,b){var c=[],e,f,g=this[0];if(d.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(e=0,f=a.length;e-1:d(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=L.test(a)?d(a,b||this.context):null;for(e=0,f=this.length;e-1:d.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b)break}}c=c.length>1?d.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a==="string")return d.inArray(this[0],a?d(a):this.parent().children());return d.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==="string"?d(a,b):d.makeArray(a),e=d.merge(this.get(),c);return this.pushStack(N(c[0])||N(e[0])?e:d.unique(e))},andSelf:function(){return this.add(this.prevObject)}}),d.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return d.dir(a,"parentNode")},parentsUntil:function(a,b,c){return d.dir(a,"parentNode",c)},next:function(a){return d.nth(a,2,"nextSibling")},prev:function(a){return d.nth(a,2,"previousSibling")},nextAll:function(a){return d.dir(a,"nextSibling")},prevAll:function(a){return d.dir(a,"previousSibling")},nextUntil:function(a,b,c){return d.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return d.dir(a,"previousSibling",c)},siblings:function(a){return d.sibling(a.parentNode.firstChild,a)},children:function(a){return d.sibling(a.firstChild)},contents:function(a){return d.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:d.makeArray(a.childNodes)}},function(a,b){d.fn[a]=function(c,e){var f=d.map(this,b,c),g=K.call(arguments);G.test(a)||(e=c),e&&typeof e==="string"&&(f=d.filter(e,f)),f=this.length>1&&!M[a]?d.unique(f):f,(this.length>1||I.test(e))&&H.test(a)&&(f=f.reverse());return this.pushStack(f,a,g.join(","))}}),d.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?d.find.matchesSelector(b[0],a)?[b[0]]:[]:d.find.matches(a,b)},dir:function(a,c,e){var f=[],g=a[c];while(g&&g.nodeType!==9&&(e===b||g.nodeType!==1||!d(g).is(e)))g.nodeType===1&&f.push(g),g=g[c];return f},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var P=/ jQuery\d+="(?:\d+|null)"/g,Q=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,S=/<([\w:]+)/,T=/",""],legend:[1,"
      ","
      "],thead:[1,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],col:[2,"","
      "],area:[1,"",""],_default:[0,"",""]};X.optgroup=X.option,X.tbody=X.tfoot=X.colgroup=X.caption=X.thead,X.th=X.td,d.support.htmlSerialize||(X._default=[1,"div
      ","
      "]),d.fn.extend({text:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.text(a.call(this,b,c.text()))});if(typeof a!=="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return d.text(this)},wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this,b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapInner(a.call(this,b))});return this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){d(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=d(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,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,d(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,e;(e=this[c])!=null;c++)if(!a||d.filter(a,[e]).length)!b&&e.nodeType===1&&(d.cleanData(e.getElementsByTagName("*")),d.cleanData([e])),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&d.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return d.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(P,""):null;if(typeof a!=="string"||V.test(a)||!d.support.leadingWhitespace&&Q.test(a)||X[(S.exec(a)||["",""])[1].toLowerCase()])d.isFunction(a)?this.each(function(b){var c=d(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);else{a=a.replace(R,"<$1>");try{for(var c=0,e=this.length;c1&&l0?this.clone(!0):this).get();d(f[h])[b](j),e=e.concat(j)}return this.pushStack(e,a,f.selector)}}),d.extend({clone:function(a,b,c){var e=a.cloneNode(!0),f,g,h;if((!d.support.noCloneEvent||!d.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!d.isXMLDoc(a)){$(a,e),f=_(a),g=_(e);for(h=0;f[h];++h)$(f[h],g[h])}if(b){Z(a,e);if(c){f=_(a),g=_(e);for(h=0;f[h];++h)Z(f[h],g[h])}}return e},clean:function(a,b,e,f){b=b||c,typeof b.createElement==="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var g=[];for(var h=0,i;(i=a[h])!=null;h++){typeof i==="number"&&(i+="");if(!i)continue;if(typeof i!=="string"||U.test(i)){if(typeof i==="string"){i=i.replace(R,"<$1>");var j=(S.exec(i)||["",""])[1].toLowerCase(),k=X[j]||X._default,l=k[0],m=b.createElement("div");m.innerHTML=k[1]+i+k[2];while(l--)m=m.lastChild;if(!d.support.tbody){var n=T.test(i),o=j==="table"&&!n?m.firstChild&&m.firstChild.childNodes:k[1]===""&&!n?m.childNodes:[];for(var p=o.length-1;p>=0;--p)d.nodeName(o[p],"tbody")&&!o[p].childNodes.length&&o[p].parentNode.removeChild(o[p])}!d.support.leadingWhitespace&&Q.test(i)&&m.insertBefore(b.createTextNode(Q.exec(i)[0]),m.firstChild),i=m.childNodes}}else i=b.createTextNode(i);i.nodeType?g.push(i):g=d.merge(g,i)}if(e)for(h=0;g[h];h++)!f||!d.nodeName(g[h],"script")||g[h].type&&g[h].type.toLowerCase()!=="text/javascript"?(g[h].nodeType===1&&g.splice.apply(g,[h+1,0].concat(d.makeArray(g[h].getElementsByTagName("script")))),e.appendChild(g[h])):f.push(g[h].parentNode?g[h].parentNode.removeChild(g[h]):g[h]);return g},cleanData:function(a){var b,c,e=d.cache,f=d.expando,g=d.event.special,h=d.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&d.noData[j.nodeName.toLowerCase()])continue;c=j[d.expando];if(c){b=e[c]&&e[c][f];if(b&&b.events){for(var k in b.events)g[k]?d.event.remove(j,k):d.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[d.expando]:j.removeAttribute&&j.removeAttribute(d.expando),delete e[c]}}}});var bb=/alpha\([^)]*\)/i,bc=/opacity=([^)]*)/,bd=/-([a-z])/ig,be=/([A-Z])/g,bf=/^-?\d+(?:px)?$/i,bg=/^-?\d/,bh={position:"absolute",visibility:"hidden",display:"block"},bi=["Left","Right"],bj=["Top","Bottom"],bk,bl,bm,bn=function(a,b){return b.toUpperCase()};d.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return d.access(this,a,c,!0,function(a,c,e){return e!==b?d.style(a,c,e):d.css(a,c)})},d.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bk(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0},cssProps:{"float":d.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,e,f){if(a&&a.nodeType!==3&&a.nodeType!==8&&a.style){var g,h=d.camelCase(c),i=a.style,j=d.cssHooks[h];c=d.cssProps[h]||h;if(e===b){if(j&&"get"in j&&(g=j.get(a,!1,f))!==b)return g;return i[c]}if(typeof e==="number"&&isNaN(e)||e==null)return;typeof e==="number"&&!d.cssNumber[h]&&(e+="px");if(!j||!("set"in j)||(e=j.set(a,e))!==b)try{i[c]=e}catch(k){}}},css:function(a,c,e){var f,g=d.camelCase(c),h=d.cssHooks[g];c=d.cssProps[g]||g;if(h&&"get"in h&&(f=h.get(a,!0,e))!==b)return f;if(bk)return bk(a,c,g)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bd,bn)}}),d.curCSS=d.css,d.each(["height","width"],function(a,b){d.cssHooks[b]={get:function(a,c,e){var f;if(c){a.offsetWidth!==0?f=bo(a,b,e):d.swap(a,bh,function(){f=bo(a,b,e)});if(f<=0){f=bk(a,b,b),f==="0px"&&bm&&(f=bm(a,b,b));if(f!=null)return f===""||f==="auto"?"0px":f}if(f<0||f==null){f=a.style[b];return f===""||f==="auto"?"0px":f}return typeof f==="string"?f:f+"px"}},set:function(a,b){if(!bf.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),d.support.opacity||(d.cssHooks.opacity={get:function(a,b){return bc.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style;c.zoom=1;var e=d.isNaN(b)?"":"alpha(opacity="+b*100+")",f=c.filter||"";c.filter=bb.test(f)?f.replace(bb,e):c.filter+" "+e}}),c.defaultView&&c.defaultView.getComputedStyle&&(bl=function(a,c,e){var f,g,h;e=e.replace(be,"-$1").toLowerCase();if(!(g=a.ownerDocument.defaultView))return b;if(h=g.getComputedStyle(a,null))f=h.getPropertyValue(e),f===""&&!d.contains(a.ownerDocument.documentElement,a)&&(f=d.style(a,e));return f}),c.documentElement.currentStyle&&(bm=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bf.test(d)&&bg.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bk=bl||bm,d.expr&&d.expr.filters&&(d.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!d.support.reliableHiddenOffsets&&(a.style.display||d.css(a,"display"))==="none"},d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)});var bp=/%20/g,bq=/\[\]$/,br=/\r?\n/g,bs=/#.*$/,bt=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bu=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bv=/(?:^file|^widget|\-extension):$/,bw=/^(?:GET|HEAD)$/,bx=/^\/\//,by=/\?/,bz=/)<[^<]*)*<\/script>/gi,bA=/^(?:select|textarea)/i,bB=/\s+/,bC=/([?&])_=[^&]*/,bD=/(^|\-)([a-z])/g,bE=function(a,b,c){return b+c.toUpperCase()},bF=/^([\w\+\.\-]+:)\/\/([^\/?#:]*)(?::(\d+))?/,bG=d.fn.load,bH={},bI={},bJ,bK;try{bJ=c.location.href}catch(bL){bJ=c.createElement("a"),bJ.href="",bJ=bJ.href}bK=bF.exec(bJ.toLowerCase()),d.fn.extend({load:function(a,c,e){if(typeof a!=="string"&&bG)return bG.apply(this,arguments);if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var g=a.slice(f,a.length);a=a.slice(0,f)}var h="GET";c&&(d.isFunction(c)?(e=c,c=b):typeof c==="object"&&(c=d.param(c,d.ajaxSettings.traditional),h="POST"));var i=this;d.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?d("
      ").append(c.replace(bz,"")).find(g):c)),e&&i.each(e,[c,b,a])}});return this},serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?d.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bA.test(this.nodeName)||bu.test(this.type))}).map(function(a,b){var c=d(this).val();return c==null?null:d.isArray(c)?d.map(c,function(a,c){return{name:b.name,value:a.replace(br,"\r\n")}}):{name:b.name,value:c.replace(br,"\r\n")}}).get()}}),d.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){d.fn[b]=function(a){return this.bind(b,a)}}),d.each(["get","post"],function(a,c){d[c]=function(a,e,f,g){d.isFunction(e)&&(g=g||f,f=e,e=b);return d.ajax({type:c,url:a,data:e,success:f,dataType:g})}}),d.extend({getScript:function(a,c){return d.get(a,b,c,"script")},getJSON:function(a,b,c){return d.get(a,b,c,"json")},ajaxSetup:function(a,b){b?d.extend(!0,a,d.ajaxSettings,b):(b=a,a=d.extend(!0,d.ajaxSettings,b));for(var c in {context:1,url:1})c in b?a[c]=b[c]:c in d.ajaxSettings&&(a[c]=d.ajaxSettings[c]);return a},ajaxSettings:{url:bJ,isLocal:bv.test(bK[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":d.parseJSON,"text xml":d.parseXML}},ajaxPrefilter:bM(bH),ajaxTransport:bM(bI),ajax:function(a,c){function v(a,c,l,n){if(r!==2){r=2,p&&clearTimeout(p),o=b,m=n||"",u.readyState=a?4:0;var q,t,v,w=l?bP(e,u,l):b,x,y;if(a>=200&&a<300||a===304){if(e.ifModified){if(x=u.getResponseHeader("Last-Modified"))d.lastModified[k]=x;if(y=u.getResponseHeader("Etag"))d.etag[k]=y}if(a===304)c="notmodified",q=!0;else try{t=bQ(e,w),c="success",q=!0}catch(z){c="parsererror",v=z}}else{v=c;if(!c||a)c="error",a<0&&(a=0)}u.status=a,u.statusText=c,q?h.resolveWith(f,[t,c,u]):h.rejectWith(f,[u,c,v]),u.statusCode(j),j=b,s&&g.trigger("ajax"+(q?"Success":"Error"),[u,e,q?t:v]),i.resolveWith(f,[u,c]),s&&(g.trigger("ajaxComplete",[u,e]),--d.active||d.event.trigger("ajaxStop"))}}typeof a==="object"&&(c=a,a=b),c=c||{};var e=d.ajaxSetup({},c),f=e.context||e,g=f!==e&&(f.nodeType||f instanceof d)?d(f):d.event,h=d.Deferred(),i=d._Deferred(),j=e.statusCode||{},k,l={},m,n,o,p,q,r=0,s,t,u={readyState:0,setRequestHeader:function(a,b){r||(l[a.toLowerCase().replace(bD,bE)]=b);return this},getAllResponseHeaders:function(){return r===2?m:null},getResponseHeader:function(a){var c;if(r===2){if(!n){n={};while(c=bt.exec(m))n[c[1].toLowerCase()]=c[2]}c=n[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){r||(e.mimeType=a);return this},abort:function(a){a=a||"abort",o&&o.abort(a),v(0,a);return this}};h.promise(u),u.success=u.done,u.error=u.fail,u.complete=i.done,u.statusCode=function(a){if(a){var b;if(r<2)for(b in a)j[b]=[j[b],a[b]];else b=a[u.status],u.then(b,b)}return this},e.url=((a||e.url)+"").replace(bs,"").replace(bx,bK[1]+"//"),e.dataTypes=d.trim(e.dataType||"*").toLowerCase().split(bB),e.crossDomain||(q=bF.exec(e.url.toLowerCase()),e.crossDomain=q&&(q[1]!=bK[1]||q[2]!=bK[2]||(q[3]||(q[1]==="http:"?80:443))!=(bK[3]||(bK[1]==="http:"?80:443)))),e.data&&e.processData&&typeof e.data!=="string"&&(e.data=d.param(e.data,e.traditional)),bN(bH,e,c,u);if(r===2)return!1;s=e.global,e.type=e.type.toUpperCase(),e.hasContent=!bw.test(e.type),s&&d.active++===0&&d.event.trigger("ajaxStart");if(!e.hasContent){e.data&&(e.url+=(by.test(e.url)?"&":"?")+e.data),k=e.url;if(e.cache===!1){var w=d.now(),x=e.url.replace(bC,"$1_="+w);e.url=x+(x===e.url?(by.test(e.url)?"&":"?")+"_="+w:"")}}if(e.data&&e.hasContent&&e.contentType!==!1||c.contentType)l["Content-Type"]=e.contentType;e.ifModified&&(k=k||e.url,d.lastModified[k]&&(l["If-Modified-Since"]=d.lastModified[k]),d.etag[k]&&(l["If-None-Match"]=d.etag[k])),l.Accept=e.dataTypes[0]&&e.accepts[e.dataTypes[0]]?e.accepts[e.dataTypes[0]]+(e.dataTypes[0]!=="*"?", */*; q=0.01":""):e.accepts["*"];for(t in e.headers)u.setRequestHeader(t,e.headers[t]);if(e.beforeSend&&(e.beforeSend.call(f,u,e)===!1||r===2)){u.abort();return!1}for(t in {success:1,error:1,complete:1})u[t](e[t]);o=bN(bI,e,c,u);if(o){u.readyState=1,s&&g.trigger("ajaxSend",[u,e]),e.async&&e.timeout>0&&(p=setTimeout(function(){u.abort("timeout")},e.timeout));try{r=1,o.send(l,v)}catch(y){status<2?v(-1,y):d.error(y)}}else v(-1,"No Transport");return u},param:function(a,c){var e=[],f=function(a,b){b=d.isFunction(b)?b():b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){f(this.name,this.value)});else for(var g in a)bO(g,a[g],c,f);return e.join("&").replace(bp,"+")}}),d.extend({active:0,lastModified:{},etag:{}});var bR=d.now(),bS=/(\=)\?(&|$)|()\?\?()/i;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return d.expando+"_"+bR++}}),d.ajaxPrefilter("json jsonp",function(b,c,e){var f=typeof b.data==="string";if(b.dataTypes[0]==="jsonp"||c.jsonpCallback||c.jsonp!=null||b.jsonp!==!1&&(bS.test(b.url)||f&&bS.test(b.data))){var g,h=b.jsonpCallback=d.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2",m=function(){a[h]=i,g&&d.isFunction(i)&&a[h](g[0])};b.jsonp!==!1&&(j=j.replace(bS,l),b.url===j&&(f&&(k=k.replace(bS,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},e.then(m,m),b.converters["script json"]=function(){g||d.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){d.globalEval(a);return a}}}),d.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),d.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var bT=d.now(),bU,bV;d.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&bX()||bY()}:bX,bV=d.ajaxSettings.xhr(),d.support.ajax=!!bV,d.support.cors=bV&&"withCredentials"in bV,bV=b,d.support.ajax&&d.ajaxTransport(function(a){if(!a.crossDomain||d.support.cors){var c;return{send:function(e,f){var g=a.xhr(),h,i;a.username?g.open(a.type,a.url,a.async,a.username,a.password):g.open(a.type,a.url,a.async);if(a.xhrFields)for(i in a.xhrFields)g[i]=a.xhrFields[i];a.mimeType&&g.overrideMimeType&&g.overrideMimeType(a.mimeType),(!a.crossDomain||a.hasContent)&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(i in e)g.setRequestHeader(i,e[i])}catch(j){}g.send(a.hasContent&&a.data||null),c=function(e,i){var j,k,l,m,n;try{if(c&&(i||g.readyState===4)){c=b,h&&(g.onreadystatechange=d.noop,delete bU[h]);if(i)g.readyState!==4&&g.abort();else{j=g.status,l=g.getAllResponseHeaders(),m={},n=g.responseXML,n&&n.documentElement&&(m.xml=n),m.text=g.responseText;try{k=g.statusText}catch(o){k=""}j||!a.isLocal||a.crossDomain?j===1223&&(j=204):j=m.text?200:404}}}catch(p){i||f(-1,p)}m&&f(j,k,m,l)},a.async&&g.readyState!==4?(bU||(bU={},bW()),h=bT++,g.onreadystatechange=bU[h]=c):c()},abort:function(){c&&c(0,1)}}}});var bZ={},b$=/^(?:toggle|show|hide)$/,b_=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,ca,cb=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];d.fn.extend({show:function(a,b,c){var e,f;if(a||a===0)return this.animate(cc("show",3),a,b,c);for(var g=0,h=this.length;g=0;a--)c[a].elem===this&&(b&&c[a](!0),c.splice(a,1))}),b||this.dequeue();return this}}),d.each({slideDown:cc("show",1),slideUp:cc("hide",1),slideToggle:cc("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){d.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),d.extend({speed:function(a,b,c){var e=a&&typeof a==="object"?d.extend({},a):{complete:c||!c&&b||d.isFunction(a)&&a,duration:a,easing:c&&b||b&&!d.isFunction(b)&&b};e.duration=d.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in d.fx.speeds?d.fx.speeds[e.duration]:d.fx.speeds._default,e.old=e.complete,e.complete=function(){e.queue!==!1&&d(this).dequeue(),d.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig||(b.orig={})}}),d.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(d.fx.step[this.prop]||d.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=d.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return e.step(a)}var e=this,f=d.fx;this.startTime=d.now(),this.start=a,this.end=b,this.unit=c||this.unit||(d.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&d.timers.push(g)&&!ca&&(ca=setInterval(f.tick,f.interval))},show:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),d(this.elem).show()},hide:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=d.now(),c=!0;if(a||b>=this.options.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),this.options.curAnim[this.prop]=!0;for(var e in this.options.curAnim)this.options.curAnim[e]!==!0&&(c=!1);if(c){if(this.options.overflow!=null&&!d.support.shrinkWrapBlocks){var f=this.elem,g=this.options;d.each(["","X","Y"],function(a,b){f.style["overflow"+b]=g.overflow[a]})}this.options.hide&&d(this.elem).hide();if(this.options.hide||this.options.show)for(var h in this.options.curAnim)d.style(this.elem,h,this.options.orig[h]);this.options.complete.call(this.elem)}return!1}var i=b-this.startTime;this.state=i/this.options.duration;var j=this.options.specialEasing&&this.options.specialEasing[this.prop],k=this.options.easing||(d.easing.swing?"swing":"linear");this.pos=d.easing[j||k](this.state,i,0,1,this.options.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update();return!0}},d.extend(d.fx,{tick:function(){var a=d.timers;for(var b=0;b
      ";d.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),e=b.firstChild,f=e.firstChild,h=e.nextSibling.firstChild.firstChild,this.doesNotAddBorder=f.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,f.style.position="fixed",f.style.top="20px",this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15,f.style.position=f.style.top="",e.style.overflow="hidden",e.style.position="relative",this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),a=b=e=f=g=h=null,d.offset.initialize=d.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;d.offset.initialize(),d.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(d.css(a,"marginTop"))||0,c+=parseFloat(d.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var e=d.css(a,"position");e==="static"&&(a.style.position="relative");var f=d(a),g=f.offset(),h=d.css(a,"top"),i=d.css(a,"left"),j=e==="absolute"&&d.inArray("auto",[h,i])>-1,k={},l={},m,n;j&&(l=f.position()),m=j?l.top:parseInt(h,10)||0,n=j?l.left:parseInt(i,10)||0,d.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):f.css(k)}},d.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),e=cf.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(d.css(a,"marginTop"))||0,c.left-=parseFloat(d.css(a,"marginLeft"))||0,e.top+=parseFloat(d.css(b[0],"borderTopWidth"))||0,e.left+=parseFloat(d.css(b[0],"borderLeftWidth"))||0;return{top:c.top-e.top,left:c.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&(!cf.test(a.nodeName)&&d.css(a,"position")==="static"))a=a.offsetParent;return a})}}),d.each(["Left","Top"],function(a,c){var e="scroll"+c;d.fn[e]=function(c){var f=this[0],g;if(!f)return null;if(c!==b)return this.each(function(){g=cg(this),g?g.scrollTo(a?d(g).scrollLeft():c,a?c:d(g).scrollTop()):this[e]=c});g=cg(f);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:d.support.boxModel&&g.document.documentElement[e]||g.document.body[e]:f[e]}}),d.each(["Height","Width"],function(a,c){var e=c.toLowerCase();d.fn["inner"+c]=function(){return this[0]?parseFloat(d.css(this[0],e,"padding")):null},d.fn["outer"+c]=function(a){return this[0]?parseFloat(d.css(this[0],e,a?"margin":"border")):null},d.fn[e]=function(a){var f=this[0];if(!f)return a==null?null:this;if(d.isFunction(a))return this.each(function(b){var c=d(this);c[e](a.call(this,b,c[e]()))});if(d.isWindow(f)){var g=f.document.documentElement["client"+c];return f.document.compatMode==="CSS1Compat"&&g||f.document.body["client"+c]||g}if(f.nodeType===9)return Math.max(f.documentElement["client"+c],f.body["scroll"+c],f.documentElement["scroll"+c],f.body["offset"+c],f.documentElement["offset"+c]);if(a===b){var h=d.css(f,e),i=parseFloat(h);return d.isNaN(i)?h:i}return this.css(e,typeof a==="string"?a:a+"px")}}),a.jQuery=a.$=d})(window); \ No newline at end of file === removed file 'lava_server/htdocs/js/jquery-ui-1.8.12.custom.min.js' --- lava_server/htdocs/js/jquery-ui-1.8.12.custom.min.js 2011-06-02 22:56:46 +0000 +++ lava_server/htdocs/js/jquery-ui-1.8.12.custom.min.js 1970-01-01 00:00:00 +0000 @@ -1,783 +0,0 @@ -/*! - * jQuery UI 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI - */ -(function(c,j){function k(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.12",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106, -NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this, -"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position"); -if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,l,m){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(l)g-=parseFloat(c.curCSS(f, -"border"+this+"Width",true))||0;if(m)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h, -d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");if("area"===b){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&k(a)}return(/input|select|textarea|button|object/.test(b)?!a.disabled:"a"==b?a.href||!isNaN(d):!isNaN(d))&&k(a)},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}}); -c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate); -if(this._mouseStarted){this._mouseStarted=false;a.target==this._mouseDownEvent.target&&b.data(a.target,this.widgetName+".preventClickEvent",true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); -;/* - * jQuery UI Position 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Position - */ -(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.setTimeout){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j={top:b.of.pageY, -left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/2;if(b.at[1]==="bottom")j.top+= -k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+(parseInt(c.curCSS(this,"marginRight",true))||0),w=m+q+(parseInt(c.curCSS(this,"marginBottom",true))||0),i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]==="center")i.top-= -m/2;i.left=Math.round(i.left);i.top=Math.round(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();b.left= -d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];b.left+= -a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b), -g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery); -;/* - * jQuery UI Draggable 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Draggables - * - * Depends: - * jquery.ui.core.js - * jquery.ui.mouse.js - * jquery.ui.widget.js - */ -(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper== -"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b= -this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;return true},_mouseStart:function(a){var b=this.options;this.helper=this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top- -this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions(); -d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);return true},_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis|| -this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b=false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&& -this.options.revert.call(this.element,b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle||!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this== -a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone():this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]|| -0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0], -this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top- -(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(), -height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[(a.containment=="document"?0:d(window).scrollLeft())-this.offset.relative.left-this.offset.parent.left,(a.containment=="document"?0:d(window).scrollTop())-this.offset.relative.top-this.offset.parent.top,(a.containment=="document"?0:d(window).scrollLeft())+d(a.containment=="document"? -document:window).width()-this.helperProportions.width-this.margins.left,(a.containment=="document"?0:d(window).scrollTop())+(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&a.containment.constructor!=Array){var b=d(a.containment)[0];if(b){a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"), -10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0),a.top+(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0),a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"), -10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom]}}else if(a.containment.constructor==Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&& -d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0], -this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.leftthis.containment[2])e=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g= -this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.topthis.containment[3])?g:!(g-this.offset.click.topthis.containment[2])? -e:!(e-this.offset.click.left').css({width:this.offsetWidth+ -"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")})},stop:function(){d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("opacity"))b._opacity=a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity", -a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable");if(a.scrollParent[0]!=document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){if(!c.axis||c.axis!="x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY=0;h--){var i=c.snapElements[h].left,k=i+c.snapElements[h].width,j=c.snapElements[h].top,l=j+c.snapElements[h].height;if(i-e=j&&f<=l||h>=j&&h<=l||fl)&&(e>= -i&&e<=k||g>=i&&g<=k||ek);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(), -top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle= -this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne", -nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor== -String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),k=0;k=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,k);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection(); -this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){e(this).removeClass("ui-resizable-autohide");b._handles.show()},function(){if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()}; -if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a=false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(), -d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset= -this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio: -this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis];if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize", -b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height; -f=f?0:c.sizeDiff.width;f={width:c.helper.width()-f,height:c.helper.height()-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f,{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing"); -this._propagate("stop",b);this._helper&&this.helper.remove();return false},_updateCache:function(b){this.offset=this.helper.offset();if(l(b.left))this.position.left=b.left;if(l(b.top))this.position.top=b.top;if(l(b.height))this.size.height=b.height;if(l(b.width))this.size.width=b.width},_updateRatio:function(b){var a=this.position,c=this.size,d=this.axis;if(b.height)b.width=c.height*this.aspectRatio;else if(b.width)b.height=c.width/this.aspectRatio;if(d=="sw"){b.left=a.left+(c.width-b.width);b.top= -null}if(d=="nw"){b.top=a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this.options,c=this.axis,d=l(b.width)&&a.maxWidth&&a.maxWidthb.width,h=l(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+ -this.size.height,k=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&k)b.left=i-a.minWidth;if(d&&k)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b, -a){return{width:this.originalSize.width+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a, -c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]);b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize, -originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,{version:"1.8.12"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(),10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize= -b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top-f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var k=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:k.parents(a.originalElement[0]).length?["width","height"]:["width", -"height","top","left"];e.each(r,function(n,o){if((n=(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(k.css("position"))){c._revertToRelativePosition=true;k.css({position:"absolute",top:"auto",left:"auto"})}k.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType?e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})}; -if(b._revertToRelativePosition){b._revertToRelativePosition=false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a=e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height- -g};g=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing,step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width, -height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement=e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d= -e(a),f=[];e(["Top","Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset;var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options, -d=a.containerOffset,f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left:a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper? -d.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top-d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height= -a.size.width/a.aspectRatio}if(d+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition,f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&& -/static/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25,display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable"); -b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b=e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/ -(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},l=function(b){return!isNaN(parseInt(b,10))}})(jQuery); -;/* - * jQuery UI Selectable 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Selectables - * - * Depends: - * jquery.ui.core.js - * jquery.ui.mouse.js - * jquery.ui.widget.js - */ -(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"), -selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("
      ")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX, -c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting", -c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d= -this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.righti||a.bottomb&&a.rightg&&a.bottom *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){this.containerCache={};this.element.addClass("ui-sortable"); -this.refresh();this.floating=this.items.length?/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a==="disabled"){this.options[a]= -b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&&!b){var f=false; -d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem=c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left- -this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]}; -this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment();if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!= -document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a); -return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0], -e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a,c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset(); -c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"): -this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--){this.containers[b]._trigger("deactivate",null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null, -dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):d(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")}, -toArray:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+jg&&b+la[this.floating?"width":"height"]?j:g0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith(); -if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=d.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), -this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});return d(b)},_removeCurrentsFromItems:function(){for(var a=this.currentItem.find(":data(sortable-item)"),b=0;b=0;f--)for(var g=d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h=0;b--){var c=this.items[b];if(!(c.instance!=this.currentContainer&&this.currentContainer&&c.item[0]!=this.currentItem[0])){var e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b= -this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=e.top;this.containers[b].containerCache.width=this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f= -d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f},update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")|| -0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out", -a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===1){this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h- -f)this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g- -this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.topthis.containment[3])?g:!(g-this.offset.click.topthis.containment[2])?f:!(f-this.offset.click.left=0;e--)if(d.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this, -this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop", -a,this._uiHash());for(e=0;e li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"); -a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"); -if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var h=d.closest(".ui-accordion-header");a.active=h.length?h:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion", -function(f){return a._keydown(f)}).next().attr("role","tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(f){a._clickHandler.call(a,f,this);f.preventDefault()})},_createIcons:function(){var a= -this.options;if(a.icons){c("").addClass("ui-icon "+a.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex"); -this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons(); -b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,h=this.headers.index(a.target),f=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:f=this.headers[(h+1)%d];break;case b.LEFT:case b.UP:f=this.headers[(h-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target); -a.preventDefault()}if(f){c(a.target).attr("tabIndex",-1);c(f).attr("tabIndex",0);f.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+ -c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options; -if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){var h=this.active;j=a.next();g=this.active.next();e={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):j,oldContent:g};var f=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(j,g,e,b,f);h.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header); -if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);a.next().addClass("ui-accordion-content-active")}}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var g=this.active.next(), -e={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:g},j=this.active=c([]);this._toggle(j,g,e)}},_toggle:function(a,b,d,h,f){var g=this,e=g.options;g.toShow=a;g.toHide=b;g.data=d;var j=function(){if(g)return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data);g.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&h?{toShow:c([]),toHide:b,complete:j,down:f,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:f,autoHeight:e.autoHeight|| -e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;h=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!h[k]&&!c.easing[k])k="slide";h[k]||(h[k]=function(l){this.slide(l,{easing:k,duration:i||700})});h[k](d)}else{if(e.collapsible&&h)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false", -"aria-selected":"false",tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");if(this.toHide.length)this.toHide.parent()[0].className=this.toHide.parent()[0].className;this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion,{version:"1.8.12", -animations:{slide:function(a,b){a=c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),h=0,f={},g={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){g[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/); -f[i]={value:j[1],unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(g,{step:function(j,i){if(i.prop=="height")h=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=h*f[i.prop].value+f[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide", -paddingTop:"hide",paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery); -;/* - * jQuery UI Autocomplete 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Autocomplete - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - * jquery.ui.position.js - */ -(function(d){var e=0;d.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:false,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var a=this,b=this.element[0].ownerDocument,g;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!(a.options.disabled||a.element.attr("readonly"))){g= -false;var f=d.ui.keyCode;switch(c.keyCode){case f.PAGE_UP:a._move("previousPage",c);break;case f.PAGE_DOWN:a._move("nextPage",c);break;case f.UP:a._move("previous",c);c.preventDefault();break;case f.DOWN:a._move("next",c);c.preventDefault();break;case f.ENTER:case f.NUMPAD_ENTER:if(a.menu.active){g=true;c.preventDefault()}case f.TAB:if(!a.menu.active)return;a.menu.select(c);break;case f.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!= -a.element.val()){a.selectedItem=null;a.search(null,c)}},a.options.delay);break}}}).bind("keypress.autocomplete",function(c){if(g){g=false;c.preventDefault()}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)}; -this.menu=d("
        ").addClass("ui-autocomplete").appendTo(d(this.options.appendTo||"body",b)[0]).mousedown(function(c){var f=a.menu.element[0];d(c.target).closest(".ui-menu-item").length||setTimeout(function(){d(document).one("mousedown",function(h){h.target!==a.element[0]&&h.target!==f&&!d.ui.contains(f,h.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,f){f=f.item.data("item.autocomplete");false!==a._trigger("focus",c,{item:f})&&/^key/.test(c.originalEvent.type)&& -a.element.val(f.value)},selected:function(c,f){var h=f.item.data("item.autocomplete"),i=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();a.previous=i;setTimeout(function(){a.previous=i;a.selectedItem=h},1)}false!==a._trigger("select",c,{item:h})&&a.element.val(h.value);a.term=a.element.val();a.close(c);a.selectedItem=h},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu"); -d.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");this.menu.element.remove();d.Widget.prototype.destroy.call(this)},_setOption:function(a,b){d.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(d(b||"body",this.element[0].ownerDocument)[0]);a==="disabled"&& -b&&this.xhr&&this.xhr.abort()},_initSource:function(){var a=this,b,g;if(d.isArray(this.options.source)){b=this.options.source;this.source=function(c,f){f(d.ui.autocomplete.filter(b,c.term))}}else if(typeof this.options.source==="string"){g=this.options.source;this.source=function(c,f){a.xhr&&a.xhr.abort();a.xhr=d.ajax({url:g,data:c,dataType:"json",autocompleteRequest:++e,success:function(h){this.autocompleteRequest===e&&f(h)},error:function(){this.autocompleteRequest===e&&f([])}})}}else this.source= -this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length").data("item.autocomplete",b).append(d("").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b);else this.search(null,b)},widget:function(){return this.menu.element}});d.extend(d.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, -"\\$&")},filter:function(a,b){var g=new RegExp(d.ui.autocomplete.escapeRegex(b),"i");return d.grep(a,function(c){return g.test(c.label||c.value||c)})}})})(jQuery); -(function(d){d.widget("ui.menu",{_create:function(){var e=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(a){if(d(a.target).closest(".ui-menu-item a").length){a.preventDefault();e.select(a)}});this.refresh()},refresh:function(){var e=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex", --1).mouseenter(function(a){e.activate(a,d(this).parent())}).mouseleave(function(){e.deactivate()})},activate:function(e,a){this.deactivate();if(this.hasScroll()){var b=a.offset().top-this.element.offset().top,g=this.element.attr("scrollTop"),c=this.element.height();if(b<0)this.element.attr("scrollTop",g+b);else b>=c&&this.element.attr("scrollTop",g+b-c+a.height())}this.active=a.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",e,{item:a})}, -deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");this._trigger("blur");this.active=null}},next:function(e){this.move("next",".ui-menu-item:first",e)},previous:function(e){this.move("prev",".ui-menu-item:last",e)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(e,a,b){if(this.active){e=this.active[e+"All"](".ui-menu-item").eq(0); -e.length?this.activate(b,e):this.activate(b,this.element.children(a))}else this.activate(b,this.element.children(a))},nextPage:function(e){if(this.hasScroll())if(!this.active||this.last())this.activate(e,this.element.children(".ui-menu-item:first"));else{var a=this.active.offset().top,b=this.element.height(),g=this.element.children(".ui-menu-item").filter(function(){var c=d(this).offset().top-a-b+d(this).height();return c<10&&c>-10});g.length||(g=this.element.children(".ui-menu-item:last"));this.activate(e, -g)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(e){if(this.hasScroll())if(!this.active||this.first())this.activate(e,this.element.children(".ui-menu-item:last"));else{var a=this.active.offset().top,b=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var g=d(this).offset().top-a+b-d(this).height();return g<10&&g>-10});result.length||(result=this.element.children(".ui-menu-item:first")); -this.activate(e,result)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,f=d.primary&&d.secondary,e=[];if(d.primary||d.secondary){if(this.options.text)e.push("ui-button-text-icon"+(f?"s":d.primary?"-primary":"-secondary"));d.primary&&b.prepend("");d.secondary&&b.append("");if(!this.options.text){e.push(f?"ui-button-icons-only": -"ui-button-icon-only");this.hasTitle||b.attr("title",c)}}else e.push("ui-button-text-only");b.addClass(e.join(" "))}}});a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c);a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end()}, -destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");a.Widget.prototype.destroy.call(this)}})})(jQuery); -;/* - * jQuery UI Dialog 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Dialog - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - * jquery.ui.button.js - * jquery.ui.draggable.js - * jquery.ui.mouse.js - * jquery.ui.position.js - * jquery.ui.resizable.js - */ -(function(c,l){var m={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},n={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true},o=c.attrFn||{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true,click:true};c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false, -position:{my:"center",at:"center",collision:"fit",using:function(a){var b=c(this).css(a).offset().top;b<0&&c(this).css("top",a.top-b)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var a=this,b=a.options,d=b.title||" ",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("
        ")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+ -b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("
        ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g), -h=c('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("").addClass("ui-dialog-title").attr("id", -e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"); -a.uiDialog.remove();a.originalTitle&&a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d,e;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!== -b.uiDialog[0]){e=c(this).css("z-index");isNaN(e)||(d=Math.max(d,e))}});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+= -1;d.uiDialog.css("z-index",c.ui.dialog.maxZ);d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target=== -f[0]&&e.shiftKey){g.focus(1);return false}}});c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,e=c("
        ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("
        ").addClass("ui-dialog-buttonset").appendTo(e);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a, -function(){return!(d=true)});if(d){c.each(a,function(f,h){h=c.isFunction(h)?{click:h,text:f}:h;var i=c('').click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.each(h,function(j,k){if(j!=="click")j in o?i[j](k):i.attr(j,k)});c.fn.button&&i.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close", -handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition, -originalSize:f.originalSize,position:f.position,size:f.size}}a=a===l?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize", -f,b(h))},stop:function(f,h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop",f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0],e;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "): -[a[0],a[1]];if(b.length===1)b[1]=b[0];c.each(["left","top"],function(g,f){if(+b[g]===b[g]){d[g]=b[g];b[g]=f}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,a)}else a=c.ui.dialog.prototype.options.position;(e=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(c.extend({of:window},a));e||this.uiDialog.hide()},_setOptions:function(a){var b=this,d={},e=false;c.each(a,function(g,f){b._setOption(g,f); -if(g in m)e=true;if(g in n)d[g]=f});e&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(a,b){var d=this,e=d.uiDialog;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"): -e.removeClass("ui-dialog-disabled");break;case "draggable":var g=e.is(":data(draggable)");g&&!b&&e.draggable("destroy");!g&&b&&d._makeDraggable();break;case "position":d._position(b);break;case "resizable":(g=e.is(":data(resizable)"))&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||" "));break}c.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var a= -this.options,b,d,e=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();d=Math.max(0,a.minHeight-b);if(a.height==="auto")if(c.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();a=this.element.css("height","auto").height();e||this.uiDialog.hide();this.element.height(Math.max(a,d))}else this.element.height(Math.max(a.height- -b,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.12",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "), -create:function(a){if(this.instances.length===0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(), -height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){var b=c.inArray(a,this.instances);b!=-1&&this.oldInstances.push(this.instances.splice(b,1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var d=0;c.each(this.instances,function(){d=Math.max(d,this.css("z-index"))});this.maxZ=d},height:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight); -b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a");if(!a.values)a.values=[this._valueMin(),this._valueMin()];if(a.values.length&&a.values.length!==2)a.values=[a.values[0],a.values[0]]}else this.range=d("
        ");this.range.appendTo(this.element).addClass("ui-slider-range");if(a.range==="min"||a.range==="max")this.range.addClass("ui-slider-range-"+a.range);this.range.addClass("ui-widget-header")}d(".ui-slider-handle",this.element).length===0&&d("").appendTo(this.element).addClass("ui-slider-handle"); -if(a.values&&a.values.length)for(;d(".ui-slider-handle",this.element).length").appendTo(this.element).addClass("ui-slider-handle");this.handles=d(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(c){c.preventDefault()}).hover(function(){a.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(a.disabled)d(this).blur(); -else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(c){d(this).data("index.ui-slider-handle",c)});this.handles.keydown(function(c){var e=true,f=d(this).data("index.ui-slider-handle"),h,g,i;if(!b.options.disabled){switch(c.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:e= -false;if(!b._keySliding){b._keySliding=true;d(this).addClass("ui-state-active");h=b._start(c,f);if(h===false)return}break}i=b.options.step;h=b.options.values&&b.options.values.length?(g=b.values(f)):(g=b.value());switch(c.keyCode){case d.ui.keyCode.HOME:g=b._valueMin();break;case d.ui.keyCode.END:g=b._valueMax();break;case d.ui.keyCode.PAGE_UP:g=b._trimAlignValue(h+(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:g=b._trimAlignValue(h-(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(h=== -b._valueMax())return;g=b._trimAlignValue(h+i);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(h===b._valueMin())return;g=b._trimAlignValue(h-i);break}b._slide(c,f,g);return e}}).keyup(function(c){var e=d(this).data("index.ui-slider-handle");if(b._keySliding){b._keySliding=false;b._stop(c,e);b._change(c,e);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider"); -this._mouseDestroy();return this},_mouseCapture:function(b){var a=this.options,c,e,f,h,g;if(a.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:b.pageX,y:b.pageY});e=this._valueMax()-this._valueMin()+1;h=this;this.handles.each(function(i){var j=Math.abs(c-h.values(i));if(e>j){e=j;f=d(this);g=i}});if(a.range===true&&this.values(1)===a.min){g+=1;f=d(this.handles[g])}if(this._start(b, -g)===false)return false;this._mouseSliding=true;h._handleIndex=g;f.addClass("ui-state-active").focus();a=f.offset();this._clickOffset=!d(b.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:b.pageX-a.left-f.width()/2,top:b.pageY-a.top-f.height()/2-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(b,g,c);return this._animateOff=true},_mouseStart:function(){return true}, -_mouseDrag:function(b){var a=this._normValueFromMouse({x:b.pageX,y:b.pageY});this._slide(b,this._handleIndex,a);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(b){var a; -if(this.orientation==="horizontal"){a=this.elementSize.width;b=b.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{a=this.elementSize.height;b=b.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}a=b/a;if(a>1)a=1;if(a<0)a=0;if(this.orientation==="vertical")a=1-a;b=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+a*b)},_start:function(b,a){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value= -this.values(a);c.values=this.values()}return this._trigger("start",b,c)},_slide:function(b,a,c){var e;if(this.options.values&&this.options.values.length){e=this.values(a?0:1);if(this.options.values.length===2&&this.options.range===true&&(a===0&&c>e||a===1&&c1){this.options.values[b]=this._trimAlignValue(a);this._refreshValue();this._change(null,b)}else if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;e=arguments[0];for(f=0;f=this._valueMax())return this._valueMax();var a=this.options.step>0?this.options.step:1,c=(b-this._valueMin())%a;alignValue=b-c;if(Math.abs(c)*2>=a)alignValue+=c>0?a:-a;return parseFloat(alignValue.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max}, -_refreshValue:function(){var b=this.options.range,a=this.options,c=this,e=!this._animateOff?a.animate:false,f,h={},g,i,j,l;if(this.options.values&&this.options.values.length)this.handles.each(function(k){f=(c.values(k)-c._valueMin())/(c._valueMax()-c._valueMin())*100;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";d(this).stop(1,1)[e?"animate":"css"](h,a.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(k===0)c.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},a.animate); -if(k===1)c.range[e?"animate":"css"]({width:f-g+"%"},{queue:false,duration:a.animate})}else{if(k===0)c.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},a.animate);if(k===1)c.range[e?"animate":"css"]({height:f-g+"%"},{queue:false,duration:a.animate})}g=f});else{i=this.value();j=this._valueMin();l=this._valueMax();f=l!==j?(i-j)/(l-j)*100:0;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";this.handle.stop(1,1)[e?"animate":"css"](h,a.animate);if(b==="min"&&this.orientation==="horizontal")this.range.stop(1, -1)[e?"animate":"css"]({width:f+"%"},a.animate);if(b==="max"&&this.orientation==="horizontal")this.range[e?"animate":"css"]({width:100-f+"%"},{queue:false,duration:a.animate});if(b==="min"&&this.orientation==="vertical")this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},a.animate);if(b==="max"&&this.orientation==="vertical")this.range[e?"animate":"css"]({height:100-f+"%"},{queue:false,duration:a.animate})}}});d.extend(d.ui.slider,{version:"1.8.12"})})(jQuery); -;/* - * jQuery UI Tabs 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Tabs - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - */ -(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"
        ",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
      • #{label}
      • "},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&& -e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b= -d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]|| -(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); -this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected= -this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); -if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")); -this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+ -g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal", -function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")}; -this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected= --1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier."; -d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e= -d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b, -e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]); -j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove(); -if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null, -this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this}, -load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c, -"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this}, -url:function(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.12"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k')}function F(a,b){d.extend(a,b);for(var c in b)if(b[c]== -null||b[c]==A)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.12"}});var y=(new Date).getTime();d.extend(K.prototype,{markerClassName:"hasDatepicker",log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){F(this._defaults,a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=f}}}e=a.nodeName.toLowerCase(); -f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:d('
        ')}}, -_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&& -b.append.remove();if(c){b.append=d(''+c+"");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c=="focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c=this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('').addClass(this._triggerClass).html(f== -""?c:d("").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker():d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;gh){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a, -c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b), -true);this._updateDatepicker(b);this._updateAlternate(b);b.dpDiv.show()}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=d('');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}F(a.settings,e||{}); -b=b&&b.constructor==Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass); -this._showDatepicker(this._dialogInput[0]);d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup", -this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().removeClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs, -function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().addClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null: -f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var b=0;b-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target); -if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a);d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=d("input",a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a); -d.datepicker._curInst&&d.datepicker._curInst!=b&&d.datepicker._curInst.dpDiv.stop(true,true);var c=d.datepicker._get(b,"beforeShow");F(b.settings,c?c.apply(a,[a,b]):{});b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value="";if(!d.datepicker._pos){d.datepicker._pos=d.datepicker._findPos(a);d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-= -document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c={left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.empty();b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);c=d.datepicker._checkOffset(b,c,e);b.dpDiv.css({position:d.datepicker._inDialog&&d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim"); -var f=d.datepicker._get(b,"duration"),h=function(){d.datepicker._datepickerShowing=true;var i=b.dpDiv.find("iframe.ui-datepicker-cover");if(i.length){var g=d.datepicker._getBorders(b.dpDiv);i.css({left:-g[0],top:-g[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex(d(a).zIndex()+1);d.effects&&d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst= -b}}},_updateDatepicker:function(a){var b=this,c=d.datepicker._getBorders(a.dpDiv);a.dpDiv.empty().append(this._generateHTML(a));var e=a.dpDiv.find("iframe.ui-datepicker-cover");e.length&&e.css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()});a.dpDiv.find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",function(){d(this).removeClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).removeClass("ui-datepicker-prev-hover"); -this.className.indexOf("ui-datepicker-next")!=-1&&d(this).removeClass("ui-datepicker-next-hover")}).bind("mouseover",function(){if(!b._isDisabledDatepicker(a.inline?a.dpDiv.parent()[0]:a.input[0])){d(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");d(this).addClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).addClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&d(this).addClass("ui-datepicker-next-hover")}}).end().find("."+ -this._dayOverClass+" a").trigger("mouseover").end();c=this._getNumberOfMonths(a);e=c[1];e>1?a.dpDiv.addClass("ui-datepicker-multi-"+e).css("width",17*e+"em"):a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");a.dpDiv[(c[0]!=1||c[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&& -a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var f=a.yearshtml;setTimeout(function(){f===a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);f=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]||c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),h=a.input?a.input.outerWidth(): -0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),j=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e-g):0);b.top-=Math.min(b.top,b.top+f>j&&j>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=this._get(this._getInst(a), -"isRTL");a&&(a.type=="hidden"||a.nodeType!=1||d.expr.filters.hidden(a));)a=a[b?"previousSibling":"nextSibling"];a=d(a).offset();return[a.left,a.top]},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b);this._curInst=null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"? -"fadeOut":"hide"](a?c:null,e);a||e();if(a=this._get(b,"onClose"))a.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(d.datepicker._curInst){a= -d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&&!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&&d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a= -d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth=b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e._selectingMonthYear=false;e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c== -"M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_clickMonthYear:function(a){var b=this._getInst(d(a)[0]);b.input&&b._selectingMonthYear&&setTimeout(function(){b.input.focus()},0);b._selectingMonthYear=!b._selectingMonthYear},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay=d("a",e).html();f.selectedMonth=f.currentMonth= -b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a);this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a);a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);else{this._hideDatepicker(); -this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a));d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b=a.getTime();a.setMonth(0); -a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;e=typeof e!="string"?e:(new Date).getFullYear()%100+parseInt(e,10);for(var f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c? -c.monthNames:null)||this._defaults.monthNames,j=c=-1,l=-1,u=-1,k=false,o=function(p){(p=z+1-1){j=1;l=u;do{e=this._getDaysInMonth(c,j-1);if(l<=e)break;j++;l-=e}while(1)}w=this._daylightSavingAdjust(new Date(c,j-1,l));if(w.getFullYear()!=c||w.getMonth()+1!=j||w.getDate()!=l)throw"Invalid date";return w},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y", -RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:null)||this._defaults.monthNames;var i=function(o){(o=k+112?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay= -a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(), -b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),j=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay?new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),k=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n= -this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=k&&nn;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-j,1)),this._getFormatConfig(a));n=this._canAdjustMonth(a,-1,m,g)?''+n+"":f?"":''+n+"";var r=this._get(a,"nextText");r=!h?r:this.formatDate(r,this._daylightSavingAdjust(new Date(m,g+j,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?''+r+"":f?"":''+r+"";j=this._get(a,"currentText");r=this._get(a,"gotoCurrent")&&a.currentDay?u:b;j=!h?j:this.formatDate(j,r,this._getFormatConfig(a));h=!a.inline?'":"";e=e?'
        '+(c?h:"")+(this._isInRange(a,r)?'":"")+(c?"":h)+"
        ":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;j=this._get(a,"showWeek");r=this._get(a,"dayNames");this._get(a,"dayNamesShort");var s=this._get(a,"dayNamesMin"),z= -this._get(a,"monthNames"),w=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),v=this._get(a,"showOtherMonths"),H=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var L=this._getDefaultDate(a),I="",D=0;D1)switch(E){case 0:x+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right":"left");break;case i[1]- -1:x+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:x+=" ui-datepicker-group-middle";t="";break}x+='">'}x+='
        '+(/all|left/.test(t)&&D==0?c?f:n:"")+(/all|right/.test(t)&&D==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,k,o,D>0||E>0,z,w)+'
        ';var B=j?'":"";for(t=0;t<7;t++){var q= -(t+h)%7;B+="=5?' class="ui-datepicker-week-end"':"")+'>'+s[q]+""}x+=B+"";B=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,B);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;B=l?6:Math.ceil((t+B)/7);q=this._daylightSavingAdjust(new Date(m,g,1-t));for(var O=0;O";var P=!j?"":'";for(t=0;t<7;t++){var G= -p?p.apply(a.input?a.input[0]:null,[q]):[true,""],C=q.getMonth()!=g,J=C&&!H||!G[0]||k&&qo;P+='";q.setDate(q.getDate()+1);q=this._daylightSavingAdjust(q)}x+= -P+""}g++;if(g>11){g=0;m++}x+="
        '+this._get(a,"weekHeader")+"
        '+this._get(a,"calculateWeek")(q)+""+(C&&!v?" ":J?''+q.getDate()+"":''+q.getDate()+"")+"
        "+(l?""+(i[0]>0&&E==i[1]-1?'
        ':""):"");M+=x}I+=M}I+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'':"");a._keyEvent=false;return I},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var j=this._get(a,"changeMonth"),l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),k='
        ', -o="";if(h||!j)o+=''+i[b]+"";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='"}u||(k+=o+(h||!(j&& -l)?" ":""));if(!a.yearshtml){a.yearshtml="";if(h||!l)k+=''+c+"";else{g=this._get(a,"yearRange").split(":");var r=(new Date).getFullYear();i=function(s){s=s.match(/c[+-].*/)?c+parseInt(s.substring(1),10):s.match(/[+-].*/)?r+parseInt(s,10):parseInt(s,10);return isNaN(s)?r:s};b=i(g[0]);g=Math.max(b,i(g[1]||""));b=e?Math.max(b,e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()):g;for(a.yearshtml+='";if(d.browser.mozilla)k+='";else{k+=a.yearshtml;a.yearshtml=null}}}k+=this._get(a,"yearSuffix");if(u)k+=(h||!(j&&l)?" ":"")+o;k+="
        ";return k},_adjustInstDate:function(a,b,c){var e= -a.drawYear+(c=="Y"?b:0),f=a.drawMonth+(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&ba?a:b},_notifyChange:function(a){var b=this._get(a, -"onChangeMonthYear");if(b)b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a); -c=this._daylightSavingAdjust(new Date(c,e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a, -"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker= -function(a){if(!this.length)return this;if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker, -[this[0]].concat(b));return this.each(function(){typeof a=="string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new K;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.12";window["DP_jQuery_"+y]=d})(jQuery); -;/* - * jQuery UI Progressbar 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Progressbar - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - */ -(function(b,d){b.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=b("
        ").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"); -this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===d)return this._value();this._setOption("value",a);return this},_setOption:function(a,c){if(a==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100* -this._value()/this.options.max},_refreshValue:function(){var a=this.value(),c=this._percentage();if(this.oldValue!==a){this.oldValue=a;this._trigger("change")}this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.12"})})(jQuery); -;/* - * jQuery UI Effects 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/ - */ -jQuery.effects||function(f,j){function n(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1], -16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return o.transparent;return o[f.trim(c).toLowerCase()]}function s(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return n(b)}function p(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle, -a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function q(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in t||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function u(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d= -a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}function m(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects[c])return true;return false}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor", -"borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=s(b.elem,a);b.end=n(b.end);b.colorInit=true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var o={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0, -0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211, -211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},r=["add","remove","toggle"],t={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b, -d){if(f.isFunction(b)){d=b;b=null}return this.queue("fx",function(){var e=f(this),g=e.attr("style")||" ",h=q(p.call(this)),l,v=e.attr("className");f.each(r,function(w,i){c[i]&&e[i+"Class"](c[i])});l=q(p.call(this));e.attr("className",v);e.animate(u(h,l),a,b,function(){f.each(r,function(w,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments)});h=f.queue(this);l=h.splice(h.length-1,1)[0]; -h.splice(1,0,l);f.dequeue(this)})};f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c, -a):f.effects.animateClass.apply(this,[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.12",save:function(c,a){for(var b=0;b").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent", -border:"none",margin:0,padding:0});c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c); -return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)});return d.call(this,b)},_show:f.fn.show,show:function(c){if(m(c))return this._show.apply(this,arguments); -else{var a=k.apply(this,arguments);a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(m(c))return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(m(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c), -b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c, -a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c, -a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a== -e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+ -e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery); -;/* - * jQuery UI Effects Fade 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Fade - * - * Depends: - * jquery.effects.core.js - */ -(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery); -;/* - * jQuery UI Effects Fold 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Fold - * - * Depends: - * jquery.effects.core.js - */ -(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","bottom","left","right"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1], -10)/100*f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery); -;/* - * jQuery UI Effects Highlight 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Highlight - * - * Depends: - * jquery.effects.core.js - */ -(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&& -this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery); -;/* - * jQuery UI Effects Pulsate 1.8.12 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Pulsate - * - * Depends: - * jquery.effects.core.js - */ -(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments); -b.dequeue()})})}})(jQuery); -; \ No newline at end of file === removed file 'lava_server/htdocs/js/jquery.cookie.js' --- lava_server/htdocs/js/jquery.cookie.js 2011-09-22 10:47:47 +0000 +++ lava_server/htdocs/js/jquery.cookie.js 1970-01-01 00:00:00 +0000 @@ -1,41 +0,0 @@ -/** - * jQuery Cookie plugin - * - * Copyright (c) 2010 Klaus Hartl (stilbuero.de) - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html - * - */ -jQuery.cookie = function (key, value, options) { - - // key and at least value given, set cookie... - if (arguments.length > 1 && String(value) !== "[object Object]") { - options = jQuery.extend({}, options); - - if (value === null || value === undefined) { - options.expires = -1; - } - - if (typeof options.expires === 'number') { - var days = options.expires, t = options.expires = new Date(); - t.setDate(t.getDate() + days); - } - - value = String(value); - - return (document.cookie = [ - encodeURIComponent(key), '=', - options.raw ? value : encodeURIComponent(value), - options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE - options.path ? '; path=' + options.path : '', - options.domain ? '; domain=' + options.domain : '', - options.secure ? '; secure' : '' - ].join('')); - } - - // key and possibly options given, get cookie... - options = value || {}; - var result, decode = options.raw ? function (s) { return s; } : decodeURIComponent; - return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null; -}; === removed file 'lava_server/htdocs/js/jquery.dataTables.min.js' --- lava_server/htdocs/js/jquery.dataTables.min.js 2011-07-08 03:02:35 +0000 +++ lava_server/htdocs/js/jquery.dataTables.min.js 1970-01-01 00:00:00 +0000 @@ -1,151 +0,0 @@ -/* - * File: jquery.dataTables.min.js - * Version: 1.8.1 - * Author: Allan Jardine (www.sprymedia.co.uk) - * Info: www.datatables.net - * - * Copyright 2008-2011 Allan Jardine, all rights reserved. - * - * This source file is free software, under either the GPL v2 license or a - * BSD style license, as supplied with this software. - * - * This source file is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. - */ -(function(i,wa,p){i.fn.dataTableSettings=[];var D=i.fn.dataTableSettings;i.fn.dataTableExt={};var o=i.fn.dataTableExt;o.sVersion="1.8.1";o.sErrMode="alert";o.iApiIndex=0;o.oApi={};o.afnFiltering=[];o.aoFeatures=[];o.ofnSearch={};o.afnSortData=[];o.oStdClasses={sPagePrevEnabled:"paginate_enabled_previous",sPagePrevDisabled:"paginate_disabled_previous",sPageNextEnabled:"paginate_enabled_next",sPageNextDisabled:"paginate_disabled_next",sPageJUINext:"",sPageJUIPrev:"",sPageButton:"paginate_button",sPageButtonActive:"paginate_active", -sPageButtonStaticDisabled:"paginate_button paginate_button_disabled",sPageFirst:"first",sPagePrevious:"previous",sPageNext:"next",sPageLast:"last",sStripOdd:"odd",sStripEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",sSortableDesc:"sorting_desc_disabled", -sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sFooterTH:""};o.oJUIClasses={sPagePrevEnabled:"fg-button ui-button ui-state-default ui-corner-left", -sPagePrevDisabled:"fg-button ui-button ui-state-default ui-corner-left ui-state-disabled",sPageNextEnabled:"fg-button ui-button ui-state-default ui-corner-right",sPageNextDisabled:"fg-button ui-button ui-state-default ui-corner-right ui-state-disabled",sPageJUINext:"ui-icon ui-icon-circle-arrow-e",sPageJUIPrev:"ui-icon ui-icon-circle-arrow-w",sPageButton:"fg-button ui-button ui-state-default",sPageButtonActive:"fg-button ui-button ui-state-default ui-state-disabled",sPageButtonStaticDisabled:"fg-button ui-button ui-state-default ui-state-disabled", -sPageFirst:"first ui-corner-tl ui-corner-bl",sPagePrevious:"previous",sPageNext:"next",sPageLast:"last ui-corner-tr ui-corner-br",sStripOdd:"odd",sStripEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"ui-state-default",sSortDesc:"ui-state-default",sSortable:"ui-state-default", -sSortableAsc:"ui-state-default",sSortableDesc:"ui-state-default",sSortableNone:"ui-state-default",sSortColumn:"sorting_",sSortJUIAsc:"css_right ui-icon ui-icon-triangle-1-n",sSortJUIDesc:"css_right ui-icon ui-icon-triangle-1-s",sSortJUI:"css_right ui-icon ui-icon-carat-2-n-s",sSortJUIAscAllowed:"css_right ui-icon ui-icon-carat-1-n",sSortJUIDescAllowed:"css_right ui-icon ui-icon-carat-1-s",sSortJUIWrapper:"DataTables_sort_wrapper",sSortIcon:"DataTables_sort_icon",sScrollWrapper:"dataTables_scroll", -sScrollHead:"dataTables_scrollHead ui-state-default",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot ui-state-default",sScrollFootInner:"dataTables_scrollFootInner",sFooterTH:"ui-state-default"};o.oPagination={two_button:{fnInit:function(g,l,r){var s,w,y;if(g.bJUI){s=p.createElement("a");w=p.createElement("a");y=p.createElement("span");y.className=g.oClasses.sPageJUINext;w.appendChild(y);y=p.createElement("span");y.className=g.oClasses.sPageJUIPrev; -s.appendChild(y)}else{s=p.createElement("div");w=p.createElement("div")}s.className=g.oClasses.sPagePrevDisabled;w.className=g.oClasses.sPageNextDisabled;s.title=g.oLanguage.oPaginate.sPrevious;w.title=g.oLanguage.oPaginate.sNext;l.appendChild(s);l.appendChild(w);i(s).bind("click.DT",function(){g.oApi._fnPageChange(g,"previous")&&r(g)});i(w).bind("click.DT",function(){g.oApi._fnPageChange(g,"next")&&r(g)});i(s).bind("selectstart.DT",function(){return false});i(w).bind("selectstart.DT",function(){return false}); -if(g.sTableId!==""&&typeof g.aanFeatures.p=="undefined"){l.setAttribute("id",g.sTableId+"_paginate");s.setAttribute("id",g.sTableId+"_previous");w.setAttribute("id",g.sTableId+"_next")}},fnUpdate:function(g){if(g.aanFeatures.p)for(var l=g.aanFeatures.p,r=0,s=l.length;r=w-s){s=w-r+1;x=w}else{s=y-Math.ceil(r/2)+1;x=s+r-1}for(r=s;r<=x;r++)G+=y!=r?''+r+"":''+r+"";x=g.aanFeatures.p;var z,Y=function(L){g._iDisplayStart=(this.innerHTML*1-1)*g._iDisplayLength;l(g);L.preventDefault()},V=function(){return false};r=0;for(s=x.length;rl?1:0},"string-desc":function(g,l){if(typeof g!="string")g="";if(typeof l!="string")l="";g=g.toLowerCase();l=l.toLowerCase();return gl?-1:0},"html-asc":function(g,l){g=g.replace(/<.*?>/g,"").toLowerCase();l=l.replace(/<.*?>/g,"").toLowerCase();return g< -l?-1:g>l?1:0},"html-desc":function(g,l){g=g.replace(/<.*?>/g,"").toLowerCase();l=l.replace(/<.*?>/g,"").toLowerCase();return gl?-1:0},"date-asc":function(g,l){g=Date.parse(g);l=Date.parse(l);if(isNaN(g)||g==="")g=Date.parse("01/01/1970 00:00:00");if(isNaN(l)||l==="")l=Date.parse("01/01/1970 00:00:00");return g-l},"date-desc":function(g,l){g=Date.parse(g);l=Date.parse(l);if(isNaN(g)||g==="")g=Date.parse("01/01/1970 00:00:00");if(isNaN(l)||l==="")l=Date.parse("01/01/1970 00:00:00");return l- -g},"numeric-asc":function(g,l){return(g=="-"||g===""?0:g*1)-(l=="-"||l===""?0:l*1)},"numeric-desc":function(g,l){return(l=="-"||l===""?0:l*1)-(g=="-"||g===""?0:g*1)}};o.aTypes=[function(g){if(typeof g=="number")return"numeric";else if(typeof g!="string")return null;var l,r=false;l=g.charAt(0);if("0123456789-".indexOf(l)==-1)return null;for(var s=1;s")!=-1)return"html";return null}];o.fnVersionCheck=function(g){var l=function(x,v){for(;x.length=parseInt(w,10)};o._oExternConfig={iNextUnique:0};i.fn.dataTable=function(g){function l(){this.fnRecordsTotal= -function(){return this.oFeatures.bServerSide?parseInt(this._iRecordsTotal,10):this.aiDisplayMaster.length};this.fnRecordsDisplay=function(){return this.oFeatures.bServerSide?parseInt(this._iRecordsDisplay,10):this.aiDisplay.length};this.fnDisplayEnd=function(){return this.oFeatures.bServerSide?this.oFeatures.bPaginate===false||this._iDisplayLength==-1?this._iDisplayStart+this.aiDisplay.length:Math.min(this._iDisplayStart+this._iDisplayLength,this._iRecordsDisplay):this._iDisplayEnd};this.sInstance= -this.oInstance=null;this.oFeatures={bPaginate:true,bLengthChange:true,bFilter:true,bSort:true,bInfo:true,bAutoWidth:true,bProcessing:false,bSortClasses:true,bStateSave:false,bServerSide:false,bDeferRender:false};this.oScroll={sX:"",sXInner:"",sY:"",bCollapse:false,bInfinite:false,iLoadGap:100,iBarWidth:0,bAutoCss:true};this.aanFeatures=[];this.oLanguage={sProcessing:"Processing...",sLengthMenu:"Show _MENU_ entries",sZeroRecords:"No matching records found",sEmptyTable:"No data available in table", -sLoadingRecords:"Loading...",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sSearch:"Search:",sUrl:"",oPaginate:{sFirst:"First",sPrevious:"Previous",sNext:"Next",sLast:"Last"},fnInfoCallback:null};this.aoData=[];this.aiDisplay=[];this.aiDisplayMaster=[];this.aoColumns=[];this.aoHeader=[];this.aoFooter=[];this.iNextId=0;this.asDataSearch=[];this.oPreviousSearch={sSearch:"",bRegex:false, -bSmart:true};this.aoPreSearchCols=[];this.aaSorting=[[0,"asc",0]];this.aaSortingFixed=null;this.asStripClasses=[];this.asDestoryStrips=[];this.sDestroyWidth=0;this.fnFooterCallback=this.fnHeaderCallback=this.fnRowCallback=null;this.aoDrawCallback=[];this.fnInitComplete=this.fnPreDrawCallback=null;this.sTableId="";this.nTableWrapper=this.nTBody=this.nTFoot=this.nTHead=this.nTable=null;this.bInitialised=this.bDeferLoading=false;this.aoOpenRows=[];this.sDom="lfrtip";this.sPaginationType="two_button"; -this.iCookieDuration=7200;this.sCookiePrefix="SpryMedia_DataTables_";this.fnCookieCallback=null;this.aoStateSave=[];this.aoStateLoad=[];this.sAjaxSource=this.oLoadedState=null;this.sAjaxDataProp="aaData";this.bAjaxDataGet=true;this.jqXHR=null;this.fnServerData=function(a,b,c,d){d.jqXHR=i.ajax({url:a,data:b,success:c,dataType:"json",cache:false,error:function(f,e){e=="parsererror"&&alert("DataTables warning: JSON data from server could not be parsed. This is caused by a JSON formatting error.")}})}; -this.fnFormatNumber=function(a){if(a<1E3)return a;else{var b=a+"";a=b.split("");var c="";b=b.length;for(var d=0;dtr>th",a.nTFoot).addClass(a.oClasses.sFooterTH);if(a.nTFoot!==null){c=S(a,null,a.aoFooter);b=0;for(d=a.aoColumns.length;b=0;e--)!a.aoColumns[e].bVisible&&!c&&h[d].splice(e,1);j.push([])}d=0;for(f=h.length;d=a.fnRecordsDisplay()?0:a.iInitDisplayStart;a.iInitDisplayStart=-1;E(a)}if(a.bDeferLoading){a.bDeferLoading=false;a.iDraw++}else if(a.oFeatures.bServerSide){if(!a.bDestroying&&!za(a))return}else a.iDraw++;if(a.aiDisplay.length!==0){var h=a._iDisplayStart,j=a._iDisplayEnd;if(a.oFeatures.bServerSide){h=0;j=a.aoData.length}for(h=h;htr",a.nTHead)[0],aa(a),a._iDisplayStart,a.fnDisplayEnd(),a.aiDisplay);typeof a.fnFooterCallback== -"function"&&a.fnFooterCallback.call(a.oInstance,i(">tr",a.nTFoot)[0],aa(a),a._iDisplayStart,a.fnDisplayEnd(),a.aiDisplay);f=p.createDocumentFragment();b=p.createDocumentFragment();if(a.nTBody){e=a.nTBody.parentNode;b.appendChild(a.nTBody);if(!a.oScroll.bInfinite||!a._bInitComplete||a.bSorted||a.bFiltered){c=a.nTBody.childNodes;for(b=c.length-1;b>=0;b--)c[b].parentNode.removeChild(c[b])}b=0;for(c=d.length;b=0;b--)a.aoDrawCallback[b].fn.call(a.oInstance,a);a.bSorted=false;a.bFiltered=false;a.bDrawing=false;if(a.oFeatures.bServerSide){K(a,false);typeof a._bInitComplete=="undefined"&&w(a)}}}function ba(a){if(a.oFeatures.bSort)R(a,a.oPreviousSearch);else if(a.oFeatures.bFilter)M(a,a.oPreviousSearch);else{E(a);C(a)}}function za(a){if(a.bAjaxDataGet){K(a,true);var b=a.aoColumns.length,c=[],d,f;a.iDraw++;c.push({name:"sEcho",value:a.iDraw});c.push({name:"iColumns",value:b});c.push({name:"sColumns",value:ha(a)}); -c.push({name:"iDisplayStart",value:a._iDisplayStart});c.push({name:"iDisplayLength",value:a.oFeatures.bPaginate!==false?a._iDisplayLength:-1});for(f=0;f")c=c.parentNode;else if(h=="l"&&a.oFeatures.bPaginate&&a.oFeatures.bLengthChange){f=Ca(a);e=1}else if(h=="f"&&a.oFeatures.bFilter){f=Da(a);e=1}else if(h=="r"&&a.oFeatures.bProcessing){f=Ea(a);e=1}else if(h=="t"){f=Fa(a);e=1}else if(h=="i"&&a.oFeatures.bInfo){f=Ga(a);e=1}else if(h=="p"&&a.oFeatures.bPaginate){f=Ha(a);e=1}else if(o.aoFeatures.length!== -0){j=o.aoFeatures;t=0;for(k=j.length;tcaption",a.nTable);h=0;for(k=d.length;hi(a.nTable).height()-a.oScroll.iLoadGap)if(a.fnDisplayEnd()0&&a.nTable.removeChild(h[0]);if(a.nTFoot!==null){k=a.nTable.getElementsByTagName("tfoot");k.length>0&&a.nTable.removeChild(k[0])}h=a.nTHead.cloneNode(true);a.nTable.insertBefore(h,a.nTable.childNodes[0]);if(a.nTFoot!==null){k=a.nTFoot.cloneNode(true); -a.nTable.insertBefore(k,a.nTable.childNodes[1])}if(a.oScroll.sX===""){d.style.width="100%";b.parentNode.style.width="100%"}var O=S(a,h);f=0;for(e=O.length;ff-a.oScroll.iBarWidth)a.nTable.style.width=u(f)}else a.nTable.style.width=u(f);f=i(a.nTable).outerWidth();if(a.oScroll.sX===""){d.style.width=u(f+a.oScroll.iBarWidth);b.parentNode.style.width=u(f+a.oScroll.iBarWidth)}e=a.nTHead.getElementsByTagName("tr");h=h.getElementsByTagName("tr");P(function(B,F){m=B.style;m.paddingTop= -"0";m.paddingBottom="0";m.borderTopWidth="0";m.borderBottomWidth="0";m.height=0;q=i(B).width();F.style.width=u(q);I.push(q)},h,e);i(h).height(0);if(a.nTFoot!==null){j=k.getElementsByTagName("tr");k=a.nTFoot.getElementsByTagName("tr");P(function(B,F){m=B.style;m.paddingTop="0";m.paddingBottom="0";m.borderTopWidth="0";m.borderBottomWidth="0";m.height=0;q=i(B).width();F.style.width=u(q);I.push(q)},j,k);i(j).height(0)}P(function(B){B.innerHTML="";B.style.width=u(I.shift())},h);a.nTFoot!==null&&P(function(B){B.innerHTML= -"";B.style.width=u(I.shift())},j);if(i(a.nTable).outerWidth()d.offsetWidth?a.oScroll.iBarWidth:0;if(a.nTable.offsetHeight'):b===""?'':b+' '; -var c=p.createElement("div");c.className=a.oClasses.sFilter;c.innerHTML="";a.sTableId!==""&&typeof a.aanFeatures.f=="undefined"&&c.setAttribute("id",a.sTableId+"_filter");b=i("input",c);b.val(a.oPreviousSearch.sSearch.replace('"',"""));b.bind("keyup.DT",function(){for(var d=a.aanFeatures.f,f=0,e=d.length;f=0;d--){f=ma(H(a,a.aiDisplay[d],c,"filter"),a.aoColumns[c].sType);if(!b.test(f)){a.aiDisplay.splice(d,1);e++}}}}function Ka(a,b,c,d,f){var e=la(b,d,f);if(typeof c=="undefined"||c===null)c=0;if(o.afnFiltering.length!==0)c=1;if(b.length<=0){a.aiDisplay.splice(0,a.aiDisplay.length);a.aiDisplay=a.aiDisplayMaster.slice()}else if(a.aiDisplay.length==a.aiDisplayMaster.length||a.oPreviousSearch.sSearch.length> -b.length||c==1||b.indexOf(a.oPreviousSearch.sSearch)!==0){a.aiDisplay.splice(0,a.aiDisplay.length);ka(a,1);for(c=0;c/g,"");else if(typeof a=="string")return a.replace(/\n/g," ");else if(a===null)return"";return a}function R(a,b){var c,d,f,e,h=[],j=[],k=o.oSort;d=a.aoData;var m=a.aoColumns;if(!a.oFeatures.bServerSide&&(a.aaSorting.length!==0||a.aaSortingFixed!==null)){h=a.aaSortingFixed!== -null?a.aaSortingFixed.concat(a.aaSorting):a.aaSorting.slice();for(c=0;c=h)for(b=0;b=0?a._iDisplayStart-a._iDisplayLength:0;if(a._iDisplayStart<0)a._iDisplayStart=0}else if(b=="next")if(a._iDisplayLength>=0){if(a._iDisplayStart+a._iDisplayLength=0){b=parseInt((a.fnRecordsDisplay()-1)/a._iDisplayLength,10)+1;a._iDisplayStart=(b-1)*a._iDisplayLength}else a._iDisplayStart= -0;else J(a,0,"Unknown paging action: "+b);return c!=a._iDisplayStart}function Ga(a){var b=p.createElement("div");b.className=a.oClasses.sInfo;if(typeof a.aanFeatures.i=="undefined"){a.aoDrawCallback.push({fn:Na,sName:"information"});a.sTableId!==""&&b.setAttribute("id",a.sTableId+"_info")}return b}function Na(a){if(!(!a.oFeatures.bInfo||a.aanFeatures.i.length===0)){var b=a._iDisplayStart+1,c=a.fnDisplayEnd(),d=a.fnRecordsTotal(),f=a.fnRecordsDisplay(),e=a.fnFormatNumber(b),h=a.fnFormatNumber(c),j= -a.fnFormatNumber(d),k=a.fnFormatNumber(f);if(a.oScroll.bInfinite)e=a.fnFormatNumber(1);e=a.fnRecordsDisplay()===0&&a.fnRecordsDisplay()==a.fnRecordsTotal()?a.oLanguage.sInfoEmpty+a.oLanguage.sInfoPostFix:a.fnRecordsDisplay()===0?a.oLanguage.sInfoEmpty+" "+a.oLanguage.sInfoFiltered.replace("_MAX_",j)+a.oLanguage.sInfoPostFix:a.fnRecordsDisplay()==a.fnRecordsTotal()?a.oLanguage.sInfo.replace("_START_",e).replace("_END_",h).replace("_TOTAL_",k)+a.oLanguage.sInfoPostFix:a.oLanguage.sInfo.replace("_START_", -e).replace("_END_",h).replace("_TOTAL_",k)+" "+a.oLanguage.sInfoFiltered.replace("_MAX_",a.fnFormatNumber(a.fnRecordsTotal()))+a.oLanguage.sInfoPostFix;if(a.oLanguage.fnInfoCallback!==null)e=a.oLanguage.fnInfoCallback(a,b,c,d,f,e);a=a.aanFeatures.i;b=0;for(c=a.length;b",c,d;if(a.aLengthMenu.length==2&&typeof a.aLengthMenu[0]=="object"&&typeof a.aLengthMenu[1]== -"object"){c=0;for(d=a.aLengthMenu[0].length;c'+a.aLengthMenu[1][c]+""}else{c=0;for(d=a.aLengthMenu.length;c'+a.aLengthMenu[c]+""}b+="";var f=p.createElement("div");a.sTableId!==""&&typeof a.aanFeatures.l=="undefined"&&f.setAttribute("id",a.sTableId+"_length");f.className=a.oClasses.sLength;f.innerHTML="";i('select option[value="'+ -a._iDisplayLength+'"]',f).attr("selected",true);i("select",f).bind("change.DT",function(){var e=i(this).val(),h=a.aanFeatures.l;c=0;for(d=h.length;ca.aiDisplay.length|| -a._iDisplayLength==-1?a.aiDisplay.length:a._iDisplayStart+a._iDisplayLength}function Oa(a,b){if(!a||a===null||a==="")return 0;if(typeof b=="undefined")b=p.getElementsByTagName("body")[0];var c=p.createElement("div");c.style.width=u(a);b.appendChild(c);a=c.offsetWidth;b.removeChild(c);return a}function ea(a){var b=0,c,d=0,f=a.aoColumns.length,e,h=i("th",a.nTHead);for(e=0;etd",b);h=S(a,e);for(e=d=0;e0)a.aoColumns[e].sWidth=u(c);d++}a.nTable.style.width=u(i(b).outerWidth());b.parentNode.removeChild(b)}}function Qa(a,b){if(a.oScroll.sX===""&&a.oScroll.sY!==""){i(b).width();b.style.width=u(i(b).outerWidth()-a.oScroll.iBarWidth)}else if(a.oScroll.sX!=="")b.style.width=u(i(b).outerWidth())}function Pa(a,b){var c= -Ra(a,b);if(c<0)return null;if(a.aoData[c].nTr===null){var d=p.createElement("td");d.innerHTML=H(a,c,b,"");return d}return Q(a,c)[b]}function Ra(a,b){for(var c=-1,d=-1,f=0;f/g,"");if(e.length>c){c=e.length;d=f}}return d}function u(a){if(a===null)return"0px";if(typeof a=="number"){if(a<0)return"0px";return a+"px"}var b=a.charCodeAt(a.length-1);if(b<48||b>57)return a;return a+"px"}function Va(a,b){if(a.length!=b.length)return 1;for(var c= -0;cb&&a[d]--;c!=-1&&a.splice(c,1)}function Ba(a,b){b=b.split(",");for(var c=[],d=0,f=a.aoColumns.length;d4096){a=p.cookie.split(";");for(var j=0,k=a.length;j=d.aiDisplay.length){d._iDisplayStart-=d._iDisplayLength;if(d._iDisplayStart<0)d._iDisplayStart=0}if(typeof c=="undefined"||c){E(d);C(d)}return f};this.fnClearTable=function(a){var b=A(this[o.iApiIndex]);ia(b);if(typeof a=="undefined"||a)C(b)};this.fnOpen=function(a,b,c){var d=A(this[o.iApiIndex]);this.fnClose(a);var f=p.createElement("tr"),e=p.createElement("td");f.appendChild(e);e.className=c;e.colSpan=X(d);if(typeof b.jquery!="undefined"||typeof b== -"object")e.appendChild(b);else e.innerHTML=b;b=i("tr",d.nTBody);i.inArray(a,b)!=-1&&i(f).insertAfter(a);d.aoOpenRows.push({nTr:f,nParent:a});return f};this.fnClose=function(a){for(var b=A(this[o.iApiIndex]),c=0;c=X(d);if(!j)for(f=a;ftr>td."+a.oClasses.sRowEmpty,a.nTable).parent().remove();if(a.nTable!=a.nTHead.parentNode){i(">thead",a.nTable).remove();a.nTable.appendChild(a.nTHead)}if(a.nTFoot&& -a.nTable!=a.nTFoot.parentNode){i(">tfoot",a.nTable).remove();a.nTable.appendChild(a.nTFoot)}a.nTable.parentNode.removeChild(a.nTable);i(a.nTableWrapper).remove();a.aaSorting=[];a.aaSortingFixed=[];T(a);i($(a)).removeClass(a.asStripClasses.join(" "));if(a.bJUI){i("th",a.nTHead).removeClass([o.oStdClasses.sSortable,o.oJUIClasses.sSortableAsc,o.oJUIClasses.sSortableDesc,o.oJUIClasses.sSortableNone].join(" "));i("th span."+o.oJUIClasses.sSortIcon,a.nTHead).remove();i("th",a.nTHead).each(function(){var e= -i("div."+o.oJUIClasses.sSortJUIWrapper,this),h=e.contents();i(this).append(h);e.remove()})}else i("th",a.nTHead).removeClass([o.oStdClasses.sSortable,o.oStdClasses.sSortableAsc,o.oStdClasses.sSortableDesc,o.oStdClasses.sSortableNone].join(" "));a.nTableReinsertBefore?b.insertBefore(a.nTable,a.nTableReinsertBefore):b.appendChild(a.nTable);d=0;for(f=a.aoData.length;dtr:even",c).addClass(a.asDestoryStrips[0]);i(">tr:odd",c).addClass(a.asDestoryStrips[1]);d=0;for(f=D.length;dt<"F"ip>'}if(e.oScroll.sX!==""||e.oScroll.sY!=="")e.oScroll.iBarWidth=Ua();if(typeof g.iDisplayStart!="undefined"&&typeof e.iInitDisplayStart=="undefined"){e.iInitDisplayStart= -g.iDisplayStart;e._iDisplayStart=g.iDisplayStart}if(typeof g.bStateSave!="undefined"){e.oFeatures.bStateSave=g.bStateSave;Ta(e,g);e.aoDrawCallback.push({fn:sa,sName:"state_save"})}if(typeof g.iDeferLoading!="undefined"){e.bDeferLoading=true;e._iRecordsTotal=g.iDeferLoading;e._iRecordsDisplay=g.iDeferLoading}if(typeof g.aaData!="undefined")j=true;if(typeof g!="undefined"&&typeof g.aoData!="undefined")g.aoColumns=g.aoData;if(typeof g.oLanguage!="undefined")if(typeof g.oLanguage.sUrl!="undefined"&&g.oLanguage.sUrl!== -""){e.oLanguage.sUrl=g.oLanguage.sUrl;i.getJSON(e.oLanguage.sUrl,null,function(t){y(e,t,true)});h=true}else y(e,g.oLanguage,false)}else g={};if(typeof g.asStripClasses=="undefined"){e.asStripClasses.push(e.oClasses.sStripOdd);e.asStripClasses.push(e.oClasses.sStripEven)}c=false;d=i(">tbody>tr",this);a=0;for(b=e.asStripClasses.length;a=0;a--){var m=g.aoColumnDefs[a].aTargets;i.isArray(m)||J(e,1,"aTargets must be an array of targets, not a "+typeof m);c=0;for(d=m.length;c=0){for(;e.aoColumns.length<=m[c];)G(e);x(e,m[c],g.aoColumnDefs[a])}else if(typeof m[c]== -"number"&&m[c]<0)x(e,e.aoColumns.length+m[c],g.aoColumnDefs[a]);else if(typeof m[c]=="string"){b=0;for(f=e.aoColumns.length;b=e.aoColumns.length)e.aaSorting[a][0]=0;k=e.aoColumns[e.aaSorting[a][0]];if(typeof e.aaSorting[a][2]=="undefined")e.aaSorting[a][2]=0;if(typeof g.aaSorting=="undefined"&& -typeof e.saved_aaSorting=="undefined")e.aaSorting[a][1]=k.asSorting[0];c=0;for(d=k.asSorting.length;cthead",this);if(a.length===0){a=[p.createElement("thead")];this.appendChild(a[0])}e.nTHead=a[0];a=i(">tbody",this);if(a.length===0){a=[p.createElement("tbody")];this.appendChild(a[0])}e.nTBody=a[0];a=i(">tfoot",this);if(a.length>0){e.nTFoot=a[0];W(e.aoFooter,e.nTFoot)}if(j)for(a=0;a", { - "class": "lava-sidebar-controls" - }) - .prependTo(this.element); - // Initialize close button - self._close_button = $("", { - title: "Collapse the sidebar" - }) - .button({ - text: false, - icons: { primary: 'ui-icon-circle-triangle-e'} - }) - .bind("click", function(event) { - self.hide(); - event.preventDefault(); - event.stopPropagation(); - }) - .appendTo(self._controls); - $.each(self.options.extraControls, function(index, control) { - control.appendTo(self._controls); - }); - } - }, - _init: function() { - /* Initializer */ - if (this.options.hidden == true) { - this.hide(); - } else { - this.show(); - } - }, - destroy: function() { - /* Destructor */ - this.element.removeClass(baseClass); - this.element.removeClass(hiddenClass); - this.element.unbind("click.sidebar"); - this._controls.remove(); - $.Widget.prototype.destroy.call(this); - if (this.options.onDestroy) { - this.options.onDestroy(); - } - }, - show: function() { - /* Show the sidebar */ - this.element.removeClass(hiddenClass); - this.options.hidden = false; - if (this.options.onShow) { - this.options.onShow(); - } - }, - hide: function() { - /* Hide the sidebar */ - this.element.addClass(hiddenClass); - this.options.hidden = true; - if (this.options.onHide) { - this.options.onHide(); - } - }, - _setOption: function(key, value) { - /* jQueryUI widget method for implementing option setter */ - $.Widget.prototype._setOption.apply(this, arguments); - if (key == "hidden") { - if (value) { - this.hide(); - } else { - this.show(); - } - } - } - }); -})(jQuery); === removed file 'lava_server/htdocs/js/jquery.pseudofocus.js' --- lava_server/htdocs/js/jquery.pseudofocus.js 2010-12-22 11:27:34 +0000 +++ lava_server/htdocs/js/jquery.pseudofocus.js 1970-01-01 00:00:00 +0000 @@ -1,77 +0,0 @@ -(function($){ - /* Fixes :focus in IE and any other browsers that don't support it */ - /* Copyright (C) James Padolsey http://james.padolsey.com */ - $.pseudoFocus = function() { - - var focusIsSupported = (function(){ - - // Create an anchor + some styles including ':focus'. - // Focus the anchor, test if style was applied, - // if it was then we know ':focus' is supported. - - var ud = 't' + +new Date(), - anchor = $('').css({top:'-999px',position:'absolute'}).appendTo('body'), - style = $('').appendTo('head'), - supported = anchor.focus().css('fontSize') !== '10px'; - anchor.add(style).remove(); - return supported; - - })(); - - if(focusIsSupported) { return; } - - var stylesToAdd = [], - pseudoRegex = /:(unknown|focus)/, - className = 'focus'; - - $(document.styleSheets).each(function(i, sheet){ - var cssRules = sheet.cssRules || sheet.rules; - $.each(cssRules, function(i, rule){ - $.each(rule.selectorText.split(','), function(i, selector){ - var hasPseudoFocus = pseudoRegex.test(selector); - if (hasPseudoFocus) { - - var styles = rule.cssText ? rule.cssText.match(/\{(.+)\}/)[1] : rule.style.cssText, - - // Replace :focus with .focus (or whatever className): - newSelector = selector.replace(pseudoRegex,'.' + className); - - // Completell erase the pseudo-class, so we can select it. - selector = selector.replace(pseudoRegex,''); - - // Add style to stack: - stylesToAdd[stylesToAdd.length] = newSelector + '{' + styles + '}'; - - // Add blur/focus handlers: - $(selector).each(function(){ - - // If the selector targets a non-focusable element - // then we need the first parent that is focusable. - // [Warning: this could be abused] - var isAcceptable = 'a,input,textarea,button'; - $($(this).is(isAcceptable) ? this : $(this).parents(isAcceptable)[0]) - .bind('focus.pseudoFocus', function(){ - $(this).addClass(className); - }) - .bind('blur.pseudoFocus', function(){ - $(this).removeClass(className); - }); - - // Fix IE issue where element remains in focused - // state when returning to page (via back button): - if ($(this).is('a')) { - $(this).bind('click.pseudoFocus', function(){ - $(this).blur(); - }); - } - - }); - - } - }); - }); - }); - stylesToAdd && $('head').append(''); - - }; -})(jQuery); \ No newline at end of file === removed file 'lava_server/htdocs/js/jquery.slugify.js' --- lava_server/htdocs/js/jquery.slugify.js 2011-09-23 08:21:23 +0000 +++ lava_server/htdocs/js/jquery.slugify.js 1970-01-01 00:00:00 +0000 @@ -1,58 +0,0 @@ -/* - * Taken from git://github.com/pmcelhaney/jQuery-Slugify-Plugin.git - */ -(function ($) { - - $.fn.slugify = function (source, options) { - var $target = this; - var $source = $(source); - - var settings = $.extend({ - slugFunc: (function (val, originalFunc) { return originalFunc(val); }) - }, options); - - - var convertToSlug = function(val) { - return settings.slugFunc(val, - (function(v) { - if (!v) return ''; - var from = "ıİöÖüÜçÇğĞşŞâÂêÊîÎôÔûÛĘęÓ󥹌śŁłŻżŹźĆćŃń"; - var to = "iIoOuUcCgGsSaAeEiIoOuUEeOoAaSsLlZzZzCcNn"; - - for (var i=0, l=from.length ; i0&&j.length>l){e.data(q,l);e.attr(d,j.length)}}p&&e.addClass(p);e.val(j)}else a.watermark._hide(e)},hideAll:function(){if(t){a.watermark.hide(p);t=e}},showAll:function(){a.watermark.show(p)}};a.fn.watermark=function(t,q){var r="string";if(!this.length)return this;var u=e,v=typeof t===r;if(typeof q==="object"){u=typeof q.className===r;q=a.extend({},a.watermark.options,q)}else if(typeof q===r){u=c;q=a.extend({},a.watermark.options,{className:q})}else q=a.watermark.options;if(typeof q.useNative!==n)q.useNative=q.useNative?function(){return c}:function(){return e};return this.each(function(){var y="dragleave",x="dragenter",A=this,e=a(A);if(!e.is(p))return;if(e.data(o)){if(v||u){a.watermark._hide(e);v&&e.data(g,t);u&&e.data(i,q.className)}}else{if(w&&q.useNative.call(A,e)&&(e.attr("tagName")||b)!=="TEXTAREA"){v&&e.attr(m,t);return}e.data(g,v?t:b);e.data(i,q.className);e.data(o,1);if((e.attr(f)||b)===k){var B=e.wrap("").parent(),n=a(B.html().replace(/type=["']?password["']?/i,'type="text"'));n.data(g,e.data(g));n.data(i,e.data(i));n.data(o,1);n.attr(d,t.length);n.focus(function(){a.watermark._hide(n,c)}).bind(x,function(){a.watermark._hide(n)}).bind("dragend",function(){j.setTimeout(function(){n.blur()},1)});e.blur(function(){a.watermark._show(e)}).bind(y,function(){a.watermark._show(e)});n.data(h,e);e.data(h,n)}else e.focus(function(){e.data(s,1);a.watermark._hide(e,c)}).blur(function(){e.data(s,0);a.watermark._show(e)}).bind(x,function(){a.watermark._hide(e)}).bind(y,function(){a.watermark._show(e)}).bind("dragend",function(){j.setTimeout(function(){a.watermark._show(e)},1)}).bind("drop",function(c){var a=c.originalEvent.dataTransfer.getData("Text");e.val().replace(a,b)===e.data(g)&&e.val(a);e.focus()});if(A.form){var r=A.form,z=a(r);if(!z.data(l)){z.submit(a.watermark.hideAll);if(r.submit){z.data(l,r.submit);r.submit=function(c,b){return function(){var d=b.data(l);a.watermark.hideAll();if(d.apply)d.apply(c,Array.prototype.slice.call(arguments));else d()}}(r,z)}else{z.data(l,1);r.submit=function(b){return function(){a.watermark.hideAll();delete b.submit;b.submit()}}(r)}}}}a.watermark._show(e)})};r.length&&a(function(){for(var b,c,d=r.length-1;d>=0;d--){b=r[d];c=j[b];if(typeof c===n)j[b]=function(b){return function(){a.watermark.hideAll();return b.apply(null,Array.prototype.slice.call(arguments))}}(c)}});a(j).bind("beforeunload",function(){a.watermark.options.hideBeforeUnload&&a.watermark.hideAll()})})(jQuery,window); \ No newline at end of file === removed file 'lava_server/manage.py' --- lava_server/manage.py 2012-07-09 23:03:30 +0000 +++ lava_server/manage.py 1970-01-01 00:00:00 +0000 @@ -1,140 +0,0 @@ -#!/usr/bin/env python -# -# Copyright (C) 2010 Linaro Limited -# -# Author: Zygmunt Krynicki -# -# This file is part of LAVA Server. -# -# LAVA Server is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License version 3 -# as published by the Free Software Foundation -# -# LAVA Server is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with LAVA Server. If not, see . - -import os -import sys -import pkg_resources -import argparse - -from lava_tool.dispatcher import LavaDispatcher, run_with_dispatcher_class -from lava_tool.interface import Command - - -class LAVAServerDispatcher(LavaDispatcher): - - toolname = 'lava_server' - description = """ - LAVA Application Server - """ - epilog = """ - Please report all bugs using the Launchpad bug tracker: - http://bugs.launchpad.net/lava-server/+filebug - """ - - def __init__(self): - # XXX The below needs to allow some customization. - parser_args = dict(add_help=False) - if self.description is not None: - parser_args['description'] = self.description - if self.epilog is not None: - parser_args['epilog'] = self.epilog - self.parser = argparse.ArgumentParser(**parser_args) - self.subparsers = self.parser.add_subparsers( - title="Sub-command to invoke") - prefixes = [] - if self.toolname is not None: - prefixes.append(self.toolname) - for prefix in prefixes: - for entrypoint in pkg_resources.iter_entry_points( - "%s.commands" % prefix): - self.add_command_cls(entrypoint.load()) - - -class manage(Command): - """ - Manage the LAVA server - """ - - @classmethod - def register_arguments(cls, parser): - group = parser.add_argument_group("Server configuration") - group.add_argument( - "-d", "--development", - action="store_false", - dest="production", - help="Use development settings") - group.add_argument( - "-p", "--production", - action="store_true", - default=True, - help="Use production settings (default)") - try: - instance_name = os.environ["LAVA_INSTANCE"] - except KeyError: - try: - instance_name = os.path.basename(os.environ["VIRTUAL_ENV"]) - except KeyError: - instance_name = None - group.add_argument( - "-i", "--instance", - action="store", - default=instance_name, - help="Use the specified instance (works only with --production, default %(default)s)") - group.add_argument( - "-I", "--instance-template", - action="store", - default=( - "/srv/lava/instances/{instance}" - "/etc/lava-server/{{filename}}.conf"), - help=( - "Template used for constructing instance pathname." - " The default value is: %(default)s")) - parser.add_argument( - "command", nargs="...", - help="Invoke this Django management command") - - def invoke(self): - if self.args.production: - settings_module = "lava_server.settings.debian" - else: - settings_module = "lava_server.settings.development" - if self.args.instance: - ddst = self.args.instance_template.format( - instance=self.args.instance) - os.environ["DJANGO_DEBIAN_SETTINGS_TEMPLATE"] = ddst - os.environ["DJANGO_SETTINGS_MODULE"] = settings_module - settings = __import__(settings_module, fromlist=['']) - # XXX execute_manager is deprecated in Django 1.4. - from django.core.management import execute_manager - execute_manager(settings, ['lava-server'] + self.args.command) - - -def find_sources(): - base_path = os.path.join( - os.path.dirname(os.path.abspath(__file__)), - "..") - if os.path.exists(os.path.join(base_path, "lava_server")): - sys.path.insert(0, base_path) - - -def main(): - run_with_dispatcher_class(LAVAServerDispatcher) - - -def legacy_main(): - find_sources() - settings_module = "lava_server.settings.development" - settings = __import__(settings_module, fromlist=['']) - from django.core.management import execute_manager - execute_manager(settings) - - -if __name__ == "__main__": - legacy_main() === removed directory 'lava_server/settings' === removed file 'lava_server/settings/__init__.py' === removed file 'lava_server/settings/common.py' --- lava_server/settings/common.py 2013-09-05 18:21:58 +0000 +++ lava_server/settings/common.py 1970-01-01 00:00:00 +0000 @@ -1,184 +0,0 @@ -# Copyright (C) 2010-2013 Linaro Limited -# -# Author: Zygmunt Krynicki -# -# This file is part of LAVA Server. -# -# LAVA Server is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License version 3 -# as published by the Free Software Foundation -# -# LAVA Server is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with LAVA Server. If not, see . - - -# WARNING: -# Never edit this file on a production system! -# Any changes can be overwritten at any time by upgrade or any -# system management operation. All production config changes -# should happen strictly to etc/settings.conf, etc. files. -# All comments below are strictly for development usage and -# reference. - - -# Administrator contact, used for sending -# emergency email when something breaks -ADMINS = ( - # ('Your Name', 'your_email@domain.com'), -) - -MANAGERS = ADMINS - -# Local time zone for this installation. Choices can be found here: -# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name -# although not all choices may be available on all operating systems. -# If running in a Windows environment this must be set to the same as your -# system time zone. -TIME_ZONE = 'UTC' - -# Language code for this installation. All choices can be found here: -# http://www.i18nguy.com/unicode/language-identifiers.html -LANGUAGE_CODE = 'en-us' - -SITE_ID = 1 - -# If you set this to False, Django will make some optimizations so as not -# to load the internationalization machinery. -USE_I18N = True - -# If you set this to False, Django will not format dates, numbers and -# calendars according to the current locale -USE_L10N = True - -# List of callables that know how to import templates from various sources. -TEMPLATE_LOADERS = ( - 'django.template.loaders.filesystem.Loader', - 'django.template.loaders.app_directories.Loader', -# 'django.template.loaders.eggs.Loader', -) - -MIDDLEWARE_CLASSES = [ - 'django.middleware.csrf.CsrfViewMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.middleware.common.CommonMiddleware', - 'django.middleware.transaction.TransactionMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', -] - -ROOT_URLCONF = 'lava_server.urls' - -STATICFILES_MEDIA_DIRNAMES = ( - "media", - "static", -) - -import django - -STATICFILES_PREPEND_LABEL_APPS = [ -] - -if django.VERSION < (1, 4): - STATICFILES_PREPEND_LABEL_APPS.append("django.contrib.admin") - -# URL that handles the media served from MEDIA_ROOT. Make sure to use a -# trailing slash if there is a path component (optional in other cases). -# Examples: "http://media.lawrence.com", "http://example.com/media/" -MEDIA_URL = "/media/" - -# URL that handles the media served from STATIC_ROOT. Make sure to use a -# trailing slash if there is a path component (optional in other cases). -# Examples: "http://static.lawrence.com", "http://example.com/static/" -STATIC_URL = "/static/" - -MOUNT_POINT = "" - -# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a -# trailing slash. -# Examples: "http://foo.com/media/", "/media/". -ADMIN_MEDIA_PREFIX = MOUNT_POINT + "/static/admin/" - -# The true outer url is /lava-server/ -LOGIN_REDIRECT_URL = MOUNT_POINT + "/" - -# URL of the login screen, has to be hard-coded like that for Django. -# I cheat a little, using DATA_URL_PREFIX here is technically incorrect -# but it seems better than hard-coding 'lava-server' yet again. -LOGIN_URL = MOUNT_POINT + "/accounts/login/" - -INSTALLED_APPS = [ - 'django.contrib.auth', - 'django.contrib.contenttypes', - 'django.contrib.markup', - 'django.contrib.sessions', - 'django.contrib.sites', - 'django.contrib.humanize', - 'django_openid_auth', - 'django_tables2', - 'staticfiles', - # Uncomment the next line to enable the admin: - 'django.contrib.admin', - # Uncomment the next line to enable admin documentation: - # 'django.contrib.admindocs', - # Admin docs disabled due to: https://code.djangoproject.com/ticket/6681 - 'longerusername', - 'linaro_django_xmlrpc', - 'lava_markitup', # Support app for MarkItUp in LAVA - 'south', - 'google_analytics', -] - -try: - import devserver - INSTALLED_APPS += ['devserver'] -except ImportError: - pass - -TEMPLATE_CONTEXT_PROCESSORS = [ - "django.contrib.auth.context_processors.auth", - "django.core.context_processors.debug", - "django.core.context_processors.i18n", - "django.core.context_processors.media", - "django.core.context_processors.request", - "staticfiles.context_processors.static_url", - "lava_server.context_processors.lava", - "lava_server.context_processors.openid_available", -] - - -AUTHENTICATION_BACKENDS = ( - # Uncomment CrowdRestBackend and comment OpenIDBackend to enable - # Atlassian Crowd auth. - #'crowdrest.backend.CrowdRestBackend', - 'django_openid_auth.auth.OpenIDBackend', - 'django.contrib.auth.backends.ModelBackend', -) - -OPENID_CREATE_USERS = True -OPENID_LAUNCHPAD_TEAMS_MAPPING_AUTO = True -OPENID_UPDATE_DETAILS_FROM_SREG = True -OPENID_SSO_SERVER_URL = 'https://login.ubuntu.com/' - -# python-openid is too noisy, so we silence it. -from openid import oidutil -oidutil.log = lambda msg, level=0: None - -RESTRUCTUREDTEXT_FILTER_SETTINGS = {"initial_header_level": 4} - -# Add google analytics model. -GOOGLE_ANALYTICS_MODEL = True - -# Skip south tests as they seem to break everything else. -# This is fixed in south 0.7.1, if we upgrade past that it's safe to -# remove this line. -SKIP_SOUTH_TESTS = True - -ME_PAGE_ACTIONS = [ - ("django.contrib.auth.views.password_change", "Change your password"), - ("django.contrib.auth.views.logout", "Sign out"), - ] === removed file 'lava_server/settings/debian.py' --- lava_server/settings/debian.py 2013-08-06 16:18:48 +0000 +++ lava_server/settings/debian.py 1970-01-01 00:00:00 +0000 @@ -1,116 +0,0 @@ -# Django settings for django_hello project used on Debian systems. - -import os - -from django_debian.settings import Settings - -from lava_server.extension import loader -from lava_server.settings.production import * - -# Load application settings from django-debian integration package -debian_settings = Settings("lava-server") - -# Load the mount point from settings file -MOUNT_POINT = debian_settings.mount_point - -# Load default database from Debian integration -DATABASES = {'default': debian_settings.default_database} - -# Load debug settings from the configuration file -DEBUG = debian_settings.DEBUG - -# Load secret key from Debian integration -SECRET_KEY = debian_settings.SECRET_KEY - -# Absolute filesystem path to the directory that will hold user-uploaded files. -MEDIA_ROOT = debian_settings.MEDIA_ROOT - -# URL that handles the media served from MEDIA_ROOT. Make sure to use a -# trailing slash if there is a path component (optional in other cases). -# Examples: "http://media.lawrence.com", "http://example.com/media/" -MEDIA_URL = debian_settings.MEDIA_URL - -# Absolute filesystem path to the directory that will hold static, read only -# files collected from all applications. -STATIC_ROOT = debian_settings.STATIC_ROOT - -# URL that handles the media served from STATIC_ROOT. Make sure to use a -# trailing slash if there is a path component (optional in other cases). -# Examples: "http://static.lawrence.com", "http://example.com/static/" -STATIC_URL = debian_settings.STATIC_URL - -# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a -# trailing slash. -# Examples: "http://foo.com/media/", "/media/". -ADMIN_MEDIA_PREFIX = debian_settings.ADMIN_MEDIA_PREFIX - -# List of absolute pathnames used to resolve templates. -TEMPLATE_DIRS = [os.path.join(os.path.dirname(__file__), '..', 'templates')] -TEMPLATE_DIRS.extend(debian_settings.TEMPLATE_DIRS) - -# Like TEMPLATE_DIRS but for static files -STATICFILES_DIRS = debian_settings.STATICFILES_DIRS - -# A tuple that lists people who get code error notifications. When DEBUG=False -# and a view raises an exception, Django will e-mail these people with the -# full exception information. Each member of the tuple should be a tuple of -# (Full name, e-mail address). Example: -ADMINS = debian_settings.ADMINS - -# A tuple in the same format as ADMINS that specifies who should get -# broken-link notifications when SEND_BROKEN_LINK_EMAILS=True. -MANAGERS = debian_settings.MANAGERS - -# Whether to send an e-mail to the MANAGERS each time somebody visits a -# Django-powered page that is 404ed with a non-empty referer (i.e., a broken -# link). This is only used if CommonMiddleware is installed (see Middleware. -# See also IGNORABLE_404_STARTS, IGNORABLE_404_ENDS and Error reporting via -# e-mail. -SEND_BROKEN_LINK_EMAILS = debian_settings.SEND_BROKEN_LINK_EMAILS - -# URL of the login page -LOGIN_URL = debian_settings.LOGIN_URL - -# URL of the page you get redirected to after logging in -LOGIN_REDIRECT_URL = debian_settings.LOGIN_REDIRECT_URL - -# The email address that error messages come from, such as those sent to -# ADMINS and MANAGERS. -if debian_settings.get_setting("SERVER_EMAIL"): - SERVER_EMAIL = debian_settings.get_setting("SERVER_EMAIL") - -# Allow OpenID redirect domains to be configurable -if debian_settings.get_setting("ALLOWED_EXTERNAL_OPENID_REDIRECT_DOMAINS"): - ALLOWED_EXTERNAL_OPENID_REDIRECT_DOMAINS = debian_settings.get_setting("ALLOWED_EXTERNAL_OPENID_REDIRECT_DOMAINS") - -if debian_settings.get_setting("OPENID_LAUNCHPAD_TEAMS_MAPPING"): - OPENID_LAUNCHPAD_TEAMS_MAPPING_AUTO = False - OPENID_LAUNCHPAD_TEAMS_MAPPING = debian_settings.get_setting("OPENID_LAUNCHPAD_TEAMS_MAPPING") - -# Atlassian Crowd authentication config -AUTH_CROWD_SERVER_REST_URI = debian_settings.get_setting("AUTH_CROWD_SERVER_REST_URI") -if AUTH_CROWD_SERVER_REST_URI: - # If Crowd server URL is configured, disable OpenID and - # enable Crowd auth backend - INSTALLED_APPS.append('crowdrest') - AUTHENTICATION_BACKENDS = ['crowdrest.backend.CrowdRestBackend'] + \ - [x for x in AUTHENTICATION_BACKENDS if "OpenID" not in x] - - # Load credentials from a separate file - from django_debian.config_file import ConfigFile - pathname = debian_settings._get_pathname("crowd") - crowd_config = ConfigFile.load(pathname) - AUTH_CROWD_APPLICATION_USER = crowd_config.AUTH_CROWD_APPLICATION_USER - AUTH_CROWD_APPLICATION_PASSWORD = crowd_config.AUTH_CROWD_APPLICATION_PASSWORD - if debian_settings.get_setting("AUTH_CROWD_GROUP_MAP"): - AUTH_CROWD_GROUP_MAP = debian_settings.get_setting("AUTH_CROWD_GROUP_MAP") - -# Load extensions -loader.contribute_to_settings(locals(), debian_settings) - -from django.db.backends.signals import connection_created - -def set_timeout(connection, **kw): - connection.cursor().execute("SET statement_timeout to 30000") - -connection_created.connect(set_timeout) === removed file 'lava_server/settings/development.py' --- lava_server/settings/development.py 2011-11-28 17:33:20 +0000 +++ lava_server/settings/development.py 1970-01-01 00:00:00 +0000 @@ -1,138 +0,0 @@ -# Copyright (C) 2010, 2011 Linaro Limited -# -# Author: Zygmunt Krynicki -# -# This file is part of LAVA Server. -# -# LAVA Server is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License version 3 -# as published by the Free Software Foundation -# -# LAVA Server is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with LAVA Server. If not, see . - -import os - -from lava_server.extension import loader -from lava_server.settings.common import * - -# Top-level directory for volatile, re-buildable files originated from -# installing components of a lava-dev-tool project. Here we assume the project -# uses virtualenv and look for a variable virtualenv injects into the -# environment. -LOCALENV_DIR = os.getenv("VIRTUAL_ENV") -if not LOCALENV_DIR: - print "Not using lava-dev-tool?" - print "Well okay, but just be careful with your imports and python path" - -# Top-level directory of the project. -# -# This directory MUST contain two sub-directories: -# * templates/ - project-wide template files -# * htdocs/ - project-wide static files -# (_not_ the root of the static file cache) -PROJECT_SRC_DIR = os.path.normpath( - os.path.join( - os.path.dirname( - os.path.abspath(__file__)), - "..")) - -# Top-level directory for nonvolatile files, as used by lava-dev-tool. It is a -# sibling directory to localenv so it's easier to define its location as -# relative to LOCALENV_DIR. -if LOCALENV_DIR: - PRECIOUS_DIR = os.path.join(LOCALENV_DIR, "../precious") -else: - PRECIOUS_DIR = os.path.join(PROJECT_SRC_DIR, "precious") - -# Create precious directory if needed -if not os.path.exists(PRECIOUS_DIR): - os.makedirs(PRECIOUS_DIR) - -# Top-level directory of the precious project state. -# -# In short: this is where your non-source content ends up at, this place should -# keep the database file(s), user uploaded media files as well as the cache of -# static files, if built. -PROJECT_STATE_DIR = os.path.join(PRECIOUS_DIR, "var/lib/lava-server/") - -# Create state directory if needed -if not os.path.exists(PROJECT_STATE_DIR): - os.makedirs(PROJECT_STATE_DIR) - -DEBUG = True -DEBUG_PROPAGATE_EXCEPTIONS = True -TEMPLATE_DEBUG = DEBUG - -# It would be good to have rails-like configuration file in the future -devel_db = os.getenv("DEVEL_DB", "sqlite") -if devel_db == "pgsql": - DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.postgresql_psycopg2', - 'NAME': 'devel', - 'USER': 'devel', - 'PASSWORD': 'devel', - 'HOST': 'localhost', - 'PORT': ''}} -elif devel_db == "sqlite": - DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': os.path.join(PROJECT_STATE_DIR, 'development.db'), - 'USER': '', - 'PASSWORD': '', - 'HOST': '', - 'PORT': ''}} -elif devel_db == "nosql": - raise ValueError("not yet ;-)") -else: - raise ValueError("Invalid value of DEVEL_DB environment variable") - - -# Absolute filesystem path to the directory that will hold user-uploaded files. -# Example: "/home/media/media.lawrence.com/" -MEDIA_ROOT = os.path.join(PROJECT_STATE_DIR, "media", devel_db) - -# Absolute filesystem path to the directory that will hold static, read only -# files collected from all applications. -# Example: "/home/media/static.lawrence.com/" -STATIC_ROOT = os.path.join(PROJECT_STATE_DIR, "static") - - -# Make this unique, and don't share it with anybody. -SECRET_KEY = '00000000000000000000000000000000000000000000000000' - -# Use templates from the checkout directory -TEMPLATE_DIRS = ( - os.path.join(PROJECT_SRC_DIR, "templates"), -) - -# Serve static files used by lava-server from the checkout directory -STATICFILES_DIRS = [ - ('lava-server', os.path.join(PROJECT_SRC_DIR, 'htdocs'))] - - -# Try using devserver if available, devserver is a very useful extension that -# makes debugging applications easier. It shows a lot of interesting output, -# like SQL queries and timings for each request. It also supports -# multi-threaded or multi-process server so some degree of parallelism can be -# achieved. -try: - import devserver - INSTALLED_APPS += ['devserver'] -except ImportError: - pass - - -# Any emails that would normally be sent are redirected to stdout. -# This setting is only used for django 1.2 and newer. -EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' - -# Load extensions -loader.contribute_to_settings(locals()) === removed file 'lava_server/settings/production.py' --- lava_server/settings/production.py 2011-11-28 17:33:20 +0000 +++ lava_server/settings/production.py 1970-01-01 00:00:00 +0000 @@ -1,23 +0,0 @@ -# Copyright (C) 2010 Linaro Limited -# -# Author: Zygmunt Krynicki -# -# This file is part of LAVA Server. -# -# LAVA Server is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License version 3 -# as published by the Free Software Foundation -# -# LAVA Server is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with LAVA Server. If not, see . - -# Django settings for django_hello project. -from lava_server.settings.common import * - -DEBUG = False -TEMPLATE_DEBUG = DEBUG === removed directory 'lava_server/templates' === removed file 'lava_server/templates/403.html' --- lava_server/templates/403.html 2012-11-09 22:40:16 +0000 +++ lava_server/templates/403.html 1970-01-01 00:00:00 +0000 @@ -1,17 +0,0 @@ -{% extends "layouts/content.html" %} - - -{% block title %} | HTTP 403 {% endblock %} - -{% block content %} -

        403 Forbidden

        - -{% if user.is_authenticated %} -You do not have permission to view this resource. -{% else %} -

        The requested resource is only for authorized users. You don't appear to be -logged into the system. Please log in to view this. -

        -{% endif %} - -{% endblock %} === removed file 'lava_server/templates/404.html' --- lava_server/templates/404.html 2011-07-08 04:23:51 +0000 +++ lava_server/templates/404.html 1970-01-01 00:00:00 +0000 @@ -1,9 +0,0 @@ -{% extends "layouts/content.html" %} - - -{% block title %} | HTTP 404 {% endblock %} - - -{% block content %} -

        404 Not found

        -{% endblock %} === removed file 'lava_server/templates/500.html' --- lava_server/templates/500.html 2012-02-15 21:53:07 +0000 +++ lava_server/templates/500.html 1970-01-01 00:00:00 +0000 @@ -1,17 +0,0 @@ -{% extends "layouts/content.html" %} - -{% block breadcrumb_container %}{% endblock %} - - -{% block title %} | HTTP 500 {% endblock %} - - -{% block content %} -

        500 Internal Server Error

        -

        - Oops, something has gone wrong! -

        -{% if request.sentry.id %} -

        If you need assistance, you may reference this error as {{ request.sentry.id }}.

        -{% endif %} -{% endblock %} === removed directory 'lava_server/templates/admin' === removed file 'lava_server/templates/admin/app_index.html' --- lava_server/templates/admin/app_index.html 2013-09-13 10:11:33 +0000 +++ lava_server/templates/admin/app_index.html 1970-01-01 00:00:00 +0000 @@ -1,23 +0,0 @@ -{% extends "admin/index.html" %} - -{% load i18n %} -{% load url from future %} - -{% if not is_popup %} -{% block breadcrumbs %} -
        -{% endblock %} -{% endif %} - -{% block sidebar %}{% endblock %} - - === removed file 'lava_server/templates/ajax_table.html' --- lava_server/templates/ajax_table.html 2012-04-20 19:58:36 +0000 +++ lava_server/templates/ajax_table.html 1970-01-01 00:00:00 +0000 @@ -1,25 +0,0 @@ -{% extends "django_tables2/table.html" %} - -{% block table.thead %} - - - {% for column in table.columns %} - {{ column.header }} - {% endfor %} - - -{% endblock table.thead %} - -{% block table %} -{{ block.super }} -{% comment %} -The div below is a ridiculous hack to avoid the jQuery.details.js -setting the display: of the script element to "block" when showing a -table that is in a
        element. -{% endcomment %} -
        - -
        -{% endblock %} === removed file 'lava_server/templates/index.html' --- lava_server/templates/index.html 2013-09-10 20:55:55 +0000 +++ lava_server/templates/index.html 1970-01-01 00:00:00 +0000 @@ -1,19 +0,0 @@ -{% extends "layouts/content.html" %} -{% load i18n %} - - -{% block breadcrumb_container %} -{% endblock %} - -{% block content %} -

        LAVA Highlights

        -

        This page contains highlights from the installed lava server extensions. -Using LAVA Server extension API anyone can create applications that run on the -LAVA server.

        -{% for extension in extension_list %} -{% if extension.front_page_template %} -

        {{ extension.description }}

        -{% include extension.front_page_template %} -{% endif %} -{% endfor %} -{% endblock %} === removed directory 'lava_server/templates/layouts' === removed file 'lava_server/templates/layouts/base.html' --- lava_server/templates/layouts/base.html 2013-07-24 10:06:01 +0000 +++ lava_server/templates/layouts/base.html 1970-01-01 00:00:00 +0000 @@ -1,23 +0,0 @@ -{% load analytics %} - - - - - {% block title %}{% endblock %} - {% block scripts_and_styles %} - - - - - - - - {% endblock %} - {% block extrahead %}{% endblock %} - - - {% analytics %} - {% block body %} - {% endblock %} - - === removed file 'lava_server/templates/layouts/content.html' --- lava_server/templates/layouts/content.html 2013-09-11 19:34:55 +0000 +++ lava_server/templates/layouts/content.html 1970-01-01 00:00:00 +0000 @@ -1,292 +0,0 @@ -{% extends "layouts/base.html" %} -{% load i18n %} - - -{% block title %} -{{ bread_crumb_trail|join:" | " }} -{% endblock %} - - -{% block body %} - -
        - - {% block header %} - -
        - - {% block menu %} - -
        -
        - -
        -
        - LAVA -
        - {% for menu in lava.menu_list %} - - {% endfor %} - - {% endblock menu %} -
        - -
        - -
        -
        - AJAX progress indicator -
        -
        - - - - - - {% if lava.instance_name %} -
        Instance: {{ lava.instance_name }}
        - {% endif %} - - - -
        -
        - {% if user.is_authenticated %} - - {{user.get_full_name|default:user.username}} ▾ - {% else %} - {% if request.get_full_path == "/accounts/logout/" %} - {% trans "Sign In" %} - {% else %} - {% trans "Sign In" %} - {% endif %} - {% endif %} -
        - {% if user.is_authenticated %} - - {% endif %} -
        - -
        - - -
        - - - - {% endblock header %} - - {% block before_content %} - {% endblock %} - - {% spaceless %} -
        - {% block breadcrumb_container %} - -
        - {% trans "You are here:" %} -
          - {% block breadcrumbs %} - {% for bread_crumb in bread_crumb_trail %} -
        • {{ bread_crumb.get_name }}
        • - {% endfor %} - {% endblock %} -
        -
        - - {% endblock breadcrumb_container %} - - {% block content-and-sidebar %} - -
        -
        - - {% block content %}{% endblock %} - -
        -
        - {% endblock %} -
        - {% endspaceless %} - - - - - - -
        - -{% endblock body %} === removed file 'lava_server/templates/layouts/content_with_sidebar.html' --- lava_server/templates/layouts/content_with_sidebar.html 2011-11-08 23:50:58 +0000 +++ lava_server/templates/layouts/content_with_sidebar.html 1970-01-01 00:00:00 +0000 @@ -1,19 +0,0 @@ -{% extends "layouts/content.html" %} - - -{% spaceless %} -{% block content-and-sidebar %} -
        - -
        - {% block sidebar %}{% endblock %} -
        - - -
        - {% block content %}{% endblock %} -
        - -
        -{% endblock %} -{% endspaceless %} === removed file 'lava_server/templates/layouts/dialog.html' --- lava_server/templates/layouts/dialog.html 2011-07-12 15:05:51 +0000 +++ lava_server/templates/layouts/dialog.html 1970-01-01 00:00:00 +0000 @@ -1,33 +0,0 @@ -{% extends "layouts/base.html" %} - - -{% block scripts_and_styles %} - - -{% endblock %} - - -{% block extrahead %} - -{{ block.super }} -{% endblock %} - - -{% block body %} -
        - -
        - {% block content %} - {% endblock %} -
        - -
        -{% endblock %} === removed file 'lava_server/templates/layouts/form.html' --- lava_server/templates/layouts/form.html 2011-11-08 23:50:58 +0000 +++ lava_server/templates/layouts/form.html 1970-01-01 00:00:00 +0000 @@ -1,34 +0,0 @@ -{% extends "layouts/content.html" %} - - -{% block content %} -
        - {% block form_header %} - {% endblock %} - {% csrf_token %} - - {% for field in form %} - {% block form_field %} - - - - - {% endblock %} - {% endfor %} -
        - {% if field.errors %} -
        - {{ field.errors }} - {{ field }} -
        - {% else %} - {{ field }} - {% endif %} -

        {{ field.help_text }}

        -
        - {% block form_footer %} -

        Continue

        - - {% endblock %} -
        -{% endblock %} === removed file 'lava_server/templates/layouts/fullscreen.html' --- lava_server/templates/layouts/fullscreen.html 2011-05-23 14:36:01 +0000 +++ lava_server/templates/layouts/fullscreen.html 1970-01-01 00:00:00 +0000 @@ -1,49 +0,0 @@ -{% extends "layouts/base.html" %} -{% load i18n %} - - -{% block title %} -{% trans "LAVA" %} -{% endblock %} - -{% block body %} - - - - - - - - -
        {% block toolbar %}{% endblock %}
        {% block content %}{% endblock %}
        -{% endblock %} - === removed directory 'lava_server/templates/linaro_django_xmlrpc' === removed file 'lava_server/templates/linaro_django_xmlrpc/api.html' --- lava_server/templates/linaro_django_xmlrpc/api.html 2011-11-08 23:52:22 +0000 +++ lava_server/templates/linaro_django_xmlrpc/api.html 1970-01-01 00:00:00 +0000 @@ -1,51 +0,0 @@ -{% extends "layouts/content.html" %} -{% load markup %} -{% load i18n %} - - -{% block title %} -{{ block.super }} | {% trans "XML-RPC" %} -{% endblock %} - - -{% block breadcrumbs %} -{{ block.super }} -
      • {% trans "LAVA" %}
      • -
      • {% trans "API" %}
      • -
      • {% trans "Available Methods" %}
      • -{% endblock %} - - -{% block navigation %} - -{% endblock %} - - -{% block content %} -

        About XML-RPC API

        -

        LAVA Server offers API services as an XML-RPC server. You can interact with it using any XML-RPC -client. For example, in python you can do this:

        -
        -import xmlrpclib
        -server = xmlrpclib.ServerProxy("{{ site_url }}{% url lava.api_handler %}")
        -print server.system.listMethods()
        -
        - -

        Available functions

        -
        - {% for method in methods %} -

        {{ method.name }}

        -
        {{ method.help|restructuredtext }}
        - {% endfor %} -
        - -{% endblock %} === removed file 'lava_server/templates/linaro_django_xmlrpc/authtoken_confirm_delete.html' --- lava_server/templates/linaro_django_xmlrpc/authtoken_confirm_delete.html 2011-11-08 23:52:22 +0000 +++ lava_server/templates/linaro_django_xmlrpc/authtoken_confirm_delete.html 1970-01-01 00:00:00 +0000 @@ -1,43 +0,0 @@ -{% extends "layouts/form.html" %} -{% load i18n %} - - -{% block title %} -{{ block.super }} -| {% trans "API" %} -| {% trans "Authentication Tokens" %} -| {% trans "Delete Token" %} {{ token.pk }} -{% endblock %} - - -{% block breadcrumbs %} -{{ block.super }} -
      • {% trans "LAVA" %}
      • -
      • {% trans "API" %}
      • -
      • {% trans "Authentication Tokens" %}
      • -
      • {% trans "Delete Token" %} {{ token.pk }}
      • -{% endblock %} - - -{% block form_header %} -

        Would you like to delete {{ token }} -{% if token.description %} -with description “{{ token.description }}”? -{% else %} -with no description? -{% endif %} -

        -{% endblock %} - - -{% block form_footer %} -

        Continue

        - -or cancel -{% endblock %} === removed file 'lava_server/templates/linaro_django_xmlrpc/create_token.html' --- lava_server/templates/linaro_django_xmlrpc/create_token.html 2011-11-08 23:52:22 +0000 +++ lava_server/templates/linaro_django_xmlrpc/create_token.html 1970-01-01 00:00:00 +0000 @@ -1,38 +0,0 @@ -{% extends "layouts/form.html" %} -{% load i18n %} - - -{% block title %} -{{ block.super }} -| {% trans "API" %} -| {% trans "Authentication Tokens" %} -| {% trans "Create" %} -{% endblock %} - - -{% block breadcrumbs %} -{{ block.super }} -
      • {% trans "LAVA" %}
      • -
      • {% trans "API" %}
      • -
      • {% trans "Authentication Tokens" %}
      • -
      • {% trans "Create Token" %}
      • -{% endblock %} - - -{% block form_header %} -

        Create new authentication token

        -{% endblock %} - - -{% block form_footer %} -{{ block.super }} -or cancel -{% endblock %} === removed file 'lava_server/templates/linaro_django_xmlrpc/edit_token.html' --- lava_server/templates/linaro_django_xmlrpc/edit_token.html 2011-11-08 23:52:22 +0000 +++ lava_server/templates/linaro_django_xmlrpc/edit_token.html 1970-01-01 00:00:00 +0000 @@ -1,38 +0,0 @@ -{% extends "layouts/form.html" %} -{% load i18n %} - - -{% block title %} -{{ block.super }} -| {% trans "API" %} -| {% trans "Authentication Tokens" %} -| {% trans "Edit Token" %} {{ token.pk }} -{% endblock %} - - -{% block breadcrumbs %} -{{ block.super }} -
      • {% trans "LAVA" %}
      • -
      • {% trans "API" %}
      • -
      • {% trans "Authentication Tokens" %}
      • -
      • {% trans "Edit Token" %} {{ token.pk }}
      • -{% endblock %} - - -{% block form_header %} -

        Edit token {{ token.pk }}

        -{% endblock %} - - -{% block form_footer %} -{{ block.super }} -or cancel -{% endblock %} === removed file 'lava_server/templates/linaro_django_xmlrpc/tokens.html' --- lava_server/templates/linaro_django_xmlrpc/tokens.html 2012-09-05 21:10:17 +0000 +++ lava_server/templates/linaro_django_xmlrpc/tokens.html 1970-01-01 00:00:00 +0000 @@ -1,83 +0,0 @@ -{% extends "layouts/content_with_sidebar.html" %} -{% load i18n %} - - -{% block extrahead %} - - -{% endblock %} - - -{% block title %}{{ block.super }} | {% trans "API" %} | {% trans "Authentication Tokens" %}{% endblock %} - - -{% block breadcrumbs %} -{{ block.super }} -
      • {% trans "LAVA" %}
      • -
      • {% trans "API" %}
      • -
      • {% trans "Authentication Tokens" %}
      • -{% endblock %} - - -{% block sidebar %} -

        Actions

        - -{% endblock %} - - -{% block content %} -

        Authentication Tokens

        -

        Authentication tokens allow scripts using lava-tool to securely access LAVA -resources. You can create and use any number of tokens simultaneously. If you -believe a token is compromised you can quickly remove it. Anyone using that -token will no longer be able to authenticate as You in the system.

        -

        Your tokens

        -{% for token in token_list %} -

        Token No. {{ token.pk }}

        -
        -
        Description:
        -
        {{token.description|default:"empty"}}
        -
        Created on:
        -
        {{token.created_on|date}}
        -
        Last used:
        -
        - {% if token.last_used_on %} - {{token.last_used_on|timesince }} ago - {% else %} - It was not used yet - {% endif %} -
        -
        Secret:
        -
        - The secret is currently hidden. - -
        -
        - - -{% empty %} -

        You don't have any tokens yet.

        -{% endfor %} -{% endblock %} === removed file 'lava_server/templates/me.html' --- lava_server/templates/me.html 2013-08-06 16:30:46 +0000 +++ lava_server/templates/me.html 1970-01-01 00:00:00 +0000 @@ -1,28 +0,0 @@ -{% extends "layouts/content_with_sidebar.html" %} -{% load i18n %} - - -{% block sidebar %} -

        {% trans "Actions" %}

        - -{% endblock %} - - -{% block content %} -

        Hi {% firstof user.first_name user.username %}

        -

        This is where more interesting things about your actions will show up, -eventually

        - -

        You are member of the following LAVA groups:

        -
          - {% for g in user.groups.all %} -
        • {{ g.name }}
        • - {% empty %} -
        • (none)
        • - {% endfor %} -
        -{% endblock %} === removed directory 'lava_server/templates/registration' === removed file 'lava_server/templates/registration/base.html' --- lava_server/templates/registration/base.html 2011-07-13 10:24:17 +0000 +++ lava_server/templates/registration/base.html 1970-01-01 00:00:00 +0000 @@ -1,46 +0,0 @@ -{% extends "layouts/dialog.html" %} -{% load i18n %} - - -{% block title %}{{ block.super }} | {% trans "Account management" %}{% endblock %} - - -{% block scripts_and_styles %} -{{ block.super }} - - - -{% endblock %} - - -{% block header %} -

        {% block big_message %}{% endblock %}

        -{% endblock %} - - -{% block ajax_notification %} -{% endblock %} - - -{% block content %} -{% endblock %} - - -{% block footer %} - - -{% endblock %} === removed file 'lava_server/templates/registration/login.html' --- lava_server/templates/registration/login.html 2013-07-23 13:29:45 +0000 +++ lava_server/templates/registration/login.html 1970-01-01 00:00:00 +0000 @@ -1,92 +0,0 @@ -{% extends "registration/base.html" %} -{% load i18n %} - - -{% block title %} -{{block.super }} -| {% trans "Sign in" %} -{% endblock %} - - -{% block extrahead %} -{{ block.super }} - - -{% endblock %} - - -{% block header %} -{% if next %} -

        {% trans "You need to sign-in to access that page" %}

        -{% else %} -

        {% trans "Sign in" %}

        -{% endif %} -{% endblock %} - - -{% block content %} -
        - {% csrf_token %} - - {% if openid_available %} - - - - - - {% endif %} - - {% if openid_available %} - - {% endif %} - - - - {% if openid_available %} - - {% endif %} - - -
        {% blocktrans %}Use {{ openid_provider }} account{% endblocktrans %}{% trans "Use custom account" %}
        - {% blocktrans %} -

        Thanks to the OpenID technology you can use your existing - {{ openid_provider }} account to - access the dashboard.

        -

        This is the recommended method as you don't need to worry about - having to maintain another account just for this website.

        - {% endblocktrans %} -
        - {% blocktrans %} -

        If you already have a local account you can sign-in with your user - name and password.

        - {% endblocktrans %} -

        {{ form.username }}

        -

        {{ form.password }}

        - {% if form.errors %} -

        {% trans "Your user name and password didn't match." %}

        -

        {% trans "If you have problems signing in please" %} - {% trans "reset your password" %}.

        - {% endif %} -

        - {% blocktrans %}Sign in with {{ openid_provider }}{% endblocktrans %} - - - -
        -
        -{% endblock %} === removed file 'lava_server/templates/registration/password_change_done.html' --- lava_server/templates/registration/password_change_done.html 2012-05-21 22:12:33 +0000 +++ lava_server/templates/registration/password_change_done.html 1970-01-01 00:00:00 +0000 @@ -1,25 +0,0 @@ -{% extends "registration/base.html" %} -{% load i18n %} - - -{% block title %} -{{ block.super }} -| {% trans "Password changed" %} -{% endblock %} - - -{% block big_message %}{% trans "Success!" %}{% endblock %} - - -{% block content %} - - - - - - - -
        {% trans "Your new password has been set" %}
        - -
        -{% endblock %} === removed file 'lava_server/templates/registration/password_change_form.html' --- lava_server/templates/registration/password_change_form.html 2011-03-14 14:03:42 +0000 +++ lava_server/templates/registration/password_change_form.html 1970-01-01 00:00:00 +0000 @@ -1,50 +0,0 @@ -{% extends "registration/base.html" %} -{% load i18n %} - - -{% block title %} -{{ block.super }} -| {% trans "Password change" %} -{% endblock %} - - -{% block extrahead %} -{{ block.super }} - -{% endblock %} - - -{% block big_message %}{% trans "Password change" %}{% endblock %} - -{% block content %} -
        - {% csrf_token %} - - - - - - - -
        - {% blocktrans %} -

        Please enter your old password, for security's sake, and then enter - your new password twice so we can verify you typed it in correctly.

        - {% endblocktrans %} -

        {{ form.old_password }}

        - {{ form.old_password.errors }} -

        {{ form.new_password1 }}

        - {{ form.new_password1.errors }} -

        {{ form.new_password2 }}

        - {{ form.new_password2.errors }} -
        - -
        -
        -{% endblock %} === removed file 'lava_server/templates/registration/password_reset_complete.html' --- lava_server/templates/registration/password_reset_complete.html 2010-12-22 11:25:37 +0000 +++ lava_server/templates/registration/password_reset_complete.html 1970-01-01 00:00:00 +0000 @@ -1,25 +0,0 @@ -{% extends "registration/base.html" %} -{% load i18n %} - - -{% block title %} -{{ block.super }} -| {% trans "Password reset complete" %} -{% endblock %} - - -{% block big_message %}{% trans "Success!" %}{% endblock %} - - -{% block content %} - - - - - - - -
        {% trans "Your new password has been set" %}
        - -
        -{% endblock %} === removed file 'lava_server/templates/registration/password_reset_confirm.html' --- lava_server/templates/registration/password_reset_confirm.html 2011-03-14 14:03:42 +0000 +++ lava_server/templates/registration/password_reset_confirm.html 1970-01-01 00:00:00 +0000 @@ -1,70 +0,0 @@ -{% extends "registration/base.html" %} -{% load i18n %} - - -{% block title %} -{{ block.super }} -| {% trans "Password reset" %} -{% endblock %} - - -{% block big_message %} -{% if validlink %} -{% trans "Password reset" %} -{% else %} -{% trans "Ooops!" %} -{% endif %} -{% endblock %} - - -{% block extrahead %} -{{ block.super }} - -{% endblock %} - - -{% block content %} -{% if validlink %} -
        - {% csrf_token %} - - - - - - - -
        - {% blocktrans %} -

        Please enter your new password twice so we can verify you typed it - in correctly.

        - {% endblocktrans %} -

        {{ form.new_password1 }}

        - {{ form.new_password1.errors }} -

        {{ form.new_password2 }}

        - {{ form.new_password2.errors }} -
        - -
        -
        - -{% else %} - - - - -
        - {% blocktrans %} -

        The password reset link was invalid, possibly because it has already - been used. Please - {% endblocktrans %} - {% trans "request a new password reset" %} -

        -
        -{% endif %} -{% endblock %} === removed file 'lava_server/templates/registration/password_reset_done.html' --- lava_server/templates/registration/password_reset_done.html 2010-12-09 19:49:37 +0000 +++ lava_server/templates/registration/password_reset_done.html 1970-01-01 00:00:00 +0000 @@ -1,18 +0,0 @@ -{% extends "registration/base.html" %} -{% load i18n %} - -{% block title %} -{{ block.super }} -| {% trans "Password reset" %} -{% endblock %} - - -{% block big_message %}{% trans "Mail sent!" %}{% endblock %} - - -{% block content %} -{% blocktrans %} -

        We've e-mailed you instructions for setting your password to the e-mail -address you submitted. You should be receiving it shortly.

        -{% endblocktrans %} -{% endblock %} === removed file 'lava_server/templates/registration/password_reset_email.html' --- lava_server/templates/registration/password_reset_email.html 2010-09-28 16:32:43 +0000 +++ lava_server/templates/registration/password_reset_email.html 1970-01-01 00:00:00 +0000 @@ -1,15 +0,0 @@ -{% load i18n %}{% autoescape off %} -{% trans "You're receiving this e-mail because you requested a password reset" %} -{% blocktrans %}for your user account at {{ site_name }}{% endblocktrans %}. - -{% trans "Please go to the following page and choose a new password:" %} -{% block reset_link %} -{{ protocol }}://{{ domain }}{% url django.contrib.auth.views.password_reset_confirm uidb36=uid, token=token %} -{% endblock %} -{% trans "Your username, in case you've forgotten:" %} {{ user.username }} - -{% trans "Thanks for using our site!" %} - -{% blocktrans %}The {{ site_name }} team{% endblocktrans %} - -{% endautoescape %} === removed file 'lava_server/templates/registration/password_reset_form.html' --- lava_server/templates/registration/password_reset_form.html 2011-03-14 14:03:42 +0000 +++ lava_server/templates/registration/password_reset_form.html 1970-01-01 00:00:00 +0000 @@ -1,45 +0,0 @@ -{% extends "registration/base.html" %} -{% load i18n %} - - -{% block title %} -{{ block.super }} -| {% trans "Password reset" %} -{% endblock %} - - -{% block extrahead %} -{{ block.super }} - -{% endblock %} - - -{% block big_message %}{% trans "Lost password?" %}{% endblock %} - - -{% block content %} -
        - {% csrf_token %} - - - - - - - -
        - {% blocktrans %} -

        Please enter the e-mail address associated with your account. We will - send you instructions on how to reset your password.

        - {% endblocktrans %} - {{ form.email }} - {{ form.email.errors }} -
        - -
        -
        -{% endblock %} === removed file 'lava_server/templates/version_details.html' --- lava_server/templates/version_details.html 2011-10-27 23:25:38 +0000 +++ lava_server/templates/version_details.html 1970-01-01 00:00:00 +0000 @@ -1,17 +0,0 @@ -{% extends "layouts/content.html" %} - - -{% block content %} -

        LAVA Server

        -

        You are using LAVA Server version {{ lava.version }}

        -

        Extensions

        -{% if lava.extension_list %} -
          - {% for extension in lava.extension_list %} -
        • Extension {{ extension.name }} version {{ extension.version }}
        • - {% endfor %} -
        -{% else %} -

        No server extension have been installed yet

        -{% endif %} -{% endblock %} === removed file 'lava_server/tests.py' --- lava_server/tests.py 2011-05-23 14:51:40 +0000 +++ lava_server/tests.py 1970-01-01 00:00:00 +0000 @@ -1,28 +0,0 @@ -# Copyright (C) 2010, 2011 Linaro Limited -# -# Author: Zygmunt Krynicki -# -# This file is part of LAVA Server. -# -# LAVA Server is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License version 3 -# as published by the Free Software Foundation -# -# LAVA Server is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with LAVA Server. If not, see . - - -from django_testproject.tests import run_tests_for - - -def run_tests(): - return run_tests_for("lava_server.settings.development", None) - - -if __name__ == "__main__": - run_tests() === removed file 'lava_server/urls.py' --- lava_server/urls.py 2013-09-17 11:47:42 +0000 +++ lava_server/urls.py 1970-01-01 00:00:00 +0000 @@ -1,91 +0,0 @@ -# Copyright (C) 2010 Linaro Limited -# -# Author: Zygmunt Krynicki -# -# This file is part of LAVA Server. -# -# LAVA Server is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License version 3 -# as published by the Free Software Foundation -# -# LAVA Server is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with LAVA Server. If not, see . - -from django.conf import settings -from django.conf.urls.defaults import ( - handler404, include, patterns, url) -from django.contrib import admin -from staticfiles.urls import staticfiles_urlpatterns -from longerusername.forms import AuthenticationForm -from linaro_django_xmlrpc import urls as api_urls - -from lava_server.extension import loader -from lava_server.views import index, me, version - - -handler403 = 'lava_server.views.permission_error' -handler500 = 'lava_server.views.server_error' - -# Enable admin stuff -admin.autodiscover() - - -# Root URL patterns -urlpatterns = patterns( - '', - url(r'^{mount_point}$'.format(mount_point=settings.MOUNT_POINT), - index, - name='lava.home'), - url(r'^{mount_point}me/$'.format(mount_point=settings.MOUNT_POINT), - me, - name='lava.me'), - url(r'^{mount_point}version/$'.format(mount_point=settings.MOUNT_POINT), - version, - name='lava.version_details'), - - url(r'^{mount_point}accounts/login/$'.format(mount_point=settings.MOUNT_POINT), - 'django.contrib.auth.views.login', {'authentication_form': AuthenticationForm}), - url(r'^{mount_point}accounts/logout/$'.format(mount_point=settings.MOUNT_POINT), - 'django.contrib.auth.views.logout'), - url(r'^{mount_point}password_change/$'.format(mount_point=settings.MOUNT_POINT), - 'django.contrib.auth.views.password_change'), - url(r'^{mount_point}password_change/done/$'.format(mount_point=settings.MOUNT_POINT), - 'django.contrib.auth.views.password_change_done'), - - url(r'^{mount_point}admin/'.format(mount_point=settings.MOUNT_POINT), - include(admin.site.urls)), - url(r'^{mount_point}openid/'.format(mount_point=settings.MOUNT_POINT), - include('django_openid_auth.urls')), - url(r'^{mount_point}RPC2/?'.format(mount_point=settings.MOUNT_POINT), - 'linaro_django_xmlrpc.views.handler', - name='lava.api_handler', - kwargs={ - 'mapper': loader.xmlrpc_mapper, - 'help_view': 'lava.api_help'}), - url(r'^{mount_point}api/help/$'.format(mount_point=settings.MOUNT_POINT), - 'linaro_django_xmlrpc.views.help', - name='lava.api_help', - kwargs={ - 'mapper': loader.xmlrpc_mapper}), - url(r'^{mount_point}api/'.format(mount_point=settings.MOUNT_POINT), - include(api_urls.token_urlpatterns)), - # XXX: This is not needed but without it linaro-django-xmlrpc tests fail - url(r'^{mount_point}api/'.format(mount_point=settings.MOUNT_POINT), - include(api_urls.default_mapper_urlpatterns)), - url(r'^{mount_point}utils/markitup/'.format(mount_point=settings.MOUNT_POINT), - include('lava_markitup.urls'))) - - -# Enable static files serving for development server -# NOTE: This can be removed in django 1.3 -if settings.DEBUG: - urlpatterns += staticfiles_urlpatterns() - - -# Load URLs for extensions -loader.contribute_to_urlpatterns(urlpatterns, settings.MOUNT_POINT) === removed file 'lava_server/views.py' --- lava_server/views.py 2012-11-09 22:40:16 +0000 +++ lava_server/views.py 1970-01-01 00:00:00 +0000 @@ -1,94 +0,0 @@ -# Copyright (C) 2010, 2011 Linaro Limited -# -# Author: Zygmunt Krynicki -# -# This file is part of LAVA Server. -# -# LAVA Server is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License version 3 -# as published by the Free Software Foundation -# -# LAVA Server is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with LAVA Server. If not, see . - -from django.conf import settings -from django.contrib.auth.decorators import login_required -from django.core.urlresolvers import reverse -from django.http import HttpResponse, HttpResponseServerError -from django.template import Context, loader, RequestContext -from django.utils.translation import ugettext as _ -from django.views.decorators.csrf import requires_csrf_token - -from lava_server.bread_crumbs import ( - BreadCrumb, - BreadCrumbTrail, -) -from lava_server.extension import loader as extension_loader - - -@BreadCrumb(_("LAVA")) -def index(request): - # Start with a list of extensions - data = { - 'extension_list': extension_loader.extensions, - 'bread_crumb_trail': BreadCrumbTrail.leading_to(index), - } - # Append each extension context data - for extension in extension_loader.extensions: - data.update(extension.get_front_page_context()) - # Load and render the template - context = RequestContext(request, data) - template = loader.get_template('index.html') - return HttpResponse(template.render(context)) - - -@BreadCrumb(_("About you ({you})"), - parent=index) -@login_required -def me(request): - actions = [] - for view, text in settings.ME_PAGE_ACTIONS: - actions.append((reverse(view), text)) - data = { - 'bread_crumb_trail': BreadCrumbTrail.leading_to( - me, you=request.user.get_full_name() or request.user.username), - 'actions': actions, - } - context = RequestContext(request, data) - template = loader.get_template('me.html') - return HttpResponse(template.render(context)) - - -@BreadCrumb(_("Version details"), - parent=index) -def version(request): - data = { - 'bread_crumb_trail': BreadCrumbTrail.leading_to(version) - } - context = RequestContext(request, data) - template = loader.get_template('version_details.html') - return HttpResponse(template.render(context)) - - -@requires_csrf_token -def server_error(request, template_name='500.html'): - t = loader.get_template(template_name) - return HttpResponseServerError( - t.render( - Context( - { - 'STATIC_URL':settings.STATIC_URL, - 'user':request.user, - 'request':request, - }))) - -@requires_csrf_token -def permission_error(request, template_name='403.html'): - t = loader.get_template(template_name) - context = RequestContext(request) - return HttpResponse(t.render(context)) === removed file 'lava_server/xmlrpc.py' --- lava_server/xmlrpc.py 2011-10-11 09:20:14 +0000 +++ lava_server/xmlrpc.py 1970-01-01 00:00:00 +0000 @@ -1,45 +0,0 @@ -# Copyright (C) 2010, 2011 Linaro Limited -# -# Author: Zygmunt Krynicki -# Author: Michael Hudson-Doyle -# -# This file is part of LAVA Server. -# -# LAVA Server is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License version 3 -# as published by the Free Software Foundation -# -# LAVA Server is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with LAVA Server. If not, see . - -from linaro_django_xmlrpc.models import Mapper, SystemAPI - - -class LavaSystemAPI(SystemAPI): - """ - Extend the default SystemAPI with a 'whoami' method. - """ - - def whoami(self): - """Return the name of the authenticated user, if any, or None.""" - if self.user: - return self.user.username - else: - return None - - -class LavaMapper(Mapper): - - def register_introspection_methods(self): - """ - Register LavaSystemAPI as 'system' object. - - LavaSystemAPI adds a 'whoami' system method above what the default - has. - """ - self.register(LavaSystemAPI, 'system') === removed file 'run-postgresql-instance.sh' --- run-postgresql-instance.sh 2011-10-28 00:29:27 +0000 +++ run-postgresql-instance.sh 1970-01-01 00:00:00 +0000 @@ -1,2 +0,0 @@ -#!/bin/sh -DEVEL_DB=pgsql ./lava_server/manage.py $@ === removed file 'setup.cfg' --- setup.cfg 2011-07-21 23:16:58 +0000 +++ setup.cfg 1970-01-01 00:00:00 +0000 @@ -1,2 +0,0 @@ -[upload] -sign=True === removed file 'setup.py' --- setup.py 2013-09-05 18:21:58 +0000 +++ setup.py 1970-01-01 00:00:00 +0000 @@ -1,88 +0,0 @@ -#!/usr/bin/env python -# -# Copyright (C) 2010 Linaro Limited -# -# Author: Zygmunt Krynicki -# -# This file is part of LAVA Server. -# -# LAVA Server is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# as published by the Free Software Foundation -# -# LAVA Server is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with LAVA Server. If not, see . - -from setuptools import setup, find_packages - - -setup( - name='lava-server', - version=":versiontools:lava_server:__version__", - author="Zygmunt Krynicki", - author_email="zygmunt.krynicki@linaro.org", - namespace_packages=['lava', 'lava.utils'], - packages=find_packages(), - entry_points=""" - [console_scripts] - lava-server = lava_server.manage:main - [lava_server.commands] - manage=lava_server.manage:manage - [lava_server.extensions] - project=lava_projects.extension:ProjectExtension - """, - test_suite="lava_server.tests.run_tests", - license="AGPL", - description="LAVA Server Application Container", - long_description=""" - LAVA Server is an application container for various server side - applications of the LAVA stack. Currently it can host the dashboard - application. More applications (such as the scheduler and driver) - will be added later. - """, - url='https://launchpad.net/lava-server', - classifiers=[ - "Development Status :: 4 - Beta", - "Intended Audience :: Developers", - "License :: OSI Approved :: GNU Affero General Public License v3", - ("License :: OSI Approved :: GNU Library or Lesser General Public" - " License (LGPL)"), - "Operating System :: OS Independent", - "Programming Language :: Python :: 2.6", - "Programming Language :: Python :: 2.7", - "Topic :: Software Development :: Testing", - ], - install_requires=[ - 'django >= 1.3', - 'django-debian >= 0.10', - 'django-openid-auth >= 0.2', - 'django-restricted-resource >= 0.2.6', - 'django-staticfiles == 0.3.4', - 'django-tables2', - 'docutils >= 0.6', - 'lava-tool >= 0.2', - 'lava-utils-interface >= 1.0', - 'linaro-django-xmlrpc >= 0.4', - 'python-openid >= 2.2.4', # this should be a part of - # django-openid-auth deps - 'south >= 0.7.3', - 'versiontools >= 1.8', - 'markdown >= 2.0.3', - 'longerusername', - - # optional dependency; for authentication with Attlassian Crowd SSO - # 'django-crowd-rest-backend >= 0.3, - ], - setup_requires=[ - 'versiontools >= 1.8', - ], - tests_require=[ - 'django-testscenarios >= 0.7.1', - ], - zip_safe=False, - include_package_data=True)