From a8f763fb85756f69899f7b3b71c01bb01461ee3c Mon Sep 17 00:00:00 2001 From: RaNaN Date: Fri, 10 Aug 2012 22:12:10 +0200 Subject: beginning new pyload web-ui from scratch --- module/web/api_app.py | 6 +- module/web/json_app.py | 285 ------- module/web/media/default/css/MooDialog.css | 92 --- module/web/media/default/css/default.css | 908 --------------------- module/web/media/default/css/log.css | 72 -- module/web/media/default/css/pathchooser.css | 68 -- module/web/media/default/css/window.css | 73 -- module/web/media/default/img/add_folder.png | Bin 571 -> 0 bytes module/web/media/default/img/ajax-loader.gif | Bin 404 -> 0 bytes module/web/media/default/img/arrow_refresh.png | Bin 685 -> 0 bytes module/web/media/default/img/arrow_right.png | Bin 349 -> 0 bytes module/web/media/default/img/big_button.gif | Bin 1905 -> 0 bytes module/web/media/default/img/big_button_over.gif | Bin 728 -> 0 bytes module/web/media/default/img/body.png | Bin 402 -> 0 bytes module/web/media/default/img/button.png | Bin 452 -> 0 bytes module/web/media/default/img/closebtn.gif | Bin 254 -> 0 bytes module/web/media/default/img/cog.png | Bin 512 -> 0 bytes module/web/media/default/img/control_add.png | Bin 446 -> 0 bytes module/web/media/default/img/control_add_blue.png | Bin 845 -> 0 bytes module/web/media/default/img/control_cancel.png | Bin 3349 -> 0 bytes .../web/media/default/img/control_cancel_blue.png | Bin 787 -> 0 bytes module/web/media/default/img/control_pause.png | Bin 598 -> 0 bytes .../web/media/default/img/control_pause_blue.png | Bin 721 -> 0 bytes module/web/media/default/img/control_play.png | Bin 592 -> 0 bytes module/web/media/default/img/control_play_blue.png | Bin 717 -> 0 bytes module/web/media/default/img/control_stop.png | Bin 403 -> 0 bytes module/web/media/default/img/control_stop_blue.png | Bin 695 -> 0 bytes module/web/media/default/img/delete.png | Bin 715 -> 0 bytes module/web/media/default/img/drag_corner.gif | Bin 76 -> 0 bytes module/web/media/default/img/error.png | Bin 701 -> 0 bytes module/web/media/default/img/folder.png | Bin 537 -> 0 bytes module/web/media/default/img/full.png | Bin 3543 -> 0 bytes module/web/media/default/img/head-login.png | Bin 1288 -> 0 bytes .../web/media/default/img/head-menu-collector.png | Bin 1953 -> 0 bytes module/web/media/default/img/head-menu-config.png | Bin 1802 -> 0 bytes .../media/default/img/head-menu-development.png | Bin 876 -> 0 bytes .../web/media/default/img/head-menu-download.png | Bin 721 -> 0 bytes module/web/media/default/img/head-menu-home.png | Bin 920 -> 0 bytes module/web/media/default/img/head-menu-index.png | Bin 482 -> 0 bytes module/web/media/default/img/head-menu-news.png | Bin 628 -> 0 bytes module/web/media/default/img/head-menu-queue.png | Bin 2629 -> 0 bytes module/web/media/default/img/head-menu-recent.png | Bin 932 -> 0 bytes module/web/media/default/img/head-menu-wiki.png | Bin 1204 -> 0 bytes .../web/media/default/img/head-search-noshadow.png | Bin 1187 -> 0 bytes module/web/media/default/img/head_bg1.png | Bin 125 -> 0 bytes module/web/media/default/img/images.png | Bin 661 -> 0 bytes module/web/media/default/img/notice.png | Bin 778 -> 0 bytes module/web/media/default/img/package_go.png | Bin 898 -> 0 bytes .../web/media/default/img/page-tools-backlinks.png | Bin 540 -> 0 bytes module/web/media/default/img/page-tools-edit.png | Bin 574 -> 0 bytes .../web/media/default/img/page-tools-revisions.png | Bin 603 -> 0 bytes module/web/media/default/img/parseUri.png | Bin 666 -> 0 bytes module/web/media/default/img/pencil.png | Bin 450 -> 0 bytes .../img/pyload-logo-edited3.5-new-font-small.png | Bin 8457 -> 0 bytes module/web/media/default/img/reconnect.png | Bin 755 -> 0 bytes module/web/media/default/img/status_None.png | Bin 7613 -> 0 bytes .../web/media/default/img/status_downloading.png | Bin 943 -> 0 bytes module/web/media/default/img/status_failed.png | Bin 701 -> 0 bytes module/web/media/default/img/status_finished.png | Bin 781 -> 0 bytes module/web/media/default/img/status_offline.png | Bin 700 -> 0 bytes module/web/media/default/img/status_proc.png | Bin 512 -> 0 bytes module/web/media/default/img/status_queue.png | Bin 7613 -> 0 bytes module/web/media/default/img/status_waiting.png | Bin 889 -> 0 bytes module/web/media/default/img/success.png | Bin 781 -> 0 bytes module/web/media/default/img/tab-background.png | Bin 179 -> 0 bytes .../web/media/default/img/tabs-border-bottom.png | Bin 163 -> 0 bytes .../web/media/default/img/user-actions-logout.png | Bin 799 -> 0 bytes .../web/media/default/img/user-actions-profile.png | Bin 628 -> 0 bytes module/web/media/default/img/user-info.png | Bin 3963 -> 0 bytes module/web/media/img/dialog-close.png | Bin 689 -> 0 bytes module/web/media/img/dialog-question.png | Bin 2073 -> 0 bytes module/web/media/img/favicon.ico | Bin 7206 -> 0 bytes module/web/media/js/MooDialog_static.js | 401 --------- module/web/media/js/MooDropMenu_static.js | 89 -- module/web/media/js/admin.coffee | 58 -- module/web/media/js/admin.js | 3 - module/web/media/js/base.coffee | 173 ---- module/web/media/js/base.js | 3 - module/web/media/js/mootools-core-1.4.1.js | 476 ----------- module/web/media/js/mootools-more-1.4.0.1.js | 216 ----- module/web/media/js/package_ui.js | 378 --------- module/web/media/js/purr_static.js | 308 ------- module/web/media/js/settings.coffee | 107 --- module/web/media/js/settings.js | 3 - module/web/media/js/tinytab_static.js | 50 -- module/web/middlewares.py | 3 - module/web/mockups/font.css | 89 -- .../web/mockups/fonts/Sansation_Bold-webfont.eot | Bin 35336 -> 0 bytes .../web/mockups/fonts/Sansation_Bold-webfont.ttf | Bin 35160 -> 0 bytes .../web/mockups/fonts/Sansation_Bold-webfont.woff | Bin 18496 -> 0 bytes .../web/mockups/fonts/Sansation_Light-webfont.eot | Bin 36700 -> 0 bytes .../web/mockups/fonts/Sansation_Light-webfont.ttf | Bin 36520 -> 0 bytes .../web/mockups/fonts/Sansation_Light-webfont.woff | Bin 18408 -> 0 bytes .../mockups/fonts/Sansation_Regular-webfont.eot | Bin 36368 -> 0 bytes .../mockups/fonts/Sansation_Regular-webfont.ttf | Bin 36180 -> 0 bytes .../mockups/fonts/Sansation_Regular-webfont.woff | Bin 18316 -> 0 bytes module/web/mockups/images/Logo.png | Bin 11621 -> 0 bytes module/web/mockups/images/Logo_grey.png | Bin 6236 -> 0 bytes module/web/mockups/images/fancy_deboss.png | Bin 265 -> 0 bytes module/web/mockups/images/img03.gif | Bin 46 -> 0 bytes module/web/mockups/images/main-wrapper-bg.png | Bin 114902 -> 0 bytes module/web/mockups/index.html | 254 ------ module/web/mockups/style.css | 444 ---------- module/web/pyload_app.py | 431 +--------- module/web/static/css/default/style.css | 161 ++++ module/web/static/css/font.css | 37 + module/web/static/fonts/Sansation_Bold-webfont.eot | Bin 0 -> 35336 bytes module/web/static/fonts/Sansation_Bold-webfont.ttf | Bin 0 -> 35160 bytes .../web/static/fonts/Sansation_Bold-webfont.woff | Bin 0 -> 18496 bytes .../web/static/fonts/Sansation_Light-webfont.eot | Bin 0 -> 36700 bytes .../web/static/fonts/Sansation_Light-webfont.ttf | Bin 0 -> 36520 bytes .../web/static/fonts/Sansation_Light-webfont.woff | Bin 0 -> 18408 bytes .../web/static/fonts/Sansation_Regular-webfont.eot | Bin 0 -> 36368 bytes .../web/static/fonts/Sansation_Regular-webfont.ttf | Bin 0 -> 36180 bytes .../static/fonts/Sansation_Regular-webfont.woff | Bin 0 -> 18316 bytes module/web/static/img/default/fancy_deboss.png | Bin 0 -> 265 bytes module/web/static/img/default/logo.png | Bin 0 -> 11621 bytes module/web/static/img/default/logo_grey.png | Bin 0 -> 6236 bytes module/web/static/img/default/main-wrapper-bg.png | Bin 0 -> 114902 bytes module/web/static/img/favicon.ico | Bin 0 -> 7206 bytes module/web/static/js/libs/jquery-1.8.0.min.js | 2 + module/web/templates/500.html | 3 +- module/web/templates/default/admin.html | 98 --- module/web/templates/default/base.html | 239 ++---- module/web/templates/default/captcha.html | 42 - module/web/templates/default/downloads.html | 29 - module/web/templates/default/filemanager.html | 80 -- module/web/templates/default/filemanager_ui.js | 291 ------- module/web/templates/default/folder.html | 15 - module/web/templates/default/home.html | 266 ------ module/web/templates/default/info.html | 81 -- module/web/templates/default/login.html | 36 - module/web/templates/default/logout.html | 9 - module/web/templates/default/logs.html | 41 - module/web/templates/default/pathchooser.html | 76 -- module/web/templates/default/queue.html | 108 --- module/web/templates/default/settings.html | 204 ----- module/web/templates/default/settings_item.html | 48 -- module/web/templates/default/setup.html | 13 - module/web/templates/default/window.html | 46 -- module/web/utils.py | 10 +- module/web/webinterface.py | 1 - 142 files changed, 298 insertions(+), 6628 deletions(-) delete mode 100644 module/web/json_app.py delete mode 100644 module/web/media/default/css/MooDialog.css delete mode 100644 module/web/media/default/css/default.css delete mode 100644 module/web/media/default/css/log.css delete mode 100644 module/web/media/default/css/pathchooser.css delete mode 100644 module/web/media/default/css/window.css delete mode 100644 module/web/media/default/img/add_folder.png delete mode 100644 module/web/media/default/img/ajax-loader.gif delete mode 100644 module/web/media/default/img/arrow_refresh.png delete mode 100644 module/web/media/default/img/arrow_right.png delete mode 100644 module/web/media/default/img/big_button.gif delete mode 100644 module/web/media/default/img/big_button_over.gif delete mode 100644 module/web/media/default/img/body.png delete mode 100644 module/web/media/default/img/button.png delete mode 100644 module/web/media/default/img/closebtn.gif delete mode 100644 module/web/media/default/img/cog.png delete mode 100644 module/web/media/default/img/control_add.png delete mode 100644 module/web/media/default/img/control_add_blue.png delete mode 100644 module/web/media/default/img/control_cancel.png delete mode 100644 module/web/media/default/img/control_cancel_blue.png delete mode 100644 module/web/media/default/img/control_pause.png delete mode 100644 module/web/media/default/img/control_pause_blue.png delete mode 100644 module/web/media/default/img/control_play.png delete mode 100644 module/web/media/default/img/control_play_blue.png delete mode 100644 module/web/media/default/img/control_stop.png delete mode 100644 module/web/media/default/img/control_stop_blue.png delete mode 100644 module/web/media/default/img/delete.png delete mode 100644 module/web/media/default/img/drag_corner.gif delete mode 100644 module/web/media/default/img/error.png delete mode 100644 module/web/media/default/img/folder.png delete mode 100644 module/web/media/default/img/full.png delete mode 100644 module/web/media/default/img/head-login.png delete mode 100644 module/web/media/default/img/head-menu-collector.png delete mode 100644 module/web/media/default/img/head-menu-config.png delete mode 100644 module/web/media/default/img/head-menu-development.png delete mode 100644 module/web/media/default/img/head-menu-download.png delete mode 100644 module/web/media/default/img/head-menu-home.png delete mode 100644 module/web/media/default/img/head-menu-index.png delete mode 100644 module/web/media/default/img/head-menu-news.png delete mode 100644 module/web/media/default/img/head-menu-queue.png delete mode 100644 module/web/media/default/img/head-menu-recent.png delete mode 100644 module/web/media/default/img/head-menu-wiki.png delete mode 100644 module/web/media/default/img/head-search-noshadow.png delete mode 100644 module/web/media/default/img/head_bg1.png delete mode 100644 module/web/media/default/img/images.png delete mode 100644 module/web/media/default/img/notice.png delete mode 100644 module/web/media/default/img/package_go.png delete mode 100644 module/web/media/default/img/page-tools-backlinks.png delete mode 100644 module/web/media/default/img/page-tools-edit.png delete mode 100644 module/web/media/default/img/page-tools-revisions.png delete mode 100644 module/web/media/default/img/parseUri.png delete mode 100644 module/web/media/default/img/pencil.png delete mode 100644 module/web/media/default/img/pyload-logo-edited3.5-new-font-small.png delete mode 100644 module/web/media/default/img/reconnect.png delete mode 100644 module/web/media/default/img/status_None.png delete mode 100644 module/web/media/default/img/status_downloading.png delete mode 100644 module/web/media/default/img/status_failed.png delete mode 100644 module/web/media/default/img/status_finished.png delete mode 100644 module/web/media/default/img/status_offline.png delete mode 100644 module/web/media/default/img/status_proc.png delete mode 100644 module/web/media/default/img/status_queue.png delete mode 100644 module/web/media/default/img/status_waiting.png delete mode 100644 module/web/media/default/img/success.png delete mode 100644 module/web/media/default/img/tab-background.png delete mode 100644 module/web/media/default/img/tabs-border-bottom.png delete mode 100644 module/web/media/default/img/user-actions-logout.png delete mode 100644 module/web/media/default/img/user-actions-profile.png delete mode 100644 module/web/media/default/img/user-info.png delete mode 100644 module/web/media/img/dialog-close.png delete mode 100644 module/web/media/img/dialog-question.png delete mode 100644 module/web/media/img/favicon.ico delete mode 100644 module/web/media/js/MooDialog_static.js delete mode 100644 module/web/media/js/MooDropMenu_static.js delete mode 100644 module/web/media/js/admin.coffee delete mode 100644 module/web/media/js/admin.js delete mode 100644 module/web/media/js/base.coffee delete mode 100644 module/web/media/js/base.js delete mode 100644 module/web/media/js/mootools-core-1.4.1.js delete mode 100644 module/web/media/js/mootools-more-1.4.0.1.js delete mode 100644 module/web/media/js/package_ui.js delete mode 100644 module/web/media/js/purr_static.js delete mode 100644 module/web/media/js/settings.coffee delete mode 100644 module/web/media/js/settings.js delete mode 100644 module/web/media/js/tinytab_static.js delete mode 100644 module/web/mockups/font.css delete mode 100644 module/web/mockups/fonts/Sansation_Bold-webfont.eot delete mode 100644 module/web/mockups/fonts/Sansation_Bold-webfont.ttf delete mode 100644 module/web/mockups/fonts/Sansation_Bold-webfont.woff delete mode 100644 module/web/mockups/fonts/Sansation_Light-webfont.eot delete mode 100644 module/web/mockups/fonts/Sansation_Light-webfont.ttf delete mode 100644 module/web/mockups/fonts/Sansation_Light-webfont.woff delete mode 100644 module/web/mockups/fonts/Sansation_Regular-webfont.eot delete mode 100644 module/web/mockups/fonts/Sansation_Regular-webfont.ttf delete mode 100644 module/web/mockups/fonts/Sansation_Regular-webfont.woff delete mode 100644 module/web/mockups/images/Logo.png delete mode 100644 module/web/mockups/images/Logo_grey.png delete mode 100644 module/web/mockups/images/fancy_deboss.png delete mode 100644 module/web/mockups/images/img03.gif delete mode 100644 module/web/mockups/images/main-wrapper-bg.png delete mode 100644 module/web/mockups/index.html delete mode 100644 module/web/mockups/style.css create mode 100644 module/web/static/css/default/style.css create mode 100644 module/web/static/css/font.css create mode 100644 module/web/static/fonts/Sansation_Bold-webfont.eot create mode 100644 module/web/static/fonts/Sansation_Bold-webfont.ttf create mode 100644 module/web/static/fonts/Sansation_Bold-webfont.woff create mode 100644 module/web/static/fonts/Sansation_Light-webfont.eot create mode 100644 module/web/static/fonts/Sansation_Light-webfont.ttf create mode 100644 module/web/static/fonts/Sansation_Light-webfont.woff create mode 100644 module/web/static/fonts/Sansation_Regular-webfont.eot create mode 100644 module/web/static/fonts/Sansation_Regular-webfont.ttf create mode 100644 module/web/static/fonts/Sansation_Regular-webfont.woff create mode 100644 module/web/static/img/default/fancy_deboss.png create mode 100644 module/web/static/img/default/logo.png create mode 100644 module/web/static/img/default/logo_grey.png create mode 100644 module/web/static/img/default/main-wrapper-bg.png create mode 100644 module/web/static/img/favicon.ico create mode 100644 module/web/static/js/libs/jquery-1.8.0.min.js delete mode 100644 module/web/templates/default/admin.html delete mode 100644 module/web/templates/default/captcha.html delete mode 100644 module/web/templates/default/downloads.html delete mode 100644 module/web/templates/default/filemanager.html delete mode 100644 module/web/templates/default/filemanager_ui.js delete mode 100644 module/web/templates/default/folder.html delete mode 100644 module/web/templates/default/home.html delete mode 100644 module/web/templates/default/info.html delete mode 100644 module/web/templates/default/login.html delete mode 100644 module/web/templates/default/logout.html delete mode 100644 module/web/templates/default/logs.html delete mode 100644 module/web/templates/default/pathchooser.html delete mode 100644 module/web/templates/default/queue.html delete mode 100644 module/web/templates/default/settings.html delete mode 100644 module/web/templates/default/settings_item.html delete mode 100644 module/web/templates/default/setup.html delete mode 100644 module/web/templates/default/window.html (limited to 'module/web') diff --git a/module/web/api_app.py b/module/web/api_app.py index 7a9eb8558..df62db18f 100644 --- a/module/web/api_app.py +++ b/module/web/api_app.py @@ -7,11 +7,11 @@ from traceback import format_exc, print_exc from bottle import route, request, response, HTTPError -from utils import toDict, set_session +from utils import set_session from webinterface import PYLOAD from module.common.json_layer import json -from module.utils import remove_chars +from module.utils import remove_chars, to_dict from module.lib.SafeEval import const_eval as literal_eval from module.Api import BaseObject @@ -20,7 +20,7 @@ class TBaseEncoder(json.JSONEncoder): def default(self, o): if isinstance(o, BaseObject): - return toDict(o) + return to_dict(o) return json.JSONEncoder.default(self, o) diff --git a/module/web/json_app.py b/module/web/json_app.py deleted file mode 100644 index ed4f6bcfb..000000000 --- a/module/web/json_app.py +++ /dev/null @@ -1,285 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -from os.path import join -from traceback import print_exc -from shutil import copyfileobj - -from bottle import route, request, HTTPError - -from webinterface import PYLOAD - -from utils import login_required, render_to_response, toDict - -from module.Api import Output -from module.utils import decode, format_size - -def get_sort_key(item): - return item["order"] - - -@route("/json/status") -@route("/json/status", method="POST") -@login_required('LIST') -def status(): - try: - status = toDict(PYLOAD.statusServer()) - status['captcha'] = PYLOAD.isInteractionWaiting(Output.Captcha) - return status - except: - return HTTPError() - - -@route("/json/links") -@route("/json/links", method="POST") -@login_required('LIST') -def links(): - try: - links = [toDict(x) for x in PYLOAD.getProgressInfo()] - ids = [] - for link in links: - ids.append(link['fid']) - - if link['status'] == 12: - link['info'] = "%s @ %s/s" % (link['format_eta'], format_size(link['speed'])) - elif link['status'] == 5: - link['percent'] = 0 - link['size'] = 0 - link['bleft'] = 0 - link['info'] = _("waiting %s") % link['format_wait'] - else: - link['info'] = "" - - data = {'links': links, 'ids': ids} - return data - except Exception, e: - print_exc() - return HTTPError() - - -@route("/json/packages") -@login_required('LIST') -def packages(): - print "/json/packages" - try: - data = PYLOAD.getQueue() - - for package in data: - package['links'] = [] - for file in PYLOAD.get_package_files(package['id']): - package['links'].append(PYLOAD.get_file_info(file)) - - return data - - except: - return HTTPError() - - -@route("/json/package/") -@login_required('LIST') -def package(id): - try: - data = toDict(PYLOAD.getPackageData(id)) - data["links"] = [toDict(x) for x in data["links"]] - - for pyfile in data["links"]: - if pyfile["status"] == 0: - pyfile["icon"] = "status_finished.png" - elif pyfile["status"] in (2, 3): - pyfile["icon"] = "status_queue.png" - elif pyfile["status"] in (9, 1): - pyfile["icon"] = "status_offline.png" - elif pyfile["status"] == 5: - pyfile["icon"] = "status_waiting.png" - elif pyfile["status"] == 8: - pyfile["icon"] = "status_failed.png" - elif pyfile["status"] == 4: - pyfile["icon"] = "arrow_right.png" - elif pyfile["status"] in (11, 13): - pyfile["icon"] = "status_proc.png" - else: - pyfile["icon"] = "status_downloading.png" - - tmp = data["links"] - tmp.sort(key=get_sort_key) - data["links"] = tmp - return data - - except: - print_exc() - return HTTPError() - - -@route("/json/package_order/:ids") -@login_required('ADD') -def package_order(ids): - try: - pid, pos = ids.split("|") - PYLOAD.orderPackage(int(pid), int(pos)) - return {"response": "success"} - except: - return HTTPError() - - -@route("/json/abort_link/") -@login_required('DELETE') -def abort_link(id): - try: - PYLOAD.stopDownloads([id]) - return {"response": "success"} - except: - return HTTPError() - - -@route("/json/link_order/:ids") -@login_required('ADD') -def link_order(ids): - try: - pid, pos = ids.split("|") - PYLOAD.orderFile(int(pid), int(pos)) - return {"response": "success"} - except: - return HTTPError() - - -@route("/json/add_package") -@route("/json/add_package", method="POST") -@login_required('ADD') -def add_package(): - name = request.forms.get("add_name", "New Package").strip() - queue = int(request.forms['add_dest']) - links = decode(request.forms['add_links']) - links = links.split("\n") - pw = request.forms.get("add_password", "").strip("\n\r") - - try: - f = request.files['add_file'] - - if not name or name == "New Package": - name = f.name - - fpath = join(PYLOAD.getConfigValue("general", "download_folder"), "tmp_" + f.filename) - destination = open(fpath, 'wb') - copyfileobj(f.file, destination) - destination.close() - links.insert(0, fpath) - except: - pass - - name = name.decode("utf8", "ignore") - - links = map(lambda x: x.strip(), links) - links = filter(lambda x: x != "", links) - - PYLOAD.addPackage(name, links, queue, pw.decode("utf8", "ignore")) - - -@route("/json/move_package//") -@login_required('MODIFY') -def move_package(dest, id): - try: - PYLOAD.movePackage(dest, id) - return {"response": "success"} - except: - return HTTPError() - - -@route("/json/edit_package", method="POST") -@login_required('MODIFY') -def edit_package(): - try: - id = int(request.forms.get("pack_id")) - data = {"name": request.forms.get("pack_name").decode("utf8", "ignore"), - "folder": request.forms.get("pack_folder").decode("utf8", "ignore"), - "password": request.forms.get("pack_pws").decode("utf8", "ignore")} - - PYLOAD.setPackageData(id, data) - return {"response": "success"} - - except: - return HTTPError() - - -@route("/json/set_captcha") -@route("/json/set_captcha", method="POST") -@login_required('ADD') -def set_captcha(): - if request.environ.get('REQUEST_METHOD', "GET") == "POST": - try: - PYLOAD.setCaptchaResult(request.forms["cap_id"], request.forms["cap_result"]) - except: - pass - - task = PYLOAD.getCaptchaTask() - - if task.tid >= 0: - src = "data:image/%s;base64,%s" % (task.type, task.data) - - return {'captcha': True, 'id': task.tid, 'src': src, 'result_type' : task.resultType} - else: - return {'captcha': False} - - -@route("/json/load_config/:section") -@login_required("SETTINGS") -def load_config(section): - data = PYLOAD.configureSection(section) - return render_to_response("settings_item.html", {"section": data}) - - -@route("/json/save_config", method="POST") -@login_required("SETTINGS") -def save_config(): - for key, value in request.POST.iteritems(): - try: - section, option = key.split("|") - except: - continue - - PYLOAD.setConfigValue(section, option, decode(value)) - - -@route("/json/add_account", method="POST") -@login_required("ACCOUNTS") -def add_account(): - login = request.POST["account_login"] - password = request.POST["account_password"] - type = request.POST["account_type"] - - PYLOAD.updateAccount(type, login, password) - - -@route("/json/update_accounts", method="POST") -@login_required("ACCOUNTS") -def update_accounts(): - deleted = [] #dont update deleted accs or they will be created again - - for name, value in request.POST.iteritems(): - value = value.strip() - if not value: continue - - tmp, user = name.split(";") - plugin, action = tmp.split("|") - - if (plugin, user) in deleted: continue - - if action == "password": - PYLOAD.updateAccount(plugin, user, value) - elif action == "time" and "-" in value: - PYLOAD.updateAccount(plugin, user, options={"time": value}) - elif action == "limitdl" and value.isdigit(): - PYLOAD.updateAccount(plugin, user, options={"limitDL": value}) - elif action == "delete": - deleted.append((plugin,user)) - PYLOAD.removeAccount(plugin, user) - -@route("/json/change_password", method="POST") -def change_password(): - - user = request.POST["user_login"] - oldpw = request.POST["login_current_password"] - newpw = request.POST["login_new_password"] - - if not PYLOAD.changePassword(user, oldpw, newpw): - print "Wrong password" - return HTTPError() diff --git a/module/web/media/default/css/MooDialog.css b/module/web/media/default/css/MooDialog.css deleted file mode 100644 index 48c9166ad..000000000 --- a/module/web/media/default/css/MooDialog.css +++ /dev/null @@ -1,92 +0,0 @@ -/* Created by Arian Stolwijk */ - -.MooDialog { -/* position: fixed;*/ - margin: 0 auto 0 -350px; - width:600px; - padding:14px; - left:50%; - top: 100px; - - position: absolute; - left: 50%; - z-index: 50000; - - background: #eef5f8; - color: black; - border-radius: 7px; - -moz-border-radius: 7px; - -webkit-border-radius: 7px; - border-radius: 7px; - -moz-box-shadow: 1px 1px 5px rgba(0,0,0,0.8); - -webkit-box-shadow: 1px 1px 5px rgba(0,0,0,0.8); - box-shadow: 1px 1px 5px rgba(0,0,0,0.8); -} - -.MooDialogTitle { - padding-top: 30px; -} - -.MooDialog .title { - position: absolute; - top: 0; - left: 0; - right: 0; - padding: 3px 20px; - background: #b7c4dc; - border-bottom: 1px solid #a1aec5; - font-weight: bold; - text-shadow: 1px 1px 0 #fff; - color: black; - border-radius: 7px; - -moz-border-radius: 7px; - -webkit-border-radius: 7px; -} - -.MooDialog .close { - background: url(/media/img/dialog-close.png) no-repeat; - width: 16px; - height: 16px; - display: block; - cursor: pointer; - top: -5px; - left: -5px; - position: absolute; -} - -.MooDialog .buttons { - text-align: right; - margin: 0; - padding: 0; - border: 0; - background: none; -} - -.MooDialog .iframe { - width: 100%; - height: 100%; -} - -.MooDialog .textInput { - width: 200px; - float: left; -} - -.MooDialog .MooDialogAlert, -.MooDialog .MooDialogConfirm, -.MooDialog .MooDialogPrompt, -.MooDialog .MooDialogError { - background: url(/media/img/dialog-warning.png) no-repeat; - padding-left: 40px; - min-height: 40px; -} - -.MooDialog .MooDialogConfirm, -.MooDialog .MooDialogPromt { - background: url(/media/img/dialog-question.png) no-repeat; -} - -.MooDialog .MooDialogError { - background: url(/media/img/dialog-error.png) no-repeat; -} - diff --git a/module/web/media/default/css/default.css b/module/web/media/default/css/default.css deleted file mode 100644 index fc0d148c2..000000000 --- a/module/web/media/default/css/default.css +++ /dev/null @@ -1,908 +0,0 @@ -.hidden { - display:none; -} -.leftalign { - text-align:left; -} -.centeralign { - text-align:center; -} -.rightalign { - text-align:right; -} - - -.dokuwiki div.plugin_translation ul li a.wikilink1:link, .dokuwiki div.plugin_translation ul li a.wikilink1:hover, .dokuwiki div.plugin_translation ul li a.wikilink1:active, .dokuwiki div.plugin_translation ul li a.wikilink1:visited { - background-color:#000080; - color:#fff !important; - text-decoration:none; - padding:0 0.2em; - margin:0.1em 0.2em; - border:none !important; -} -.dokuwiki div.plugin_translation ul li a.wikilink2:link, .dokuwiki div.plugin_translation ul li a.wikilink2:hover, .dokuwiki div.plugin_translation ul li a.wikilink2:active, .dokuwiki div.plugin_translation ul li a.wikilink2:visited { - background-color:#808080; - color:#fff !important; - text-decoration:none; - padding:0 0.2em; - margin:0.1em 0.2em; - border:none !important; -} - -.dokuwiki div.plugin_translation ul li a:hover img { - opacity:1.0; - height:15px; -} - -body { - margin:0; - padding:0; - background-color:white; - color:black; - font-size:12px; - font-family:Verdana, Helvetica, "Lucida Grande", Lucida, Arial, sans-serif; - font-family:sans-serif; - font-size:99, 96%; - font-size-adjust:none; - font-style:normal; - font-variant:normal; - font-weight:normal; - line-height:normal; -} -hr { - border-width:0; - border-bottom:1px #aaa dotted; -} -img { - border:none; -} -form { - margin:0px; - padding:0px; - border:none; - display:inline; - background:transparent; -} -ul li { - margin:5px; -} -textarea { - font-family:monospace; -} -table { - margin:0.5em 0; - border-collapse:collapse; -} -td { - padding:0.25em; - border:1pt solid #ADB9CC; -} -a { - color:#3465a4; - text-decoration:none; -} -a:hover { - text-decoration:underline; -} - -option { - border:0 none #fff; -} -strong.highlight { - background-color:#fc9; - padding:1pt; -} -#pagebottom { - clear:both; -} -hr { - height:1px; - color:#c0c0c0; - background-color:#c0c0c0; - border:none; - margin:.2em 0 .2em 0; -} - -.invisible { - margin:0px; - border:0px; - padding:0px; - height:0px; - visibility:hidden; -} -.left { - float:left !important; -} -.right { - float:right !important; -} -.center { - text-align:center; -} -div#body-wrapper { - padding:40px 40px 10px 40px; - font-size:127%; -} -div#content { - margin-top:-20px; - padding:0; - font-size:14px; - color:black; - line-height:1.5em; -} -h1, h2, h3, h4, h5, h6 { - background:transparent none repeat scroll 0 0; - border-bottom:1px solid #aaa; - color:black; - font-weight:normal; - margin:0; - padding:0; - padding-bottom:0.17em; - padding-top:0.5em; -} -h1 { - font-size:188%; - line-height:1.2em; - margin-bottom:0.1em; - padding-bottom:0; -} -h2 { - font-size:150%; -} -h3, h4, h5, h6 { - border-bottom:none; - font-weight:bold; -} -h3 { - font-size:132%; -} -h4 { - font-size:116%; -} -h5 { - font-size:100%; -} -h6 { - font-size:80%; -} -ul#page-actions, ul#page-actions-more { - float:right; - margin:10px 10px 0 10px; - padding:6px; - color:black; - background-color:#ececec; - list-style-type:none; - white-space: nowrap; - border-radius:5px; - -moz-border-radius:5px; -} -ul#user-actions { - padding:5px; - margin:0; - display:inline; - color:black; - background-color:#ececec; - list-style-type:none; - -moz-border-radius:3px; - border-radius:3px; -} -ul#page-actions li, ul#user-actions li, ul#page-actions-more li { - display:inline; -} -ul#page-actions a, ul#user-actions a, ul#page-actions-more a { - text-decoration:none; - color:black; - display:inline; - margin:0 3px; - padding:2px 0px 2px 18px; -} -ul#page-actions a:hover, ul#page-actions a:focus, ul#user-actions a:hover, ul#user-actions a:focus { - /*text-decoration:underline;*/ -} -/***************************/ -ul#page-actions2 { - float:left; - margin:10px 10px 0 10px; - padding:6px; - color:black; - background-color:#ececec; - list-style-type:none; - border-radius:5px; - -moz-border-radius:5px; -} -ul#user-actions2 { - padding:5px; - margin:0; - display:inline; - color:black; - background-color:#ececec; - list-style-type:none; - border-radius:3px; - -moz-border-radius:3px; -} -ul#page-actions2 li, ul#user-actions2 li { - display:inline; -} -ul#page-actions2 a, ul#user-actions2 a { - text-decoration:none; - color:black; - display:inline; - margin:0 3px; - padding:2px 0px 2px 18px; -} -ul#page-actions2 a:hover, ul#page-actions2 a:focus, ul#user-actions2 a:hover, ul#user-actions2 a:focus, -ul#page-actions-more a:hover, ul#page-actions-more a:focus{ - color: #4e7bb4; -} -/****************************/ -.hidden { - display:none; -} - -a.action.index { - background:transparent url(/media/default/img/wiki-tools-index.png) 0px 1px no-repeat; -} -a.action.recent { - background:transparent url(/media/default/img/wiki-tools-recent.png) 0px 1px no-repeat; -} -a.logout { - background:transparent url(/media/default/img/user-actions-logout.png) 0px 1px no-repeat; -} - -a.info { - background:transparent url(/media/default/img/user-info.png) 0px 1px no-repeat; -} - -a.admin { - background:transparent url(/media/default/img/user-actions-admin.png) 0px 1px no-repeat; -} -a.profile { - background:transparent url(/media/default/img/user-actions-profile.png) 0px 1px no-repeat; -} -a.create, a.edit { - background:transparent url(/media/default/img/page-tools-edit.png) 0px 1px no-repeat; -} -a.source, a.show { - background:transparent url(/media/default/img/page-tools-source.png) 0px 1px no-repeat; -} -a.revisions { - background:transparent url(/media/default/img/page-tools-revisions.png) 0px 1px no-repeat; -} -a.subscribe, a.unsubscribe { - background:transparent url(/media/default/img/page-tools-subscribe.png) 0px 1px no-repeat; -} -a.backlink { - background:transparent url(/media/default/img/page-tools-backlinks.png) 0px 1px no-repeat; -} -a.play { - background:transparent url(/media/default/img/control_play.png) 0px 1px no-repeat; -} -.time { - background:transparent url(/media/default/img/status_None.png) 0px 1px no-repeat; - padding: 2px 0px 2px 18px; - margin: 0px 3px; -} -.reconnect { - background:transparent url(/media/default/img/reconnect.png) 0px 1px no-repeat; - padding: 2px 0px 2px 18px; - margin: 0px 3px; -} -a.play:hover { - background:transparent url(/media/default/img/control_play_blue.png) 0px 1px no-repeat; -} -a.cancel { - background:transparent url(/media/default/img/control_cancel.png) 0px 1px no-repeat; -} -a.cancel:hover { - background:transparent url(/media/default/img/control_cancel_blue.png) 0px 1px no-repeat; -} -a.pause { - background:transparent url(/media/default/img/control_pause.png) 0px 1px no-repeat; -} -a.pause:hover { - background:transparent url(/media/default/img/control_pause_blue.png) 0px 1px no-repeat; - font-weight: bold; -} -a.stop { - background:transparent url(/media/default/img/control_stop.png) 0px 1px no-repeat; -} -a.stop:hover { - background:transparent url(/media/default/img/control_stop_blue.png) 0px 1px no-repeat; -} -a.add { - background:transparent url(/media/default/img/control_add.png) 0px 1px no-repeat; -} -a.add:hover { - background:transparent url(/media/default/img/control_add_blue.png) 0px 1px no-repeat; -} -a.cog { - background:transparent url(/media/default/img/cog.png) 0px 1px no-repeat; -} -#head-panel { - background:#525252 url(/media/default/img/head_bg1.png) bottom left repeat-x; -} -#head-panel h1 { - display:none; - margin:0; - text-decoration:none; - padding-top:0.8em; - padding-left:3.3em; - font-size:2.6em; - color:#eeeeec; -} -#head-panel #head-logo { - float:left; - margin:5px 0 -15px 5px; - padding:0; - overflow:visible; -} -#head-menu { - background:transparent url(/media/default/img/tabs-border-bottom.png) 0 100% repeat-x; - width:100%; - float:left; - margin:0; - padding:0; - padding-top:0.8em; -} -#head-menu ul { - list-style:none; - margin:0 1em 0 2em; -} -#head-menu ul li { - float:left; - margin:0; - margin-left:0.3em; - font-size:14px; - margin-bottom:4px; -} -#head-menu ul li.selected, #head-menu ul li:hover { - margin-bottom:0px; -} -#head-menu ul li a img { - height:22px; - width:22px; - vertical-align:middle; -} -#head-menu ul li a, #head-menu ul li a:link { - float:left; - text-decoration:none; - color:#555; - background:#eaeaea url(/media/default/img/tab-background.png) 0 100% repeat-x; - padding:3px 7px 3px 7px; - border:2px solid #ccc; - border-bottom:0px solid transparent; - padding-bottom:3px; - -moz-border-radius:5px; - border-radius:5px; -} -#head-menu ul li a:hover, #head-menu ul li a:focus { - color:#111; - padding-bottom:7px; - border-bottom:0px none transparent; - outline:none; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - -moz-border-radius-bottomright:0px; - -moz-border-radius-bottomleft:0px; -} -#head-menu ul li a:focus { - margin-bottom:-4px; -} -#head-menu ul li.selected a { - color:#3566A5; - background:#fff; - padding-bottom:7px; - border-bottom:0px none transparent; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - -moz-border-radius-bottomright:0px; - -moz-border-radius-bottomleft:0px; -} -#head-menu ul li.selected a:hover, #head-menu ul li.selected a:focus { - color:#111; -} -div#head-search-and-login { - float:right; - margin:0 1em 0 0; - background-color:#222; - padding:7px 7px 5px 5px; - color:white; - white-space: nowrap; - border-bottom-left-radius: 6px; - border-bottom-right-radius: 6px; - -moz-border-radius-bottomright:6px; - -moz-border-radius-bottomleft:6px; -} -div#head-search-and-login form { - display:inline; - padding:0 3px; -} -div#head-search-and-login form input { - border:2px solid #888; - background:#eee; - font-size:14px; - padding:2px; - border-radius:3px; - -moz-border-radius:3px; -} -div#head-search-and-login form input:focus { - background:#fff; -} -#head-search { - font-size:14px; -} -#head-username, #head-password { - width:80px; - font-size:14px; -} -#pageinfo { - clear:both; - color:#888; - padding:0.6em 0; - margin:0; -} -#foot { - font-style:normal; - color:#888; - text-align:center; -} -#foot a { - color:#aaf; -} -#foot img { - vertical-align:middle; -} -div.toc { - border:1px dotted #888; - background:#f0f0f0; - margin:1em 0 1em 1em; - float:right; - font-size:95%; -} -div.toc .tocheader { - font-weight:bold; - margin:0.5em 1em; -} -div.toc ol { - margin:1em 0.5em 1em 1em; - padding:0; -} -div.toc ol li { - margin:0; - padding:0; - margin-left:1em; -} -div.toc ol ol { - margin:0.5em 0.5em 0.5em 1em; - padding:0; -} -div.recentchanges table { - clear:both; -} -div#editor-help { - font-size:90%; - border:1px dotted #888; - padding:0ex 1ex 1ex 1ex; - background:#f7f6f2; -} -div#preview { - margin-top:1em; -} -label.block { - display:block; - text-align:right; - font-weight:bold; -} -label.simple { - display:block; - text-align:left; - font-weight:normal; -} -label.block input.edit { - width:50%; -} -/*fieldset { - width:300px; - text-align:center; - padding:0.5em; - margin:auto; -} -*/ -div.editor { - margin:0 0 0 0; -} -table { - margin:0.5em 0; - border-collapse:collapse; -} -td { - padding:0.25em; - border:1pt solid #ADB9CC; -} -td p { - margin:0; - padding:0; -} -.u { - text-decoration:underline; -} -.footnotes ul { - padding:0 2em; - margin:0 0 1em; -} -.footnotes li { - list-style:none; -} -.userpref table, .userpref td { - border:none; -} -#message { - clear:both; - padding:5px 10px; - background-color:#eee; - border-bottom:2px solid #ccc; -} -#message p { - margin:5px 0; - padding:0; - font-weight:bold; -} -#message div.buttons { - font-weight:normal; -} -.diff { - width:99%; -} -.diff-title { - background-color:#C0C0C0; -} -.searchresult dd span { - font-weight:bold; -} -.boxtext { - font-family:tahoma, arial, sans-serif; - font-size:11px; - color:#000; - float:none; - padding:3px 0 0 10px; -} -.statusbutton { - width:32px; - height:32px; - float:left; - margin-left:-32px; - margin-right:5px; - opacity:0; - cursor:pointer -} -.dlsize { - float:left; - padding-right: 8px; -} -.dlspeed { - float:left; - padding-right: 8px; -} -.package { - margin-bottom: 10px; -} -.packagename { - font-weight: bold; -} - -.child { - margin-left: 20px; -} -.child_status { - margin-right: 10px; -} -.child_secrow { - font-size: 10px; -} - -.header, .header th { - text-align: left; - font-weight: normal; - background-color:#ececec; - -moz-border-radius:5px; - border-radius:5px; -} -.progress_bar { - background: #0C0; - height: 5px; - -} - -.queue { - border: none -} - -.queue tr td { - border: none -} - -.header, .header th{ - text-align: left; - font-weight: normal; -} - - -.clearer -{ - clear: both; - height: 1px; -} - -.left -{ - float: left; -} - -.right -{ - float: right; -} - - -.setfield -{ - display: table-cell; -} - -ul.tabs li a -{ - padding: 5px 16px 4px 15px; - border: none; - font-weight: bold; - - border-radius: 5px 5px 0 0; - -moz-border-radius: 5px 5px 0 0; - -} - - -#tabs span -{ - display: none; -} - -#tabs span.selected -{ - display: inline; -} - -#tabsback -{ - background-color: #525252; - margin: 2px 0 0; - padding: 6px 4px 1px 4px; - - border-top-right-radius: 30px; - border-top-left-radius: 3px; - -moz-border-radius-topright: 30px; - -moz-border-radius-topleft: 3px; -} -ul.tabs -{ - list-style-type: none; - margin:0; - padding: 0 40px 0 0; -} - -ul.tabs li -{ - display: inline; - margin-left: 8px; -} - - -ul.tabs li a -{ - color: #42454a; - background-color: #eaeaea; - border: 1px none #c9c3ba; - margin: 0; - text-decoration: none; - - outline: 0; - - padding: 5px 16px 4px 15px; - font-weight: bold; - - border-radius: 5px 5px 0 0; - -moz-border-radius: 5px 5px 0 0; - -} - -ul.tabs li a.selected, ul.tabs li a:hover -{ - color: #000; - background-color: white; - - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - -moz-border-radius-bottomright: 0; - -moz-border-radius-bottomleft: 0; -} - -ul.tabs li a:hover -{ - background-color: #f1f4ee; -} - -ul.tabs li a.selected -{ - font-weight: bold; - background-color: #525252; - padding-bottom: 5px; - color: white; -} - - -#tabs-body { - position: relative; - overflow: hidden; -} - - -span.tabContent -{ - border: 2px solid #525252; - margin: 0; - padding: 0; - padding-bottom: 10px; -} - -#tabs-body > span { - display: none; -} - -#tabs-body > span.active { - display: block; -} - -.hide -{ - display: none; -} - -.settable -{ - margin: 20px; - border: none; -} -.settable td -{ - border: none; - margin: 0; - padding: 5px; -} - -.settable th{ - padding-bottom: 8px; -} - -.settable.wide td , .settable.wide th { - padding-left: 15px; - padding-right: 15px; -} - - -/*settings navbar*/ -ul.nav { - margin: -30px 0 0; - padding: 0; - list-style: none; - position: absolute; -} - - -ul.nav li { - position: relative; - float: left; - padding: 5px; -} - -ul.nav > li a { - background: white; - -moz-border-radius: 4px 4px 4px 4px; - border: 1px solid #C9C3BA; - border-bottom: medium none; - color: black; -} - -ul.nav ul { - position: absolute; - top: 26px; - left: 10px; - margin: 0; - padding: 0; - list-style: none; - border: 1px solid #AAA; - background: #f1f1f1; - -webkit-box-shadow: 1px 1px 5px #AAA; - -moz-box-shadow: 1px 1px 5px #AAA; - box-shadow: 1px 1px 5px #AAA; - cursor: pointer; -} - -ul.nav .open { - display: block; -} - -ul.nav .close { - display: none; -} - -ul.nav ul li { - float: none; - padding: 0; -} - -ul.nav ul li a { - width: 130px; - background: #f1f1f1; - padding: 3px; - display: block; - font-weight: normal; -} - -ul.nav ul li a:hover { - background: #CDCDCD; -} - -ul.nav ul ul { - left: 137px; - top: 0; -} - -.purr-wrapper{ - margin:10px; -} - -/*Purr alert styles*/ - -.purr-alert{ - margin-bottom:10px; - padding:10px; - background:#000; - font-size:13px; - font-weight:bold; - color:#FFF; - -moz-border-radius:5px; - -webkit-border-radius:5px; - /*-moz-box-shadow: 0 0 10px rgba(255,255,0,.25);*/ - width:300px; -} -.purr-alert.error{ - color:#F55; - padding-left:30px; - background:url(/media/default/img/error.png) no-repeat #000 7px 10px; - width:280px; -} -.purr-alert.success{ - color:#5F5; - padding-left:30px; - background:url(/media/default/img/success.png) no-repeat #000 7px 10px; - width:280px; -} -.purr-alert.notice{ - color:#99F; - padding-left:30px; - background:url(/media/default/img//notice.png) no-repeat #000 7px 10px; - width:280px; -} - -table.system { - border: none; - margin-left: 10px; -} - -table.system td { - border: none -} - -table.system tr > td:first-child { - font-weight: bold; - padding-right: 10px; -} \ No newline at end of file diff --git a/module/web/media/default/css/log.css b/module/web/media/default/css/log.css deleted file mode 100644 index 73786bfb4..000000000 --- a/module/web/media/default/css/log.css +++ /dev/null @@ -1,72 +0,0 @@ - -html, body, #content -{ - height: 100%; -} -#body-wrapper -{ - height: 70%; -} -.logdiv -{ - height: 90%; - width: 100%; - overflow: auto; - border: 2px solid #CCC; - outline: 1px solid #666; - background-color: #FFE; - margin-right: auto; - margin-left: auto; -} -.logform -{ - display: table; - margin: 0 auto 0 auto; - padding-top: 5px; -} -.logtable -{ - - margin: 0px; -} -.logtable td -{ - border: none; - white-space: nowrap; - - - font-family: monospace; - font-size: 16px; - margin: 0px; - padding: 0px 10px 0px 10px; - line-height: 110%; -} -td.logline -{ - background-color: #EEE; - text-align:right; - padding: 0px 5px 0px 5px; -} -td.loglevel -{ - text-align:right; -} -.logperpage -{ - float: right; - padding-bottom: 8px; -} -.logpaginator -{ - float: left; - padding-top: 5px; -} -.logpaginator a -{ - padding: 0px 8px 0px 8px; -} -.logwarn -{ - text-align: center; - color: red; -} \ No newline at end of file diff --git a/module/web/media/default/css/pathchooser.css b/module/web/media/default/css/pathchooser.css deleted file mode 100644 index 894cc335e..000000000 --- a/module/web/media/default/css/pathchooser.css +++ /dev/null @@ -1,68 +0,0 @@ -table { - width: 90%; - border: 1px dotted #888888; - font-family: sans-serif; - font-size: 10pt; -} - -th { - background-color: #525252; - color: #E0E0E0; -} - -table, tr, td { - background-color: #F0F0F0; -} - -a, a:visited { - text-decoration: none; - font-weight: bold; -} - -#paths { - width: 90%; - text-align: left; -} - -.file_directory { - color: #c0c0c0; -} -.path_directory { - color: #3c3c3c; -} -.file_file { - color: #3c3c3c; -} -.path_file { - color: #c0c0c0; -} - -.parentdir { - color: #000000; - font-size: 10pt; -} -.name { - text-align: left; -} -.size { - text-align: right; -} -.type { - text-align: left; -} -.mtime { - text-align: center; -} - -.path_abs_rel { - color: #3c3c3c; - text-decoration: none; - font-weight: bold; - font-family: sans-serif; - font-size: 10pt; -} - -.path_abs_rel a { - color: #3c3c3c; - font-style: italic; -} diff --git a/module/web/media/default/css/window.css b/module/web/media/default/css/window.css deleted file mode 100644 index 8b13f55ec..000000000 --- a/module/web/media/default/css/window.css +++ /dev/null @@ -1,73 +0,0 @@ -/* ----------- stylized ----------- */ -.window_box h1{ - font-size:14px; - font-weight:bold; - margin-bottom:8px; -} -.window_box p{ - font-size:11px; - color:#666666; - margin-bottom:20px; - border-bottom:solid 1px #b7ddf2; - padding-bottom:10px; -} -.window_box label{ - display:block; - font-weight:bold; - text-align:right; - width:240px; - float:left; -} -.window_box .small{ - color:#666666; - display:block; - font-size:11px; - font-weight:normal; - text-align:right; - width:240px; -} -.window_box select, .window_box input{ - float:left; - font-size:12px; - padding:4px 2px; - border:solid 1px #aacfe4; - width:300px; - margin:2px 0 20px 10px; -} -.window_box .cont{ - float:left; - font-size:12px; - padding: 0px 10px 15px 0px; - width:300px; - margin:0px 0px 0px 10px; -} -.window_box .cont input{ - float: none; - margin: 0px 15px 0px 1px; -} -.window_box textarea{ - float:left; - font-size:12px; - padding:4px 2px; - border:solid 1px #aacfe4; - width:300px; - margin:2px 0 20px 10px; -} -.window_box button, .styled_button{ - clear:both; - margin-left:150px; - width:125px; - height:31px; - background:#666666 url(../img/button.png) no-repeat; - text-align:center; - line-height:31px; - color:#FFFFFF; - font-size:11px; - font-weight:bold; - border: 0px; -} - -.styled_button { - margin-left: 15px; - cursor: pointer; -} diff --git a/module/web/media/default/img/add_folder.png b/module/web/media/default/img/add_folder.png deleted file mode 100644 index 8acbc411b..000000000 Binary files a/module/web/media/default/img/add_folder.png and /dev/null differ diff --git a/module/web/media/default/img/ajax-loader.gif b/module/web/media/default/img/ajax-loader.gif deleted file mode 100644 index 2fd8e0737..000000000 Binary files a/module/web/media/default/img/ajax-loader.gif and /dev/null differ diff --git a/module/web/media/default/img/arrow_refresh.png b/module/web/media/default/img/arrow_refresh.png deleted file mode 100644 index 0de26566d..000000000 Binary files a/module/web/media/default/img/arrow_refresh.png and /dev/null differ diff --git a/module/web/media/default/img/arrow_right.png b/module/web/media/default/img/arrow_right.png deleted file mode 100644 index b1a181923..000000000 Binary files a/module/web/media/default/img/arrow_right.png and /dev/null differ diff --git a/module/web/media/default/img/big_button.gif b/module/web/media/default/img/big_button.gif deleted file mode 100644 index 7680490ea..000000000 Binary files a/module/web/media/default/img/big_button.gif and /dev/null differ diff --git a/module/web/media/default/img/big_button_over.gif b/module/web/media/default/img/big_button_over.gif deleted file mode 100644 index 2e3ee10d2..000000000 Binary files a/module/web/media/default/img/big_button_over.gif and /dev/null differ diff --git a/module/web/media/default/img/body.png b/module/web/media/default/img/body.png deleted file mode 100644 index 7ff1043e0..000000000 Binary files a/module/web/media/default/img/body.png and /dev/null differ diff --git a/module/web/media/default/img/button.png b/module/web/media/default/img/button.png deleted file mode 100644 index 890160614..000000000 Binary files a/module/web/media/default/img/button.png and /dev/null differ diff --git a/module/web/media/default/img/closebtn.gif b/module/web/media/default/img/closebtn.gif deleted file mode 100644 index 3e27e6030..000000000 Binary files a/module/web/media/default/img/closebtn.gif and /dev/null differ diff --git a/module/web/media/default/img/cog.png b/module/web/media/default/img/cog.png deleted file mode 100644 index 67de2c6cc..000000000 Binary files a/module/web/media/default/img/cog.png and /dev/null differ diff --git a/module/web/media/default/img/control_add.png b/module/web/media/default/img/control_add.png deleted file mode 100644 index d39886893..000000000 Binary files a/module/web/media/default/img/control_add.png and /dev/null differ diff --git a/module/web/media/default/img/control_add_blue.png b/module/web/media/default/img/control_add_blue.png deleted file mode 100644 index d11b7f41d..000000000 Binary files a/module/web/media/default/img/control_add_blue.png and /dev/null differ diff --git a/module/web/media/default/img/control_cancel.png b/module/web/media/default/img/control_cancel.png deleted file mode 100644 index 7b9bc3fba..000000000 Binary files a/module/web/media/default/img/control_cancel.png and /dev/null differ diff --git a/module/web/media/default/img/control_cancel_blue.png b/module/web/media/default/img/control_cancel_blue.png deleted file mode 100644 index 0c5c96ce3..000000000 Binary files a/module/web/media/default/img/control_cancel_blue.png and /dev/null differ diff --git a/module/web/media/default/img/control_pause.png b/module/web/media/default/img/control_pause.png deleted file mode 100644 index 2d9ce9c4e..000000000 Binary files a/module/web/media/default/img/control_pause.png and /dev/null differ diff --git a/module/web/media/default/img/control_pause_blue.png b/module/web/media/default/img/control_pause_blue.png deleted file mode 100644 index ec61099b0..000000000 Binary files a/module/web/media/default/img/control_pause_blue.png and /dev/null differ diff --git a/module/web/media/default/img/control_play.png b/module/web/media/default/img/control_play.png deleted file mode 100644 index 0846555d0..000000000 Binary files a/module/web/media/default/img/control_play.png and /dev/null differ diff --git a/module/web/media/default/img/control_play_blue.png b/module/web/media/default/img/control_play_blue.png deleted file mode 100644 index f8c8ec683..000000000 Binary files a/module/web/media/default/img/control_play_blue.png and /dev/null differ diff --git a/module/web/media/default/img/control_stop.png b/module/web/media/default/img/control_stop.png deleted file mode 100644 index 893bb60e5..000000000 Binary files a/module/web/media/default/img/control_stop.png and /dev/null differ diff --git a/module/web/media/default/img/control_stop_blue.png b/module/web/media/default/img/control_stop_blue.png deleted file mode 100644 index e6f75d232..000000000 Binary files a/module/web/media/default/img/control_stop_blue.png and /dev/null differ diff --git a/module/web/media/default/img/delete.png b/module/web/media/default/img/delete.png deleted file mode 100644 index 08f249365..000000000 Binary files a/module/web/media/default/img/delete.png and /dev/null differ diff --git a/module/web/media/default/img/drag_corner.gif b/module/web/media/default/img/drag_corner.gif deleted file mode 100644 index befb1adf1..000000000 Binary files a/module/web/media/default/img/drag_corner.gif and /dev/null differ diff --git a/module/web/media/default/img/error.png b/module/web/media/default/img/error.png deleted file mode 100644 index c37bd062e..000000000 Binary files a/module/web/media/default/img/error.png and /dev/null differ diff --git a/module/web/media/default/img/folder.png b/module/web/media/default/img/folder.png deleted file mode 100644 index 784e8fa48..000000000 Binary files a/module/web/media/default/img/folder.png and /dev/null differ diff --git a/module/web/media/default/img/full.png b/module/web/media/default/img/full.png deleted file mode 100644 index fea52af76..000000000 Binary files a/module/web/media/default/img/full.png and /dev/null differ diff --git a/module/web/media/default/img/head-login.png b/module/web/media/default/img/head-login.png deleted file mode 100644 index b59b7cbbf..000000000 Binary files a/module/web/media/default/img/head-login.png and /dev/null differ diff --git a/module/web/media/default/img/head-menu-collector.png b/module/web/media/default/img/head-menu-collector.png deleted file mode 100644 index 861be40bc..000000000 Binary files a/module/web/media/default/img/head-menu-collector.png and /dev/null differ diff --git a/module/web/media/default/img/head-menu-config.png b/module/web/media/default/img/head-menu-config.png deleted file mode 100644 index bbf43d4f3..000000000 Binary files a/module/web/media/default/img/head-menu-config.png and /dev/null differ diff --git a/module/web/media/default/img/head-menu-development.png b/module/web/media/default/img/head-menu-development.png deleted file mode 100644 index fad150fe1..000000000 Binary files a/module/web/media/default/img/head-menu-development.png and /dev/null differ diff --git a/module/web/media/default/img/head-menu-download.png b/module/web/media/default/img/head-menu-download.png deleted file mode 100644 index 98c5da9db..000000000 Binary files a/module/web/media/default/img/head-menu-download.png and /dev/null differ diff --git a/module/web/media/default/img/head-menu-home.png b/module/web/media/default/img/head-menu-home.png deleted file mode 100644 index 9d62109aa..000000000 Binary files a/module/web/media/default/img/head-menu-home.png and /dev/null differ diff --git a/module/web/media/default/img/head-menu-index.png b/module/web/media/default/img/head-menu-index.png deleted file mode 100644 index 44d631064..000000000 Binary files a/module/web/media/default/img/head-menu-index.png and /dev/null differ diff --git a/module/web/media/default/img/head-menu-news.png b/module/web/media/default/img/head-menu-news.png deleted file mode 100644 index 43950ebc9..000000000 Binary files a/module/web/media/default/img/head-menu-news.png and /dev/null differ diff --git a/module/web/media/default/img/head-menu-queue.png b/module/web/media/default/img/head-menu-queue.png deleted file mode 100644 index be98793ce..000000000 Binary files a/module/web/media/default/img/head-menu-queue.png and /dev/null differ diff --git a/module/web/media/default/img/head-menu-recent.png b/module/web/media/default/img/head-menu-recent.png deleted file mode 100644 index fc9b0497f..000000000 Binary files a/module/web/media/default/img/head-menu-recent.png and /dev/null differ diff --git a/module/web/media/default/img/head-menu-wiki.png b/module/web/media/default/img/head-menu-wiki.png deleted file mode 100644 index 07cf0102d..000000000 Binary files a/module/web/media/default/img/head-menu-wiki.png and /dev/null differ diff --git a/module/web/media/default/img/head-search-noshadow.png b/module/web/media/default/img/head-search-noshadow.png deleted file mode 100644 index aafdae015..000000000 Binary files a/module/web/media/default/img/head-search-noshadow.png and /dev/null differ diff --git a/module/web/media/default/img/head_bg1.png b/module/web/media/default/img/head_bg1.png deleted file mode 100644 index f2848c3cc..000000000 Binary files a/module/web/media/default/img/head_bg1.png and /dev/null differ diff --git a/module/web/media/default/img/images.png b/module/web/media/default/img/images.png deleted file mode 100644 index 184860d1e..000000000 Binary files a/module/web/media/default/img/images.png and /dev/null differ diff --git a/module/web/media/default/img/notice.png b/module/web/media/default/img/notice.png deleted file mode 100644 index 12cd1aef9..000000000 Binary files a/module/web/media/default/img/notice.png and /dev/null differ diff --git a/module/web/media/default/img/package_go.png b/module/web/media/default/img/package_go.png deleted file mode 100644 index aace63ad6..000000000 Binary files a/module/web/media/default/img/package_go.png and /dev/null differ diff --git a/module/web/media/default/img/page-tools-backlinks.png b/module/web/media/default/img/page-tools-backlinks.png deleted file mode 100644 index 3eb6a9ce3..000000000 Binary files a/module/web/media/default/img/page-tools-backlinks.png and /dev/null differ diff --git a/module/web/media/default/img/page-tools-edit.png b/module/web/media/default/img/page-tools-edit.png deleted file mode 100644 index 188e1c12b..000000000 Binary files a/module/web/media/default/img/page-tools-edit.png and /dev/null differ diff --git a/module/web/media/default/img/page-tools-revisions.png b/module/web/media/default/img/page-tools-revisions.png deleted file mode 100644 index 5c3b8587f..000000000 Binary files a/module/web/media/default/img/page-tools-revisions.png and /dev/null differ diff --git a/module/web/media/default/img/parseUri.png b/module/web/media/default/img/parseUri.png deleted file mode 100644 index 937bded9d..000000000 Binary files a/module/web/media/default/img/parseUri.png and /dev/null differ diff --git a/module/web/media/default/img/pencil.png b/module/web/media/default/img/pencil.png deleted file mode 100644 index 0bfecd50e..000000000 Binary files a/module/web/media/default/img/pencil.png and /dev/null differ diff --git a/module/web/media/default/img/pyload-logo-edited3.5-new-font-small.png b/module/web/media/default/img/pyload-logo-edited3.5-new-font-small.png deleted file mode 100644 index 2443cd8b1..000000000 Binary files a/module/web/media/default/img/pyload-logo-edited3.5-new-font-small.png and /dev/null differ diff --git a/module/web/media/default/img/reconnect.png b/module/web/media/default/img/reconnect.png deleted file mode 100644 index 49b269145..000000000 Binary files a/module/web/media/default/img/reconnect.png and /dev/null differ diff --git a/module/web/media/default/img/status_None.png b/module/web/media/default/img/status_None.png deleted file mode 100644 index 293b13f77..000000000 Binary files a/module/web/media/default/img/status_None.png and /dev/null differ diff --git a/module/web/media/default/img/status_downloading.png b/module/web/media/default/img/status_downloading.png deleted file mode 100644 index fb4ebc850..000000000 Binary files a/module/web/media/default/img/status_downloading.png and /dev/null differ diff --git a/module/web/media/default/img/status_failed.png b/module/web/media/default/img/status_failed.png deleted file mode 100644 index c37bd062e..000000000 Binary files a/module/web/media/default/img/status_failed.png and /dev/null differ diff --git a/module/web/media/default/img/status_finished.png b/module/web/media/default/img/status_finished.png deleted file mode 100644 index 89c8129a4..000000000 Binary files a/module/web/media/default/img/status_finished.png and /dev/null differ diff --git a/module/web/media/default/img/status_offline.png b/module/web/media/default/img/status_offline.png deleted file mode 100644 index 0cfd58596..000000000 Binary files a/module/web/media/default/img/status_offline.png and /dev/null differ diff --git a/module/web/media/default/img/status_proc.png b/module/web/media/default/img/status_proc.png deleted file mode 100644 index 67de2c6cc..000000000 Binary files a/module/web/media/default/img/status_proc.png and /dev/null differ diff --git a/module/web/media/default/img/status_queue.png b/module/web/media/default/img/status_queue.png deleted file mode 100644 index 293b13f77..000000000 Binary files a/module/web/media/default/img/status_queue.png and /dev/null differ diff --git a/module/web/media/default/img/status_waiting.png b/module/web/media/default/img/status_waiting.png deleted file mode 100644 index 2842cc338..000000000 Binary files a/module/web/media/default/img/status_waiting.png and /dev/null differ diff --git a/module/web/media/default/img/success.png b/module/web/media/default/img/success.png deleted file mode 100644 index 89c8129a4..000000000 Binary files a/module/web/media/default/img/success.png and /dev/null differ diff --git a/module/web/media/default/img/tab-background.png b/module/web/media/default/img/tab-background.png deleted file mode 100644 index 29a5d1991..000000000 Binary files a/module/web/media/default/img/tab-background.png and /dev/null differ diff --git a/module/web/media/default/img/tabs-border-bottom.png b/module/web/media/default/img/tabs-border-bottom.png deleted file mode 100644 index 02440f428..000000000 Binary files a/module/web/media/default/img/tabs-border-bottom.png and /dev/null differ diff --git a/module/web/media/default/img/user-actions-logout.png b/module/web/media/default/img/user-actions-logout.png deleted file mode 100644 index 0010931e2..000000000 Binary files a/module/web/media/default/img/user-actions-logout.png and /dev/null differ diff --git a/module/web/media/default/img/user-actions-profile.png b/module/web/media/default/img/user-actions-profile.png deleted file mode 100644 index 46573fff6..000000000 Binary files a/module/web/media/default/img/user-actions-profile.png and /dev/null differ diff --git a/module/web/media/default/img/user-info.png b/module/web/media/default/img/user-info.png deleted file mode 100644 index 6e643100f..000000000 Binary files a/module/web/media/default/img/user-info.png and /dev/null differ diff --git a/module/web/media/img/dialog-close.png b/module/web/media/img/dialog-close.png deleted file mode 100644 index 81ebb88b2..000000000 Binary files a/module/web/media/img/dialog-close.png and /dev/null differ diff --git a/module/web/media/img/dialog-question.png b/module/web/media/img/dialog-question.png deleted file mode 100644 index b0af3db5b..000000000 Binary files a/module/web/media/img/dialog-question.png and /dev/null differ diff --git a/module/web/media/img/favicon.ico b/module/web/media/img/favicon.ico deleted file mode 100644 index 58b1f4b89..000000000 Binary files a/module/web/media/img/favicon.ico and /dev/null differ diff --git a/module/web/media/js/MooDialog_static.js b/module/web/media/js/MooDialog_static.js deleted file mode 100644 index d497d3d57..000000000 --- a/module/web/media/js/MooDialog_static.js +++ /dev/null @@ -1,401 +0,0 @@ -/* ---- - -name: Overlay - -authors: - - David Walsh (http://davidwalsh.name) - -license: - - MIT-style license - -requires: [Core/Class, Core/Element.Style, Core/Element.Event, Core/Element.Dimensions, Core/Fx.Tween] - -provides: - - Overlay -... -*/ - -var Overlay = new Class({ - - Implements: [Options, Events], - - options: { - id: 'overlay', - color: '#000', - duration: 500, - opacity: 0.5, - zIndex: 5000/*, - onClick: $empty, - onClose: $empty, - onHide: $empty, - onOpen: $empty, - onShow: $empty - */ - }, - - initialize: function(container, options){ - this.setOptions(options); - this.container = document.id(container); - - this.bound = { - 'window': { - resize: this.resize.bind(this), - scroll: this.scroll.bind(this) - }, - overlayClick: this.overlayClick.bind(this), - tweenStart: this.tweenStart.bind(this), - tweenComplete: this.tweenComplete.bind(this) - }; - - this.build().attach(); - }, - - build: function(){ - this.overlay = new Element('div', { - id: this.options.id, - opacity: 0, - styles: { - position: (Browser.ie6) ? 'absolute' : 'fixed', - background: this.options.color, - left: 0, - top: 0, - 'z-index': this.options.zIndex - } - }).inject(this.container); - this.tween = new Fx.Tween(this.overlay, { - duration: this.options.duration, - link: 'cancel', - property: 'opacity' - }); - this.tween.set('opacity', 0) - return this; - }.protect(), - - attach: function(){ - window.addEvents(this.bound.window); - this.overlay.addEvent('click', this.bound.overlayClick); - this.tween.addEvents({ - onStart: this.bound.tweenStart, - onComplete: this.bound.tweenComplete - }); - return this; - }, - - detach: function(){ - var args = Array.prototype.slice.call(arguments); - args.each(function(item){ - if(item == 'window') window.removeEvents(this.bound.window); - if(item == 'overlay') this.overlay.removeEvent('click', this.bound.overlayClick); - }, this); - return this; - }, - - overlayClick: function(){ - this.fireEvent('click'); - return this; - }, - - tweenStart: function(){ - this.overlay.setStyles({ - width: '100%', - height: this.container.getScrollSize().y - }); - return this; - }, - - tweenComplete: function(){ - this.fireEvent(this.overlay.get('opacity') == this.options.opacity ? 'show' : 'hide'); - return this; - }, - - open: function(){ - this.fireEvent('open'); - this.tween.set('display', 'block'); - this.tween.start(this.options.opacity); - return this; - }, - - close: function(){ - this.fireEvent('close'); - this.tween.start(0).chain(function(){ - this.tween.set('display', 'none'); - }.bind(this)); - return this; - }, - - resize: function(){ - this.fireEvent('resize'); - this.overlay.setStyle('height', this.container.getScrollSize().y); - return this; - }, - - scroll: function(){ - this.fireEvent('scroll'); - if (Browser.ie6) this.overlay.setStyle('left', window.getScroll().x); - return this; - } - -}); -/* ---- -name: MooDialog -description: The base class of MooDialog -authors: Arian Stolwijk -license: MIT-style license -requires: [Core/Class, Core/Element, Core/Element.Styles, Core/Element.Event] -provides: [MooDialog, Element.MooDialog] -... -*/ - - -var MooDialog = new Class({ - - Implements: [Options, Events], - - options: { - 'class': 'MooDialog', - title: null, - scroll: true, // IE - forceScroll: false, - useEscKey: true, - destroyOnHide: true, - autoOpen: true, - closeButton: true, - onInitialize: function(){ - this.wrapper.setStyle('display', 'none'); - }, - onBeforeOpen: function(){ - this.wrapper.setStyle('display', 'block'); - this.fireEvent('show'); - }, - onBeforeClose: function(){ - this.wrapper.setStyle('display', 'none'); - this.fireEvent('hide'); - }/*, - onOpen: function(){}, - onClose: function(){}, - onShow: function(){}, - onHide: function(){}*/ - }, - - initialize: function(options){ - this.setOptions(options); - this.options.inject = this.options.inject || document.body; - options = this.options; - - var wrapper = this.wrapper = new Element('div.' + options['class'].replace(' ', '.')).inject(options.inject); - this.content = new Element('div.content').inject(wrapper); - wrapper.setStyle('display', 'none'); - - if (options.title){ - this.title = new Element('div.title').set('text', options.title).inject(wrapper); - wrapper.addClass('MooDialogTitle'); - } - - if (options.closeButton){ - this.closeButton = new Element('a.close', { - events: {click: this.close.bind(this)} - }).inject(wrapper); - } - - - /**/// IE 6 scroll - if ((options.scroll && Browser.ie6) || options.forceScroll){ - wrapper.setStyle('position', 'absolute'); - var position = wrapper.getPosition(options.inject); - window.addEvent('scroll', function(){ - var scroll = document.getScroll(); - wrapper.setPosition({ - x: position.x + scroll.x, - y: position.y + scroll.y - }); - }); - } - /**/ - - if (options.useEscKey){ - // Add event for the esc key - document.addEvent('keydown', function(e){ - if (e.key == 'esc') this.close(); - }.bind(this)); - } - - this.addEvent('hide', function(){ - if (options.destroyOnHide) this.destroy(); - }.bind(this)); - - this.fireEvent('initialize', wrapper); - }, - - setContent: function(){ - var content = Array.from(arguments); - if (content.length == 1) content = content[0]; - - this.content.empty(); - - var type = typeOf(content); - if (['string', 'number'].contains(type)) this.content.set('text', content); - else this.content.adopt(content); - - return this; - }, - - open: function(){ - this.fireEvent('beforeOpen', this.wrapper).fireEvent('open'); - this.opened = true; - return this; - }, - - close: function(){ - this.fireEvent('beforeClose', this.wrapper).fireEvent('close'); - this.opened = false; - return this; - }, - - destroy: function(){ - this.wrapper.destroy(); - }, - - toElement: function(){ - return this.wrapper; - } - -}); - - -Element.implement({ - - MooDialog: function(options){ - this.store('MooDialog', - new MooDialog(options).setContent(this).open() - ); - return this; - } - -}); -/* ---- -name: MooDialog.Fx -description: Overwrite the default events so the Dialogs are using Fx on open and close -authors: Arian Stolwijk -license: MIT-style license -requires: [Cores/Fx.Tween, Overlay] -provides: MooDialog.Fx -... -*/ - - -MooDialog.implement('options', { - - duration: 400, - closeOnOverlayClick: true, - - onInitialize: function(wrapper){ - this.fx = new Fx.Tween(wrapper, { - property: 'opacity', - duration: this.options.duration - }).set(0); - this.overlay = new Overlay(this.options.inject, { - duration: this.options.duration - }); - if (this.options.closeOnOverlayClick) this.overlay.addEvent('click', this.close.bind(this)); - }, - - onBeforeOpen: function(wrapper){ - this.overlay.open(); - wrapper.setStyle('display', 'block'); - this.fx.start(1).chain(function(){ - this.fireEvent('show'); - }.bind(this)); - }, - - onBeforeClose: function(wrapper){ - this.overlay.close(); - this.fx.start(0).chain(function(){ - this.fireEvent('hide'); - wrapper.setStyle('display', 'none'); - }.bind(this)); - } - -}); -/* ---- -name: MooDialog.Confirm -description: Creates an Confirm Dialog -authors: Arian Stolwijk -license: MIT-style license -requires: MooDialog -provides: [MooDialog.Confirm, Element.confirmLinkClick, Element.confirmFormSubmit] -... -*/ - - -MooDialog.Confirm = new Class({ - - Extends: MooDialog, - - options: { - okText: 'Ok', - cancelText: 'Cancel', - focus: true, - textPClass: 'MooDialogConfirm' - }, - - initialize: function(msg, fn, fn1, options){ - this.parent(options); - var emptyFn = function(){}, - self = this; - - var buttons = [ - {fn: fn || emptyFn, txt: this.options.okText}, - {fn: fn1 || emptyFn, txt: this.options.cancelText} - ].map(function(button){ - return new Element('input[type=button]', { - events: { - click: function(){ - button.fn(); - self.close(); - } - }, - value: button.txt - }); - }); - - this.setContent( - new Element('p.' + this.options.textPClass, {text: msg}), - new Element('div.buttons').adopt(buttons) - ); - if (this.options.autoOpen) this.open(); - - if(this.options.focus) this.addEvent('show', function(){ - buttons[1].focus(); - }); - - } -}); - - -Element.implement({ - - confirmLinkClick: function(msg, options){ - this.addEvent('click', function(e){ - e.stop(); - new MooDialog.Confirm(msg, function(){ - location.href = this.get('href'); - }.bind(this), null, options) - }); - return this; - }, - - confirmFormSubmit: function(msg, options){ - this.addEvent('submit', function(e){ - e.stop(); - new MooDialog.Confirm(msg, function(){ - this.submit(); - }.bind(this), null, options) - }.bind(this)); - return this; - } - -}); diff --git a/module/web/media/js/MooDropMenu_static.js b/module/web/media/js/MooDropMenu_static.js deleted file mode 100644 index b9cd8cc10..000000000 --- a/module/web/media/js/MooDropMenu_static.js +++ /dev/null @@ -1,89 +0,0 @@ -/* ---- -description: This provides a simple Drop Down menu with infinit levels - -license: MIT-style - -authors: -- Arian Stolwijk - -requires: - - Core/Class.Extras - - Core/Element.Event - - Core/Selectors - -provides: [MooDropMenu, Element.MooDropMenu] - -... -*/ - -var MooDropMenu = new Class({ - - Implements: [Options, Events], - - options: { - onOpen: function(el){ - el.removeClass('close').addClass('open'); - }, - onClose: function(el){ - el.removeClass('open').addClass('close'); - }, - onInitialize: function(el){ - el.removeClass('open').addClass('close'); - }, - mouseoutDelay: 200, - mouseoverDelay: 0, - listSelector: 'ul', - itemSelector: 'li' - }, - - initialize: function(menu, options, level){ - this.setOptions(options); - options = this.options; - - var menu = this.menu = document.id(menu); - - menu.getElements(options.itemSelector + ' > ' + options.listSelector).each(function(el){ - - this.fireEvent('initialize', el); - - var parent = el.getParent(options.itemSelector), - timer; - - parent.addEvents({ - - 'mouseenter': function(){ - parent.store('DropDownOpen', true); - - clearTimeout(timer); - if (options.mouseoverDelay) timer = this.fireEvent.delay(options.mouseoverDelay, this, ['open', el]); - else this.fireEvent('open', el); - - }.bind(this), - - 'mouseleave': function(){ - parent.store('DropDownOpen', false); - - clearTimeout(timer); - timer = (function(){ - if (!parent.retrieve('DropDownOpen')) this.fireEvent('close', el); - }).delay(options.mouseoutDelay, this); - - }.bind(this) - }); - - }, this); - }, - - toElement: function(){ - return this.menu - } - -}); - -/* So you can do like this $('nav').MooDropMenu(); or even $('nav').MooDropMenu().setStyle('border',1); */ -Element.implement({ - MooDropMenu: function(options){ - return this.store('MooDropMenu', new MooDropMenu(this, options)); - } -}); diff --git a/module/web/media/js/admin.coffee b/module/web/media/js/admin.coffee deleted file mode 100644 index 82b0dd3ec..000000000 --- a/module/web/media/js/admin.coffee +++ /dev/null @@ -1,58 +0,0 @@ -root = this - -window.addEvent "domready", -> - - root.passwordDialog = new MooDialog {destroyOnHide: false} - root.passwordDialog.setContent $ 'password_box' - - $("login_password_reset").addEvent "click", (e) -> root.passwordDialog.close() - $("login_password_button").addEvent "click", (e) -> - - newpw = $("login_new_password").get("value") - newpw2 = $("login_new_password2").get("value") - - if newpw is newpw2 - form = $("password_form") - form.set "send", { - onSuccess: (data) -> - root.notify.alert "Success", { - 'className': 'success' - } - onFailure: (data) -> - root.notify.alert "Error", { - 'className': 'error' - } - } - - form.send() - - root.passwordDialog.close() - else - alert '{{_("Passwords did not match.")}}' - - e.stop() - - for item in $$(".change_password") - id = item.get("id") - user = id.split("|")[1] - $("user_login").set("value", user) - item.addEvent "click", (e) -> root.passwordDialog.open() - - $('quit-pyload').addEvent "click", (e) -> - new MooDialog.Confirm "{{_('You are really sure you want to quit pyLoad?')}}", -> - new Request.JSON({ - url: '/api/kill' - method: 'get' - }).send() - , -> - e.stop() - - $('restart-pyload').addEvent "click", (e) -> - new MooDialog.Confirm "{{_('Are you sure you want to restart pyLoad?')}}", -> - new Request.JSON({ - url: '/api/restart' - method: 'get' - onSuccess: (data) -> alert "{{_('pyLoad restarted')}}" - }).send() - , -> - e.stop() \ No newline at end of file diff --git a/module/web/media/js/admin.js b/module/web/media/js/admin.js deleted file mode 100644 index d34d310a0..000000000 --- a/module/web/media/js/admin.js +++ /dev/null @@ -1,3 +0,0 @@ -{% autoescape true %} -var root;root=this;window.addEvent("domready",function(){var f,c,b,e,a,d;root.passwordDialog=new MooDialog({destroyOnHide:false});root.passwordDialog.setContent($("password_box"));$("login_password_reset").addEvent("click",function(g){return root.passwordDialog.close()});$("login_password_button").addEvent("click",function(j){var h,i,g;i=$("login_new_password").get("value");g=$("login_new_password2").get("value");if(i===g){h=$("password_form");h.set("send",{onSuccess:function(k){return root.notify.alert("Success",{className:"success"})},onFailure:function(k){return root.notify.alert("Error",{className:"error"})}});h.send();root.passwordDialog.close()}else{alert('{{_("Passwords did not match.")}}')}return j.stop()});d=$$(".change_password");for(e=0,a=d.length;e - filesizename = new Array("B", "KiB", "MiB", "GiB", "TiB", "PiB") - loga = Math.log(size) / Math.log(1024) - i = Math.floor(loga) - a = Math.pow(1024, i) - if size is 0 then "0 B" else (Math.round(size * 100 / a) / 100 + " " + filesizename[i]) - -parseUri = () -> - oldString = $("add_links").value - regxp = new RegExp('(ht|f)tp(s?):\/\/[a-zA-Z0-9\-\.\/\?=_&%#]+[<| |\"|\'|\r|\n|\t]{1}', 'g') - resu = oldString.match regxp - return if resu == null - res = ""; - - for part in resu - if part.indexOf(" ") != -1 - res = res + part.replace(" ", " \n") - else if part.indexOf("\t") != -1 - res = res + part.replace("\t", " \n") - else if part.indexOf("\r") != -1 - res = res + part.replace("\r", " \n") - else if part.indexOf("\"") != -1 - res = res + part.replace("\"", " \n") - else if part.indexOf("<") != -1 - res = res + part.replace("<", " \n") - else if part.indexOf("'") != -1 - res = res + part.replace("'", " \n") - else - res = res + part.replace("\n", " \n") - - $("add_links").value = res; - - -Array::remove = (from, to) -> - rest = this.slice((to || from) + 1 || this.length) - this.length = from < 0 ? this.length + from : from - return [] if this.length == 0 - return this.push.apply(this, rest) - - -document.addEvent "domready", -> - - # global notification - root.notify = new Purr { - 'mode': 'top' - 'position': 'center' - } - - root.captchaBox = new MooDialog {destroyOnHide: false} - root.captchaBox.setContent $ 'cap_box' - - root.addBox = new MooDialog {destroyOnHide: false} - root.addBox.setContent $ 'add_box' - - $('add_form').onsubmit = -> - $('add_form').target = 'upload_target' - if $('add_name').value is "" and $('add_file').value is "" - alert '{{_("Please Enter a packagename.")}}' - return false - else - root.addBox.close() - return true - - $('add_reset').addEvent 'click', -> root.addBox.close() - - $('action_add').addEvent 'click', -> $("add_form").reset(); root.addBox.open() - $('action_play').addEvent 'click', -> new Request({method: 'get', url: '/api/unpauseServer'}).send() - $('action_cancel').addEvent 'click', -> new Request({method: 'get', url: '/api/stopAllDownloads'}).send() - $('action_stop').addEvent 'click', -> new Request({method: 'get', url: '/api/pauseServer'}).send() - - - # captcha events - - $('cap_info').addEvent 'click', -> - load_captcha "get", "" - root.captchaBox.open() - $('cap_reset').addEvent 'click', -> root.captchaBox.close() - $('cap_form').addEvent 'submit', (e) -> - submit_captcha() - e.stop() - - $('cap_positional').addEvent 'click', on_captcha_click - - new Request.JSON({ - url: "/json/status" - onSuccess: LoadJsonToContent - secure: false - async: true - initialDelay: 0 - delay: 4000 - limit: 3000 - }).startTimer() - -LoadJsonToContent = (data) -> - $("speed").set 'text', humanFileSize(data.speed)+"/s" - $("aktiv").set 'text', data.active - $("aktiv_from").set 'text', data.queue - $("aktiv_total").set 'text', data.total - - if data.captcha - if $("cap_info").getStyle("display") != "inline" - $("cap_info").setStyle 'display', 'inline' - root.notify.alert '{{_("New Captcha Request")}}', { - 'className': 'notify' - } - else - $("cap_info").setStyle 'display', 'none' - - - if data.download - $("time").set 'text', ' {{_("on")}}' - $("time").setStyle 'background-color', "#8ffc25" - else - $("time").set 'text', ' {{_("off")}}' - $("time").setStyle 'background-color', "#fc6e26" - - if data.reconnect - $("reconnect").set 'text', ' {{_("on")}}' - $("reconnect").setStyle 'background-color', "#8ffc25" - else - $("reconnect").set 'text', ' {{_("off")}}' - $("reconnect").setStyle 'background-color', "#fc6e26" - - return null - - -set_captcha = (data) -> - $('cap_id').set 'value', data.id - if (data.result_type is 'textual') - $('cap_textual_img').set 'src', data.src - $('cap_title').set 'text', '{{_("Please read the text on the captcha.")}}' - $('cap_submit').setStyle 'display', 'inline' - $('cap_textual').setStyle 'display', 'block' - $('cap_positional').setStyle 'display', 'none' - - else if (data.result_type == 'positional') - $('cap_positional_img').set('src', data.src) - $('cap_title').set('text', '{{_("Please click on the right captcha position.")}}') - $('cap_submit').setStyle('display', 'none') - $('cap_textual').setStyle('display', 'none') - - -load_captcha = (method, post) -> - new Request.JSON({ - url: "/json/set_captcha" - onSuccess: (data) -> set_captcha(data) if data.captcha else clear_captcha() - secure: false - async: true - method: method - }).send(post) - -clear_captcha = -> - $('cap_textual').setStyle 'display', 'none' - $('cap_textual_img').set 'src', '' - $('cap_positional').setStyle 'display', 'none' - $('cap_positional_img').set 'src', '' - $('cap_title').set 'text', '{{_("No Captchas to read.")}}' - -submit_captcha = -> - load_captcha("post", "cap_id=" + $('cap_id').get('value') + "&cap_result=" + $('cap_result').get('value') ); - $('cap_result').set('value', '') - false - -on_captcha_click = (e) -> - position = e.target.getPosition() - x = e.page.x - position.x - y = e.page.y - position.y - $('cap_result').value = x + "," + y - submit_captcha() \ No newline at end of file diff --git a/module/web/media/js/base.js b/module/web/media/js/base.js deleted file mode 100644 index c68b1047a..000000000 --- a/module/web/media/js/base.js +++ /dev/null @@ -1,3 +0,0 @@ -{% autoescape true %} -var LoadJsonToContent,clear_captcha,humanFileSize,load_captcha,on_captcha_click,parseUri,root,set_captcha,submit_captcha;root=this;humanFileSize=function(f){var c,d,e,b;d=new Array("B","KiB","MiB","GiB","TiB","PiB");b=Math.log(f)/Math.log(1024);e=Math.floor(b);c=Math.pow(1024,e);if(f===0){return"0 B"}else{return Math.round(f*100/c)/100+" "+d[e]}};parseUri=function(){var b,c,g,e,d,f,a;b=$("add_links").value;g=new RegExp("(ht|f)tp(s?)://[a-zA-Z0-9-./?=_&%#]+[<| |\"|'|\r|\n|\t]{1}","g");d=b.match(g);if(d===null){return}e="";for(f=0,a=d.length;f1){v=arguments;}}if(v){t={};for(var w=0;w>>0; -b>>0;b>>0;for(var a=(d<0)?Math.max(0,b+d):d||0;a>>0,b=Array(d); -for(var a=0;a>>0;b-1:String(this).indexOf(a)>-1;},trim:function(){return String(this).replace(/^\s+|\s+$/g,""); -},clean:function(){return String(this).replace(/\s+/g," ").trim();},camelCase:function(){return String(this).replace(/-\D/g,function(a){return a.charAt(1).toUpperCase(); -});},hyphenate:function(){return String(this).replace(/[A-Z]/g,function(a){return("-"+a.charAt(0).toLowerCase());});},capitalize:function(){return String(this).replace(/\b[a-z]/g,function(a){return a.toUpperCase(); -});},escapeRegExp:function(){return String(this).replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1");},toInt:function(a){return parseInt(this,a||10);},toFloat:function(){return parseFloat(this); -},hexToRgb:function(b){var a=String(this).match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);return(a)?a.slice(1).hexToRgb(b):null;},rgbToHex:function(b){var a=String(this).match(/\d{1,3}/g); -return(a)?a.rgbToHex(b):null;},substitute:function(a,b){return String(this).replace(b||(/\\?\{([^{}]+)\}/g),function(d,c){if(d.charAt(0)=="\\"){return d.slice(1); -}return(a[c]!=null)?a[c]:"";});}});Number.implement({limit:function(b,a){return Math.min(a,Math.max(b,this));},round:function(a){a=Math.pow(10,a||0).toFixed(a<0?-a:0); -return Math.round(this*a)/a;},times:function(b,c){for(var a=0;a1?Array.slice(arguments,1):null,d=function(){};var c=function(){var g=e,h=arguments.length;if(this instanceof c){d.prototype=a.prototype; -g=new d;}var f=(!b&&!h)?a.call(g):a.apply(g,b&&h?b.concat(Array.slice(arguments)):b||arguments);return g==e?f:g;};return c;},pass:function(b,c){var a=this; -if(b!=null){b=Array.from(b);}return function(){return a.apply(c,b||arguments);};},delay:function(b,c,a){return setTimeout(this.pass((a==null?[]:a),c),b); -},periodical:function(c,b,a){return setInterval(this.pass((a==null?[]:a),b),c);}});(function(){var a=Object.prototype.hasOwnProperty;Object.extend({subset:function(d,g){var f={}; -for(var e=0,b=g.length;e]*>([\s\S]*?)<\/script>/gi,function(r,s){e+=s+"\n"; -return"";});if(p===true){o.exec(e);}else{if(typeOf(p)=="function"){p(e,q);}}return q;});o.extend({Document:this.Document,Window:this.Window,Element:this.Element,Event:this.Event}); -this.Window=this.$constructor=new Type("Window",function(){});this.$family=Function.from("window").hide();Window.mirror(function(e,p){i[e]=p;});this.Document=k.$constructor=new Type("Document",function(){}); -k.$family=Function.from("document").hide();Document.mirror(function(e,p){k[e]=p;});k.html=k.documentElement;if(!k.head){k.head=k.getElementsByTagName("head")[0]; -}if(k.execCommand){try{k.execCommand("BackgroundImageCache",false,true);}catch(g){}}if(this.attachEvent&&!this.addEventListener){var d=function(){this.detachEvent("onunload",d); -k.head=k.html=k.window=null;};this.attachEvent("onunload",d);}var m=Array.from;try{m(k.html.childNodes);}catch(g){Array.from=function(p){if(typeof p!="string"&&Type.isEnumerable(p)&&typeOf(p)!="array"){var e=p.length,q=new Array(e); -while(e--){q[e]=p[e];}return q;}return m(p);};var l=Array.prototype,n=l.slice;["pop","push","reverse","shift","sort","splice","unshift","concat","join","slice"].each(function(e){var p=l[e]; -Array[e]=function(q){return p.apply(Array.from(q),n.call(arguments,1));};});}})();(function(){var b={};var a=this.DOMEvent=new Type("DOMEvent",function(c,g){if(!g){g=window; -}c=c||g.event;if(c.$extended){return c;}this.event=c;this.$extended=true;this.shift=c.shiftKey;this.control=c.ctrlKey;this.alt=c.altKey;this.meta=c.metaKey; -var i=this.type=c.type;var h=c.target||c.srcElement;while(h&&h.nodeType==3){h=h.parentNode;}this.target=document.id(h);if(i.indexOf("key")==0){var d=this.code=(c.which||c.keyCode); -this.key=b[d];if(i=="keydown"){if(d>111&&d<124){this.key="f"+(d-111);}else{if(d>95&&d<106){this.key=d-96;}}}if(this.key==null){this.key=String.fromCharCode(d).toLowerCase(); -}}else{if(i=="click"||i=="dblclick"||i=="contextmenu"||i=="DOMMouseScroll"||i.indexOf("mouse")==0){var j=g.document;j=(!j.compatMode||j.compatMode=="CSS1Compat")?j.html:j.body; -this.page={x:(c.pageX!=null)?c.pageX:c.clientX+j.scrollLeft,y:(c.pageY!=null)?c.pageY:c.clientY+j.scrollTop};this.client={x:(c.pageX!=null)?c.pageX-g.pageXOffset:c.clientX,y:(c.pageY!=null)?c.pageY-g.pageYOffset:c.clientY}; -if(i=="DOMMouseScroll"||i=="mousewheel"){this.wheel=(c.wheelDelta)?c.wheelDelta/120:-(c.detail||0)/3;}this.rightClick=(c.which==3||c.button==2);if(i=="mouseover"||i=="mouseout"){var k=c.relatedTarget||c[(i=="mouseover"?"from":"to")+"Element"]; -while(k&&k.nodeType==3){k=k.parentNode;}this.relatedTarget=document.id(k);}}else{if(i.indexOf("touch")==0||i.indexOf("gesture")==0){this.rotation=c.rotation; -this.scale=c.scale;this.targetTouches=c.targetTouches;this.changedTouches=c.changedTouches;var f=this.touches=c.touches;if(f&&f[0]){var e=f[0];this.page={x:e.pageX,y:e.pageY}; -this.client={x:e.clientX,y:e.clientY};}}}}if(!this.client){this.client={};}if(!this.page){this.page={};}});a.implement({stop:function(){return this.preventDefault().stopPropagation(); -},stopPropagation:function(){if(this.event.stopPropagation){this.event.stopPropagation();}else{this.event.cancelBubble=true;}return this;},preventDefault:function(){if(this.event.preventDefault){this.event.preventDefault(); -}else{this.event.returnValue=false;}return this;}});a.defineKey=function(d,c){b[d]=c;return this;};a.defineKeys=a.defineKey.overloadSetter(true);a.defineKeys({"38":"up","40":"down","37":"left","39":"right","27":"esc","32":"space","8":"backspace","9":"tab","46":"delete","13":"enter"}); -})();(function(){var a=this.Class=new Type("Class",function(h){if(instanceOf(h,Function)){h={initialize:h};}var g=function(){e(this);if(g.$prototyping){return this; -}this.$caller=null;var i=(this.initialize)?this.initialize.apply(this,arguments):this;this.$caller=this.caller=null;return i;}.extend(this).implement(h); -g.$constructor=a;g.prototype.$constructor=g;g.prototype.parent=c;return g;});var c=function(){if(!this.$caller){throw new Error('The method "parent" cannot be called.'); -}var g=this.$caller.$name,h=this.$caller.$owner.parent,i=(h)?h.prototype[g]:null;if(!i){throw new Error('The method "'+g+'" has no parent.');}return i.apply(this,arguments); -};var e=function(g){for(var h in g){var j=g[h];switch(typeOf(j)){case"object":var i=function(){};i.prototype=j;g[h]=e(new i);break;case"array":g[h]=j.clone(); -break;}}return g;};var b=function(g,h,j){if(j.$origin){j=j.$origin;}var i=function(){if(j.$protected&&this.$caller==null){throw new Error('The method "'+h+'" cannot be called.'); -}var l=this.caller,m=this.$caller;this.caller=m;this.$caller=i;var k=j.apply(this,arguments);this.$caller=m;this.caller=l;return k;}.extend({$owner:g,$origin:j,$name:h}); -return i;};var f=function(h,i,g){if(a.Mutators.hasOwnProperty(h)){i=a.Mutators[h].call(this,i);if(i==null){return this;}}if(typeOf(i)=="function"){if(i.$hidden){return this; -}this.prototype[h]=(g)?i:b(this,h,i);}else{Object.merge(this.prototype,h,i);}return this;};var d=function(g){g.$prototyping=true;var h=new g;delete g.$prototyping; -return h;};a.implement("implement",f.overloadSetter());a.Mutators={Extends:function(g){this.parent=g;this.prototype=d(g);},Implements:function(g){Array.from(g).each(function(j){var h=new j; -for(var i in h){f.call(this,i,h[i],true);}},this);}};})();(function(){this.Chain=new Class({$chain:[],chain:function(){this.$chain.append(Array.flatten(arguments)); -return this;},callChain:function(){return(this.$chain.length)?this.$chain.shift().apply(this,arguments):false;},clearChain:function(){this.$chain.empty(); -return this;}});var a=function(b){return b.replace(/^on([A-Z])/,function(c,d){return d.toLowerCase();});};this.Events=new Class({$events:{},addEvent:function(d,c,b){d=a(d); -this.$events[d]=(this.$events[d]||[]).include(c);if(b){c.internal=true;}return this;},addEvents:function(b){for(var c in b){this.addEvent(c,b[c]);}return this; -},fireEvent:function(e,c,b){e=a(e);var d=this.$events[e];if(!d){return this;}c=Array.from(c);d.each(function(f){if(b){f.delay(b,this,c);}else{f.apply(this,c); -}},this);return this;},removeEvent:function(e,d){e=a(e);var c=this.$events[e];if(c&&!d.internal){var b=c.indexOf(d);if(b!=-1){delete c[b];}}return this; -},removeEvents:function(d){var e;if(typeOf(d)=="object"){for(e in d){this.removeEvent(e,d[e]);}return this;}if(d){d=a(d);}for(e in this.$events){if(d&&d!=e){continue; -}var c=this.$events[e];for(var b=c.length;b--;){if(b in c){this.removeEvent(e,c[b]);}}}return this;}});this.Options=new Class({setOptions:function(){var b=this.options=Object.merge.apply(null,[{},this.options].append(arguments)); -if(this.addEvent){for(var c in b){if(typeOf(b[c])!="function"||!(/^on[A-Z]/).test(c)){continue;}this.addEvent(c,b[c]);delete b[c];}}return this;}});})(); -(function(){var k,n,l,g,a={},c={},m=/\\/g;var e=function(q,p){if(q==null){return null;}if(q.Slick===true){return q;}q=(""+q).replace(/^\s+|\s+$/g,"");g=!!p; -var o=(g)?c:a;if(o[q]){return o[q];}k={Slick:true,expressions:[],raw:q,reverse:function(){return e(this.raw,true);}};n=-1;while(q!=(q=q.replace(j,b))){}k.length=k.expressions.length; -return o[k.raw]=(g)?h(k):k;};var i=function(o){if(o==="!"){return" ";}else{if(o===" "){return"!";}else{if((/^!/).test(o)){return o.replace(/^!/,"");}else{return"!"+o; -}}}};var h=function(u){var r=u.expressions;for(var p=0;p+)\\s*|(\\s+)|(+|\\*)|\\#(+)|\\.(+)|\\[\\s*(+)(?:\\s*([*^$!~|]?=)(?:\\s*(?:([\"']?)(.*?)\\9)))?\\s*\\](?!\\])|(:+)(+)(?:\\((?:(?:([\"'])([^\\13]*)\\13)|((?:\\([^)]+\\)|[^()]*)+))\\))?)".replace(//,"["+f(">+~`!@$%^&={}\\;/g,"(?:[\\w\\u00a1-\\uFFFF-]|\\\\[^\\s0-9a-f])").replace(//g,"(?:[:\\w\\u00a1-\\uFFFF-]|\\\\[^\\s0-9a-f])")); -function b(x,s,D,z,r,C,q,B,A,y,u,F,G,v,p,w){if(s||n===-1){k.expressions[++n]=[];l=-1;if(s){return"";}}if(D||z||l===-1){D=D||" ";var t=k.expressions[n]; -if(g&&t[l]){t[l].reverseCombinator=i(D);}t[++l]={combinator:D,tag:"*"};}var o=k.expressions[n][l];if(r){o.tag=r.replace(m,"");}else{if(C){o.id=C.replace(m,""); -}else{if(q){q=q.replace(m,"");if(!o.classList){o.classList=[];}if(!o.classes){o.classes=[];}o.classList.push(q);o.classes.push({value:q,regexp:new RegExp("(^|\\s)"+f(q)+"(\\s|$)")}); -}else{if(G){w=w||p;w=w?w.replace(m,""):null;if(!o.pseudos){o.pseudos=[];}o.pseudos.push({key:G.replace(m,""),value:w,type:F.length==1?"class":"element"}); -}else{if(B){B=B.replace(m,"");u=(u||"").replace(m,"");var E,H;switch(A){case"^=":H=new RegExp("^"+f(u));break;case"$=":H=new RegExp(f(u)+"$");break;case"~=":H=new RegExp("(^|\\s)"+f(u)+"(\\s|$)"); -break;case"|=":H=new RegExp("^"+f(u)+"(-|$)");break;case"=":E=function(I){return u==I;};break;case"*=":E=function(I){return I&&I.indexOf(u)>-1;};break; -case"!=":E=function(I){return u!=I;};break;default:E=function(I){return !!I;};}if(u==""&&(/^[*$^]=$/).test(A)){E=function(){return false;};}if(!E){E=function(I){return I&&H.test(I); -};}if(!o.attributes){o.attributes=[];}o.attributes.push({key:B,operator:A,value:u,test:E});}}}}}return"";}var d=(this.Slick||{});d.parse=function(o){return e(o); -};d.escapeRegExp=f;if(!this.Slick){this.Slick=d;}}).apply((typeof exports!="undefined")?exports:this);(function(){var k={},m={},d=Object.prototype.toString; -k.isNativeCode=function(c){return(/\{\s*\[native code\]\s*\}/).test(""+c);};k.isXML=function(c){return(!!c.xmlVersion)||(!!c.xml)||(d.call(c)=="[object XMLDocument]")||(c.nodeType==9&&c.documentElement.nodeName!="HTML"); -};k.setDocument=function(x){var u=x.nodeType;if(u==9){}else{if(u){x=x.ownerDocument;}else{if(x.navigator){x=x.document;}else{return;}}}if(this.document===x){return; -}this.document=x;var z=x.documentElement,v=this.getUIDXML(z),p=m[v],B;if(p){for(B in p){this[B]=p[B];}return;}p=m[v]={};p.root=z;p.isXMLDocument=this.isXML(x); -p.brokenStarGEBTN=p.starSelectsClosedQSA=p.idGetsName=p.brokenMixedCaseQSA=p.brokenGEBCN=p.brokenCheckedQSA=p.brokenEmptyAttributeQSA=p.isHTMLDocument=p.nativeMatchesSelector=false; -var n,o,y,r,s;var t,c="slick_uniqueid";var A=x.createElement("div");var q=x.body||x.getElementsByTagName("body")[0]||z;q.appendChild(A);try{A.innerHTML=''; -p.isHTMLDocument=!!x.getElementById(c);}catch(w){}if(p.isHTMLDocument){A.style.display="none";A.appendChild(x.createComment(""));o=(A.getElementsByTagName("*").length>1); -try{A.innerHTML="foo";t=A.getElementsByTagName("*");n=(t&&!!t.length&&t[0].nodeName.charAt(0)=="/");}catch(w){}p.brokenStarGEBTN=o||n;try{A.innerHTML=''; -p.idGetsName=x.getElementById(c)===A.firstChild;}catch(w){}if(A.getElementsByClassName){try{A.innerHTML='';A.getElementsByClassName("b").length; -A.firstChild.className="b";r=(A.getElementsByClassName("b").length!=2);}catch(w){}try{A.innerHTML='';y=(A.getElementsByClassName("a").length!=2); -}catch(w){}p.brokenGEBCN=r||y;}if(A.querySelectorAll){try{A.innerHTML="foo";t=A.querySelectorAll("*");p.starSelectsClosedQSA=(t&&!!t.length&&t[0].nodeName.charAt(0)=="/"); -}catch(w){}try{A.innerHTML='';p.brokenMixedCaseQSA=!A.querySelectorAll(".MiX").length;}catch(w){}try{A.innerHTML=''; -p.brokenCheckedQSA=(A.querySelectorAll(":checked").length==0);}catch(w){}try{A.innerHTML='';p.brokenEmptyAttributeQSA=(A.querySelectorAll('[class*=""]').length!=0); -}catch(w){}}try{A.innerHTML='
';s=(A.firstChild.getAttribute("action")!="s");}catch(w){}p.nativeMatchesSelector=z.matchesSelector||z.mozMatchesSelector||z.webkitMatchesSelector; -if(p.nativeMatchesSelector){try{p.nativeMatchesSelector.call(z,":slick");p.nativeMatchesSelector=null;}catch(w){}}}try{z.slick_expando=1;delete z.slick_expando; -p.getUID=this.getUIDHTML;}catch(w){p.getUID=this.getUIDXML;}q.removeChild(A);A=t=q=null;p.getAttribute=(p.isHTMLDocument&&s)?function(E,C){var F=this.attributeGetters[C]; -if(F){return F.call(E);}var D=E.getAttributeNode(C);return(D)?D.nodeValue:null;}:function(D,C){var E=this.attributeGetters[C];return(E)?E.call(D):D.getAttribute(C); -};p.hasAttribute=(z&&this.isNativeCode(z.hasAttribute))?function(D,C){return D.hasAttribute(C);}:function(D,C){D=D.getAttributeNode(C);return !!(D&&(D.specified||D.nodeValue)); -};p.contains=(z&&this.isNativeCode(z.contains))?function(C,D){return C.contains(D);}:(z&&z.compareDocumentPosition)?function(C,D){return C===D||!!(C.compareDocumentPosition(D)&16); -}:function(C,D){if(D){do{if(D===C){return true;}}while((D=D.parentNode));}return false;};p.documentSorter=(z.compareDocumentPosition)?function(D,C){if(!D.compareDocumentPosition||!C.compareDocumentPosition){return 0; -}return D.compareDocumentPosition(C)&4?-1:D===C?0:1;}:("sourceIndex" in z)?function(D,C){if(!D.sourceIndex||!C.sourceIndex){return 0;}return D.sourceIndex-C.sourceIndex; -}:(x.createRange)?function(F,D){if(!F.ownerDocument||!D.ownerDocument){return 0;}var E=F.ownerDocument.createRange(),C=D.ownerDocument.createRange();E.setStart(F,0); -E.setEnd(F,0);C.setStart(D,0);C.setEnd(D,0);return E.compareBoundaryPoints(Range.START_TO_END,C);}:null;z=null;for(B in p){this[B]=p[B];}};var f=/^([#.]?)((?:[\w-]+|\*))$/,h=/\[.+[*$^]=(?:""|'')?\]/,g={}; -k.search=function(U,z,H,s){var p=this.found=(s)?null:(H||[]);if(!U){return p;}else{if(U.navigator){U=U.document;}else{if(!U.nodeType){return p;}}}var F,O,V=this.uniques={},I=!!(H&&H.length),y=(U.nodeType==9); -if(this.document!==(y?U:U.ownerDocument)){this.setDocument(U);}if(I){for(O=p.length;O--;){V[this.getUID(p[O])]=true;}}if(typeof z=="string"){var r=z.match(f); -simpleSelectors:if(r){var u=r[1],v=r[2],A,E;if(!u){if(v=="*"&&this.brokenStarGEBTN){break simpleSelectors;}E=U.getElementsByTagName(v);if(s){return E[0]||null; -}for(O=0;A=E[O++];){if(!(I&&V[this.getUID(A)])){p.push(A);}}}else{if(u=="#"){if(!this.isHTMLDocument||!y){break simpleSelectors;}A=U.getElementById(v); -if(!A){return p;}if(this.idGetsName&&A.getAttributeNode("id").nodeValue!=v){break simpleSelectors;}if(s){return A||null;}if(!(I&&V[this.getUID(A)])){p.push(A); -}}else{if(u=="."){if(!this.isHTMLDocument||((!U.getElementsByClassName||this.brokenGEBCN)&&U.querySelectorAll)){break simpleSelectors;}if(U.getElementsByClassName&&!this.brokenGEBCN){E=U.getElementsByClassName(v); -if(s){return E[0]||null;}for(O=0;A=E[O++];){if(!(I&&V[this.getUID(A)])){p.push(A);}}}else{var T=new RegExp("(^|\\s)"+e.escapeRegExp(v)+"(\\s|$)");E=U.getElementsByTagName("*"); -for(O=0;A=E[O++];){className=A.className;if(!(className&&T.test(className))){continue;}if(s){return A;}if(!(I&&V[this.getUID(A)])){p.push(A);}}}}}}if(I){this.sort(p); -}return(s)?null:p;}querySelector:if(U.querySelectorAll){if(!this.isHTMLDocument||g[z]||this.brokenMixedCaseQSA||(this.brokenCheckedQSA&&z.indexOf(":checked")>-1)||(this.brokenEmptyAttributeQSA&&h.test(z))||(!y&&z.indexOf(",")>-1)||e.disableQSA){break querySelector; -}var S=z,x=U;if(!y){var C=x.getAttribute("id"),t="slickid__";x.setAttribute("id",t);S="#"+t+" "+S;U=x.parentNode;}try{if(s){return U.querySelector(S)||null; -}else{E=U.querySelectorAll(S);}}catch(Q){g[z]=1;break querySelector;}finally{if(!y){if(C){x.setAttribute("id",C);}else{x.removeAttribute("id");}U=x;}}if(this.starSelectsClosedQSA){for(O=0; -A=E[O++];){if(A.nodeName>"@"&&!(I&&V[this.getUID(A)])){p.push(A);}}}else{for(O=0;A=E[O++];){if(!(I&&V[this.getUID(A)])){p.push(A);}}}if(I){this.sort(p); -}return p;}F=this.Slick.parse(z);if(!F.length){return p;}}else{if(z==null){return p;}else{if(z.Slick){F=z;}else{if(this.contains(U.documentElement||U,z)){(p)?p.push(z):p=z; -return p;}else{return p;}}}}this.posNTH={};this.posNTHLast={};this.posNTHType={};this.posNTHTypeLast={};this.push=(!I&&(s||(F.length==1&&F.expressions[0].length==1)))?this.pushArray:this.pushUID; -if(p==null){p=[];}var M,L,K;var B,J,D,c,q,G,W;var N,P,o,w,R=F.expressions;search:for(O=0;(P=R[O]);O++){for(M=0;(o=P[M]);M++){B="combinator:"+o.combinator; -if(!this[B]){continue search;}J=(this.isXMLDocument)?o.tag:o.tag.toUpperCase();D=o.id;c=o.classList;q=o.classes;G=o.attributes;W=o.pseudos;w=(M===(P.length-1)); -this.bitUniques={};if(w){this.uniques=V;this.found=p;}else{this.uniques={};this.found=[];}if(M===0){this[B](U,J,D,q,G,W,c);if(s&&w&&p.length){break search; -}}else{if(s&&w){for(L=0,K=N.length;L1)){this.sort(p);}return(s)?(p[0]||null):p;};k.uidx=1;k.uidk="slick-uniqueid";k.getUIDXML=function(n){var c=n.getAttribute(this.uidk); -if(!c){c=this.uidx++;n.setAttribute(this.uidk,c);}return c;};k.getUIDHTML=function(c){return c.uniqueNumber||(c.uniqueNumber=this.uidx++);};k.sort=function(c){if(!this.documentSorter){return c; -}c.sort(this.documentSorter);return c;};k.cacheNTH={};k.matchNTH=/^([+-]?\d*)?([a-z]+)?([+-]\d+)?$/;k.parseNTHArgument=function(q){var o=q.match(this.matchNTH); -if(!o){return false;}var p=o[2]||false;var n=o[1]||1;if(n=="-"){n=-1;}var c=+o[3]||0;o=(p=="n")?{a:n,b:c}:(p=="odd")?{a:2,b:1}:(p=="even")?{a:2,b:0}:{a:0,b:n}; -return(this.cacheNTH[q]=o);};k.createNTHPseudo=function(p,n,c,o){return function(s,q){var u=this.getUID(s);if(!this[c][u]){var A=s.parentNode;if(!A){return false; -}var r=A[p],t=1;if(o){var z=s.nodeName;do{if(r.nodeName!=z){continue;}this[c][this.getUID(r)]=t++;}while((r=r[n]));}else{do{if(r.nodeType!=1){continue; -}this[c][this.getUID(r)]=t++;}while((r=r[n]));}}q=q||"n";var v=this.cacheNTH[q]||this.parseNTHArgument(q);if(!v){return false;}var y=v.a,x=v.b,w=this[c][u]; -if(y==0){return x==w;}if(y>0){if(w":function(p,c,r,o,n,q){if((p=p.firstChild)){do{if(p.nodeType==1){this.push(p,c,r,o,n,q); -}}while((p=p.nextSibling));}},"+":function(p,c,r,o,n,q){while((p=p.nextSibling)){if(p.nodeType==1){this.push(p,c,r,o,n,q);break;}}},"^":function(p,c,r,o,n,q){p=p.firstChild; -if(p){if(p.nodeType==1){this.push(p,c,r,o,n,q);}else{this["combinator:+"](p,c,r,o,n,q);}}},"~":function(q,c,s,p,n,r){while((q=q.nextSibling)){if(q.nodeType!=1){continue; -}var o=this.getUID(q);if(this.bitUniques[o]){break;}this.bitUniques[o]=true;this.push(q,c,s,p,n,r);}},"++":function(p,c,r,o,n,q){this["combinator:+"](p,c,r,o,n,q); -this["combinator:!+"](p,c,r,o,n,q);},"~~":function(p,c,r,o,n,q){this["combinator:~"](p,c,r,o,n,q);this["combinator:!~"](p,c,r,o,n,q);},"!":function(p,c,r,o,n,q){while((p=p.parentNode)){if(p!==this.document){this.push(p,c,r,o,n,q); -}}},"!>":function(p,c,r,o,n,q){p=p.parentNode;if(p!==this.document){this.push(p,c,r,o,n,q);}},"!+":function(p,c,r,o,n,q){while((p=p.previousSibling)){if(p.nodeType==1){this.push(p,c,r,o,n,q); -break;}}},"!^":function(p,c,r,o,n,q){p=p.lastChild;if(p){if(p.nodeType==1){this.push(p,c,r,o,n,q);}else{this["combinator:!+"](p,c,r,o,n,q);}}},"!~":function(q,c,s,p,n,r){while((q=q.previousSibling)){if(q.nodeType!=1){continue; -}var o=this.getUID(q);if(this.bitUniques[o]){break;}this.bitUniques[o]=true;this.push(q,c,s,p,n,r);}}};for(var i in j){k["combinator:"+i]=j[i];}var l={empty:function(c){var n=c.firstChild; -return !(n&&n.nodeType==1)&&!(c.innerText||c.textContent||"").length;},not:function(c,n){return !this.matchNode(c,n);},contains:function(c,n){return(c.innerText||c.textContent||"").indexOf(n)>-1; -},"first-child":function(c){while((c=c.previousSibling)){if(c.nodeType==1){return false;}}return true;},"last-child":function(c){while((c=c.nextSibling)){if(c.nodeType==1){return false; -}}return true;},"only-child":function(o){var n=o;while((n=n.previousSibling)){if(n.nodeType==1){return false;}}var c=o;while((c=c.nextSibling)){if(c.nodeType==1){return false; -}}return true;},"nth-child":k.createNTHPseudo("firstChild","nextSibling","posNTH"),"nth-last-child":k.createNTHPseudo("lastChild","previousSibling","posNTHLast"),"nth-of-type":k.createNTHPseudo("firstChild","nextSibling","posNTHType",true),"nth-last-of-type":k.createNTHPseudo("lastChild","previousSibling","posNTHTypeLast",true),index:function(n,c){return this["pseudo:nth-child"](n,""+c+1); -},even:function(c){return this["pseudo:nth-child"](c,"2n");},odd:function(c){return this["pseudo:nth-child"](c,"2n+1");},"first-of-type":function(c){var n=c.nodeName; -while((c=c.previousSibling)){if(c.nodeName==n){return false;}}return true;},"last-of-type":function(c){var n=c.nodeName;while((c=c.nextSibling)){if(c.nodeName==n){return false; -}}return true;},"only-of-type":function(o){var n=o,p=o.nodeName;while((n=n.previousSibling)){if(n.nodeName==p){return false;}}var c=o;while((c=c.nextSibling)){if(c.nodeName==p){return false; -}}return true;},enabled:function(c){return !c.disabled;},disabled:function(c){return c.disabled;},checked:function(c){return c.checked||c.selected;},focus:function(c){return this.isHTMLDocument&&this.document.activeElement===c&&(c.href||c.type||this.hasAttribute(c,"tabindex")); -},root:function(c){return(c===this.root);},selected:function(c){return c.selected;}};for(var b in l){k["pseudo:"+b]=l[b];}var a=k.attributeGetters={"class":function(){return this.getAttribute("class")||this.className; -},"for":function(){return("htmlFor" in this)?this.htmlFor:this.getAttribute("for");},href:function(){return("href" in this)?this.getAttribute("href",2):this.getAttribute("href"); -},style:function(){return(this.style)?this.style.cssText:this.getAttribute("style");},tabindex:function(){var c=this.getAttributeNode("tabindex");return(c&&c.specified)?c.nodeValue:null; -},type:function(){return this.getAttribute("type");},maxlength:function(){var c=this.getAttributeNode("maxLength");return(c&&c.specified)?c.nodeValue:null; -}};a.MAXLENGTH=a.maxLength=a.maxlength;var e=k.Slick=(this.Slick||{});e.version="1.1.6";e.search=function(n,o,c){return k.search(n,o,c);};e.find=function(c,n){return k.search(c,n,null,true); -};e.contains=function(c,n){k.setDocument(c);return k.contains(c,n);};e.getAttribute=function(n,c){k.setDocument(n);return k.getAttribute(n,c);};e.hasAttribute=function(n,c){k.setDocument(n); -return k.hasAttribute(n,c);};e.match=function(n,c){if(!(n&&c)){return false;}if(!c||c===n){return true;}k.setDocument(n);return k.matchNode(n,c);};e.defineAttributeGetter=function(c,n){k.attributeGetters[c]=n; -return this;};e.lookupAttributeGetter=function(c){return k.attributeGetters[c];};e.definePseudo=function(c,n){k["pseudo:"+c]=function(p,o){return n.call(p,o); -};return this;};e.lookupPseudo=function(c){var n=k["pseudo:"+c];if(n){return function(o){return n.call(this,o);};}return null;};e.override=function(n,c){k.override(n,c); -return this;};e.isXML=k.isXML;e.uidOf=function(c){return k.getUIDHTML(c);};if(!this.Slick){this.Slick=e;}}).apply((typeof exports!="undefined")?exports:this); -var Element=function(b,g){var h=Element.Constructors[b];if(h){return h(g);}if(typeof b!="string"){return document.id(b).set(g);}if(!g){g={};}if(!(/^[\w-]+$/).test(b)){var e=Slick.parse(b).expressions[0][0]; -b=(e.tag=="*")?"div":e.tag;if(e.id&&g.id==null){g.id=e.id;}var d=e.attributes;if(d){for(var a,f=0,c=d.length;f=this.length){delete this[h--]; -}return e;}.protect());}Elements.implement(Array.prototype);Array.mirror(Elements);var f;try{var a=document.createElement("");f=(a.name=="x"); -}catch(c){}var d=function(e){return(""+e).replace(/&/g,"&").replace(/"/g,""");};Document.implement({newElement:function(e,h){if(h&&h.checked!=null){h.defaultChecked=h.checked; -}if(f&&h){e="<"+e;if(h.name){e+=' name="'+d(h.name)+'"';}if(h.type){e+=' type="'+d(h.type)+'"';}e+=">";delete h.name;delete h.type;}return this.id(this.createElement(e)).set(h); -}});})();Document.implement({newTextNode:function(a){return this.createTextNode(a);},getDocument:function(){return this;},getWindow:function(){return this.window; -},id:(function(){var a={string:function(d,c,b){d=Slick.find(b,"#"+d.replace(/(\W)/g,"\\$1"));return(d)?a.element(d,c):null;},element:function(b,c){$uid(b); -if(!c&&!b.$family&&!(/^(?:object|embed)$/i).test(b.tagName)){Object.append(b,Element.Prototype);}return b;},object:function(c,d,b){if(c.toElement){return a.element(c.toElement(b),d); -}return null;}};a.textnode=a.whitespace=a.window=a.document=function(b){return b;};return function(c,e,d){if(c&&c.$family&&c.uid){return c;}var b=typeOf(c); -return(a[b])?a[b](c,e,d||document):null;};})()});if(window.$==null){Window.implement("$",function(a,b){return document.id(a,b,this.document);});}Window.implement({getDocument:function(){return this.document; -},getWindow:function(){return this;}});[Document,Element].invoke("implement",{getElements:function(a){return Slick.search(this,a,new Elements);},getElement:function(a){return document.id(Slick.find(this,a)); -}});var contains={contains:function(a){return Slick.contains(this,a);}};if(!document.contains){Document.implement(contains);}if(!document.createElement("div").contains){Element.implement(contains); -}var injectCombinator=function(d,c){if(!d){return c;}d=Object.clone(Slick.parse(d));var b=d.expressions;for(var a=b.length;a--;){b[a][0].combinator=c;}return d; -};Object.forEach({getNext:"~",getPrevious:"!~",getParent:"!"},function(a,b){Element.implement(b,function(c){return this.getElement(injectCombinator(c,a)); -});});Object.forEach({getAllNext:"~",getAllPrevious:"!~",getSiblings:"~~",getChildren:">",getParents:"!"},function(a,b){Element.implement(b,function(c){return this.getElements(injectCombinator(c,a)); -});});Element.implement({getFirst:function(a){return document.id(Slick.search(this,injectCombinator(a,">"))[0]);},getLast:function(a){return document.id(Slick.search(this,injectCombinator(a,">")).getLast()); -},getWindow:function(){return this.ownerDocument.window;},getDocument:function(){return this.ownerDocument;},getElementById:function(a){return document.id(Slick.find(this,"#"+(""+a).replace(/(\W)/g,"\\$1"))); -},match:function(a){return !a||Slick.match(this,a);}});if(window.$$==null){Window.implement("$$",function(a){if(arguments.length==1){if(typeof a=="string"){return Slick.search(this.document,a,new Elements); -}else{if(Type.isEnumerable(a)){return new Elements(a);}}}return new Elements(arguments);});}(function(){var b={before:function(n,m){var o=m.parentNode; -if(o){o.insertBefore(n,m);}},after:function(n,m){var o=m.parentNode;if(o){o.insertBefore(n,m.nextSibling);}},bottom:function(n,m){m.appendChild(n);},top:function(n,m){m.insertBefore(n,m.firstChild); -}};b.inside=b.bottom;var k={},d={};var i={};Array.forEach(["type","value","defaultValue","accessKey","cellPadding","cellSpacing","colSpan","frameBorder","readOnly","rowSpan","tabIndex","useMap"],function(m){i[m.toLowerCase()]=m; -});Object.append(i,{html:"innerHTML",text:(function(){var m=document.createElement("div");return(m.textContent==null)?"innerText":"textContent";})()}); -Object.forEach(i,function(n,m){d[m]=function(o,p){o[n]=p;};k[m]=function(o){return o[n];};});var a=["compact","nowrap","ismap","declare","noshade","checked","disabled","readOnly","multiple","selected","noresize","defer","defaultChecked","autofocus","controls","autoplay","loop"]; -var h={};Array.forEach(a,function(m){var n=m.toLowerCase();h[n]=m;d[n]=function(o,p){o[m]=!!p;};k[n]=function(o){return !!o[m];};});Object.append(d,{"class":function(m,n){("className" in m)?m.className=n:m.setAttribute("class",n); -},"for":function(m,n){("htmlFor" in m)?m.htmlFor=n:m.setAttribute("for",n);},style:function(m,n){(m.style)?m.style.cssText=n:m.setAttribute("style",n); -}});Element.implement({setProperty:function(n,o){var m=n.toLowerCase();if(o==null){if(!h[m]){this.removeAttribute(n);return this;}o=false;}var p=d[m];if(p){p(this,o); -}else{this.setAttribute(n,o);}return this;},setProperties:function(m){for(var n in m){this.setProperty(n,m[n]);}return this;},getProperty:function(o){var n=k[o.toLowerCase()]; -if(n){return n(this);}var m=Slick.getAttribute(this,o);return(!m&&!Slick.hasAttribute(this,o))?null:m;},getProperties:function(){var m=Array.from(arguments); -return m.map(this.getProperty,this).associate(m);},removeProperty:function(m){return this.setProperty(m,null);},removeProperties:function(){Array.each(arguments,this.removeProperty,this); -return this;},set:function(o,n){var m=Element.Properties[o];(m&&m.set)?m.set.call(this,n):this.setProperty(o,n);}.overloadSetter(),get:function(n){var m=Element.Properties[n]; -return(m&&m.get)?m.get.apply(this):this.getProperty(n);}.overloadGetter(),erase:function(n){var m=Element.Properties[n];(m&&m.erase)?m.erase.apply(this):this.removeProperty(n); -return this;},hasClass:function(m){return this.className.clean().contains(m," ");},addClass:function(m){if(!this.hasClass(m)){this.className=(this.className+" "+m).clean(); -}return this;},removeClass:function(m){this.className=this.className.replace(new RegExp("(^|\\s)"+m+"(?:\\s|$)"),"$1");return this;},toggleClass:function(m,n){if(n==null){n=!this.hasClass(m); -}return(n)?this.addClass(m):this.removeClass(m);},adopt:function(){var p=this,m,r=Array.flatten(arguments),q=r.length;if(q>1){p=m=document.createDocumentFragment(); -}for(var o=0;o",""],select:[1,""],tbody:[2,"","
"],tr:[3,"","
"]}; -o.thead=o.tfoot=o.tbody;t.innerHTML="";var n=t.childNodes.length==1;if(!n){var q="abbr article aside audio canvas datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video".split(" "),p=document.createDocumentFragment(),m=q.length; -while(m--){p.createElement(q[m]);}p.appendChild(t);}var r={set:function(v){if(typeOf(v)=="array"){v=v.join("");}var w=(!s&&o[this.get("tag")]);if(!w&&!n){w=[0,"",""]; -}if(w){var x=t;x.innerHTML=w[1]+v+w[2];for(var u=w[0];u--;){x=x.firstChild;}this.empty().adopt(x.childNodes);}else{this.innerHTML=v;}}};r.erase=r.set;return r; -})();var f=document.createElement("form");f.innerHTML="";if(f.firstChild.value!="s"){Element.Properties.value={set:function(r){var n=this.get("tag"); -if(n!="select"){return this.setProperty("value",r);}var o=this.getElements("option");for(var p=0;p0?"visible":"hidden"; -};var d=(h?function(j,i){j.style.opacity=i;}:(a?function(j,i){if(!j.currentStyle||!j.currentStyle.hasLayout){j.style.zoom=1;}i=(i*100).limit(0,100).round(); -i=(i==100)?"":"alpha(opacity="+i+")";var k=j.style.filter||j.getComputedStyle("filter")||"";j.style.filter=g.test(k)?k.replace(g,i):k+i;}:b));var e=(h?function(j){var i=j.style.opacity||j.getComputedStyle("opacity"); -return(i=="")?1:i.toFloat();}:(a?function(j){var k=(j.style.filter||j.getComputedStyle("filter")),i;if(k){i=k.match(g);}return(i==null||k==null)?1:(i[1]/100); -}:function(j){var i=j.retrieve("$opacity");if(i==null){i=(j.style.visibility=="hidden"?0:1);}return i;}));var c=(f.style.cssFloat==null)?"styleFloat":"cssFloat"; -Element.implement({getComputedStyle:function(k){if(this.currentStyle){return this.currentStyle[k.camelCase()];}var j=Element.getDocument(this).defaultView,i=j?j.getComputedStyle(this,null):null; -return(i)?i.getPropertyValue((k==c)?"float":k.hyphenate()):null;},setStyle:function(j,i){if(j=="opacity"){d(this,parseFloat(i));return this;}j=(j=="float"?c:j).camelCase(); -if(typeOf(i)!="string"){var k=(Element.Styles[j]||"@").split(" ");i=Array.from(i).map(function(m,l){if(!k[l]){return"";}return(typeOf(m)=="number")?k[l].replace("@",Math.round(m)):m; -}).join(" ");}else{if(i==String(Number(i))){i=Math.round(i);}}this.style[j]=i;return this;},getStyle:function(o){if(o=="opacity"){return e(this);}o=(o=="float"?c:o).camelCase(); -var i=this.style[o];if(!i||o=="zIndex"){i=[];for(var n in Element.ShortStyles){if(o!=n){continue;}for(var m in Element.ShortStyles[n]){i.push(this.getStyle(m)); -}return i.join(" ");}i=this.getComputedStyle(o);}if(i){i=String(i);var k=i.match(/rgba?\([\d\s,]+\)/);if(k){i=i.replace(k[0],k[0].rgbToHex());}}if(Browser.opera||(Browser.ie&&isNaN(parseFloat(i)))){if((/^(height|width)$/).test(o)){var j=(o=="width")?["left","right"]:["top","bottom"],l=0; -j.each(function(p){l+=this.getStyle("border-"+p+"-width").toInt()+this.getStyle("padding-"+p).toInt();},this);return this["offset"+o.capitalize()]-l+"px"; -}if(Browser.opera&&String(i).indexOf("px")!=-1){return i;}if((/^border(.+)Width|margin|padding/).test(o)){return"0px";}}return i;},setStyles:function(j){for(var i in j){this.setStyle(i,j[i]); -}return this;},getStyles:function(){var i={};Array.flatten(arguments).each(function(j){i[j]=this.getStyle(j);},this);return i;}});Element.Styles={left:"@px",top:"@px",bottom:"@px",right:"@px",width:"@px",height:"@px",maxWidth:"@px",maxHeight:"@px",minWidth:"@px",minHeight:"@px",backgroundColor:"rgb(@, @, @)",backgroundPosition:"@px @px",color:"rgb(@, @, @)",fontSize:"@px",letterSpacing:"@px",lineHeight:"@px",clip:"rect(@px @px @px @px)",margin:"@px @px @px @px",padding:"@px @px @px @px",border:"@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)",borderWidth:"@px @px @px @px",borderStyle:"@ @ @ @",borderColor:"rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)",zIndex:"@",zoom:"@",fontWeight:"@",textIndent:"@px",opacity:"@"}; -Element.ShortStyles={margin:{},padding:{},border:{},borderWidth:{},borderStyle:{},borderColor:{}};["Top","Right","Bottom","Left"].each(function(o){var n=Element.ShortStyles; -var j=Element.Styles;["margin","padding"].each(function(p){var q=p+o;n[p][q]=j[q]="@px";});var m="border"+o;n.border[m]=j[m]="@px @ rgb(@, @, @)";var l=m+"Width",i=m+"Style",k=m+"Color"; -n[m]={};n.borderWidth[l]=n[m][l]=j[l]="@px";n.borderStyle[i]=n[m][i]=j[i]="@";n.borderColor[k]=n[m][k]=j[k]="rgb(@, @, @)";});})();(function(){Element.Properties.events={set:function(b){this.addEvents(b); -}};[Element,Window,Document].invoke("implement",{addEvent:function(f,h){var i=this.retrieve("events",{});if(!i[f]){i[f]={keys:[],values:[]};}if(i[f].keys.contains(h)){return this; -}i[f].keys.push(h);var g=f,b=Element.Events[f],d=h,j=this;if(b){if(b.onAdd){b.onAdd.call(this,h,f);}if(b.condition){d=function(k){if(b.condition.call(this,k,f)){return h.call(this,k); -}return true;};}if(b.base){g=Function.from(b.base).call(this,f);}}var e=function(){return h.call(j);};var c=Element.NativeEvents[g];if(c){if(c==2){e=function(k){k=new DOMEvent(k,j.getWindow()); -if(d.call(j,k)===false){k.stop();}};}this.addListener(g,e,arguments[2]);}i[f].values.push(e);return this;},removeEvent:function(e,d){var c=this.retrieve("events"); -if(!c||!c[e]){return this;}var h=c[e];var b=h.keys.indexOf(d);if(b==-1){return this;}var g=h.values[b];delete h.keys[b];delete h.values[b];var f=Element.Events[e]; -if(f){if(f.onRemove){f.onRemove.call(this,d,e);}if(f.base){e=Function.from(f.base).call(this,e);}}return(Element.NativeEvents[e])?this.removeListener(e,g,arguments[2]):this; -},addEvents:function(b){for(var c in b){this.addEvent(c,b[c]);}return this;},removeEvents:function(b){var d;if(typeOf(b)=="object"){for(d in b){this.removeEvent(d,b[d]); -}return this;}var c=this.retrieve("events");if(!c){return this;}if(!b){for(d in c){this.removeEvents(d);}this.eliminate("events");}else{if(c[b]){c[b].keys.each(function(e){this.removeEvent(b,e); -},this);delete c[b];}}return this;},fireEvent:function(e,c,b){var d=this.retrieve("events");if(!d||!d[e]){return this;}c=Array.from(c);d[e].keys.each(function(f){if(b){f.delay(b,this,c); -}else{f.apply(this,c);}},this);return this;},cloneEvents:function(e,d){e=document.id(e);var c=e.retrieve("events");if(!c){return this;}if(!d){for(var b in c){this.cloneEvents(e,b); -}}else{if(c[d]){c[d].keys.each(function(f){this.addEvent(d,f);},this);}}return this;}});Element.NativeEvents={click:2,dblclick:2,mouseup:2,mousedown:2,contextmenu:2,mousewheel:2,DOMMouseScroll:2,mouseover:2,mouseout:2,mousemove:2,selectstart:2,selectend:2,keydown:2,keypress:2,keyup:2,orientationchange:2,touchstart:2,touchmove:2,touchend:2,touchcancel:2,gesturestart:2,gesturechange:2,gestureend:2,focus:2,blur:2,change:2,reset:2,select:2,submit:2,paste:2,input:2,load:2,unload:1,beforeunload:2,resize:1,move:1,DOMContentLoaded:1,readystatechange:1,error:1,abort:1,scroll:1}; -var a=function(b){var c=b.relatedTarget;if(c==null){return true;}if(!c){return false;}return(c!=this&&c.prefix!="xul"&&typeOf(this)!="document"&&!this.contains(c)); -};Element.Events={mouseenter:{base:"mouseover",condition:a},mouseleave:{base:"mouseout",condition:a},mousewheel:{base:(Browser.firefox)?"DOMMouseScroll":"mousewheel"}}; -if(!window.addEventListener){Element.NativeEvents.propertychange=2;Element.Events.change={base:function(){var b=this.type;return(this.get("tag")=="input"&&(b=="radio"||b=="checkbox"))?"propertychange":"change"; -},condition:function(b){return !!(this.type!="radio"||this.checked);}};}})();(function(){var c=!!window.addEventListener;Element.NativeEvents.focusin=Element.NativeEvents.focusout=2; -var k=function(l,m,n,o,p){while(p&&p!=l){if(m(p,o)){return n.call(p,o,p);}p=document.id(p.parentNode);}};var a={mouseenter:{base:"mouseover"},mouseleave:{base:"mouseout"},focus:{base:"focus"+(c?"":"in"),capture:true},blur:{base:c?"blur":"focusout",capture:true}}; -var b="$delegation:";var i=function(l){return{base:"focusin",remove:function(m,o){var p=m.retrieve(b+l+"listeners",{})[o];if(p&&p.forms){for(var n=p.forms.length; -n--;){p.forms[n].removeEvent(l,p.fns[n]);}}},listen:function(x,r,v,n,t,s){var o=(t.get("tag")=="form")?t:n.target.getParent("form");if(!o){return;}var u=x.retrieve(b+l+"listeners",{}),p=u[s]||{forms:[],fns:[]},m=p.forms,w=p.fns; -if(m.indexOf(o)!=-1){return;}m.push(o);var q=function(y){k(x,r,v,y,t);};o.addEvent(l,q);w.push(q);u[s]=p;x.store(b+l+"listeners",u);}};};var d=function(l){return{base:"focusin",listen:function(m,n,p,q,r){var o={blur:function(){this.removeEvents(o); -}};o[l]=function(s){k(m,n,p,s,r);};q.target.addEvents(o);}};};if(!c){Object.append(a,{submit:i("submit"),reset:i("reset"),change:d("change"),select:d("select")}); -}var h=Element.prototype,f=h.addEvent,j=h.removeEvent;var e=function(l,m){return function(r,q,n){if(r.indexOf(":relay")==-1){return l.call(this,r,q,n); -}var o=Slick.parse(r).expressions[0][0];if(o.pseudos[0].key!="relay"){return l.call(this,r,q,n);}var p=o.tag;o.pseudos.slice(1).each(function(s){p+=":"+s.key+(s.value?"("+s.value+")":""); -});l.call(this,r,q);return m.call(this,p,o.pseudos[0].value,q);};};var g={addEvent:function(v,q,x){var t=this.retrieve("$delegates",{}),r=t[v];if(r){for(var y in r){if(r[y].fn==x&&r[y].match==q){return this; -}}}var p=v,u=q,o=x,n=a[v]||{};v=n.base||p;q=function(B){return Slick.match(B,u);};var w=Element.Events[p];if(w&&w.condition){var l=q,m=w.condition;q=function(C,B){return l(C,B)&&m.call(C,B,v); -};}var z=this,s=String.uniqueID();var A=n.listen?function(B,C){if(!C&&B&&B.target){C=B.target;}if(C){n.listen(z,q,x,B,C,s);}}:function(B,C){if(!C&&B&&B.target){C=B.target; -}if(C){k(z,q,x,B,C);}};if(!r){r={};}r[s]={match:u,fn:o,delegator:A};t[p]=r;return f.call(this,v,A,n.capture);},removeEvent:function(r,n,t,u){var q=this.retrieve("$delegates",{}),p=q[r]; -if(!p){return this;}if(u){var m=r,w=p[u].delegator,l=a[r]||{};r=l.base||m;if(l.remove){l.remove(this,u);}delete p[u];q[m]=p;return j.call(this,r,w);}var o,v; -if(t){for(o in p){v=p[o];if(v.match==n&&v.fn==t){return g.removeEvent.call(this,r,n,t,o);}}}else{for(o in p){v=p[o];if(v.match==n){g.removeEvent.call(this,r,n,v.fn,o); -}}}return this;}};[Element,Window,Document].invoke("implement",{addEvent:e(f,g.addEvent),removeEvent:e(j,g.removeEvent)});})();(function(){var h=document.createElement("div"),e=document.createElement("div"); -h.style.height="0";h.appendChild(e);var d=(e.offsetParent===h);h=e=null;var l=function(m){return k(m,"position")!="static"||a(m);};var i=function(m){return l(m)||(/^(?:table|td|th)$/i).test(m.tagName); -};Element.implement({scrollTo:function(m,n){if(a(this)){this.getWindow().scrollTo(m,n);}else{this.scrollLeft=m;this.scrollTop=n;}return this;},getSize:function(){if(a(this)){return this.getWindow().getSize(); -}return{x:this.offsetWidth,y:this.offsetHeight};},getScrollSize:function(){if(a(this)){return this.getWindow().getScrollSize();}return{x:this.scrollWidth,y:this.scrollHeight}; -},getScroll:function(){if(a(this)){return this.getWindow().getScroll();}return{x:this.scrollLeft,y:this.scrollTop};},getScrolls:function(){var n=this.parentNode,m={x:0,y:0}; -while(n&&!a(n)){m.x+=n.scrollLeft;m.y+=n.scrollTop;n=n.parentNode;}return m;},getOffsetParent:d?function(){var m=this;if(a(m)||k(m,"position")=="fixed"){return null; -}var n=(k(m,"position")=="static")?i:l;while((m=m.parentNode)){if(n(m)){return m;}}return null;}:function(){var m=this;if(a(m)||k(m,"position")=="fixed"){return null; -}try{return m.offsetParent;}catch(n){}return null;},getOffsets:function(){if(this.getBoundingClientRect&&!Browser.Platform.ios){var r=this.getBoundingClientRect(),o=document.id(this.getDocument().documentElement),q=o.getScroll(),t=this.getScrolls(),s=(k(this,"position")=="fixed"); -return{x:r.left.toInt()+t.x+((s)?0:q.x)-o.clientLeft,y:r.top.toInt()+t.y+((s)?0:q.y)-o.clientTop};}var n=this,m={x:0,y:0};if(a(this)){return m;}while(n&&!a(n)){m.x+=n.offsetLeft; -m.y+=n.offsetTop;if(Browser.firefox){if(!c(n)){m.x+=b(n);m.y+=g(n);}var p=n.parentNode;if(p&&k(p,"overflow")!="visible"){m.x+=b(p);m.y+=g(p);}}else{if(n!=this&&Browser.safari){m.x+=b(n); -m.y+=g(n);}}n=n.offsetParent;}if(Browser.firefox&&!c(this)){m.x-=b(this);m.y-=g(this);}return m;},getPosition:function(p){var q=this.getOffsets(),n=this.getScrolls(); -var m={x:q.x-n.x,y:q.y-n.y};if(p&&(p=document.id(p))){var o=p.getPosition();return{x:m.x-o.x-b(p),y:m.y-o.y-g(p)};}return m;},getCoordinates:function(o){if(a(this)){return this.getWindow().getCoordinates(); -}var m=this.getPosition(o),n=this.getSize();var p={left:m.x,top:m.y,width:n.x,height:n.y};p.right=p.left+p.width;p.bottom=p.top+p.height;return p;},computePosition:function(m){return{left:m.x-j(this,"margin-left"),top:m.y-j(this,"margin-top")}; -},setPosition:function(m){return this.setStyles(this.computePosition(m));}});[Document,Window].invoke("implement",{getSize:function(){var m=f(this);return{x:m.clientWidth,y:m.clientHeight}; -},getScroll:function(){var n=this.getWindow(),m=f(this);return{x:n.pageXOffset||m.scrollLeft,y:n.pageYOffset||m.scrollTop};},getScrollSize:function(){var o=f(this),n=this.getSize(),m=this.getDocument().body; -return{x:Math.max(o.scrollWidth,m.scrollWidth,n.x),y:Math.max(o.scrollHeight,m.scrollHeight,n.y)};},getPosition:function(){return{x:0,y:0};},getCoordinates:function(){var m=this.getSize(); -return{top:0,left:0,bottom:m.y,right:m.x,height:m.y,width:m.x};}});var k=Element.getComputedStyle;function j(m,n){return k(m,n).toInt()||0;}function c(m){return k(m,"-moz-box-sizing")=="border-box"; -}function g(m){return j(m,"border-top-width");}function b(m){return j(m,"border-left-width");}function a(m){return(/^(?:body|html)$/i).test(m.tagName); -}function f(m){var n=m.getDocument();return(!n.compatMode||n.compatMode=="CSS1Compat")?n.html:n.body;}})();Element.alias({position:"setPosition"});[Window,Document,Element].invoke("implement",{getHeight:function(){return this.getSize().y; -},getWidth:function(){return this.getSize().x;},getScrollTop:function(){return this.getScroll().y;},getScrollLeft:function(){return this.getScroll().x; -},getScrollHeight:function(){return this.getScrollSize().y;},getScrollWidth:function(){return this.getScrollSize().x;},getTop:function(){return this.getPosition().y; -},getLeft:function(){return this.getPosition().x;}});(function(){var f=this.Fx=new Class({Implements:[Chain,Events,Options],options:{fps:60,unit:false,duration:500,frames:null,frameSkip:true,link:"ignore"},initialize:function(g){this.subject=this.subject||this; -this.setOptions(g);},getTransition:function(){return function(g){return -(Math.cos(Math.PI*g)-1)/2;};},step:function(g){if(this.options.frameSkip){var h=(this.time!=null)?(g-this.time):0,i=h/this.frameInterval; -this.time=g;this.frame+=i;}else{this.frame++;}if(this.frame=(7-4*d)/11){e=c*c-Math.pow((11-6*d-11*f)/4,2);break;}}return e; -},Elastic:function(b,a){return Math.pow(2,10*--b)*Math.cos(20*b*Math.PI*(a&&a[0]||1)/3);}});["Quad","Cubic","Quart","Quint"].each(function(b,a){Fx.Transitions[b]=new Fx.Transition(function(c){return Math.pow(c,a+2); -});});(function(){var d=function(){},a=("onprogress" in new Browser.Request);var c=this.Request=new Class({Implements:[Chain,Events,Options],options:{url:"",data:"",headers:{"X-Requested-With":"XMLHttpRequest",Accept:"text/javascript, text/html, application/xml, text/xml, */*"},async:true,format:false,method:"post",link:"ignore",isSuccess:null,emulation:true,urlEncoded:true,encoding:"utf-8",evalScripts:false,evalResponse:false,timeout:0,noCache:false},initialize:function(e){this.xhr=new Browser.Request(); -this.setOptions(e);this.headers=this.options.headers;},onStateChange:function(){var e=this.xhr;if(e.readyState!=4||!this.running){return;}this.running=false; -this.status=0;Function.attempt(function(){var f=e.status;this.status=(f==1223)?204:f;}.bind(this));e.onreadystatechange=d;if(a){e.onprogress=e.onloadstart=d; -}clearTimeout(this.timer);this.response={text:this.xhr.responseText||"",xml:this.xhr.responseXML};if(this.options.isSuccess.call(this,this.status)){this.success(this.response.text,this.response.xml); -}else{this.failure();}},isSuccess:function(){var e=this.status;return(e>=200&&e<300);},isRunning:function(){return !!this.running;},processScripts:function(e){if(this.options.evalResponse||(/(ecma|java)script/).test(this.getHeader("Content-type"))){return Browser.exec(e); -}return e.stripScripts(this.options.evalScripts);},success:function(f,e){this.onSuccess(this.processScripts(f),e);},onSuccess:function(){this.fireEvent("complete",arguments).fireEvent("success",arguments).callChain(); -},failure:function(){this.onFailure();},onFailure:function(){this.fireEvent("complete").fireEvent("failure",this.xhr);},loadstart:function(e){this.fireEvent("loadstart",[e,this.xhr]); -},progress:function(e){this.fireEvent("progress",[e,this.xhr]);},timeout:function(){this.fireEvent("timeout",this.xhr);},setHeader:function(e,f){this.headers[e]=f; -return this;},getHeader:function(e){return Function.attempt(function(){return this.xhr.getResponseHeader(e);}.bind(this));},check:function(){if(!this.running){return true; -}switch(this.options.link){case"cancel":this.cancel();return true;case"chain":this.chain(this.caller.pass(arguments,this));return false;}return false;},send:function(o){if(!this.check(o)){return this; -}this.options.isSuccess=this.options.isSuccess||this.isSuccess;this.running=true;var l=typeOf(o);if(l=="string"||l=="element"){o={data:o};}var h=this.options; -o=Object.append({data:h.data,url:h.url,method:h.method},o);var j=o.data,f=String(o.url),e=o.method.toLowerCase();switch(typeOf(j)){case"element":j=document.id(j).toQueryString(); -break;case"object":case"hash":j=Object.toQueryString(j);}if(this.options.format){var m="format="+this.options.format;j=(j)?m+"&"+j:m;}if(this.options.emulation&&!["get","post"].contains(e)){var k="_method="+e; -j=(j)?k+"&"+j:k;e="post";}if(this.options.urlEncoded&&["post","put"].contains(e)){var g=(this.options.encoding)?"; charset="+this.options.encoding:"";this.headers["Content-type"]="application/x-www-form-urlencoded"+g; -}if(!f){f=document.location.pathname;}var i=f.lastIndexOf("/");if(i>-1&&(i=f.indexOf("#"))>-1){f=f.substr(0,i);}if(this.options.noCache){f+=(f.contains("?")?"&":"?")+String.uniqueID(); -}if(j&&e=="get"){f+=(f.contains("?")?"&":"?")+j;j=null;}var n=this.xhr;if(a){n.onloadstart=this.loadstart.bind(this);n.onprogress=this.progress.bind(this); -}n.open(e.toUpperCase(),f,this.options.async,this.options.user,this.options.password);if(this.options.user&&"withCredentials" in n){n.withCredentials=true; -}n.onreadystatechange=this.onStateChange.bind(this);Object.each(this.headers,function(q,p){try{n.setRequestHeader(p,q);}catch(r){this.fireEvent("exception",[p,q]); -}},this);this.fireEvent("request");n.send(j);if(!this.options.async){this.onStateChange();}if(this.options.timeout){this.timer=this.timeout.delay(this.options.timeout,this); -}return this;},cancel:function(){if(!this.running){return this;}this.running=false;var e=this.xhr;e.abort();clearTimeout(this.timer);e.onreadystatechange=d; -if(a){e.onprogress=e.onloadstart=d;}this.xhr=new Browser.Request();this.fireEvent("cancel");return this;}});var b={};["get","post","put","delete","GET","POST","PUT","DELETE"].each(function(e){b[e]=function(g){var f={method:e}; -if(g!=null){f.data=g;}return this.send(f);};});c.implement(b);Element.Properties.send={set:function(e){var f=this.get("send").cancel();f.setOptions(e); -return this;},get:function(){var e=this.retrieve("send");if(!e){e=new c({data:this,link:"cancel",method:this.get("method")||"post",url:this.get("action")}); -this.store("send",e);}return e;}};Element.implement({send:function(e){var f=this.get("send");f.send({data:this,url:e||f.options.url});return this;}});})(); -Request.HTML=new Class({Extends:Request,options:{update:false,append:false,evalScripts:true,filter:false,headers:{Accept:"text/html, application/xml, text/xml, */*"}},success:function(f){var e=this.options,c=this.response; -c.html=f.stripScripts(function(h){c.javascript=h;});var d=c.html.match(/]*>([\s\S]*?)<\/body>/i);if(d){c.html=d[1];}var b=new Element("div").set("html",c.html); -c.tree=b.childNodes;c.elements=b.getElements(e.filter||"*");if(e.filter){c.tree=c.elements;}if(e.update){var g=document.id(e.update).empty();if(e.filter){g.adopt(c.elements); -}else{g.set("html",c.html);}}else{if(e.append){var a=document.id(e.append);if(e.filter){c.elements.reverse().inject(a);}else{a.adopt(b.getChildren());}}}if(e.evalScripts){Browser.exec(c.javascript); -}this.onSuccess(c.tree,c.elements,c.html,c.javascript);}});Element.Properties.load={set:function(a){var b=this.get("load").cancel();b.setOptions(a);return this; -},get:function(){var a=this.retrieve("load");if(!a){a=new Request.HTML({data:this,link:"cancel",update:this,method:"get"});this.store("load",a);}return a; -}};Element.implement({load:function(){this.get("load").send(Array.link(arguments,{data:Type.isObject,url:Type.isString}));return this;}});if(typeof JSON=="undefined"){this.JSON={}; -}(function(){var special={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};var escape=function(chr){return special[chr]||"\\u"+("0000"+chr.charCodeAt(0).toString(16)).slice(-4); -};JSON.validate=function(string){string=string.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""); -return(/^[\],:{}\s]*$/).test(string);};JSON.encode=JSON.stringify?function(obj){return JSON.stringify(obj);}:function(obj){if(obj&&obj.toJSON){obj=obj.toJSON(); -}switch(typeOf(obj)){case"string":return'"'+obj.replace(/[\x00-\x1f\\"]/g,escape)+'"';case"array":return"["+obj.map(JSON.encode).clean()+"]";case"object":case"hash":var string=[]; -Object.each(obj,function(value,key){var json=JSON.encode(value);if(json){string.push(JSON.encode(key)+":"+json);}});return"{"+string+"}";case"number":case"boolean":return""+obj; -case"null":return"null";}return null;};JSON.decode=function(string,secure){if(!string||typeOf(string)!="string"){return null;}if(secure||JSON.secure){if(JSON.parse){return JSON.parse(string); -}if(!JSON.validate(string)){throw new Error("JSON could not decode the input; security is enabled and the value is not secure.");}}return eval("("+string+")"); -};})();Request.JSON=new Class({Extends:Request,options:{secure:true},initialize:function(a){this.parent(a);Object.append(this.headers,{Accept:"application/json","X-Request":"JSON"}); -},success:function(c){var b;try{b=this.response.json=JSON.decode(c,this.options.secure);}catch(a){this.fireEvent("error",[c,a]);return;}if(b==null){this.onFailure(); -}else{this.onSuccess(b,c);}}});var Cookie=new Class({Implements:Options,options:{path:"/",domain:false,duration:false,secure:false,document:document,encode:true},initialize:function(b,a){this.key=b; -this.setOptions(a);},write:function(b){if(this.options.encode){b=encodeURIComponent(b);}if(this.options.domain){b+="; domain="+this.options.domain;}if(this.options.path){b+="; path="+this.options.path; -}if(this.options.duration){var a=new Date();a.setTime(a.getTime()+this.options.duration*24*60*60*1000);b+="; expires="+a.toGMTString();}if(this.options.secure){b+="; secure"; -}this.options.document.cookie=this.key+"="+b;return this;},read:function(){var a=this.options.document.cookie.match("(?:^|;)\\s*"+this.key.escapeRegExp()+"=([^;]*)"); -return(a)?decodeURIComponent(a[1]):null;},dispose:function(){new Cookie(this.key,Object.merge({},this.options,{duration:-1})).write("");return this;}}); -Cookie.write=function(b,c,a){return new Cookie(b,a).write(c);};Cookie.read=function(a){return new Cookie(a).read();};Cookie.dispose=function(b,a){return new Cookie(b,a).dispose(); -};(function(i,k){var l,f,e=[],c,b,d=k.createElement("div");var g=function(){clearTimeout(b);if(l){return;}Browser.loaded=l=true;k.removeListener("DOMContentLoaded",g).removeListener("readystatechange",a); -k.fireEvent("domready");i.fireEvent("domready");};var a=function(){for(var m=e.length;m--;){if(e[m]()){g();return true;}}return false;};var j=function(){clearTimeout(b); -if(!a()){b=setTimeout(j,10);}};k.addListener("DOMContentLoaded",g);var h=function(){try{d.doScroll();return true;}catch(m){}return false;};if(d.doScroll&&!h()){e.push(h); -c=true;}if(k.readyState){e.push(function(){var m=k.readyState;return(m=="loaded"||m=="complete");});}if("onreadystatechange" in k){k.addListener("readystatechange",a); -}else{c=true;}if(c){j();}Element.Events.domready={onAdd:function(m){if(l){m.call(this);}}};Element.Events.load={base:"load",onAdd:function(m){if(f&&this==i){m.call(this); -}},condition:function(){if(this==i){g();delete Element.Events.load;}return true;}};i.addEvent("load",function(){f=true;});})(window,document);(function(){var Swiff=this.Swiff=new Class({Implements:Options,options:{id:null,height:1,width:1,container:null,properties:{},params:{quality:"high",allowScriptAccess:"always",wMode:"window",swLiveConnect:true},callBacks:{},vars:{}},toElement:function(){return this.object; -},initialize:function(path,options){this.instance="Swiff_"+String.uniqueID();this.setOptions(options);options=this.options;var id=this.id=options.id||this.instance; -var container=document.id(options.container);Swiff.CallBacks[this.instance]={};var params=options.params,vars=options.vars,callBacks=options.callBacks; -var properties=Object.append({height:options.height,width:options.width},options.properties);var self=this;for(var callBack in callBacks){Swiff.CallBacks[this.instance][callBack]=(function(option){return function(){return option.apply(self.object,arguments); -};})(callBacks[callBack]);vars[callBack]="Swiff.CallBacks."+this.instance+"."+callBack;}params.flashVars=Object.toQueryString(vars);if(Browser.ie){properties.classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"; -params.movie=path;}else{properties.type="application/x-shockwave-flash";}properties.data=path;var build='';}}build+="";this.object=((container)?container.empty():new Element("div")).set("html",build).firstChild; -},replaces:function(element){element=document.id(element,true);element.parentNode.replaceChild(this.toElement(),element);return this;},inject:function(element){document.id(element,true).appendChild(this.toElement()); -return this;},remote:function(){return Swiff.remote.apply(Swiff,[this.toElement()].append(arguments));}});Swiff.CallBacks={};Swiff.remote=function(obj,fn){var rs=obj.CallFunction(''+__flash__argumentsToXML(arguments,2)+""); -return eval(rs);};})(); \ No newline at end of file diff --git a/module/web/media/js/mootools-more-1.4.0.1.js b/module/web/media/js/mootools-more-1.4.0.1.js deleted file mode 100644 index f3f8e4ee1..000000000 --- a/module/web/media/js/mootools-more-1.4.0.1.js +++ /dev/null @@ -1,216 +0,0 @@ -// MooTools: the javascript framework. -// Load this file's selection again by visiting: http://mootools.net/more/c1cc18c2fff04bcc58921b4dff80a6f1 -// Or build this file again with packager using: packager build More/Form.Request More/Fx.Reveal More/Sortables More/Request.Periodical More/Color -/* ---- -copyrights: - - [MooTools](http://mootools.net) - -licenses: - - [MIT License](http://mootools.net/license.txt) -... -*/ -MooTools.More={version:"1.4.0.1",build:"a4244edf2aa97ac8a196fc96082dd35af1abab87"};Class.Mutators.Binds=function(a){if(!this.prototype.initialize){this.implement("initialize",function(){}); -}return Array.from(a).concat(this.prototype.Binds||[]);};Class.Mutators.initialize=function(a){return function(){Array.from(this.Binds).each(function(b){var c=this[b]; -if(c){this[b]=c.bind(this);}},this);return a.apply(this,arguments);};};Class.Occlude=new Class({occlude:function(c,b){b=document.id(b||this.element);var a=b.retrieve(c||this.property); -if(a&&!this.occluded){return(this.occluded=a);}this.occluded=false;b.store(c||this.property,this);return this.occluded;}});Class.refactor=function(b,a){Object.each(a,function(e,d){var c=b.prototype[d]; -c=(c&&c.$origin)||c||function(){};b.implement(d,(typeof e=="function")?function(){var f=this.previous;this.previous=c;var g=e.apply(this,arguments);this.previous=f; -return g;}:e);});return b;};(function(){var b=function(e,d){var f=[];Object.each(d,function(g){Object.each(g,function(h){e.each(function(i){f.push(i+"-"+h+(i=="border"?"-width":"")); -});});});return f;};var c=function(f,e){var d=0;Object.each(e,function(h,g){if(g.test(f)){d=d+h.toInt();}});return d;};var a=function(d){return !!(!d||d.offsetHeight||d.offsetWidth); -};Element.implement({measure:function(h){if(a(this)){return h.call(this);}var g=this.getParent(),e=[];while(!a(g)&&g!=document.body){e.push(g.expose()); -g=g.getParent();}var f=this.expose(),d=h.call(this);f();e.each(function(i){i();});return d;},expose:function(){if(this.getStyle("display")!="none"){return function(){}; -}var d=this.style.cssText;this.setStyles({display:"block",position:"absolute",visibility:"hidden"});return function(){this.style.cssText=d;}.bind(this); -},getDimensions:function(d){d=Object.merge({computeSize:false},d);var i={x:0,y:0};var h=function(j,e){return(e.computeSize)?j.getComputedSize(e):j.getSize(); -};var f=this.getParent("body");if(f&&this.getStyle("display")=="none"){i=this.measure(function(){return h(this,d);});}else{if(f){try{i=h(this,d);}catch(g){}}}return Object.append(i,(i.x||i.x===0)?{width:i.x,height:i.y}:{x:i.width,y:i.height}); -},getComputedSize:function(d){d=Object.merge({styles:["padding","border"],planes:{height:["top","bottom"],width:["left","right"]},mode:"both"},d);var g={},e={width:0,height:0},f; -if(d.mode=="vertical"){delete e.width;delete d.planes.width;}else{if(d.mode=="horizontal"){delete e.height;delete d.planes.height;}}b(d.styles,d.planes).each(function(h){g[h]=this.getStyle(h).toInt(); -},this);Object.each(d.planes,function(i,h){var k=h.capitalize(),j=this.getStyle(h);if(j=="auto"&&!f){f=this.getDimensions();}j=g[h]=(j=="auto")?f[h]:j.toInt(); -e["total"+k]=j;i.each(function(m){var l=c(m,g);e["computed"+m.capitalize()]=l;e["total"+k]+=l;});},this);return Object.append(e,g);}});})();(function(b){var a=Element.Position={options:{relativeTo:document.body,position:{x:"center",y:"center"},offset:{x:0,y:0}},getOptions:function(d,c){c=Object.merge({},a.options,c); -a.setPositionOption(c);a.setEdgeOption(c);a.setOffsetOption(d,c);a.setDimensionsOption(d,c);return c;},setPositionOption:function(c){c.position=a.getCoordinateFromValue(c.position); -},setEdgeOption:function(d){var c=a.getCoordinateFromValue(d.edge);d.edge=c?c:(d.position.x=="center"&&d.position.y=="center")?{x:"center",y:"center"}:{x:"left",y:"top"}; -},setOffsetOption:function(f,d){var c={x:0,y:0},g=f.measure(function(){return document.id(this.getOffsetParent());}),e=g.getScroll();if(!g||g==f.getDocument().body){return; -}c=g.measure(function(){var i=this.getPosition();if(this.getStyle("position")=="fixed"){var h=window.getScroll();i.x+=h.x;i.y+=h.y;}return i;});d.offset={parentPositioned:g!=document.id(d.relativeTo),x:d.offset.x-c.x+e.x,y:d.offset.y-c.y+e.y}; -},setDimensionsOption:function(d,c){c.dimensions=d.getDimensions({computeSize:true,styles:["padding","border","margin"]});},getPosition:function(e,d){var c={}; -d=a.getOptions(e,d);var f=document.id(d.relativeTo)||document.body;a.setPositionCoordinates(d,c,f);if(d.edge){a.toEdge(c,d);}var g=d.offset;c.left=((c.x>=0||g.parentPositioned||d.allowNegative)?c.x:0).toInt(); -c.top=((c.y>=0||g.parentPositioned||d.allowNegative)?c.y:0).toInt();a.toMinMax(c,d);if(d.relFixedPosition||f.getStyle("position")=="fixed"){a.toRelFixedPosition(f,c); -}if(d.ignoreScroll){a.toIgnoreScroll(f,c);}if(d.ignoreMargins){a.toIgnoreMargins(c,d);}c.left=Math.ceil(c.left);c.top=Math.ceil(c.top);delete c.x;delete c.y; -return c;},setPositionCoordinates:function(k,g,d){var f=k.offset.y,h=k.offset.x,e=(d==document.body)?window.getScroll():d.getPosition(),j=e.y,c=e.x,i=window.getSize(); -switch(k.position.x){case"left":g.x=c+h;break;case"right":g.x=c+h+d.offsetWidth;break;default:g.x=c+((d==document.body?i.x:d.offsetWidth)/2)+h;break;}switch(k.position.y){case"top":g.y=j+f; -break;case"bottom":g.y=j+f+d.offsetHeight;break;default:g.y=j+((d==document.body?i.y:d.offsetHeight)/2)+f;break;}},toMinMax:function(c,d){var f={left:"x",top:"y"},e; -["minimum","maximum"].each(function(g){["left","top"].each(function(h){e=d[g]?d[g][f[h]]:null;if(e!=null&&((g=="minimum")?c[h]e)){c[h]=e;}});}); -},toRelFixedPosition:function(e,c){var d=window.getScroll();c.top+=d.y;c.left+=d.x;},toIgnoreScroll:function(e,d){var c=e.getScroll();d.top-=c.y;d.left-=c.x; -},toIgnoreMargins:function(c,d){c.left+=d.edge.x=="right"?d.dimensions["margin-right"]:(d.edge.x!="center"?-d.dimensions["margin-left"]:-d.dimensions["margin-left"]+((d.dimensions["margin-right"]+d.dimensions["margin-left"])/2)); -c.top+=d.edge.y=="bottom"?d.dimensions["margin-bottom"]:(d.edge.y!="center"?-d.dimensions["margin-top"]:-d.dimensions["margin-top"]+((d.dimensions["margin-bottom"]+d.dimensions["margin-top"])/2)); -},toEdge:function(c,d){var e={},g=d.dimensions,f=d.edge;switch(f.x){case"left":e.x=0;break;case"right":e.x=-g.x-g.computedRight-g.computedLeft;break;default:e.x=-(Math.round(g.totalWidth/2)); -break;}switch(f.y){case"top":e.y=0;break;case"bottom":e.y=-g.y-g.computedTop-g.computedBottom;break;default:e.y=-(Math.round(g.totalHeight/2));break;}c.x+=e.x; -c.y+=e.y;},getCoordinateFromValue:function(c){if(typeOf(c)!="string"){return c;}c=c.toLowerCase();return{x:c.test("left")?"left":(c.test("right")?"right":"center"),y:c.test(/upper|top/)?"top":(c.test("bottom")?"bottom":"center")}; -}};Element.implement({position:function(d){if(d&&(d.x!=null||d.y!=null)){return(b?b.apply(this,arguments):this);}var c=this.setStyle("position","absolute").calculatePosition(d); -return(d&&d.returnPos)?c:this.setStyles(c);},calculatePosition:function(c){return a.getPosition(this,c);}});})(Element.prototype.position);var IframeShim=new Class({Implements:[Options,Events,Class.Occlude],options:{className:"iframeShim",src:'javascript:false;document.write("");',display:false,zIndex:null,margin:0,offset:{x:0,y:0},browsers:(Browser.ie6||(Browser.firefox&&Browser.version<3&&Browser.Platform.mac))},property:"IframeShim",initialize:function(b,a){this.element=document.id(b); -if(this.occlude()){return this.occluded;}this.setOptions(a);this.makeShim();return this;},makeShim:function(){if(this.options.browsers){var c=this.element.getStyle("zIndex").toInt(); -if(!c){c=1;var b=this.element.getStyle("position");if(b=="static"||!b){this.element.setStyle("position","relative");}this.element.setStyle("zIndex",c); -}c=((this.options.zIndex!=null||this.options.zIndex===0)&&c>this.options.zIndex)?this.options.zIndex:c-1;if(c<0){c=1;}this.shim=new Element("iframe",{src:this.options.src,scrolling:"no",frameborder:0,styles:{zIndex:c,position:"absolute",border:"none",filter:"progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)"},"class":this.options.className}).store("IframeShim",this); -var a=(function(){this.shim.inject(this.element,"after");this[this.options.display?"show":"hide"]();this.fireEvent("inject");}).bind(this);if(!IframeShim.ready){window.addEvent("load",a); -}else{a();}}else{this.position=this.hide=this.show=this.dispose=Function.from(this);}},position:function(){if(!IframeShim.ready||!this.shim){return this; -}var a=this.element.measure(function(){return this.getSize();});if(this.options.margin!=undefined){a.x=a.x-(this.options.margin*2);a.y=a.y-(this.options.margin*2); -this.options.offset.x+=this.options.margin;this.options.offset.y+=this.options.margin;}this.shim.set({width:a.x,height:a.y}).position({relativeTo:this.element,offset:this.options.offset}); -return this;},hide:function(){if(this.shim){this.shim.setStyle("display","none");}return this;},show:function(){if(this.shim){this.shim.setStyle("display","block"); -}return this.position();},dispose:function(){if(this.shim){this.shim.dispose();}return this;},destroy:function(){if(this.shim){this.shim.destroy();}return this; -}});window.addEvent("load",function(){IframeShim.ready=true;});var Mask=new Class({Implements:[Options,Events],Binds:["position"],options:{style:{},"class":"mask",maskMargins:false,useIframeShim:true,iframeShimOptions:{}},initialize:function(b,a){this.target=document.id(b)||document.id(document.body); -this.target.store("mask",this);this.setOptions(a);this.render();this.inject();},render:function(){this.element=new Element("div",{"class":this.options["class"],id:this.options.id||"mask-"+String.uniqueID(),styles:Object.merge({},this.options.style,{display:"none"}),events:{click:function(a){this.fireEvent("click",a); -if(this.options.hideOnClick){this.hide();}}.bind(this)}});this.hidden=true;},toElement:function(){return this.element;},inject:function(b,a){a=a||(this.options.inject?this.options.inject.where:"")||this.target==document.body?"inside":"after"; -b=b||(this.options.inject&&this.options.inject.target)||this.target;this.element.inject(b,a);if(this.options.useIframeShim){this.shim=new IframeShim(this.element,this.options.iframeShimOptions); -this.addEvents({show:this.shim.show.bind(this.shim),hide:this.shim.hide.bind(this.shim),destroy:this.shim.destroy.bind(this.shim)});}},position:function(){this.resize(this.options.width,this.options.height); -this.element.position({relativeTo:this.target,position:"topLeft",ignoreMargins:!this.options.maskMargins,ignoreScroll:this.target==document.body});return this; -},resize:function(a,e){var b={styles:["padding","border"]};if(this.options.maskMargins){b.styles.push("margin");}var d=this.target.getComputedSize(b);if(this.target==document.body){this.element.setStyles({width:0,height:0}); -var c=window.getScrollSize();if(d.totalHeight0&&b>0)?true:this.style.display!="none";},toggle:function(){return this[this.isDisplayed()?"hide":"show"](); -},hide:function(){var b;try{b=this.getStyle("display");}catch(a){}if(b=="none"){return this;}return this.store("element:_originalDisplay",b||"").setStyle("display","none"); -},show:function(a){if(!a&&this.isDisplayed()){return this;}a=a||this.retrieve("element:_originalDisplay")||"block";return this.setStyle("display",(a=="none")?"block":a); -},swapClass:function(a,b){return this.removeClass(a).addClass(b);}});Document.implement({clearSelection:function(){if(window.getSelection){var a=window.getSelection(); -if(a&&a.removeAllRanges){a.removeAllRanges();}}else{if(document.selection&&document.selection.empty){try{document.selection.empty();}catch(b){}}}}});(function(){var a=function(d){var b=d.options.hideInputs; -if(window.OverText){var c=[null];OverText.each(function(e){c.include("."+e.options.labelClass);});if(c){b+=c.join(", ");}}return(b)?d.element.getElements(b):null; -};Fx.Reveal=new Class({Extends:Fx.Morph,options:{link:"cancel",styles:["padding","border","margin"],transitionOpacity:!Browser.ie6,mode:"vertical",display:function(){return this.element.get("tag")!="tr"?"block":"table-row"; -},opacity:1,hideInputs:Browser.ie?"select, input, textarea, object, embed":null},dissolve:function(){if(!this.hiding&&!this.showing){if(this.element.getStyle("display")!="none"){this.hiding=true; -this.showing=false;this.hidden=true;this.cssText=this.element.style.cssText;var d=this.element.getComputedSize({styles:this.options.styles,mode:this.options.mode}); -if(this.options.transitionOpacity){d.opacity=this.options.opacity;}var c={};Object.each(d,function(f,e){c[e]=[f,0];});this.element.setStyles({display:Function.from(this.options.display).call(this),overflow:"hidden"}); -var b=a(this);if(b){b.setStyle("visibility","hidden");}this.$chain.unshift(function(){if(this.hidden){this.hiding=false;this.element.style.cssText=this.cssText; -this.element.setStyle("display","none");if(b){b.setStyle("visibility","visible");}}this.fireEvent("hide",this.element);this.callChain();}.bind(this));this.start(c); -}else{this.callChain.delay(10,this);this.fireEvent("complete",this.element);this.fireEvent("hide",this.element);}}else{if(this.options.link=="chain"){this.chain(this.dissolve.bind(this)); -}else{if(this.options.link=="cancel"&&!this.hiding){this.cancel();this.dissolve();}}}return this;},reveal:function(){if(!this.showing&&!this.hiding){if(this.element.getStyle("display")=="none"){this.hiding=false; -this.showing=true;this.hidden=false;this.cssText=this.element.style.cssText;var d;this.element.measure(function(){d=this.element.getComputedSize({styles:this.options.styles,mode:this.options.mode}); -}.bind(this));if(this.options.heightOverride!=null){d.height=this.options.heightOverride.toInt();}if(this.options.widthOverride!=null){d.width=this.options.widthOverride.toInt(); -}if(this.options.transitionOpacity){this.element.setStyle("opacity",0);d.opacity=this.options.opacity;}var c={height:0,display:Function.from(this.options.display).call(this)}; -Object.each(d,function(f,e){c[e]=0;});c.overflow="hidden";this.element.setStyles(c);var b=a(this);if(b){b.setStyle("visibility","hidden");}this.$chain.unshift(function(){this.element.style.cssText=this.cssText; -this.element.setStyle("display",Function.from(this.options.display).call(this));if(!this.hidden){this.showing=false;}if(b){b.setStyle("visibility","visible"); -}this.callChain();this.fireEvent("show",this.element);}.bind(this));this.start(d);}else{this.callChain();this.fireEvent("complete",this.element);this.fireEvent("show",this.element); -}}else{if(this.options.link=="chain"){this.chain(this.reveal.bind(this));}else{if(this.options.link=="cancel"&&!this.showing){this.cancel();this.reveal(); -}}}return this;},toggle:function(){if(this.element.getStyle("display")=="none"){this.reveal();}else{this.dissolve();}return this;},cancel:function(){this.parent.apply(this,arguments); -if(this.cssText!=null){this.element.style.cssText=this.cssText;}this.hiding=false;this.showing=false;return this;}});Element.Properties.reveal={set:function(b){this.get("reveal").cancel().setOptions(b); -return this;},get:function(){var b=this.retrieve("reveal");if(!b){b=new Fx.Reveal(this);this.store("reveal",b);}return b;}};Element.Properties.dissolve=Element.Properties.reveal; -Element.implement({reveal:function(b){this.get("reveal").setOptions(b).reveal();return this;},dissolve:function(b){this.get("reveal").setOptions(b).dissolve(); -return this;},nix:function(b){var c=Array.link(arguments,{destroy:Type.isBoolean,options:Type.isObject});this.get("reveal").setOptions(b).dissolve().chain(function(){this[c.destroy?"destroy":"dispose"](); -}.bind(this));return this;},wink:function(){var c=Array.link(arguments,{duration:Type.isNumber,options:Type.isObject});var b=this.get("reveal").setOptions(c.options); -b.reveal().chain(function(){(function(){b.dissolve();}).delay(c.duration||2000);});}});})();var Drag=new Class({Implements:[Events,Options],options:{snap:6,unit:"px",grid:false,style:true,limit:false,handle:false,invert:false,preventDefault:false,stopPropagation:false,modifiers:{x:"left",y:"top"}},initialize:function(){var b=Array.link(arguments,{options:Type.isObject,element:function(c){return c!=null; -}});this.element=document.id(b.element);this.document=this.element.getDocument();this.setOptions(b.options||{});var a=typeOf(this.options.handle);this.handles=((a=="array"||a=="collection")?$$(this.options.handle):document.id(this.options.handle))||this.element; -this.mouse={now:{},pos:{}};this.value={start:{},now:{}};this.selection=(Browser.ie)?"selectstart":"mousedown";if(Browser.ie&&!Drag.ondragstartFixed){document.ondragstart=Function.from(false); -Drag.ondragstartFixed=true;}this.bound={start:this.start.bind(this),check:this.check.bind(this),drag:this.drag.bind(this),stop:this.stop.bind(this),cancel:this.cancel.bind(this),eventStop:Function.from(false)}; -this.attach();},attach:function(){this.handles.addEvent("mousedown",this.bound.start);return this;},detach:function(){this.handles.removeEvent("mousedown",this.bound.start); -return this;},start:function(a){var j=this.options;if(a.rightClick){return;}if(j.preventDefault){a.preventDefault();}if(j.stopPropagation){a.stopPropagation(); -}this.mouse.start=a.page;this.fireEvent("beforeStart",this.element);var c=j.limit;this.limit={x:[],y:[]};var e,g;for(e in j.modifiers){if(!j.modifiers[e]){continue; -}var b=this.element.getStyle(j.modifiers[e]);if(b&&!b.match(/px$/)){if(!g){g=this.element.getCoordinates(this.element.getOffsetParent());}b=g[j.modifiers[e]]; -}if(j.style){this.value.now[e]=(b||0).toInt();}else{this.value.now[e]=this.element[j.modifiers[e]];}if(j.invert){this.value.now[e]*=-1;}this.mouse.pos[e]=a.page[e]-this.value.now[e]; -if(c&&c[e]){var d=2;while(d--){var f=c[e][d];if(f||f===0){this.limit[e][d]=(typeof f=="function")?f():f;}}}}if(typeOf(this.options.grid)=="number"){this.options.grid={x:this.options.grid,y:this.options.grid}; -}var h={mousemove:this.bound.check,mouseup:this.bound.cancel};h[this.selection]=this.bound.eventStop;this.document.addEvents(h);},check:function(a){if(this.options.preventDefault){a.preventDefault(); -}var b=Math.round(Math.sqrt(Math.pow(a.page.x-this.mouse.start.x,2)+Math.pow(a.page.y-this.mouse.start.y,2)));if(b>this.options.snap){this.cancel();this.document.addEvents({mousemove:this.bound.drag,mouseup:this.bound.stop}); -this.fireEvent("start",[this.element,a]).fireEvent("snap",this.element);}},drag:function(b){var a=this.options;if(a.preventDefault){b.preventDefault(); -}this.mouse.now=b.page;for(var c in a.modifiers){if(!a.modifiers[c]){continue;}this.value.now[c]=this.mouse.now[c]-this.mouse.pos[c];if(a.invert){this.value.now[c]*=-1; -}if(a.limit&&this.limit[c]){if((this.limit[c][1]||this.limit[c][1]===0)&&(this.value.now[c]>this.limit[c][1])){this.value.now[c]=this.limit[c][1];}else{if((this.limit[c][0]||this.limit[c][0]===0)&&(this.value.now[c]d.left&&b.xd.top);},this).getLast();if(this.overed!=a){if(this.overed){this.fireEvent("leave",[this.element,this.overed]); -}if(a){this.fireEvent("enter",[this.element,a]);}this.overed=a;}},drag:function(a){this.parent(a);if(this.options.checkDroppables&&this.droppables.length){this.checkDroppables(); -}},stop:function(a){this.checkDroppables();this.fireEvent("drop",[this.element,this.overed,a]);this.overed=null;return this.parent(a);}});Element.implement({makeDraggable:function(a){var b=new Drag.Move(this,a); -this.store("dragger",b);return b;}});var Sortables=new Class({Implements:[Events,Options],options:{opacity:1,clone:false,revert:false,handle:false,dragOptions:{}},initialize:function(a,b){this.setOptions(b); -this.elements=[];this.lists=[];this.idle=true;this.addLists($$(document.id(a)||a));if(!this.options.clone){this.options.revert=false;}if(this.options.revert){this.effect=new Fx.Morph(null,Object.merge({duration:250,link:"cancel"},this.options.revert)); -}},attach:function(){this.addLists(this.lists);return this;},detach:function(){this.lists=this.removeLists(this.lists);return this;},addItems:function(){Array.flatten(arguments).each(function(a){this.elements.push(a); -var b=a.retrieve("sortables:start",function(c){this.start.call(this,c,a);}.bind(this));(this.options.handle?a.getElement(this.options.handle)||a:a).addEvent("mousedown",b); -},this);return this;},addLists:function(){Array.flatten(arguments).each(function(a){this.lists.include(a);this.addItems(a.getChildren());},this);return this; -},removeItems:function(){return $$(Array.flatten(arguments).map(function(a){this.elements.erase(a);var b=a.retrieve("sortables:start");(this.options.handle?a.getElement(this.options.handle)||a:a).removeEvent("mousedown",b); -return a;},this));},removeLists:function(){return $$(Array.flatten(arguments).map(function(a){this.lists.erase(a);this.removeItems(a.getChildren());return a; -},this));},getClone:function(b,a){if(!this.options.clone){return new Element(a.tagName).inject(document.body);}if(typeOf(this.options.clone)=="function"){return this.options.clone.call(this,b,a,this.list); -}var c=a.clone(true).setStyles({margin:0,position:"absolute",visibility:"hidden",width:a.getStyle("width")}).addEvent("mousedown",function(d){a.fireEvent("mousedown",d); -});if(c.get("html").test("radio")){c.getElements("input[type=radio]").each(function(d,e){d.set("name","clone_"+e);if(d.get("checked")){a.getElements("input[type=radio]")[e].set("checked",true); -}});}return c.inject(this.list).setPosition(a.getPosition(a.getOffsetParent()));},getDroppables:function(){var a=this.list.getChildren().erase(this.clone).erase(this.element); -if(!this.options.constrain){a.append(this.lists).erase(this.list);}return a;},insert:function(c,b){var a="inside";if(this.lists.contains(b)){this.list=b; -this.drag.droppables=this.getDroppables();}else{a=this.element.getAllPrevious().contains(b)?"before":"after";}this.element.inject(b,a);this.fireEvent("sort",[this.element,this.clone]); -},start:function(b,a){if(!this.idle||b.rightClick||["button","input","a","textarea"].contains(b.target.get("tag"))){return;}this.idle=false;this.element=a; -this.opacity=a.getStyle("opacity");this.list=a.getParent();this.clone=this.getClone(b,a);this.drag=new Drag.Move(this.clone,Object.merge({droppables:this.getDroppables()},this.options.dragOptions)).addEvents({onSnap:function(){b.stop(); -this.clone.setStyle("visibility","visible");this.element.setStyle("opacity",this.options.opacity||0);this.fireEvent("start",[this.element,this.clone]); -}.bind(this),onEnter:this.insert.bind(this),onCancel:this.end.bind(this),onComplete:this.end.bind(this)});this.clone.inject(this.element,"before");this.drag.start(b); -},end:function(){this.drag.detach();this.element.setStyle("opacity",this.opacity);if(this.effect){var b=this.element.getStyles("width","height"),d=this.clone,c=d.computePosition(this.element.getPosition(this.clone.getOffsetParent())); -var a=function(){this.removeEvent("cancel",a);d.destroy();};this.effect.element=d;this.effect.start({top:c.top,left:c.left,width:b.width,height:b.height,opacity:0.25}).addEvent("cancel",a).chain(a); -}else{this.clone.destroy();}this.reset();},reset:function(){this.idle=true;this.fireEvent("complete",this.element);},serialize:function(){var c=Array.link(arguments,{modifier:Type.isFunction,index:function(d){return d!=null; -}});var b=this.lists.map(function(d){return d.getChildren().map(c.modifier||function(e){return e.get("id");},this);},this);var a=c.index;if(this.lists.length==1){a=0; -}return(a||a===0)&&a>=0&&a=3){d="rgb";c=Array.slice(arguments,0,3);}else{if(typeof c=="string"){if(c.match(/rgb/)){c=c.rgbToHex().hexToRgb(true); -}else{if(c.match(/hsb/)){c=c.hsbToRgb();}else{c=c.hexToRgb(true);}}}}d=d||"rgb";switch(d){case"hsb":var b=c;c=c.hsbToRgb();c.hsb=b;break;case"hex":c=c.hexToRgb(true); -break;}c.rgb=c.slice(0,3);c.hsb=c.hsb||c.rgbToHsb();c.hex=c.rgbToHex();return Object.append(c,this);});a.implement({mix:function(){var b=Array.slice(arguments); -var d=(typeOf(b.getLast())=="number")?b.pop():50;var c=this.slice();b.each(function(e){e=new a(e);for(var f=0;f<3;f++){c[f]=Math.round((c[f]/100*(100-d))+(e[f]/100*d)); -}});return new a(c,"rgb");},invert:function(){return new a(this.map(function(b){return 255-b;}));},setHue:function(b){return new a([b,this.hsb[1],this.hsb[2]],"hsb"); -},setSaturation:function(b){return new a([this.hsb[0],b,this.hsb[2]],"hsb");},setBrightness:function(b){return new a([this.hsb[0],this.hsb[1],b],"hsb"); -}});this.$RGB=function(e,d,c){return new a([e,d,c],"rgb");};this.$HSB=function(e,d,c){return new a([e,d,c],"hsb");};this.$HEX=function(b){return new a(b,"hex"); -};Array.implement({rgbToHsb:function(){var c=this[0],d=this[1],k=this[2],h=0;var j=Math.max(c,d,k),f=Math.min(c,d,k);var l=j-f;var i=j/255,g=(j!=0)?l/j:0; -if(g!=0){var e=(j-c)/l;var b=(j-d)/l;var m=(j-k)/l;if(c==j){h=m-b;}else{if(d==j){h=2+e-m;}else{h=4+b-e;}}h/=6;if(h<0){h++;}}return[Math.round(h*360),Math.round(g*100),Math.round(i*100)]; -},hsbToRgb:function(){var d=Math.round(this[2]/100*255);if(this[1]==0){return[d,d,d];}else{var b=this[0]%360;var g=b%60;var h=Math.round((this[2]*(100-this[1]))/10000*255); -var e=Math.round((this[2]*(6000-this[1]*g))/600000*255);var c=Math.round((this[2]*(6000-this[1]*(60-g)))/600000*255);switch(Math.floor(b/60)){case 0:return[d,c,h]; -case 1:return[e,d,h];case 2:return[h,d,c];case 3:return[h,e,d];case 4:return[c,h,d];case 5:return[d,h,e];}}return false;}});String.implement({rgbToHsb:function(){var b=this.match(/\d{1,3}/g); -return(b)?b.rgbToHsb():null;},hsbToRgb:function(){var b=this.match(/\d{1,3}/g);return(b)?b.hsbToRgb():null;}});})(); \ No newline at end of file diff --git a/module/web/media/js/package_ui.js b/module/web/media/js/package_ui.js deleted file mode 100644 index 5b329b37a..000000000 --- a/module/web/media/js/package_ui.js +++ /dev/null @@ -1,378 +0,0 @@ -var root = this; - -document.addEvent("domready", function() { - root.load = new Fx.Tween($("load-indicator"), {link: "cancel"}); - root.load.set("opacity", 0); - - - root.packageBox = new MooDialog({destroyOnHide: false}); - root.packageBox.setContent($('pack_box')); - - $('pack_reset').addEvent('click', function() { - $('pack_form').reset(); - root.packageBox.close(); - }); -}); - -function indicateLoad() { - //$("load-indicator").reveal(); - root.load.start("opacity", 1) -} - -function indicateFinish() { - root.load.start("opacity", 0) -} - -function indicateSuccess() { - indicateFinish(); - root.notify.alert('{{_("Success")}}.', { - 'className': 'success' - }); -} - -function indicateFail() { - indicateFinish(); - root.notify.alert('{{_("Failed")}}.', { - 'className': 'error' - }); -} - -var PackageUI = new Class({ - initialize: function(url, type) { - this.url = url; - this.type = type; - this.packages = []; - this.parsePackages(); - - this.sorts = new Sortables($("package-list"), { - constrain: false, - clone: true, - revert: true, - opacity: 0.4, - handle: ".package_drag", - onComplete: this.saveSort.bind(this) - }); - - $("del_finished").addEvent("click", this.deleteFinished.bind(this)); - $("restart_failed").addEvent("click", this.restartFailed.bind(this)); - - }, - - parsePackages: function() { - $("package-list").getChildren("li").each(function(ele) { - var id = ele.getFirst().get("id").match(/[0-9]+/); - this.packages.push(new Package(this, id, ele)) - }.bind(this)) - }, - - loadPackages: function() { - }, - - deleteFinished: function() { - indicateLoad(); - new Request.JSON({ - method: 'get', - url: '/api/deleteFinished', - onSuccess: function(data) { - if (data.length > 0) { - window.location.reload() - } else { - this.packages.each(function(pack) { - pack.close(); - }); - indicateSuccess(); - } - }.bind(this), - onFailure: indicateFail - }).send(); - }, - - restartFailed: function() { - indicateLoad(); - new Request.JSON({ - method: 'get', - url: '/api/restartFailed', - onSuccess: function(data) { - this.packages.each(function(pack) { - pack.close(); - }); - indicateSuccess(); - }.bind(this), - onFailure: indicateFail - }).send(); - }, - - startSort: function(ele, copy) { - }, - - saveSort: function(ele, copy) { - var order = []; - this.sorts.serialize(function(li, pos) { - if (li == ele && ele.retrieve("order") != pos) { - order.push(ele.retrieve("pid") + "|" + pos) - } - li.store("order", pos) - }); - if (order.length > 0) { - indicateLoad(); - new Request.JSON({ - method: 'get', - url: '/json/package_order/' + order[0], - onSuccess: indicateFinish, - onFailure: indicateFail - }).send(); - } - } - -}); - -var Package = new Class({ - initialize: function(ui, id, ele, data) { - this.ui = ui; - this.id = id; - this.linksLoaded = false; - - if (!ele) { - this.createElement(data); - } else { - this.ele = ele; - this.order = ele.getElements("div.order")[0].get("html"); - this.ele.store("order", this.order); - this.ele.store("pid", this.id); - this.parseElement(); - } - - var pname = this.ele.getElements(".packagename")[0]; - this.buttons = new Fx.Tween(this.ele.getElements(".buttons")[0], {link: "cancel"}); - this.buttons.set("opacity", 0); - - pname.addEvent("mouseenter", function(e) { - this.buttons.start("opacity", 1) - }.bind(this)); - - pname.addEvent("mouseleave", function(e) { - this.buttons.start("opacity", 0) - }.bind(this)); - - - }, - - createElement: function() { - alert("create") - }, - - parseElement: function() { - var imgs = this.ele.getElements('img'); - - this.name = this.ele.getElements('.name')[0]; - this.folder = this.ele.getElements('.folder')[0]; - this.password = this.ele.getElements('.password')[0]; - - imgs[1].addEvent('click', this.deletePackage.bind(this)); - imgs[2].addEvent('click', this.restartPackage.bind(this)); - imgs[3].addEvent('click', this.editPackage.bind(this)); - imgs[4].addEvent('click', this.movePackage.bind(this)); - - this.ele.getElement('.packagename').addEvent('click', this.toggle.bind(this)); - - }, - - loadLinks: function() { - indicateLoad(); - new Request.JSON({ - method: 'get', - url: '/json/package/' + this.id, - onSuccess: this.createLinks.bind(this), - onFailure: indicateFail - }).send(); - }, - - createLinks: function(data) { - var ul = $("sort_children_{id}".substitute({"id": this.id})); - ul.set("html", ""); - data.links.each(function(link) { - link.id = link.fid; - var li = new Element("li", { - "style": { - "margin-left": 0 - } - }); - - var html = "\n".substitute({"icon": link.icon}); - html += "{name}
".substitute({"name": link.name}); - html += "{statusmsg}{error} ".substitute({"statusmsg": link.statusmsg, "error":link.error}); - html += "{format_size}".substitute({"format_size": link.format_size}); - html += "{plugin}  ".substitute({"plugin": link.plugin}); - html += "{url}  ".substitute({"url": link.url}); - html += "  "; - html += "
"; - - var div = new Element("div", { - "id": "file_" + link.id, - "class": "child", - "html": html - }); - - li.store("order", link.order); - li.store("lid", link.id); - - li.adopt(div); - ul.adopt(li); - }); - this.sorts = new Sortables(ul, { - constrain: false, - clone: true, - revert: true, - opacity: 0.4, - handle: ".sorthandle", - onComplete: this.saveSort.bind(this) - }); - this.registerLinkEvents(); - this.linksLoaded = true; - indicateFinish(); - this.toggle(); - }, - - registerLinkEvents: function() { - this.ele.getElements('.child').each(function(child) { - var lid = child.get('id').match(/[0-9]+/); - var imgs = child.getElements('.child_secrow img'); - imgs[0].addEvent('click', function(e) { - new Request({ - method: 'get', - url: '/api/deleteFiles/[' + this + "]", - onSuccess: function() { - $('file_' + this).nix() - }.bind(this), - onFailure: indicateFail - }).send(); - }.bind(lid)); - - imgs[1].addEvent('click', function(e) { - new Request({ - method: 'get', - url: '/api/restartFile/' + this, - onSuccess: function() { - var ele = $('file_' + this); - var imgs = ele.getElements("img"); - imgs[0].set("src", "/media/default/img/status_queue.png"); - var spans = ele.getElements(".child_status"); - spans[1].set("html", "queued"); - indicateSuccess(); - }.bind(this), - onFailure: indicateFail - }).send(); - }.bind(lid)); - }); - }, - - toggle: function() { - var child = this.ele.getElement('.children'); - if (child.getStyle('display') == "block") { - child.dissolve(); - } else { - if (!this.linksLoaded) { - this.loadLinks(); - } else { - child.reveal(); - } - } - }, - - - deletePackage: function(event) { - indicateLoad(); - new Request({ - method: 'get', - url: '/api/deletePackages/[' + this.id + "]", - onSuccess: function() { - this.ele.nix(); - indicateFinish(); - }.bind(this), - onFailure: indicateFail - }).send(); - //hide_pack(); - event.stop(); - }, - - restartPackage: function(event) { - indicateLoad(); - new Request({ - method: 'get', - url: '/api/restartPackage/' + this.id, - onSuccess: function() { - this.close(); - indicateSuccess(); - }.bind(this), - onFailure: indicateFail - }).send(); - event.stop(); - }, - - close: function() { - var child = this.ele.getElement('.children'); - if (child.getStyle('display') == "block") { - child.dissolve(); - } - var ul = $("sort_children_{id}".substitute({"id": this.id})); - ul.erase("html"); - this.linksLoaded = false; - }, - - movePackage: function(event) { - indicateLoad(); - new Request({ - method: 'get', - url: '/json/move_package/' + ((this.ui.type + 1) % 2) + "/" + this.id, - onSuccess: function() { - this.ele.nix(); - indicateFinish(); - }.bind(this), - onFailure: indicateFail - }).send(); - event.stop(); - }, - - editPackage: function(event) { - $("pack_form").removeEvents("submit"); - $("pack_form").addEvent("submit", this.savePackage.bind(this)); - - $("pack_id").set("value", this.id); - $("pack_name").set("value", this.name.get("text")); - $("pack_folder").set("value", this.folder.get("text")); - $("pack_pws").set("value", this.password.get("text")); - - root.packageBox.open(); - event.stop(); - }, - - savePackage: function(event) { - $("pack_form").send(); - this.name.set("text", $("pack_name").get("value")); - this.folder.set("text", $("pack_folder").get("value")); - this.password.set("text", $("pack_pws").get("value")); - root.packageBox.close(); - event.stop(); - }, - - saveSort: function(ele, copy) { - var order = []; - this.sorts.serialize(function(li, pos) { - if (li == ele && ele.retrieve("order") != pos) { - order.push(ele.retrieve("lid") + "|" + pos) - } - li.store("order", pos) - }); - if (order.length > 0) { - indicateLoad(); - new Request.JSON({ - method: 'get', - url: '/json/link_order/' + order[0], - onSuccess: indicateFinish, - onFailure: indicateFail - }).send(); - } - } - -}); - diff --git a/module/web/media/js/purr_static.js b/module/web/media/js/purr_static.js deleted file mode 100644 index 7e0aee949..000000000 --- a/module/web/media/js/purr_static.js +++ /dev/null @@ -1,308 +0,0 @@ -/* ---- -script: purr.js - -description: Class to create growl-style popup notifications. - -license: MIT-style - -authors: [atom smith] - -requires: -- core/1.3: [Core, Browser, Array, Function, Number, String, Hash, Event, Class.Extras, Element.Event, Element.Style, Element.Dimensions, Fx.CSS, FX.Tween, Fx.Morph] - -provides: [Purr, Element.alert] -... -*/ - - -var Purr = new Class({ - - 'options': { - 'mode': 'top', - 'position': 'left', - 'elementAlertClass': 'purr-element-alert', - 'elements': { - 'wrapper': 'div', - 'alert': 'div', - 'buttonWrapper': 'div', - 'button': 'button' - }, - 'elementOptions': { - 'wrapper': { - 'styles': { - 'position': 'fixed', - 'z-index': '9999' - }, - 'class': 'purr-wrapper' - }, - 'alert': { - 'class': 'purr-alert', - 'styles': { - 'opacity': '.85' - } - }, - 'buttonWrapper': { - 'class': 'purr-button-wrapper' - }, - 'button': { - 'class': 'purr-button' - } - }, - 'alert': { - 'buttons': [], - 'clickDismiss': true, - 'hoverWait': true, - 'hideAfter': 5000, - 'fx': { - 'duration': 500 - }, - 'highlightRepeat': false, - 'highlight': { // false to disable highlighting - 'start': '#FF0', - 'end': false - } - } - }, - - 'Implements': [Options, Events, Chain], - - 'initialize': function(options){ - this.setOptions(options); - this.createWrapper(); - return this; - }, - - 'bindAlert': function(){ - return this.alert.bind(this); - }, - - 'createWrapper': function(){ - this.wrapper = new Element(this.options.elements.wrapper, this.options.elementOptions.wrapper); - if(this.options.mode == 'top') - { - this.wrapper.setStyle('top', 0); - } - else - { - this.wrapper.setStyle('bottom', 0); - } - document.id(document.body).grab(this.wrapper); - this.positionWrapper(this.options.position); - }, - - 'positionWrapper': function(position){ - if(typeOf(position) == 'object') - { - - var wrapperCoords = this.getWrapperCoords(); - - this.wrapper.setStyles({ - 'bottom': '', - 'left': position.x, - 'top': position.y - wrapperCoords.height, - 'position': 'absolute' - }); - } - else if(position == 'left') - { - this.wrapper.setStyle('left', 0); - } - else if(position == 'right') - { - this.wrapper.setStyle('right', 0); - } - else - { - this.wrapper.setStyle('left', (window.innerWidth / 2) - (this.getWrapperCoords().width / 2)); - } - return this; - }, - - 'getWrapperCoords': function(){ - this.wrapper.setStyle('visibility', 'hidden'); - var measurer = this.alert('need something in here to measure'); - var coords = this.wrapper.getCoordinates(); - measurer.destroy(); - this.wrapper.setStyle('visibility',''); - return coords; - }, - - 'alert': function(msg, options){ - - options = Object.merge({}, this.options.alert, options || {}); - - var alert = new Element(this.options.elements.alert, this.options.elementOptions.alert); - - if(typeOf(msg) == 'string') - { - alert.set('html', msg); - } - else if(typeOf(msg) == 'element') - { - alert.grab(msg); - } - else if(typeOf(msg) == 'array') - { - var alerts = []; - msg.each(function(m){ - alerts.push(this.alert(m, options)); - }, this); - return alerts; - } - - alert.store('options', options); - - if(options.buttons.length > 0) - { - options.clickDismiss = false; - options.hideAfter = false; - options.hoverWait = false; - var buttonWrapper = new Element(this.options.elements.buttonWrapper, this.options.elementOptions.buttonWrapper); - alert.grab(buttonWrapper); - options.buttons.each(function(button){ - if(button.text !== undefined) - { - var callbackButton = new Element(this.options.elements.button, this.options.elementOptions.button); - callbackButton.set('html', button.text); - if(button.callback !== undefined) - { - callbackButton.addEvent('click', button.callback.pass(alert)); - } - if(button.dismiss !== undefined && button.dismiss) - { - callbackButton.addEvent('click', this.dismiss.pass(alert, this)); - } - buttonWrapper.grab(callbackButton); - } - }, this); - } - if(options.className !== undefined) - { - alert.addClass(options.className); - } - - this.wrapper.grab(alert, (this.options.mode == 'top') ? 'bottom' : 'top'); - - var fx = Object.merge(this.options.alert.fx, options.fx); - var alertFx = new Fx.Morph(alert, fx); - alert.store('fx', alertFx); - this.fadeIn(alert); - - if(options.highlight) - { - alertFx.addEvent('complete', function(){ - alert.highlight(options.highlight.start, options.highlight.end); - if(options.highlightRepeat) - { - alert.highlight.periodical(options.highlightRepeat, alert, [options.highlight.start, options.highlight.end]); - } - }); - } - if(options.hideAfter) - { - this.dismiss(alert); - } - - if(options.clickDismiss) - { - alert.addEvent('click', function(){ - this.holdUp = false; - this.dismiss(alert, true); - }.bind(this)); - } - - if(options.hoverWait) - { - alert.addEvents({ - 'mouseenter': function(){ - this.holdUp = true; - }.bind(this), - 'mouseleave': function(){ - this.holdUp = false; - }.bind(this) - }); - } - - return alert; - }, - - 'fadeIn': function(alert){ - var alertFx = alert.retrieve('fx'); - alertFx.set({ - 'opacity': 0 - }); - alertFx.start({ - 'opacity': [this.options.elementOptions.alert.styles.opacity, '.9'].pick() - }); - }, - - 'dismiss': function(alert, now){ - now = now || false; - var options = alert.retrieve('options'); - if(now) - { - this.fadeOut(alert); - } - else - { - this.fadeOut.delay(options.hideAfter, this, alert); - } - }, - - 'fadeOut': function(alert){ - if(this.holdUp) - { - this.dismiss.delay(100, this, [alert, true]); - return null; - } - var alertFx = alert.retrieve('fx'); - if(!alertFx) - { - return null; - } - var to = { - 'opacity': 0 - }; - if(this.options.mode == 'top') - { - to['margin-top'] = '-'+alert.offsetHeight+'px'; - } - else - { - to['margin-bottom'] = '-'+alert.offsetHeight+'px'; - } - alertFx.start(to); - alertFx.addEvent('complete', function(){ - alert.destroy(); - }); - } -}); - -Element.implement({ - - 'alert': function(msg, options){ - var alert = this.retrieve('alert'); - if(!alert) - { - options = options || { - 'mode':'top' - }; - alert = new Purr(options); - this.store('alert', alert); - } - - var coords = this.getCoordinates(); - - alert.alert(msg, options); - - alert.wrapper.setStyles({ - 'bottom': '', - 'left': (coords.left - (alert.wrapper.getWidth() / 2)) + (this.getWidth() / 2), - 'top': coords.top - (alert.wrapper.getHeight()), - 'position': 'absolute' - }); - - } - -}); \ No newline at end of file diff --git a/module/web/media/js/settings.coffee b/module/web/media/js/settings.coffee deleted file mode 100644 index 04d352dae..000000000 --- a/module/web/media/js/settings.coffee +++ /dev/null @@ -1,107 +0,0 @@ -root = this - -window.addEvent 'domready', -> - root.accountDialog = new MooDialog {destroyOnHide: false} - root.accountDialog.setContent $ 'account_box' - - new TinyTab $$('#toptabs li a'), $$('#tabs-body > span') - - $$('ul.nav').each (nav) -> - new MooDropMenu nav, { - onOpen: (el) -> el.fade 'in' - onClose: (el) -> el.fade 'out' - onInitialize: (el) -> el.fade('hide').set 'tween', {duration:500} - } - - new SettingsUI() - - -class SettingsUI - constructor: -> - @menu = $$ "#general-menu li" - @menu.append $$ "#plugin-menu li" - - @name = $ "tabsback" - @general = $ "general_form_content" - @plugin = $ "plugin_form_content" - - el.addEvent 'click', @menuClick.bind(this) for el in @menu - - $("general|submit").addEvent "click", @configSubmit.bind(this) - $("plugin|submit").addEvent "click", @configSubmit.bind(this) - - $("account_add").addEvent "click", (e) -> - root.accountDialog.open() - e.stop() - - $("account_reset").addEvent "click", (e) -> - root.accountDialog.close() - - $("account_add_button").addEvent "click", @addAccount.bind(this) - $("account_submit").addEvent "click", @submitAccounts.bind(this) - - - menuClick: (e) -> - [category, section] = e.target.get("id").split("|") - name = e.target.get "text" - - - target = if category is "general" then @general else @plugin - target.dissolve() - - new Request({ - "method" : "get" - "url" : "/json/load_config/#{section}" - "onSuccess": (data) => - target.set "html", data - target.reveal() - this.name.set "text", name - }).send() - - - configSubmit: (e) -> - category = e.target.get("id").split("|")[0]; - form = $("#{category}_form"); - - form.set "send", { - "method": "post" - "url": "/json/save_config" - "onSuccess" : -> - root.notify.alert '{{ _("Settings saved.")}}', { - 'className': 'success' - } - "onFailure": -> - root.notify.alert '{{ _("Error occured.")}}', { - 'className': 'error' - } - } - form.send() - e.stop() - - addAccount: (e) -> - form = $ "add_account_form" - form.set "send", { - "method": "post" - "onSuccess" : -> window.location.reload() - "onFailure": -> - root.notify.alert '{{_("Error occured.")}}', { - 'className': 'error' - } - } - - form.send() - e.stop() - - submitAccounts: (e) -> - form = $ "account_form" - form.set "send", { - "method": "post", - "onSuccess" : -> window.location.reload() - "onFailure": -> - root.notify.alert('{{ _("Error occured.") }}', { - 'className': 'error' - }); - } - - form.send() - e.stop() \ No newline at end of file diff --git a/module/web/media/js/settings.js b/module/web/media/js/settings.js deleted file mode 100644 index 3604c38b0..000000000 --- a/module/web/media/js/settings.js +++ /dev/null @@ -1,3 +0,0 @@ -{% autoescape true %} -var SettingsUI,root;var __bind=function(a,b){return function(){return a.apply(b,arguments)}};root=this;window.addEvent("domready",function(){root.accountDialog=new MooDialog({destroyOnHide:false});root.accountDialog.setContent($("account_box"));new TinyTab($$("#toptabs li a"),$$("#tabs-body > span"));$$("ul.nav").each(function(a){return new MooDropMenu(a,{onOpen:function(b){return b.fade("in")},onClose:function(b){return b.fade("out")},onInitialize:function(b){return b.fade("hide").set("tween",{duration:500})}})});return new SettingsUI()});SettingsUI=(function(){function a(){var c,e,b,d;this.menu=$$("#general-menu li");this.menu.append($$("#plugin-menu li"));this.name=$("tabsback");this.general=$("general_form_content");this.plugin=$("plugin_form_content");d=this.menu;for(e=0,b=d.length;e - - - - - - -Naturalprime by FCT - - - - - - -
-
- - pyLoad -
-
-
- - - - -
-
-

Nam bibendum

-

Etiam non felis. Donec ut ante. In id eros. Suspendisse lacus turpis, cursus egestas at sem. Mauris quam enim, molestie.

-

Read More

-
-
-

Nam bibendum

-

Etiam non felis. Donec ut ante. In id eros. Suspendisse lacus turpis, cursus egestas at sem. Mauris quam enim, molestie.

-

Read More

-
-
-

Nam bibendum

-

Etiam non felis. Donec ut ante. In id eros. Suspendisse lacus turpis, cursus egestas at sem. Mauris quam enim, molestie.

-

Read More

-
-
- -
-

Welcome to NaturalPrime

-
-

This is NaturalPrime , a free, fully standards-compliant CSS template designed by FCT. The photo used in this template is from Fotogrph. This free template is released under a Creative Commons Attributions 3.0 license, so you’re pretty much free to do whatever you want with it (even use it commercially) provided you keep the links in the footer intact. Aside from that, have fun with it :)

-
-
-
-
-
-
-
-

Lorem ipsum sed aliquam

-
-

Sed lacus. Donec lectus. Nullam pretium nibh ut turpis. Nam bibendum. In nulla tortor, elementum vel, tempor at, varius non, purus. Mauris vitae nisl nec metus placerat consectetuer. Donec ipsum. Proin imperdiet est. Phasellus dapibus semper urna. Pellentesque ornare, orci in consectetuer hendrerit, urna elit eleifend nunc, ut consectetuer nisl felis ac diam. Etiam non felis. Donec ut ante. In id eros. Suspendisse lacus turpis, cursus egestas at sem. Mauris quam enim, molestie in, rhoncus ut, lobortis a, est. Pellentesque viverra vulputate enim. Aliquam erat volutpat. Pellentesque tristique ante ut risus. Quisque dictum. Integer nisl risus, sagittis convallis, rutrum id, elementum congue, nibh.

-
-
-
- - - -
 
-
-
-
- -
-
-
- - - - -
-

Powered by

- asd
- dsfdsf
- sdf dsg
-
- -
-

pyLoad

- asd
- dsfdsf
- sdf dsg
-
- -
-

Community

- asd
- dsfdsf
- sdf dsg
-
- -
-

Development

- asd
- dsfdsf
- sdf dsg
-
- -
- -
- - - diff --git a/module/web/mockups/style.css b/module/web/mockups/style.css deleted file mode 100644 index 695eb6471..000000000 --- a/module/web/mockups/style.css +++ /dev/null @@ -1,444 +0,0 @@ - -/* -Design by Free CSS Templates -http://www.freecsstemplates.org -Released for free under a Creative Commons Attribution 2.5 License -*/ - -body { - margin: 0; - padding: 0; - background: #0E0E0E url(images/main-wrapper-bg.png) repeat; - background: #ffffff; - font-family: 'Abel', sans-serif; - font-size: 16px; - color: #757575; -} - -h1, h2, h3 { - margin: 0; - padding: 0; - font-weight: normal; - color: #221D1D; -} - -h1 { - font-size: 2em; -} - -h2 { - font-size: 2.4em; -} - -h3 { - font-size: 1.6em; -} - -p, ul, ol { - margin-top: 0; - line-height: 180%; -} - -ul, ol { -} - -a { - text-decoration: none; - color: #FF7637; -} - -a:hover { -} - -#wrapper { - width: 960px; - margin: 0 auto; - padding: 0; -} - -/* Header */ - -#header { - width: 940px; - height: 150px; - margin: 0 auto; -} - -/* Logo */ - -#logo { - width: 960px; - height: 150px; - margin: 0px auto 30px auto; - color: #FFFFFF; -} - -#logo h1, #logo p { - margin: 0; - padding: 0; -} - -#logo h1 { - line-height: 150px; - letter-spacing: -1px; - text-align: center; - text-transform: lowercase; - font-size: 3.8em; - font-family: 'Abel', sans-serif; -} - -#logo p { - float: left; - margin: 0; - padding: 26px 0 0 10px; - text-align: center; - color: #FFFFFF; -} - -#logo p a { - color: #FFFFFF; -} - -#logo a { - border: none; - background: none; - text-decoration: none; - color: #FFFFFF; -} - -/* Search */ - -#search { - float: right; - width: 280px; - height: 60px; - padding: 20px 0px 0px 0px; - background: #323435; - border-bottom: 4px solid #0974C4; -} - -#search form { - height: 41px; - margin: 0; - padding: 10px 0 0 20px; -} - -#search fieldset { - margin: 0; - padding: 0; - border: none; -} - -#search-text { - width: 170px; - padding: 6px 5px 2px 5px; - border: none; - background: #FFFFFF; - text-transform: lowercase; - font: normal 11px Arial, Helvetica, sans-serif; - color: #464032; -} - -#search-submit { - width: 50px; - height: 23px; - border: 1px solid #525252; - background: #525252; - font-weight: bold; - font-size: 10px; - color: #FFFFFF; -} - -/* Menu */ - -#menu { - overflow: hidden; - width: 940px; - margin: 0px auto; - padding: 20px 0px; - border-top: 1px solid #292929; - border-bottom: 1px solid #292929; -} - -#menu ul { - margin: 0px 0px 0px 0px; - padding: 0px 0px; - list-style: none; - line-height: normal; - text-align: center; -} - -#menu li { - display: inline-block; - border-right: 1px solid #292929; -} - -#menu a { - display: block; - padding: 0px 40px 0px 40px; - text-decoration: none; - text-align: center; - font-family: 'Abel', sans-serif; - font-size: 20px; - font-weight:400; - color: #FFFFFF; - border: none; -} - -#menu a:hover, #menu .current_page_item a { - text-decoration: none; -} - -#menu .current_page_item a { - color: #FFFFFF; -} - -/* Page */ - -#page { - width: 960px; - margin: 0 auto; - padding: 0; -} - -#page-bgtop { - padding: 20px 0px; -} - -#page-bgbtm { -} - -/* Content */ - -#content { - float: right; - width: 620px; - padding: 10px 0px 0px 0px; -} - -.post { -} - -.post .title { - margin-bottom: 10px; - padding: 12px 0px 20px 0px; - letter-spacing: -.5px; - color: #C2C2C2; -} - -.post .title a { - color: #C2C2C2; - border: none; -} - -.post .meta { - height: 30px; - border-bottom: 1px solid #292929; - margin: 0px; - padding: 0px 0px 0px 0px; - text-align: left; - font-family: Arial, Helvetica, sans-serif; - font-size: 13px; - font-weight: bold; -} - -.post .meta .date { - float: left; - height: 24px; - padding: 3px 15px; - color: #BBBBBB; -} - -.post .meta .posted { - float: right; - height: 24px; - padding: 3px 15px; - color: #BBBBBB; -} - -.post .meta a { - color: #BBBBBB; -} - -.post .entry { - padding: 0px 0px 20px 0px; - padding-bottom: 20px; - text-align: justify; -} - -.links { - padding-top: 20px; - font-size: 12px; - font-weight: bold; -} - -/* Sidebar */ - -#sidebar { - float: left; - width: 280px; - padding: 30px 0px 0px 0px; - color: #787878; -} - -#sidebar ul { - margin: 0; - padding: 0; - list-style: none; -} - -#sidebar li { - margin: 0; - padding: 0; -} - -#sidebar li ul { - margin: 0px 0px; - padding-bottom: 30px; -} - -#sidebar li li { - line-height: 35px; - border-bottom: 1px dotted #292929; - margin: 0px 0px; - border-right: none; -} - -#sidebar li a { - padding-left: 20px; - background: url(images/img03.gif) no-repeat left 6px; -} - -#sidebar li li span { - display: block; - margin-top: -20px; - padding: 0; - font-size: 11px; - font-style: italic; -} - -#sidebar h2 { - padding: 0px 0px 30px 0px; - letter-spacing: -.5px; - font-size: 1.8em; - color: #FFFFFF; -} - -#sidebar p { - margin: 0 0px; - padding: 10px 30px 20px 30px; - text-align: justify; -} - -#sidebar a { - border: none; - color: #898989; -} - -#sidebar a:hover { - text-decoration: underline; - color: #6E6E6E; -} - -/* Calendar */ - -#calendar { -} - -#calendar_wrap { - padding: 20px; -} - -#calendar table { - width: 100%; -} - -#calendar tbody td { - text-align: center; -} - -#calendar #next { - text-align: right; -} - -/* Footer */ - -#footer { - width: 960px; - height: 50px; - margin: 0 auto; - padding: 0px 0 15px 0; - border-top: 1px solid #292929; -} - -#footer p { - margin: 0; - padding-top: 20px; - line-height: normal; - text-transform: uppercase; - text-align: center; - color: #444444; -} - -#footer a { - color: #444444; -} - -#three-columns { - overflow: hidden; - width: 960px; - padding: 30px 0px; - border-bottom: 1px solid #292929; -} - -#three-columns h2 { - padding: 0px 0px 20px 0px; - font-size: 30px; - color: #C2C2C2; -} - -#three-columns #column1 { - float: left; - width: 290px; - margin-right: 40px; -} - -#three-columns #column2 { - float: left; - width: 290px; -} - -#three-columns #column3 { - float: right; - width: 300px; -} - -.link-style { - display: inline-block; - margin-top: 10px; - padding: 5px 15px; - background: #FF7637; - border-radius: 10px; - color: #FFFFFF; -} - -#welcome { - width: 960px; - margin: 0px auto; - padding: 30px 0px; - border-bottom: 1px solid #292929; -} - -#welcome h2 { - padding: 0px 0px 20px 0px; -} - -#welcome h2 a { - color: #C2C2C2; -} - -#banner { - overflow: hidden; - padding: 30px 0px; - border-bottom: 1px solid #292929; -} diff --git a/module/web/pyload_app.py b/module/web/pyload_app.py index 2234b76c6..ba74d7083 100644 --- a/module/web/pyload_app.py +++ b/module/web/pyload_app.py @@ -16,32 +16,23 @@ @author: RaNaN """ -from datetime import datetime -from operator import itemgetter, attrgetter - import time -import os -import sys -from os.path import isdir, isfile, join, abspath -from sys import getfilesystemencoding -from urllib import unquote -from traceback import print_exc +from os.path import join from bottle import route, static_file, request, response, redirect, HTTPError, error -from webinterface import PYLOAD, PYLOAD_DIR, PROJECT_DIR, SETUP, env - -from utils import render_to_response, parse_permissions, parse_userdata, \ - login_required, get_permission, set_permission, permlist, toDict, set_session +from webinterface import PYLOAD, PROJECT_DIR, SETUP, env -from filters import relpath, unquotepath +from utils import render_to_response, parse_permissions, parse_userdata, set_session -from module.Api import Output, Permission -from module.utils import format_size -from module.utils.fs import save_join, fs_encode, fs_decode, listdir +from module.Api import Output +########## # Helper +########## + +# TODO: useful but needs a rewrite, too def pre_processor(): s = request.environ.get('beaker.session') user = parse_userdata(s) @@ -70,11 +61,11 @@ def pre_processor(): 'plugins': plugins} + def base(messages): return render_to_response('base.html', {'messages': messages}, [pre_processor]) -## Views @error(500) def error500(error): print "An error occured while processing the request." @@ -84,8 +75,8 @@ def error500(error): return base(["An error occured while processing the request.", error, error.traceback.replace("\n", "
") if error.traceback else "No Traceback"]) -# render js -@route("/media/js/") +# TODO: not working +# @route("/static/js/") def js_dynamic(path): response.headers['Expires'] = time.strftime("%a, %d %b %Y %H:%M:%S GMT", time.gmtime(time.time() + 60 * 60 * 24 * 2)) @@ -94,24 +85,29 @@ def js_dynamic(path): try: # static files are not rendered - if "static" not in path and "mootools" not in path: + if "static" not in path: t = env.get_template("js/%s" % path) return t.render() else: - return static_file(path, root=join(PROJECT_DIR, "media", "js")) + return static_file(path, root=join(PROJECT_DIR, "static", "js")) except: return HTTPError(404, "Not Found") -@route('/media/') +@route('/static/') def server_static(path): response.headers['Expires'] = time.strftime("%a, %d %b %Y %H:%M:%S GMT", time.gmtime(time.time() + 60 * 60 * 24 * 7)) response.headers['Cache-control'] = "public" - return static_file(path, root=join(PROJECT_DIR, "media")) + return static_file(path, root=join(PROJECT_DIR, "static")) @route('/favicon.ico') def favicon(): - return static_file("favicon.ico", root=join(PROJECT_DIR, "media", "img")) + return static_file("favicon.ico", root=join(PROJECT_DIR, "static", "img")) + + +########## +# Views +########## @route('/login', method="GET") @@ -124,7 +120,7 @@ def login(): @route('/nopermission') def nopermission(): - return base([_("You dont have permission to access this page.")]) + return base([_("You don't have permission to access this page.")]) @route("/login", method="POST") @@ -147,386 +143,7 @@ def logout(): s.delete() return render_to_response("logout.html", proc=[pre_processor]) - @route("/") -@route("/home") -@login_required("List") -def home(): - try: - res = [toDict(x) for x in PYLOAD.getProgressInfo()] - except: - s = request.environ.get('beaker.session') - s.delete() - print_exc() - return redirect("/login") - - for link in res: - if link["status"] == 12: - link["information"] = "%s kB @ %s kB/s" % (link["size"] - link["bleft"], link["speed"]) - - return render_to_response("home.html", {"res": res}, [pre_processor]) - - -@route("/queue") -@login_required("List") -def queue(): - queue = PYLOAD.getQueue() - - queue.sort(key=attrgetter("order")) - - return render_to_response('queue.html', {'content': queue, 'target': 1}, [pre_processor]) - - -@route("/collector") -@login_required('LIST') -def collector(): - queue = PYLOAD.getCollector() - - queue.sort(key=attrgetter("order")) - - return render_to_response('queue.html', {'content': queue, 'target': 0}, [pre_processor]) - - -@route("/downloads") -@login_required('DOWNLOAD') -def downloads(): - root = PYLOAD.getConfigValue("general", "download_folder") - - if not isdir(fs_encode(root)): - return base([_('Download directory not found.')]) - data = { - 'folder': [], - 'files': [] - } - - items = listdir(fs_encode(root)) - - for item in sorted([fs_decode(x) for x in items]): - if isdir(save_join(root, item)): - folder = { - 'name': item, - 'path': item, - 'files': [] - } - files = listdir(save_join(root, item)) - for file in sorted([fs_decode(x) for x in files]): - try: - if isfile(save_join(root, item, file)): - folder['files'].append(file) - except: - pass - - data['folder'].append(folder) - elif isfile(join(root, item)): - data['files'].append(item) - - return render_to_response('downloads.html', {'files': data}, [pre_processor]) - - -@route("/downloads/get/") -@login_required("DOWNLOAD") -def get_download(path): - path = unquote(path).decode("utf8") - #@TODO some files can not be downloaded - - root = PYLOAD.getConfigValue("general", "download_folder") - - path = path.replace("..", "") - try: - return static_file(fs_encode(path), fs_encode(root)) - - except Exception, e: - print e - return HTTPError(404, "File not Found.") - - - -@route("/settings") -@login_required('SETTINGS') -def config(): - conf = PYLOAD.getConfigRef() - - conf_menu = [] - plugin_menu = [] - - for section, data in sorted(conf.getBaseSections()): - conf_menu.append((section, data.name)) - - for section, data in sorted(conf.getPluginSections()): - plugin_menu.append((section, data.name)) - - accs = PYLOAD.getAccounts(False) - - # prefix attributes with _, because we would change them directly on the object otherweise - for data in accs: - if data.trafficleft == -1: - data._trafficleft = _("unlimited") - elif not data.trafficleft: - data._trafficleft = _("not available") - else: - data._trafficleft = formatSize(data.trafficleft * 1024) - - if data.validuntil == -1: - data._validuntil = _("unlimited") - elif not data.validuntil: - data._validuntil = _("not available") - else: - t = time.localtime(data.validuntil) - data._validuntil = time.strftime("%d.%m.%Y", t) - - if not data.options["time"]: - data.options["time"] = "0:00-0:00" - - if not data.options["limitDL"]: - data.options["limitdl"] = "0" - - return render_to_response('settings.html', - {'conf': {'plugin': plugin_menu, 'general': conf_menu, 'accs': accs}, 'types': PYLOAD.getAccountTypes()}, - [pre_processor]) - - -@route("/filechooser") -@route("/pathchooser") -@route("/filechooser/:file#.+#") -@route("/pathchooser/:path#.+#") -@login_required('STATUS') -def path(file="", path=""): - if file: - type = "file" - else: - type = "folder" +def index(): + return base(["It works!"]) - path = os.path.normpath(unquotepath(path)) - - if os.path.isfile(path): - oldfile = path - path = os.path.dirname(path) - else: - oldfile = '' - - abs = False - - if os.path.isdir(path): - if os.path.isabs(path): - cwd = os.path.abspath(path) - abs = True - else: - cwd = relpath(path) - else: - cwd = os.getcwd() - - try: - cwd = cwd.encode("utf8") - except: - pass - - cwd = os.path.normpath(os.path.abspath(cwd)) - parentdir = os.path.dirname(cwd) - if not abs: - if os.path.abspath(cwd) == "/": - cwd = relpath(cwd) - else: - cwd = relpath(cwd) + os.path.sep - parentdir = relpath(parentdir) + os.path.sep - - if os.path.abspath(cwd) == "/": - parentdir = "" - - try: - folders = os.listdir(cwd) - except: - folders = [] - - files = [] - - for f in folders: - try: - f = f.decode(getfilesystemencoding()) - data = {'name': f, 'fullpath': join(cwd, f)} - data['sort'] = data['fullpath'].lower() - data['modified'] = datetime.fromtimestamp(int(os.path.getmtime(join(cwd, f)))) - data['ext'] = os.path.splitext(f)[1] - except: - continue - - if os.path.isdir(join(cwd, f)): - data['type'] = 'dir' - else: - data['type'] = 'file' - - if os.path.isfile(join(cwd, f)): - data['size'] = os.path.getsize(join(cwd, f)) - - power = 0 - while (data['size'] / 1024) > 0.3: - power += 1 - data['size'] /= 1024. - units = ('', 'K', 'M', 'G', 'T') - data['unit'] = units[power] + 'Byte' - else: - data['size'] = '' - - files.append(data) - - files = sorted(files, key=itemgetter('type', 'sort')) - - return render_to_response('pathchooser.html', - {'cwd': cwd, 'files': files, 'parentdir': parentdir, 'type': type, 'oldfile': oldfile, - 'absolute': abs}, []) - - -@route("/logs") -@route("/logs", method="POST") -@route("/logs/:item") -@route("/logs/:item", method="POST") -@login_required('LOGS') -def logs(item=-1): - s = request.environ.get('beaker.session') - - perpage = s.get('perpage', 34) - reversed = s.get('reversed', False) - - warning = "" - conf = PYLOAD.getConfigValue("log","file_log") - if not conf: - warning = "Warning: File log is disabled, see settings page." - - perpage_p = ((20, 20), (34, 34), (40, 40), (100, 100), (0, 'all')) - fro = None - - if request.environ.get('REQUEST_METHOD', "GET") == "POST": - try: - fro = datetime.strptime(request.forms['from'], '%d.%m.%Y %H:%M:%S') - except: - pass - try: - perpage = int(request.forms['perpage']) - s['perpage'] = perpage - - reversed = bool(request.forms.get('reversed', False)) - s['reversed'] = reversed - except: - pass - - s.save() - - try: - item = int(item) - except: - pass - - log = PYLOAD.getLog() - if not perpage: - item = 0 - - if item < 1 or type(item) is not int: - item = 1 if len(log) - perpage + 1 < 1 else len(log) - perpage + 1 - - if type(fro) is datetime: # we will search for datetime - item = -1 - - data = [] - counter = 0 - perpagecheck = 0 - for l in log: - counter += 1 - - if counter >= item: - try: - date, time, level, message = l.decode("utf8", "ignore").split(" ", 3) - dtime = datetime.strptime(date + ' ' + time, '%d.%m.%Y %H:%M:%S') - except: - dtime = None - date = '?' - time = ' ' - level = '?' - message = l - if item == -1 and dtime is not None and fro <= dtime: - item = counter #found our datetime - if item >= 0: - data.append({'line': counter, 'date': date + " " + time, 'level': level, 'message': message}) - perpagecheck += 1 - if fro is None and dtime is not None: #if fro not set set it to first showed line - fro = dtime - if perpagecheck >= perpage > 0: - break - - if fro is None: #still not set, empty log? - fro = datetime.now() - if reversed: - data.reverse() - return render_to_response('logs.html', {'warning': warning, 'log': data, 'from': fro.strftime('%d.%m.%Y %H:%M:%S'), - 'reversed': reversed, 'perpage': perpage, 'perpage_p': sorted(perpage_p), - 'iprev': 1 if item - perpage < 1 else item - perpage, - 'inext': (item + perpage) if item + perpage < len(log) else item}, - [pre_processor]) - - -@route("/admin") -@route("/admin", method="POST") -@login_required("ADMIN") -def admin(): - # convert to dict - user = dict([(name, toDict(y)) for name, y in PYLOAD.getAllUserData().iteritems()]) - perms = permlist() - - for data in user.itervalues(): - data["perms"] = {} - get_permission(data["perms"], data["permission"]) - data["perms"]["admin"] = True if data["role"] is 0 else False - - - s = request.environ.get('beaker.session') - if request.environ.get('REQUEST_METHOD', "GET") == "POST": - for name in user: - if request.POST.get("%s|admin" % name, False): - user[name]["role"] = 0 - user[name]["perms"]["admin"] = True - elif name != s["name"]: - user[name]["role"] = 1 - user[name]["perms"]["admin"] = False - - # set all perms to false - for perm in perms: - user[name]["perms"][perm] = False - - - for perm in request.POST.getall("%s|perms" % name): - user[name]["perms"][perm] = True - - user[name]["permission"] = set_permission(user[name]["perms"]) - - PYLOAD.setUserPermission(name, user[name]["permission"], user[name]["role"]) - - return render_to_response("admin.html", {"users": user, "permlist": perms}, [pre_processor]) - - -@route("/setup") -def setup(): - if PYLOAD or not SETUP: - return base([_("Run pyLoadCore.py -s to access the setup.")]) - - return render_to_response('setup.html', {"user": False, "perms": False}) - - -@login_required("STATUS") -@route("/info") -def info(): - conf = PYLOAD.getConfigRef() - - if hasattr(os, "uname"): - extra = os.uname() - else: - extra = tuple() - - data = {"python": sys.version, - "os": " ".join((os.name, sys.platform) + extra), - "version": PYLOAD.getServerVersion(), - "folder": abspath(PYLOAD_DIR), "config": abspath(""), - "download": abspath(conf["general"]["download_folder"]), - "freespace": format_size(PYLOAD.freeSpace()), - "remote": conf["remote"]["port"], - "webif": conf["webinterface"]["port"], - "language": conf["general"]["language"]} - - return render_to_response("info.html", data, [pre_processor]) diff --git a/module/web/static/css/default/style.css b/module/web/static/css/default/style.css new file mode 100644 index 000000000..166b8c452 --- /dev/null +++ b/module/web/static/css/default/style.css @@ -0,0 +1,161 @@ + +/* + General + */ + +body { + margin: 0; + padding: 0; + font-family: 'Abel', sans-serif; + font-size: 16px; + color: #757575; + background: url("../../img/default/fancy_deboss.png") repeat scroll 0 0 transparent; +} + +h1, h2, h3 { + margin: 0; + padding: 0; + font-weight: normal; + color: #221D1D; +} + +h1 { + font-size: 2em; +} + +h2 { + font-size: 2.4em; +} + +h3 { + font-size: 1.6em; +} + +p, ul, ol { + margin-top: 0; + line-height: 180%; +} + +ul, ol { +} + +a { + text-decoration: none; + color: #FF7637; +} + +a:hover { +} + +#wrapper { + width: 960px; + margin: 70px auto 0; + padding: 0; +} + +/* + Header +*/ + +header { + background: url("../../img/default/main-wrapper-bg.png") repeat-x; + height: 70px; + position: fixed; + top: 0; + vertical-align: top; + width: 100%; + z-index: 10; +} + +header:before { + position: absolute; + content: ' '; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-color: transparent; + box-shadow: 0 0 5px black; + z-index: -1; +} + +header div.center { + padding-left: 20px; + padding-right: 20px; +} +header div.center span.title { + color: white; + float: left; + font-family: SansationRegular, sans-serif; + font-size: 40px; + margin-top: 12px; +} +header img.logo { + float: left; + padding-right: 10px; + padding-top: 7px; + width: 120px; +} + +/* + Footer +*/ + +footer { + background: url("../../img/default/main-wrapper-bg.png") repeat-x; + height: 100px; + position: relative; + width: 100%; + z-index: 10; +} + +footer img.logo { + float: left; + padding-top: 12px; + padding-right: 12px; +} + +footer div.center { + padding-top: 10px; + width: 900px; + margin-left: auto; + margin-right: auto; +} + +footer:before { + position: absolute; + content: ' '; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-color: transparent; + box-shadow: 0 0 5px black; + z-index: -1; +} + +footer .block { + font-size: 12px; + float: left; + margin: 0; + width: 150px; + padding-top: 6px; + padding-right: 30px; +} + +footer .copyright { + text-align: center; + width: auto; + padding-top: 22px; +} + +footer h2 { + background: url("../../img/default/double-line.gif") repeat-x scroll center bottom transparent !important; + color: #FFFFFF; + font-family: SansationLight, sans-serif; + font-size: 16px; + font-weight: normal; + line-height: 16px; + margin: 0; + padding-bottom: 6px; +} \ No newline at end of file diff --git a/module/web/static/css/font.css b/module/web/static/css/font.css new file mode 100644 index 000000000..ee117d43b --- /dev/null +++ b/module/web/static/css/font.css @@ -0,0 +1,37 @@ +/** + * @file + * Font styling + */ + +@font-face { + font-family: 'SansationRegular'; + src: url('../fonts/Sansation_Regular-webfont.eot'); + src: url('../fonts/Sansation_Regular-webfont.eot?#iefix') format('embedded-opentype'), + url('../fonts/Sansation_Regular-webfont.woff') format('woff'), + url('../fonts/Sansation_Regular-webfont.ttf') format('truetype'), + url('../fonts/Sansation_Regular-webfont.svg#SansationRegular') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'SansationLight'; + src: url('../fonts/Sansation_Light-webfont.eot'); + src: url('../fonts/Sansation_Light-webfont.eot?#iefix') format('embedded-opentype'), + url('../fonts/Sansation_Light-webfont.woff') format('woff'), + url('../fonts/Sansation_Light-webfont.ttf') format('truetype'), + url('../fonts/Sansation_Light-webfont.svg#SansationLight') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'SansationBold'; + src: url('../fonts/Sansation_Bold-webfont.eot'); + src: url('../fonts/Sansation_Bold-webfont.eot?#iefix') format('embedded-opentype'), + url('../fonts/Sansation_Bold-webfont.woff') format('woff'), + url('../fonts/Sansation_Bold-webfont.ttf') format('truetype'), + url('../fonts/Sansation_Bold-webfont.svg#SansationBold') format('svg'); + font-weight: normal; + font-style: normal; +} \ No newline at end of file diff --git a/module/web/static/fonts/Sansation_Bold-webfont.eot b/module/web/static/fonts/Sansation_Bold-webfont.eot new file mode 100644 index 000000000..43ed2ee31 Binary files /dev/null and b/module/web/static/fonts/Sansation_Bold-webfont.eot differ diff --git a/module/web/static/fonts/Sansation_Bold-webfont.ttf b/module/web/static/fonts/Sansation_Bold-webfont.ttf new file mode 100644 index 000000000..d2e7c4c2a Binary files /dev/null and b/module/web/static/fonts/Sansation_Bold-webfont.ttf differ diff --git a/module/web/static/fonts/Sansation_Bold-webfont.woff b/module/web/static/fonts/Sansation_Bold-webfont.woff new file mode 100644 index 000000000..9ee938d55 Binary files /dev/null and b/module/web/static/fonts/Sansation_Bold-webfont.woff differ diff --git a/module/web/static/fonts/Sansation_Light-webfont.eot b/module/web/static/fonts/Sansation_Light-webfont.eot new file mode 100644 index 000000000..d83fa9cf6 Binary files /dev/null and b/module/web/static/fonts/Sansation_Light-webfont.eot differ diff --git a/module/web/static/fonts/Sansation_Light-webfont.ttf b/module/web/static/fonts/Sansation_Light-webfont.ttf new file mode 100644 index 000000000..64d734bec Binary files /dev/null and b/module/web/static/fonts/Sansation_Light-webfont.ttf differ diff --git a/module/web/static/fonts/Sansation_Light-webfont.woff b/module/web/static/fonts/Sansation_Light-webfont.woff new file mode 100644 index 000000000..5f3dce493 Binary files /dev/null and b/module/web/static/fonts/Sansation_Light-webfont.woff differ diff --git a/module/web/static/fonts/Sansation_Regular-webfont.eot b/module/web/static/fonts/Sansation_Regular-webfont.eot new file mode 100644 index 000000000..46219c9ff Binary files /dev/null and b/module/web/static/fonts/Sansation_Regular-webfont.eot differ diff --git a/module/web/static/fonts/Sansation_Regular-webfont.ttf b/module/web/static/fonts/Sansation_Regular-webfont.ttf new file mode 100644 index 000000000..92f686359 Binary files /dev/null and b/module/web/static/fonts/Sansation_Regular-webfont.ttf differ diff --git a/module/web/static/fonts/Sansation_Regular-webfont.woff b/module/web/static/fonts/Sansation_Regular-webfont.woff new file mode 100644 index 000000000..524b67992 Binary files /dev/null and b/module/web/static/fonts/Sansation_Regular-webfont.woff differ diff --git a/module/web/static/img/default/fancy_deboss.png b/module/web/static/img/default/fancy_deboss.png new file mode 100644 index 000000000..926a762db Binary files /dev/null and b/module/web/static/img/default/fancy_deboss.png differ diff --git a/module/web/static/img/default/logo.png b/module/web/static/img/default/logo.png new file mode 100644 index 000000000..3a59b54aa Binary files /dev/null and b/module/web/static/img/default/logo.png differ diff --git a/module/web/static/img/default/logo_grey.png b/module/web/static/img/default/logo_grey.png new file mode 100644 index 000000000..7061372aa Binary files /dev/null and b/module/web/static/img/default/logo_grey.png differ diff --git a/module/web/static/img/default/main-wrapper-bg.png b/module/web/static/img/default/main-wrapper-bg.png new file mode 100644 index 000000000..68febb6a2 Binary files /dev/null and b/module/web/static/img/default/main-wrapper-bg.png differ diff --git a/module/web/static/img/favicon.ico b/module/web/static/img/favicon.ico new file mode 100644 index 000000000..58b1f4b89 Binary files /dev/null and b/module/web/static/img/favicon.ico differ diff --git a/module/web/static/js/libs/jquery-1.8.0.min.js b/module/web/static/js/libs/jquery-1.8.0.min.js new file mode 100644 index 000000000..f121291c4 --- /dev/null +++ b/module/web/static/js/libs/jquery-1.8.0.min.js @@ -0,0 +1,2 @@ +/*! jQuery v@1.8.0 jquery.com | jquery.org/license */ +(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write(""),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bR[a]=c,c}function ch(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||cd.test(a)?d(a,e):ch(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ch(a+"["+e+"]",b[e],c,d);else d(a,b)}function cy(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.0",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,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(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return typeof a=="object"?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b
a",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length||!d)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="
t
",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="
",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/^(?:\{.*\}|\[.*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||++p.uuid:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.shift(),e=p._queueHooks(a,b),f=function(){p.dequeue(a,b)};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),delete e.stop,d.call(a,f,e)),!c.length&&e&&e.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c-1)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c-1)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,""+d),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;jq&&u.push({elem:this,matches:o.slice(q)});for(d=0;d0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function bd(a,b,c,d){var e=0,f=b.length;for(;e0?h(g,c,f):[]}function bf(a,c,d,e,f){var g,h,i,j,k,l,m,n,p=0,q=f.length,s=L.POS,t=new RegExp("^"+s.source+"(?!"+r+")","i"),u=function(){var a=1,c=arguments.length-2;for(;ai){m=a.slice(i,g.index),i=n,l=[c],B.test(m)&&(k&&(l=k),k=e);if(h=H.test(m))m=m.slice(0,-5).replace(B,"$&*");g.length>1&&g[0].replace(t,u),k=be(m,g[1],g[2],l,k,h)}}k?(j=j.concat(k),(m=a.slice(i))&&m!==")"?B.test(m)?bd(m,j,d,e):Z(m,c,d,e?e.concat(k):k):o.apply(d,j)):Z(a,c,d,e)}return q===1?d:Z.uniqueSort(d)}function bg(a,b,c){var d,e,f,g=[],i=0,j=D.exec(a),k=!j.pop()&&!j.pop(),l=k&&a.match(C)||[""],m=$.preFilter,n=$.filter,o=!c&&b!==h;for(;(e=l[i])!=null&&k;i++){g.push(d=[]),o&&(e=" "+e);while(e){k=!1;if(j=B.exec(e))e=e.slice(j[0].length),k=d.push({part:j.pop().replace(A," "),captures:j});for(f in n)(j=L[f].exec(e))&&(!m[f]||(j=m[f](j,b,c)))&&(e=e.slice(j.shift().length),k=d.push({part:f,captures:j}));if(!k)break}}return k||Z.error(a),g}function bh(a,b,e){var f=b.dir,g=m++;return a||(a=function(a){return a===e}),b.first?function(b,c){while(b=b[f])if(b.nodeType===1)return a(b,c)&&b}:function(b,e){var h,i=g+"."+d,j=i+"."+c;while(b=b[f])if(b.nodeType===1){if((h=b[q])===j)return b.sizset;if(typeof h=="string"&&h.indexOf(i)===0){if(b.sizset)return b}else{b[q]=j;if(a(b,e))return b.sizset=!0,b;b.sizset=!1}}}}function bi(a,b){return a?function(c,d){var e=b(c,d);return e&&a(e===!0?c:e,d)}:b}function bj(a,b,c){var d,e,f=0;for(;d=a[f];f++)$.relative[d.part]?e=bh(e,$.relative[d.part],b):(d.captures.push(b,c),e=bi(e,$.filter[d.part].apply(null,d.captures)));return e}function bk(a){return function(b,c){var d,e=0;for(;d=a[e];e++)if(d(b,c))return!0;return!1}}var c,d,e,f,g,h=a.document,i=h.documentElement,j="undefined",k=!1,l=!0,m=0,n=[].slice,o=[].push,q=("sizcache"+Math.random()).replace(".",""),r="[\\x20\\t\\r\\n\\f]",s="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",t=s.replace("w","w#"),u="([*^$|!~]?=)",v="\\["+r+"*("+s+")"+r+"*(?:"+u+r+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+t+")|)|)"+r+"*\\]",w=":("+s+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|((?:[^,]|\\\\,|(?:,(?=[^\\[]*\\]))|(?:,(?=[^\\(]*\\))))*))\\)|)",x=":(nth|eq|gt|lt|first|last|even|odd)(?:\\((\\d*)\\)|)(?=[^-]|$)",y=r+"*([\\x20\\t\\r\\n\\f>+~])"+r+"*",z="(?=[^\\x20\\t\\r\\n\\f])(?:\\\\.|"+v+"|"+w.replace(2,7)+"|[^\\\\(),])+",A=new RegExp("^"+r+"+|((?:^|[^\\\\])(?:\\\\.)*)"+r+"+$","g"),B=new RegExp("^"+y),C=new RegExp(z+"?(?="+r+"*,|$)","g"),D=new RegExp("^(?:(?!,)(?:(?:^|,)"+r+"*"+z+")*?|"+r+"*(.*?))(\\)|$)"),E=new RegExp(z.slice(19,-6)+"\\x20\\t\\r\\n\\f>+~])+|"+y,"g"),F=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,G=/[\x20\t\r\n\f]*[+~]/,H=/:not\($/,I=/h\d/i,J=/input|select|textarea|button/i,K=/\\(?!\\)/g,L={ID:new RegExp("^#("+s+")"),CLASS:new RegExp("^\\.("+s+")"),NAME:new RegExp("^\\[name=['\"]?("+s+")['\"]?\\]"),TAG:new RegExp("^("+s.replace("[-","[-\\*")+")"),ATTR:new RegExp("^"+v),PSEUDO:new RegExp("^"+w),CHILD:new RegExp("^:(only|nth|last|first)-child(?:\\("+r+"*(even|odd|(([+-]|)(\\d*)n|)"+r+"*(?:([+-]|)"+r+"*(\\d+)|))"+r+"*\\)|)","i"),POS:new RegExp(x,"ig"),needsContext:new RegExp("^"+r+"*[>+~]|"+x,"i")},M={},N=[],O={},P=[],Q=function(a){return a.sizzleFilter=!0,a},R=function(a){return function(b){return b.nodeName.toLowerCase()==="input"&&b.type===a}},S=function(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}},T=function(a){var b=!1,c=h.createElement("div");try{b=a(c)}catch(d){}return c=null,b},U=T(function(a){a.innerHTML="";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),V=T(function(a){a.id=q+0,a.innerHTML="
",i.insertBefore(a,i.firstChild);var b=h.getElementsByName&&h.getElementsByName(q).length===2+h.getElementsByName(q+0).length;return g=!h.getElementById(q),i.removeChild(a),b}),W=T(function(a){return a.appendChild(h.createComment("")),a.getElementsByTagName("*").length===0}),X=T(function(a){return a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!==j&&a.firstChild.getAttribute("href")==="#"}),Y=T(function(a){return a.innerHTML="",!a.getElementsByClassName||a.getElementsByClassName("e").length===0?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length!==1)}),Z=function(a,b,c,d){c=c||[],b=b||h;var e,f,g,i,j=b.nodeType;if(j!==1&&j!==9)return[];if(!a||typeof a!="string")return c;g=ba(b);if(!g&&!d)if(e=F.exec(a))if(i=e[1]){if(j===9){f=b.getElementById(i);if(!f||!f.parentNode)return c;if(f.id===i)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(i))&&bb(b,f)&&f.id===i)return c.push(f),c}else{if(e[2])return o.apply(c,n.call(b.getElementsByTagName(a),0)),c;if((i=e[3])&&Y&&b.getElementsByClassName)return o.apply(c,n.call(b.getElementsByClassName(i),0)),c}return bm(a,b,c,d,g)},$=Z.selectors={cacheLength:50,match:L,order:["ID","TAG"],attrHandle:{},createPseudo:Q,find:{ID:g?function(a,b,c){if(typeof b.getElementById!==j&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==j&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==j&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:W?function(a,b){if(typeof b.getElementsByTagName!==j)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(K,""),a[3]=(a[4]||a[5]||"").replace(K,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||Z.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&Z.error(a[0]),a},PSEUDO:function(a){var b,c=a[4];return L.CHILD.test(a[0])?null:(c&&(b=D.exec(c))&&b.pop()&&(a[0]=a[0].slice(0,b[0].length-c.length-1),c=b[0].slice(0,-1)),a.splice(2,3,c||a[3]),a)}},filter:{ID:g?function(a){return a=a.replace(K,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(K,""),function(b){var c=typeof b.getAttributeNode!==j&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(K,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=M[a];return b||(b=M[a]=new RegExp("(^|"+r+")"+a+"("+r+"|$)"),N.push(a),N.length>$.cacheLength&&delete M[N.shift()]),function(a){return b.test(a.className||typeof a.getAttribute!==j&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return b?function(d){var e=Z.attr(d,a),f=e+"";if(e==null)return b==="!=";switch(b){case"=":return f===c;case"!=":return f!==c;case"^=":return c&&f.indexOf(c)===0;case"*=":return c&&f.indexOf(c)>-1;case"$=":return c&&f.substr(f.length-c.length)===c;case"~=":return(" "+f+" ").indexOf(c)>-1;case"|=":return f===c||f.substr(0,c.length+1)===c+"-"}}:function(b){return Z.attr(b,a)!=null}},CHILD:function(a,b,c,d){if(a==="nth"){var e=m++;return function(a){var b,f,g=0,h=a;if(c===1&&d===0)return!0;b=a.parentNode;if(b&&(b[q]!==e||!a.sizset)){for(h=b.firstChild;h;h=h.nextSibling)if(h.nodeType===1){h.sizset=++g;if(h===a)break}b[q]=e}return f=a.sizset-d,c===0?f===0:f%c===0&&f/c>=0}}return function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b,c,d){var e=$.pseudos[a]||$.pseudos[a.toLowerCase()];return e||Z.error("unsupported pseudo: "+a),e.sizzleFilter?e(b,c,d):e}},pseudos:{not:Q(function(a,b,c){var d=bl(a.replace(A,"$1"),b,c);return function(a){return!d(a)}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!$.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},contains:Q(function(a){return function(b){return(b.textContent||b.innerText||bc(b)).indexOf(a)>-1}}),has:Q(function(a){return function(b){return Z(a,b).length>0}}),header:function(a){return I.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:R("radio"),checkbox:R("checkbox"),file:R("file"),password:R("password"),image:R("image"),submit:S("submit"),reset:S("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return J.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b,c){return c?a.slice(1):[a[0]]},last:function(a,b,c){var d=a.pop();return c?a:[d]},even:function(a,b,c){var d=[],e=c?1:0,f=a.length;for(;e$.cacheLength&&delete O[P.shift()],g};Z.matches=function(a,b){return Z(a,null,null,b)},Z.matchesSelector=function(a,b){return Z(b,null,null,[a]).length>0};var bm=function(a,b,e,f,g){a=a.replace(A,"$1");var h,i,j,k,l,m,p,q,r,s=a.match(C),t=a.match(E),u=b.nodeType;if(L.POS.test(a))return bf(a,b,e,f,s);if(f)h=n.call(f,0);else if(s&&s.length===1){if(t.length>1&&u===9&&!g&&(s=L.ID.exec(t[0]))){b=$.find.ID(s[1],b,g)[0];if(!b)return e;a=a.slice(t.shift().length)}q=(s=G.exec(t[0]))&&!s.index&&b.parentNode||b,r=t.pop(),m=r.split(":not")[0];for(j=0,k=$.order.length;j",a.querySelectorAll("[selected]").length||e.push("\\["+r+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),T(function(a){a.innerHTML="

",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+r+"*(?:\"\"|'')"),a.innerHTML="",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=e.length&&new RegExp(e.join("|")),bm=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a)))if(d.nodeType===9)try{return o.apply(f,n.call(d.querySelectorAll(a),0)),f}catch(i){}else if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){var j=d.getAttribute("id"),k=j||q,l=G.test(a)&&d.parentNode||d;j?k=k.replace(c,"\\$&"):d.setAttribute("id",k);try{return o.apply(f,n.call(l.querySelectorAll(a.replace(C,"[id='"+k+"'] $&")),0)),f}catch(i){}finally{j||d.removeAttribute("id")}}return b(a,d,f,g,h)},g&&(T(function(b){a=g.call(b,"div");try{g.call(b,"[test!='']:sizzle"),f.push($.match.PSEUDO)}catch(c){}}),f=new RegExp(f.join("|")),Z.matchesSelector=function(b,c){c=c.replace(d,"='$1']");if(!ba(b)&&!f.test(c)&&(!e||!e.test(c)))try{var h=g.call(b,c);if(h||a||b.document&&b.document.nodeType!==11)return h}catch(i){}return Z(c,null,null,[b]).length>0})}(),Z.attr=p.attr,p.find=Z,p.expr=Z.selectors,p.expr[":"]=p.expr.pseudos,p.unique=Z.uniqueSort,p.text=Z.getText,p.isXMLDoc=Z.isXML,p.contains=Z.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b0)for(e=d;e=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*\s*$/g,bz={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X
","
"]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(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){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1>");try{for(;d1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=0,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(g=b===e&&bA;(h=a[s])!=null;s++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{g=g||bk(b),l=l||g.appendChild(b.createElement("div")),h=h.replace(bo,"<$1>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]===""&&!m?l.childNodes:[];for(f=n.length-1;f>=0;--f)p.nodeName(n[f],"tbody")&&!n[f].childNodes.length&&n[f].parentNode.removeChild(n[f])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l=g.lastChild}h.nodeType?t.push(h):t=p.merge(t,h)}l&&(g.removeChild(l),h=l=g=null);if(!p.support.appendChecked)for(s=0;(h=t[s])!=null;s++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(s=0;(h=t[s])!=null;s++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[s+1,0].concat(r)),s+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^margin/,bO=new RegExp("^("+q+")(.*)$","i"),bP=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bQ=new RegExp("^([-+])=("+q+")","i"),bR={},bS={position:"absolute",visibility:"hidden",display:"block"},bT={letterSpacing:0,fontWeight:400,lineHeight:1},bU=["Top","Right","Bottom","Left"],bV=["Webkit","O","Moz","ms"],bW=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return bZ(this,!0)},hide:function(){return bZ(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bW.apply(this,arguments):this.each(function(){(c?a:bY(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bX(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bQ.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bX(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bT&&(f=bT[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(a,b){var c,d,e,f,g=getComputedStyle(a,null),h=a.style;return g&&(c=g[b],c===""&&!p.contains(a.ownerDocument.documentElement,a)&&(c=p.style(a,b)),bP.test(c)&&bN.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=c,c=g.width,h.width=d,h.minWidth=e,h.maxWidth=f)),c}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bP.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0||bH(a,"display")!=="none"?ca(a,b,d):p.swap(a,bS,function(){return ca(a,b,d)})},set:function(a,c,d){return b$(a,c,d?b_(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bP.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bU[d]+b]=e[d]||e[d-2]||e[0];return f}},bN.test(a)||(p.cssHooks[a+b].set=b$)});var cc=/%20/g,cd=/\[\]$/,ce=/\r?\n/g,cf=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,cg=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||cg.test(this.nodeName)||cf.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(ce,"\r\n")}}):{name:b.name,value:c.replace(ce,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ch(d,a[d],c,f);return e.join("&").replace(cc,"+")};var ci,cj,ck=/#.*$/,cl=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cm=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,cn=/^(?:GET|HEAD)$/,co=/^\/\//,cp=/\?/,cq=/)<[^<]*)*<\/script>/gi,cr=/([?&])_=[^&]*/,cs=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,ct=p.fn.load,cu={},cv={},cw=["*/"]+["*"];try{ci=f.href}catch(cx){ci=e.createElement("a"),ci.href="",ci=ci.href}cj=cs.exec(ci.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&ct)return ct.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("
").append(a.replace(cq,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cA(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cA(a,b),a},ajaxSettings:{url:ci,isLocal:cm.test(cj[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cw},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cy(cu),ajaxTransport:cy(cv),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cB(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cC(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=""+(c||y),k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cl.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(ck,"").replace(co,cj[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=cs.exec(l.url.toLowerCase()),l.crossDomain=!(!i||i[1]==cj[1]&&i[2]==cj[2]&&(i[3]||(i[1]==="http:"?80:443))==(cj[3]||(cj[1]==="http:"?80:443)))),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cz(cu,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!cn.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cp.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cr,"$1_="+z);l.url=A+(A===l.url?(cp.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cw+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cz(cv,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cD=[],cE=/\?/,cF=/(=)\?(?=&|$)|\?\?/,cG=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cD.pop()||p.expando+"_"+cG++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cF.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cF.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cF,"$1"+f):m?c.data=i.replace(cF,"$1"+f):k&&(c.url+=(cE.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cD.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cH,cI=a.ActiveXObject?function(){for(var a in cH)cH[a](0,1)}:!1,cJ=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cK()||cL()}:cK,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cI&&delete cH[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cJ,cI&&(cH||(cH={},p(a).unload(cI)),cH[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cM,cN,cO=/^(?:toggle|show|hide)$/,cP=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cQ=/queueHooks$/,cR=[cX],cS={"*":[function(a,b){var c,d,e,f=this.createTween(a,b),g=cP.exec(b),h=f.cur(),i=+h||0,j=1;if(g){c=+g[2],d=g[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&i){i=p.css(f.elem,a,!0)||c||1;do e=j=j||".5",i=i/j,p.style(f.elem,a,i+d),j=f.cur()/h;while(j!==1&&j!==e)}f.unit=d,f.start=i,f.end=g[1]?i+(g[1]+1)*c:c}return f}]};p.Animation=p.extend(cV,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c$.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c$.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=c_(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window); \ No newline at end of file diff --git a/module/web/templates/500.html b/module/web/templates/500.html index e15090b66..8bffe6dbb 100644 --- a/module/web/templates/500.html +++ b/module/web/templates/500.html @@ -1,5 +1,4 @@ - + Server Error diff --git a/module/web/templates/default/admin.html b/module/web/templates/default/admin.html deleted file mode 100644 index b049411fd..000000000 --- a/module/web/templates/default/admin.html +++ /dev/null @@ -1,98 +0,0 @@ -{% extends 'default/base.html' %} - -{% block head %} - -{% endblock %} - - -{% block title %}{{ _("Administrate") }} - {{ super() }} {% endblock %} -{% block subtitle %}{{ _("Administrate") }}{% endblock %} - -{% block content %} - - {{_("Quit pyLoad")}} | - {{_("Restart pyLoad")}} -
-
- - {{ _("To add user or change passwords use:") }} python pyLoadCore.py -u
- {{ _("Important: Admin user have always all permissions!") }} - -
-
- - - - - - - - {% for name, data in users.iteritems() %} - - - - - - - {% endfor %} - - -
- {{ _("Name") }} - - {{ _("Change Password") }} - - {{ _("Admin") }} - - {{ _("Permissions") }} -
{{ name }}{{ _("change") }} - -
- - - -{% endblock %} -{% block hidden %} -
-
-

{{ _("Change Password") }}

- -

{{ _("Enter your current and desired Password.") }}

- - - - - - - - - - - - - - - -
- -
- -
-{% endblock %} diff --git a/module/web/templates/default/base.html b/module/web/templates/default/base.html index 1f77c04ba..36a81d662 100644 --- a/module/web/templates/default/base.html +++ b/module/web/templates/default/base.html @@ -1,180 +1,79 @@ - - - + + + - - - - + + + + - - - - + + {% block title %}pyLoad {{ _("Webinterface") }}{% endblock %} - - -{% block title %}pyLoad {{_("Webinterface")}}{% endblock %} - -{% block head %} -{% endblock %} + {% block head %} + {% endblock %} - - -
- - -
- {% block headpanel %} - - {% if user.is_authenticated %} - - -{% if update %} - -{{_("pyLoad Update available!")}} - -{% endif %} - - -{% if plugins %} - -{{_("Plugins updated, please restart!")}} - -{% endif %} - - -Captcha: -{{_("Captcha waiting")}} - - - User:{{user.name}} - -{% else %} - {{_("Please Login!")}} -{% endif %} - - {% endblock %} -
- - - -
- -
- -
-
- -{% if perms.STATUS %} - -{% endif %} - -{% if perms.LIST %} - -{% endif %} - -{% block pageactions %} -{% endblock %} -
- -
- -
- -

{% block subtitle %}pyLoad - {{_("Webinterface")}}{% endblock %}

- -{% block statusbar %} -{% endblock %} - - -
- -
-
- - -{% for message in messages %} -

{{message}}

-{% endfor %} - -
- - {{_("loading")}} -
- -{% block content %} -{% endblock content %} - -
- - -
-
- -
- {% include "default/window.html" %} - {% include "default/captcha.html" %} - {% block hidden %} - {% endblock %} +
+
+ + pyLoad +
+
+
+ {% for message in messages %} +

{{ message }}

+ {% endfor %} + +

Test!

+ + {% block content %} + {% endblock content %}
+
+
+ + + + +
+

Powered by

+ asd
+ dsfdsf
+ sdf dsg
+
+ +
+

pyLoad

+ asd
+ dsfdsf
+ sdf dsg
+
+ +
+

Community

+ asd
+ dsfdsf
+ sdf dsg
+
+ +
+

Development

+ asd
+ dsfdsf
+ sdf dsg
+
+ +
+ +
+ +{% block deferred %} +{% endblock deferred %} diff --git a/module/web/templates/default/captcha.html b/module/web/templates/default/captcha.html deleted file mode 100644 index 332a9c102..000000000 --- a/module/web/templates/default/captcha.html +++ /dev/null @@ -1,42 +0,0 @@ - -
- -
- -

{{_("Captcha reading")}}

-

{{_("Please read the text on the captcha.")}}

- -
- - - - - - - - - - - -
- -
- -
- -
- - - - -
- -
- -
- -
\ No newline at end of file diff --git a/module/web/templates/default/downloads.html b/module/web/templates/default/downloads.html deleted file mode 100644 index 450b8a102..000000000 --- a/module/web/templates/default/downloads.html +++ /dev/null @@ -1,29 +0,0 @@ -{% extends 'default/base.html' %} - -{% block title %}Downloads - {{super()}} {% endblock %} - -{% block subtitle %} -{{_("Downloads")}} -{% endblock %} - -{% block content %} - -
    - {% for folder in files.folder %} -
  • - {{ folder.name }} -
      - {% for file in folder.files %} -
    • {{file}}
    • - {% endfor %} -
    -
  • - {% endfor %} - - {% for file in files.files %} -
  • {{ file }}
  • - {% endfor %} - -
- -{% endblock %} \ No newline at end of file diff --git a/module/web/templates/default/filemanager.html b/module/web/templates/default/filemanager.html deleted file mode 100644 index 97095c13e..000000000 --- a/module/web/templates/default/filemanager.html +++ /dev/null @@ -1,80 +0,0 @@ -{% extends 'default/base.html' %} - -{% block head %} - - - - -{% endblock %} - -{% block title %}Downloads - {{super()}} {% endblock %} - - -{% block subtitle %} -{{_("FileManager")}} -{% endblock %} - -{% macro display_file(file) %} -
  • - - - - {{ file.name }} - - -    - - - -
  • -{%- endmacro %} - -{% macro display_folder(fld, open = false) -%} -
  • - - - - {{ fld.name }} - - -    - -    - - - - {% if (fld.folders|length + fld.files|length) > 0 %} - {% if open %} -
      - {% else %} -
        - {% endif %} - {% for child in fld.folders %} - {{ display_folder(child) }} - {% endfor %} - {% for child in fld.files %} - {{ display_file(child) }} - {% endfor %} -
      - {% else %} -
      {{ _("Folder is empty") }}
      - {% endif %} - -{%- endmacro %} - -{% block content %} - -
      - -
        -{{ display_folder(root, true) }} -
      - -{% include "default/rename_directory.html" %} - -{% endblock %} diff --git a/module/web/templates/default/filemanager_ui.js b/module/web/templates/default/filemanager_ui.js deleted file mode 100644 index ed64ab69d..000000000 --- a/module/web/templates/default/filemanager_ui.js +++ /dev/null @@ -1,291 +0,0 @@ -var load, rename_box, confirm_box; - -document.addEvent("domready", function() { - load = new Fx.Tween($("load-indicator"), {link: "cancel"}); - load.set("opacity", 0); - - rename_box = new Fx.Tween($('rename_box')); - confirm_box = new Fx.Tween($('confirm_box')); - $('rename_reset').addEvent('click', function() { - hide_rename_box() - }); - $('delete_reset').addEvent('click', function() { - hide_confirm_box() - }); - - /*$('filemanager_actions_list').getChildren("li").each(function(action) { - var action_name = action.className; - if(functions[action.className] != undefined) - { - action.addEvent('click', functions[action.className]); - } - });*/ -}); - -function indicateLoad() { - //$("load-indicator").reveal(); - load.start("opacity", 1) -} - -function indicateFinish() { - load.start("opacity", 0) -} - -function indicateSuccess() { - indicateFinish(); - notify.alert('{{_("Success")}}.', { - 'className': 'success' - }); -} - -function indicateFail() { - indicateFinish(); - notify.alert('{{_("Failed")}}.', { - 'className': 'error' - }); -} - -function show_rename_box() { - bg_show(); - $("rename_box").setStyle('display', 'block'); - rename_box.start('opacity', 1) -} - -function hide_rename_box() { - bg_hide(); - rename_box.start('opacity', 0).chain(function() { - $('rename_box').setStyle('display', 'none'); - }); -} - -function show_confirm_box() { - bg_show(); - $("confirm_box").setStyle('display', 'block'); - confirm_box.start('opacity', 1) -} - -function hide_confirm_box() { - bg_hide(); - confirm_box.start('opacity', 0).chain(function() { - $('confirm_box').setStyle('display', 'none'); - }); -} - -var FilemanagerUI = new Class({ - initialize: function(url, type) { - this.url = url; - this.type = type; - this.directories = []; - this.files = []; - this.parseChildren(); - }, - - parseChildren: function() { - $("directories-list").getChildren("li.folder").each(function(ele) { - var path = ele.getElements("input.path")[0].get("value"); - var name = ele.getElements("input.name")[0].get("value"); - this.directories.push(new Item(this, path, name, ele)) - }.bind(this)); - - $("directories-list").getChildren("li.file").each(function(ele) { - var path = ele.getElements("input.path")[0].get("value"); - var name = ele.getElements("input.name")[0].get("value"); - this.files.push(new Item(this, path, name, ele)) - }.bind(this)); - } -}); - -var Item = new Class({ - initialize: function(ui, path, name, ele) { - this.ui = ui; - this.path = path; - this.name = name; - this.ele = ele; - this.directories = []; - this.files = []; - this.actions = new Array(); - this.actions["delete"] = this.del; - this.actions["rename"] = this.rename; - this.actions["mkdir"] = this.mkdir; - this.parseElement(); - - var pname = this.ele.getElements("span")[0]; - this.buttons = new Fx.Tween(this.ele.getElements(".buttons")[0], {link: "cancel"}); - this.buttons.set("opacity", 0); - - pname.addEvent("mouseenter", function(e) { - this.buttons.start("opacity", 1) - }.bind(this)); - - pname.addEvent("mouseleave", function(e) { - this.buttons.start("opacity", 0) - }.bind(this)); - - }, - - parseElement: function() { - this.ele.getChildren('span span.buttons img').each(function(img) { - img.addEvent('click', this.actions[img.className].bind(this)); - }, this); - - //click on the directory name must open the directory itself - this.ele.getElements('b')[0].addEvent('click', this.toggle.bind(this)); - - //iterate over child directories - var uls = this.ele.getElements('ul'); - if(uls.length > 0) - { - uls[0].getChildren("li.folder").each(function(fld) { - var path = fld.getElements("input.path")[0].get("value"); - var name = fld.getElements("input.name")[0].get("value"); - this.directories.push(new Item(this, path, name, fld)); - }.bind(this)); - uls[0].getChildren("li.file").each(function(fld) { - var path = fld.getElements("input.path")[0].get("value"); - var name = fld.getElements("input.name")[0].get("value"); - this.files.push(new Item(this, path, name, fld)); - }.bind(this)); - } - }, - - reorderElements: function() { - //TODO sort the main ul again (to keep data ordered after renaming something) - }, - - del: function(event) { - $("confirm_form").removeEvents("submit"); - $("confirm_form").addEvent("submit", this.deleteDirectory.bind(this)); - - $$("#confirm_form p").set('html', '{{_(("Are you sure you want to delete the selected item?"))}}'); - - show_confirm_box(); - event.stop(); - }, - - deleteDirectory: function(event) { - hide_confirm_box(); - new Request.JSON({ - method: 'POST', - url: "/json/filemanager/delete", - data: {"path": this.path, "name": this.name}, - onSuccess: function(data) { - if(data.response == "success") - { - new Fx.Tween(this.ele).start('opacity', 0); - var ul = this.ele.parentNode; - this.ele.dispose(); - //if this was the only child, add a "empty folder" div - if(!ul.getChildren('li')[0]) - { - var div = new Element("div", { 'html': '{{ _("Folder is empty") }}' }); - div.replaces(ul); - } - - indicateSuccess(); - } else - { - //error from json code... - indicateFail(); - } - }.bind(this), - onFailure: indicateFail - }).send(); - - event.stop(); - }, - - rename: function(event) { - $("rename_form").removeEvents("submit"); - $("rename_form").addEvent("submit", this.renameDirectory.bind(this)); - - $("path").set("value", this.path); - $("old_name").set("value", this.name); - $("new_name").set("value", this.name); - - show_rename_box(); - event.stop(); - }, - - renameDirectory: function(event) { - hide_rename_box(); - new Request.JSON({ - method: 'POST', - url: "/json/filemanager/rename", - onSuccess: function(data) { - if(data.response == "success") - { - this.name = $("new_name").get("value"); - this.ele.getElements("b")[0].set('html', $("new_name").get("value")); - this.reorderElements(); - indicateSuccess(); - } else - { - //error from json code... - indicateFail(); - } - }.bind(this), - onFailure: indicateFail - }).send($("rename_form").toQueryString()); - - event.stop(); - }, - - mkdir: function(event) { - new Request.JSON({ - method: 'POST', - url: "/json/filemanager/mkdir", - data: {"path": this.path + "/" + this.name, "name": '{{_("New folder")}}'}, - onSuccess: function(data) { - if(data.response == "success") - { - new Request.HTML({ - method: 'POST', - url: "/filemanager/get_dir", - data: {"path": data.path, "name": data.name}, - onSuccess: function(li) { - //add node as first child of ul - var ul = this.ele.getChildren('ul')[0]; - if(!ul) - { - //remove the "Folder Empty" div - this.ele.getChildren('div').dispose(); - - //create new ul to contain subfolder - ul = new Element("ul"); - ul.inject(this.ele, 'bottom'); - } - li[0].inject(ul, 'top'); - - //add directory as a subdirectory of the current item - this.directories.push(new Item(this.ui, data.path, data.name, ul.firstChild)); - }.bind(this), - onFailure: indicateFail - }).send(); - indicateSuccess(); - } else - { - //error from json code... - indicateFail(); - } - }.bind(this), - onFailure: indicateFail - }).send(); - - event.stop(); - }, - - toggle: function() { - var child = this.ele.getElement('ul'); - if(child == null) - child = this.ele.getElement('div'); - - if(child != null) - { - if (child.getStyle('display') == "block") { - child.dissolve(); - } else { - child.reveal(); - } - } - } -}); diff --git a/module/web/templates/default/folder.html b/module/web/templates/default/folder.html deleted file mode 100644 index b385e80cb..000000000 --- a/module/web/templates/default/folder.html +++ /dev/null @@ -1,15 +0,0 @@ -
    • - - - - {{ name }} - - -    - -    - - - -
      {{ _("Folder is empty") }}
      -
    • \ No newline at end of file diff --git a/module/web/templates/default/home.html b/module/web/templates/default/home.html deleted file mode 100644 index 0efb1bcf8..000000000 --- a/module/web/templates/default/home.html +++ /dev/null @@ -1,266 +0,0 @@ -{% extends 'default/base.html' %} -{% block head %} - - - -{% endblock %} - -{% block subtitle %} -{{_("Active Downloads")}} -{% endblock %} - -{% block menu %} -
    • - {{_("Home")}} -
    • -
    • - {{_("Queue")}} -
    • -
    • - {{_("Collector")}} -
    • -
    • - {{_("Downloads")}} -
    • -{#
    • #} -{# {{_("FileManager")}}#} -{#
    • #} -
    • - {{_("Logs")}} -
    • -
    • - {{_("Config")}} -
    • -{% endblock %} - -{% block content %} - - - - - - - - - - - - - {% for link in content %} - - - - - - - - - - - {% endfor %} - - -
      {{_("Name")}}{{_("Status")}}{{_("Information")}}{{_("Size")}}{{_("Progress")}}
      -{% endblock %} \ No newline at end of file diff --git a/module/web/templates/default/info.html b/module/web/templates/default/info.html deleted file mode 100644 index 77ae57376..000000000 --- a/module/web/templates/default/info.html +++ /dev/null @@ -1,81 +0,0 @@ -{% extends 'default/base.html' %} - -{% block head %} - -{% endblock %} - -{% block title %}{{ _("Information") }} - {{ super() }} {% endblock %} -{% block subtitle %}{{ _("Information") }}{% endblock %} - -{% block content %} -

      {{ _("News") }}

      -
      - -

      {{ _("Support") }}

      - - - -

      {{ _("System") }}

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      {{ _("Python:") }}{{ python }}
      {{ _("OS:") }}{{ os }}
      {{ _("pyLoad version:") }}{{ version }}
      {{ _("Installation Folder:") }}{{ folder }}
      {{ _("Config Folder:") }}{{ config }}
      {{ _("Download Folder:") }}{{ download }}
      {{ _("Free Space:") }}{{ freespace }}
      {{ _("Language:") }}{{ language }}
      {{ _("Webinterface Port:") }}{{ webif }}
      {{ _("Remote Interface Port:") }}{{ remote }}
      - -{% endblock %} \ No newline at end of file diff --git a/module/web/templates/default/login.html b/module/web/templates/default/login.html deleted file mode 100644 index 9e91ad309..000000000 --- a/module/web/templates/default/login.html +++ /dev/null @@ -1,36 +0,0 @@ -{% extends 'default/base.html' %} - -{% block title %}{{_("Login")}} - {{super()}} {% endblock %} - -{% block content %} - -
      -
      -
      - -
      - Login - -
      - -
      - -
      -
      -
      - -{% if errors %} -

      {{_("Your username and password didn't match. Please try again.")}}

      - {{ _("To reset your login data or add an user run:") }} python pyLoadCore.py -u -{% endif %} - -
      -
      - -{% endblock %} diff --git a/module/web/templates/default/logout.html b/module/web/templates/default/logout.html deleted file mode 100644 index d3f07472b..000000000 --- a/module/web/templates/default/logout.html +++ /dev/null @@ -1,9 +0,0 @@ -{% extends 'default/base.html' %} - -{% block head %} - -{% endblock %} - -{% block content %} -

      {{_("You were successfully logged out.")}}

      -{% endblock %} \ No newline at end of file diff --git a/module/web/templates/default/logs.html b/module/web/templates/default/logs.html deleted file mode 100644 index d6288df0e..000000000 --- a/module/web/templates/default/logs.html +++ /dev/null @@ -1,41 +0,0 @@ -{% extends 'default/base.html' %} - -{% block title %}{{_("Logs")}} - {{super()}} {% endblock %} -{% block subtitle %}{{_("Logs")}}{% endblock %} -{% block head %} - -{% endblock %} - -{% block content %} -
      - - -
      -
      - -   - - -
      -
      -
      {{warning}}
      -
      -
      - - {% for line in log %} - - {% endfor %} -
      {{line.line}}{{line.date}}{{line.level}}{{line.message}}
      -
      -
      -
      - - -
      -
      -
       
      -{% endblock %} \ No newline at end of file diff --git a/module/web/templates/default/pathchooser.html b/module/web/templates/default/pathchooser.html deleted file mode 100644 index d00637055..000000000 --- a/module/web/templates/default/pathchooser.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - -
      -
      -
      - - -
      - - {% if type == 'folder' %} - {{_("Path")}}: {{_("absolute")}} | {{_("relative")}} - {% else %} - {{_("Path")}}: {{_("absolute")}} | {{_("relative")}} - {% endif %} -
      - - - - - - - - {% if parentdir %} - - - - {% endif %} -{% for file in files %} - - {% if type == 'folder' %} - - {% else %} - - {% endif %} - - - - - -{% endfor %} -
      {{_("name")}}{{_("size")}}{{_("type")}}{{_("last modified")}}
      - {{_("parent directory")}} -
      {% if file.type == 'dir' %}{{ file.name|truncate(25) }}{% else %}{{ file.name|truncate(25) }}{% endif %}{% if file.type == 'dir' %}{{ file.name|truncate(25) }}{% else %}{{ file.name|truncate(25) }}{% endif %}{{ file.size|float|filesizeformat }}{% if file.type == 'dir' %}directory{% else %}{{ file.ext|default("file") }}{% endif %}{{ file.modified|date("d.m.Y - H:i:s") }}
      -
      - - \ No newline at end of file diff --git a/module/web/templates/default/queue.html b/module/web/templates/default/queue.html deleted file mode 100644 index 9403a8019..000000000 --- a/module/web/templates/default/queue.html +++ /dev/null @@ -1,108 +0,0 @@ -{% extends 'default/base.html' %} -{% block head %} - - - - -{% endblock %} - -{% if target %} - {% set name = _("Queue") %} -{% else %} - {% set name = _("Collector") %} -{% endif %} - -{% block title %}{{name}} - {{super()}} {% endblock %} -{% block subtitle %}{{name}}{% endblock %} - -{% block pageactions %} - -{% endblock %} - -{% block content %} -{% autoescape true %} - -
        -{% for package in content %} -
      • -
        - - -
        - - {{package.name}} -    - - -    - -    - -    - - -
        - {% if package.linkstotal %} - {% set progress = (package.linksdone * 100) / package.linkstotal %} - {% else %} - {% set progress = 0 %} - {% endif %} - -
        -
        - - -
        -
        - - -
        -
      • -{% endfor %} -
      -{% endautoescape %} -{% endblock %} - -{% block hidden %} -
      -
      -

      {{_("Edit Package")}}

      -

      {{_("Edit the package detais below.")}}

      - - - - - - - - - - - - -
      - -
      - -
      -{% endblock %} \ No newline at end of file diff --git a/module/web/templates/default/settings.html b/module/web/templates/default/settings.html deleted file mode 100644 index be320970b..000000000 --- a/module/web/templates/default/settings.html +++ /dev/null @@ -1,204 +0,0 @@ -{% extends 'default/base.html' %} - -{% block title %}{{ _("Config") }} - {{ super() }} {% endblock %} -{% block subtitle %}{{ _("Config") }}{% endblock %} - -{% block head %} - - - - -{% endblock %} - -{% block content %} - - - -
      - -
      - - - - - - -
      - -
      -

         {{ _("Choose a section from the menu") }}

      -
      -
      - - -
      -
      - - - - - - -
      - - -
      -

         {{ _("Choose a section from the menu") }}

      -
      -
      - -
      - -
      - - - -
      - - - - - - - - - - - - - - - - - - - - {% for account in conf.accs %} - {% set plugin = account.__name__ %} - - - - - - - - - - - - - - {% endfor %} -
      {{ _("Plugin") }}{{ _("Name") }}{{ _("Password") }}{{ _("Status") }}{{ _("Premium") }}{{ _("Valid until") }}{{ _("Traffic left") }}{{ _("Time") }}{{ _("Max Parallel") }}{{ _("Delete?") }}
      - {{ plugin }} - - - - {% if account.valid %} - - {{ _("valid") }} - {% else %} - - {{ _("not valid") }} - {% endif %} - - - {% if account.premium %} - - {{ _("yes") }} - {% else %} - - {{ _("no") }} - {% endif %} - - - - {{ account._validuntil }} - - - - {{ account._trafficleft }} - - - - - - - -
      - - - -
      -
      -
      -{% endblock %} -{% block hidden %} -
      -
      -

      {{_("Add Account")}}

      -

      {{_("Enter your account data to use premium features.")}}

      - - - - - - - - - - - -
      - -
      - -
      -{% endblock %} \ No newline at end of file diff --git a/module/web/templates/default/settings_item.html b/module/web/templates/default/settings_item.html deleted file mode 100644 index b3d7fe334..000000000 --- a/module/web/templates/default/settings_item.html +++ /dev/null @@ -1,48 +0,0 @@ - - {% if section.description %} - - {% endif %} - {% for option in section.items %} - {% set okey = option.name %} - {% set skey = section.name %} - - - - - {% endfor %} -
      {{ section.description }}
      - {% if option.type == "bool" %} - - {% elif ";" in option.type %} - - {% elif option.type == "folder" %} - - - {% elif option.type == "file" %} - - - {% elif option.type == "password" %} - - {% else %} - - {% endif %} -
      \ No newline at end of file diff --git a/module/web/templates/default/setup.html b/module/web/templates/default/setup.html deleted file mode 100644 index 39ef6f1e8..000000000 --- a/module/web/templates/default/setup.html +++ /dev/null @@ -1,13 +0,0 @@ -{% extends 'default/base.html' %} - -{% block title %}{{ _("Setup") }} - {{ super() }} {% endblock %} -{% block subtitle %}{{ _("Setup") }}{% endblock %} -{% block headpanel %}Welcome to pyLoad{% endblock %} -{% block menu %} -
    • -
    • -{% endblock %} - -{% block content %} - Comming Soon. -{% endblock %} \ No newline at end of file diff --git a/module/web/templates/default/window.html b/module/web/templates/default/window.html deleted file mode 100644 index b61fa7149..000000000 --- a/module/web/templates/default/window.html +++ /dev/null @@ -1,46 +0,0 @@ - - -
      -
      -

      {{_("Add Package")}}

      -

      {{_("Paste your links or upload a container.")}}

      - - - - - - - - - - - - - - - {{_("Queue")}} - - {{_("Collector")}} - - - - - -
      - -
      - -
      \ No newline at end of file diff --git a/module/web/utils.py b/module/web/utils.py index 1641fdbba..364f12bf4 100644 --- a/module/web/utils.py +++ b/module/web/utils.py @@ -25,8 +25,7 @@ from module.Api import has_permission, Permission, Role def render_to_response(name, args={}, proc=[]): for p in proc: args.update(p()) - - t = env.get_template(TEMPLATE + "/" + name) + t = env.get_or_select_template((TEMPLATE + "/" + name, "default/" + name)) return t.render(**args) @@ -123,13 +122,6 @@ def login_required(perm=None): return _dec -def toDict(obj): - ret = {} - for att in obj.__slots__: - ret[att] = getattr(obj, att) - return ret - - class CherryPyWSGI(ServerAdapter): def run(self, handler): from wsgiserver import CherryPyWSGIServer diff --git a/module/web/webinterface.py b/module/web/webinterface.py index 56043063e..d06ba0234 100644 --- a/module/web/webinterface.py +++ b/module/web/webinterface.py @@ -121,7 +121,6 @@ if PREFIX: web = PrefixMiddleware(web, prefix=PREFIX) import pyload_app -import json_app import cnl_app import api_app -- cgit v1.2.3