From 71467f2866e96cdbe911cd9996305b7e83eef2a2 Mon Sep 17 00:00:00 2001 From: RaNaN Date: Tue, 14 Sep 2010 14:07:49 +0200 Subject: link ordering for webif --- module/FileDatabase.py | 16 +++++-- module/web/ajax/urls.py | 3 +- module/web/ajax/views.py | 15 +++++- module/web/templates/default/collector.html | 7 ++- module/web/templates/default/package_ui.js | 73 ++++++++++++++++++++++++++++- module/web/templates/default/queue.html | 7 ++- 6 files changed, 109 insertions(+), 12 deletions(-) (limited to 'module') diff --git a/module/FileDatabase.py b/module/FileDatabase.py index 37bd7b3c8..bc5e4f502 100644 --- a/module/FileDatabase.py +++ b/module/FileDatabase.py @@ -438,13 +438,19 @@ class FileHandler: def reorderFile(self, id, position): f = self.getFileData(id) - #@TODO test... - e = RemoveEvent("file", id, "collector" if not self.getPackage(f[str(id)]["package"]).queue else "queue") self.core.pullManager.addEvent(e) self.db.reorderLink(f, position) - + + pyfiles = self.cache.values() + for pyfile in pyfiles: + if pyfile.packageid != f[str(id)]["package"] or pyfile.order < 0: continue + if pyfile.order > f[str(id)]["order"]: + pyfile.order -= 1 + if pyfile.order >= position: + pyfile.order += 1 + if self.cache.has_key(id): self.cache[id].order = position @@ -576,7 +582,7 @@ class FileDatabaseBackend(Thread): def _createTables(self): """create tables for database""" - self.c.execute('CREATE TABLE IF NOT EXISTS "packages" ("id" INTEGER PRIMARY KEY AUTOINCREMENT, "name" TEXT NOT NULL, "folder" TEXT, "password" TEXT, "site" TEXT, "queue" INTEGER DEFAULT 0 NOT NULL, "packageorder" INTEGER DEFAULT 0 NOT NULL, "priority" INTEGER DEFAULT 0 NOT NULL)') + self.c.execute('CREATE TABLE IF NOT EXISTS "packages" ("id" INTEGER PRIMARY KEY AUTOINCREMENT, "name" TEXT NOT NULL, "folder" TEXT, "password" TEXT DEFAULT "", "site" TEXT DEFAULT "", "queue" INTEGER DEFAULT 0 NOT NULL, "packageorder" INTEGER DEFAULT 0 NOT NULL, "priority" INTEGER DEFAULT 0 NOT NULL)') self.c.execute('CREATE TABLE IF NOT EXISTS "links" ("id" INTEGER PRIMARY KEY AUTOINCREMENT, "url" TEXT NOT NULL, "name" TEXT, "size" INTEGER DEFAULT 0 NOT NULL, "status" INTEGER DEFAULT 3 NOT NULL, "plugin" TEXT DEFAULT "BasePlugin" NOT NULL, "error" TEXT DEFAULT "", "linkorder" INTEGER DEFAULT 0 NOT NULL, "package" INTEGER DEFAULT 0 NOT NULL, FOREIGN KEY(package) REFERENCES packages(id))') self.c.execute('CREATE INDEX IF NOT EXISTS "pIdIndex" ON links(package)') self.c.execute('VACUUM') @@ -775,7 +781,7 @@ class FileDatabaseBackend(Thread): @queue def reorderLink(self, f, position): """ reorder link with f as dict for pyfile """ - id = f.keys[0] + id = f.keys()[0] self.c.execute('UPDATE links SET linkorder=linkorder-1 WHERE linkorder > ? AND package=?', (f[str(id)]["order"], str(f[str(id)]["package"]))) self.c.execute('UPDATE links SET linkorder=linkorder+1 WHERE linkorder >= ? AND package=?', (position, str(f[str(id)]["package"]))) self.c.execute('UPDATE links SET linkorder=? WHERE id=?', (position, str(id))) diff --git a/module/web/ajax/urls.py b/module/web/ajax/urls.py index 07b5683b6..a88e3aea5 100644 --- a/module/web/ajax/urls.py +++ b/module/web/ajax/urls.py @@ -26,7 +26,8 @@ urlpatterns = patterns('ajax', (r'^restart_package/(\d+)$', 'views.restart_package'), (r'^remove_link/(\d+)$', 'views.remove_link'), (r'^restart_link/(\d+)$', 'views.restart_link'), - (r'^push_to_queue/(\d+)$', 'views.push_to_queue'), + (r'^move_package/(\d+)/(\d+)$', 'views.move_package'), (r'^set_captcha$', 'views.set_captcha'), (r'^package_order/([0-9|]+)$', 'views.package_order'), + (r'^link_order/([0-9|]+)$', 'views.link_order'), ) \ No newline at end of file diff --git a/module/web/ajax/views.py b/module/web/ajax/views.py index f020a8303..f96b93b70 100644 --- a/module/web/ajax/views.py +++ b/module/web/ajax/views.py @@ -216,6 +216,17 @@ def package_order(request, ids): except: print_exc() return HttpResponseServerError() + +@permission('pyload.can_add_dl') +def link_order(request, ids): + try: + pid, pos = ids.split("|") + settings.PYLOAD.order_file(int(pid), int(pos)) + return JsonResponse("sucess") + except: + print_exc() + return HttpResponseServerError() + @permission('pyload.can_see_dl') def link(request, id): try: @@ -259,9 +270,9 @@ def abort_link(request, id): return HttpResponseServerError() @permission('pyload.can_add_dl') -def push_to_queue(request, id): +def move_package(request, dest, id): try: - settings.PYLOAD.push_package_to_queue(int(id)) + settings.PYLOAD.move_package(int(dest), int(id)) return JsonResponse("sucess") except: return HttpResponseServerError() diff --git a/module/web/templates/default/collector.html b/module/web/templates/default/collector.html index 0143e13ec..630eddc51 100644 --- a/module/web/templates/default/collector.html +++ b/module/web/templates/default/collector.html @@ -9,7 +9,7 @@ document.addEvent("domready", function(){ load = new Fx.Tween($("load-indicator"), {link: "cancel"}); - var pUI = new PackageUI("url"); + var pUI = new PackageUI("url", 0); }); {% endblock %} @@ -48,12 +48,17 @@ document.addEvent("domready", function(){
  • +
    {{ package.name }}    +    +    + +
  • +
    {{ package.name }}    +    +    + +