From d1d45c21d43eb7b55d4d221939e90eca920e3156 Mon Sep 17 00:00:00 2001 From: rembo10 Date: Tue, 8 Apr 2014 20:17:57 -0700 Subject: [PATCH] Added ability to delete single history items --- data/interfaces/default/css/style.css | 1 + data/interfaces/default/history.html | 2 ++ data/interfaces/default/images/trashcan.png | Bin 0 -> 3317 bytes headphones/webserve.py | 16 ++++++++++------ 4 files changed, 13 insertions(+), 6 deletions(-) create mode 100644 data/interfaces/default/images/trashcan.png diff --git a/data/interfaces/default/css/style.css b/data/interfaces/default/css/style.css index 1c77c778..4e7b0739 100644 --- a/data/interfaces/default/css/style.css +++ b/data/interfaces/default/css/style.css @@ -1236,6 +1236,7 @@ div#artistheader h2 a { position: relative; top: 7px; } +#trashcan {margin-top:15px;} .cloudtag { font-size: 16px; } diff --git a/data/interfaces/default/history.html b/data/interfaces/default/history.html index baf72b3d..b7cef364 100644 --- a/data/interfaces/default/history.html +++ b/data/interfaces/default/history.html @@ -26,6 +26,7 @@ Size Status + @@ -54,6 +55,7 @@ ${helpers.bytes_to_mb(item['Size'])} ${item['Status']} [retry][new] + %endfor diff --git a/data/interfaces/default/images/trashcan.png b/data/interfaces/default/images/trashcan.png new file mode 100644 index 0000000000000000000000000000000000000000..de10cbda45ea7a635d328f5e058272c0ab850cd0 GIT binary patch literal 3317 zcmZ`*cRbYpA3t2#qq0-3i<59CqcYAq=bYro$jLnO?6{nfnGsHQheAeXMp0Hr_WZhJ zr9!f@Q?icy=sSMn@%X(TkN0|hp3mp&{d&FMe|)0#^-%0Af-C?4fE}%^dE;>AIO1txW#M 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 Z=1;c{KFf(jitZh~B{Wh`vs}YE>|Zg*4G#bS literal 0 HcmV?d00001 diff --git a/headphones/webserve.py b/headphones/webserve.py index ab923cd2..497ecd7b 100644 --- a/headphones/webserve.py +++ b/headphones/webserve.py @@ -843,14 +843,18 @@ class WebInterface(object): return json_albums getAlbumsByArtist_json.exposed=True - def clearhistory(self, type=None): + def clearhistory(self, type=None, date_added=None, title=None): myDB = db.DBConnection() - if type == 'all': - logger.info(u"Clearing all history") - myDB.action('DELETE from snatched') + if type: + if type == 'all': + logger.info(u"Clearing all history") + myDB.action('DELETE from snatched') + else: + logger.info(u"Clearing history where status is %s" % type) + myDB.action('DELETE from snatched WHERE Status=?', [type]) else: - logger.info(u"Clearing history where status is %s" % type) - myDB.action('DELETE from snatched WHERE Status=?', [type]) + logger.info(u"Deleting '%s' from history" % title) + myDB.action('DELETE from snatched WHERE Title=? AND DateAdded=?', [title, date_added]) raise cherrypy.HTTPRedirect("history") clearhistory.exposed = True