From 30357763e8282b310d182772a6d100f5212a0cb8 Mon Sep 17 00:00:00 2001 From: j Date: Sun, 18 May 2014 12:44:56 +0200 Subject: [PATCH] cancelDownloads --- oml/item/api.py | 25 +++++++++++++------------ oml/node/nodeapi.py | 1 - static/js/transfersDialog.js | 9 +++++++-- 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/oml/item/api.py b/oml/item/api.py index ca2e6cd..ffce8e8 100644 --- a/oml/item/api.py +++ b/oml/item/api.py @@ -169,22 +169,23 @@ def download(request): actions.register(download, cache=False) @returns_json -def cancelDownload(request): +def cancelDownloads(request): response = {} data = json.loads(request.form['data']) if 'data' in request.form else {} - item = models.Item.get(data['id']) - if item: - item.transferprogress = None - item.transferadded = None - p = state.user() - if p in item.users: - item.users.remove(p) - for l in item.lists.filter_by(user_id=settings.USER_ID): - l.remove(item) - item.update() + ids = data['ids'] + if ids: + for item in models.Item.query.filter(models.Item.id.in_(ids)): + item.transferprogress = None + item.transferadded = None + p = state.user() + if p in item.users: + item.users.remove(p) + for l in item.lists.filter_by(user_id=settings.USER_ID): + l.remove(item) + item.update() response = {'status': 'cancelled'} return response -actions.register(cancelDownload, cache=False) +actions.register(cancelDownloads, cache=False) @returns_json def scan(request): diff --git a/oml/node/nodeapi.py b/oml/node/nodeapi.py index d2ed686..e6ddf54 100644 --- a/oml/node/nodeapi.py +++ b/oml/node/nodeapi.py @@ -99,6 +99,5 @@ def api_cancelPeering(app, user_id, message): user.info['message'] = message user.update_peering(False) trigger_event('peering', user.json()) - user.peered = False return True return False diff --git a/static/js/transfersDialog.js b/static/js/transfersDialog.js index 4120854..63bad21 100644 --- a/static/js/transfersDialog.js +++ b/static/js/transfersDialog.js @@ -65,7 +65,12 @@ oml.ui.transfersDialog = function() { }) .bindEvent({ click: function() { - // ... + var ids = $list.options('selected'); + ids && ids.length && oml.api.cancelDownloads({ + ids: ids + }, function() { + $list.reloadList(true); + }); } }) .appendTo($item), @@ -122,4 +127,4 @@ oml.ui.transfersDialog = function() { return that; -}; \ No newline at end of file +};