From d1cbb124997166292eed2f7cfb25c82d82792226 Mon Sep 17 00:00:00 2001 From: Cédric Bonhomme Date: Sat, 28 Mar 2015 09:55:16 +0100 Subject: It is now possible to delete all duplicate articles with one request. --- pyaggr3g470r/static/js/articles.js | 33 ++++++++++++++++++++++++++++++++- pyaggr3g470r/templates/duplicates.html | 8 ++++---- pyaggr3g470r/views/api/common.py | 3 ++- 3 files changed, 38 insertions(+), 6 deletions(-) (limited to 'pyaggr3g470r') diff --git a/pyaggr3g470r/static/js/articles.js b/pyaggr3g470r/static/js/articles.js index e30c6979..a5ac82d0 100644 --- a/pyaggr3g470r/static/js/articles.js +++ b/pyaggr3g470r/static/js/articles.js @@ -131,7 +131,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Requires jQuery') } var article_id = $(this).parent().parent().parent().attr("data-article"); $(this).parent().parent().parent().remove(); - // sends the updates to the server + // sends the updates to the server $.ajax({ type: 'DELETE', url: API_ROOT + "article/" + article_id, @@ -144,4 +144,35 @@ if (typeof jQuery === 'undefined') { throw new Error('Requires jQuery') } }); }); + + // Delete all duplicate articles (used in the page /duplicates) + $('.delete-all').click(function(){ + var data = []; + + var columnNo = $(this).parent().index(); + $(this).closest("table") + .find("tr td:nth-child(" + (columnNo+1) + ")") + .each(function(line, column) { + data.push(parseInt(column.id)); + }).remove(); + + data = JSON.stringify(data); + + // sends the updates to the server + $.ajax({ + type: 'DELETE', + // Provide correct Content-Type, so that Flask will know how to process it. + contentType: 'application/json', + data: data, + url: API_ROOT + "articles", + success: function (result) { + //console.log(result); + }, + error: function(XMLHttpRequest, textStatus, errorThrown){ + console.log(XMLHttpRequest.responseText); + } + }); + + }); + }(jQuery); diff --git a/pyaggr3g470r/templates/duplicates.html b/pyaggr3g470r/templates/duplicates.html index 2c08306a..2c953fa3 100644 --- a/pyaggr3g470r/templates/duplicates.html +++ b/pyaggr3g470r/templates/duplicates.html @@ -8,16 +8,16 @@ # - - + Delete all + Delete all {% for pair in duplicates %} {{ loop.index }} -  {{ pair[0].title }} ({{ pair[0].entry_id }}) -  {{ pair[1].title }} ({{ pair[1].entry_id }}) +  {{ pair[0].title }} ({{ pair[0].entry_id }}) +  {{ pair[1].title }} ({{ pair[1].entry_id }}) {% endfor %} diff --git a/pyaggr3g470r/views/api/common.py b/pyaggr3g470r/views/api/common.py index b1b0cd73..424df960 100644 --- a/pyaggr3g470r/views/api/common.py +++ b/pyaggr3g470r/views/api/common.py @@ -205,7 +205,8 @@ class PyAggResourceMulti(PyAggAbstractResource): def delete(self): """will delete several objects, a list of their ids should be in the payload""" - if 'application/json' != request.headers.get('Content-Type'): + if 'application/json' not in request.headers.get('Content-Type'): + print(request.headers.get('Content-Type')) raise BadRequest("Content-Type must be application/json") status = 204 results = [] -- cgit