mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-11 07:46:07 -07:00
Improve delete history using list of row ids
This commit is contained in:
parent
1091a64863
commit
38f64c7d85
6 changed files with 71 additions and 63 deletions
|
@ -185,17 +185,15 @@
|
||||||
$('#deleteCount').text(history_to_delete.length);
|
$('#deleteCount').text(history_to_delete.length);
|
||||||
$('#confirm-modal-delete').modal();
|
$('#confirm-modal-delete').modal();
|
||||||
$('#confirm-modal-delete').one('click', '#confirm-delete', function () {
|
$('#confirm-modal-delete').one('click', '#confirm-delete', function () {
|
||||||
history_to_delete.forEach(function(row, idx) {
|
$.ajax({
|
||||||
$.ajax({
|
url: 'delete_history_rows',
|
||||||
url: 'delete_history_rows',
|
type: 'POST',
|
||||||
type: 'POST',
|
data: { row_ids: history_to_delete.join(',') },
|
||||||
data: { row_id: row },
|
async: true,
|
||||||
async: true,
|
success: function (data) {
|
||||||
success: function (data) {
|
var msg = "History deleted";
|
||||||
var msg = "History deleted";
|
showMsg(msg, false, true, 2000);
|
||||||
showMsg(msg, false, true, 2000);
|
}
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
history_table.draw();
|
history_table.draw();
|
||||||
});
|
});
|
||||||
|
|
|
@ -721,17 +721,15 @@ DOCUMENTATION :: END
|
||||||
$('#deleteCount').text(history_to_delete.length);
|
$('#deleteCount').text(history_to_delete.length);
|
||||||
$('#confirm-modal-delete').modal();
|
$('#confirm-modal-delete').modal();
|
||||||
$('#confirm-modal-delete').one('click', '#confirm-delete', function () {
|
$('#confirm-modal-delete').one('click', '#confirm-delete', function () {
|
||||||
history_to_delete.forEach(function (row, idx) {
|
$.ajax({
|
||||||
$.ajax({
|
url: 'delete_history_rows',
|
||||||
url: 'delete_history_rows',
|
type: 'POST',
|
||||||
type: 'POST',
|
data: { row_ids: history_to_delete.join(',') },
|
||||||
data: { row_id: row },
|
async: true,
|
||||||
async: true,
|
success: function (data) {
|
||||||
success: function (data) {
|
var msg = "History deleted";
|
||||||
var msg = "History deleted";
|
showMsg(msg, false, true, 2000);
|
||||||
showMsg(msg, false, true, 2000);
|
}
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
history_table.draw();
|
history_table.draw();
|
||||||
});
|
});
|
||||||
|
|
|
@ -485,17 +485,15 @@ DOCUMENTATION :: END
|
||||||
$('#deleteCount').text(history_to_delete.length);
|
$('#deleteCount').text(history_to_delete.length);
|
||||||
$('#confirm-modal-delete').modal();
|
$('#confirm-modal-delete').modal();
|
||||||
$('#confirm-modal-delete').one('click', '#confirm-delete', function () {
|
$('#confirm-modal-delete').one('click', '#confirm-delete', function () {
|
||||||
history_to_delete.forEach(function(row, idx) {
|
$.ajax({
|
||||||
$.ajax({
|
url: 'delete_history_rows',
|
||||||
url: 'delete_history_rows',
|
type: 'POST',
|
||||||
type: 'POST',
|
data: { row_ids: history_to_delete.join(',') },
|
||||||
data: { row_id: row },
|
async: true,
|
||||||
async: true,
|
success: function (data) {
|
||||||
success: function (data) {
|
var msg = "History deleted";
|
||||||
var msg = "History deleted";
|
showMsg(msg, false, true, 2000);
|
||||||
showMsg(msg, false, true, 2000);
|
}
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
history_table.draw();
|
history_table.draw();
|
||||||
});
|
});
|
||||||
|
|
|
@ -574,17 +574,15 @@ DOCUMENTATION :: END
|
||||||
$('#deleteType').text('history');
|
$('#deleteType').text('history');
|
||||||
$('#confirm-modal-delete').modal();
|
$('#confirm-modal-delete').modal();
|
||||||
$('#confirm-modal-delete').one('click', '#confirm-delete', function () {
|
$('#confirm-modal-delete').one('click', '#confirm-delete', function () {
|
||||||
history_to_delete.forEach(function(row, idx) {
|
$.ajax({
|
||||||
$.ajax({
|
url: 'delete_history_rows',
|
||||||
url: 'delete_history_rows',
|
type: 'POST',
|
||||||
type: 'POST',
|
data: { row_ids: history_to_delete.join(',') },
|
||||||
data: { row_id: row },
|
async: true,
|
||||||
async: true,
|
success: function (data) {
|
||||||
success: function (data) {
|
var msg = "History deleted";
|
||||||
var msg = "History deleted";
|
showMsg(msg, false, true, 2000);
|
||||||
showMsg(msg, false, true, 2000);
|
}
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
history_table.draw();
|
history_table.draw();
|
||||||
});
|
});
|
||||||
|
|
|
@ -1561,21 +1561,23 @@ class DataFactory(object):
|
||||||
|
|
||||||
return key_list
|
return key_list
|
||||||
|
|
||||||
def delete_session_history_rows(self, row_id=None):
|
def delete_session_history_rows(self, row_ids=None):
|
||||||
monitor_db = database.MonitorDatabase()
|
if row_ids and row_ids is not None:
|
||||||
|
row_ids = map(helpers.cast_to_int, row_ids.split(','))
|
||||||
|
|
||||||
if row_id.isdigit():
|
if row_ids:
|
||||||
logger.info(u"Tautulli DataFactory :: Deleting row id %s from the session history database." % row_id)
|
monitor_db = database.MonitorDatabase()
|
||||||
session_history_del = \
|
|
||||||
monitor_db.action('DELETE FROM session_history WHERE id = ?', [row_id])
|
|
||||||
session_history_media_info_del = \
|
|
||||||
monitor_db.action('DELETE FROM session_history_media_info WHERE id = ?', [row_id])
|
|
||||||
session_history_metadata_del = \
|
|
||||||
monitor_db.action('DELETE FROM session_history_metadata WHERE id = ?', [row_id])
|
|
||||||
|
|
||||||
return 'Deleted rows %s.' % row_id
|
logger.info(u"Tautulli DataFactory :: Deleting history row ids %s from the session history database." % row_ids)
|
||||||
|
|
||||||
|
where = 'WHERE id IN ({})'.format(', '.join(['?'] * len(row_ids)))
|
||||||
|
for table in ('session_history', 'session_history_media_info', 'session_history_metadata'):
|
||||||
|
query = 'DELETE FROM {table} {where}'.format(table=table, where=where)
|
||||||
|
monitor_db.action(query=query, args=row_ids)
|
||||||
|
|
||||||
|
return 'Deleted history.'
|
||||||
else:
|
else:
|
||||||
return 'Unable to delete rows. Input row not valid.'
|
return 'Unable to delete rows. Input rows not valid.'
|
||||||
|
|
||||||
def update_metadata(self, old_key_list='', new_key_list='', media_type=''):
|
def update_metadata(self, old_key_list='', new_key_list='', media_type=''):
|
||||||
pms_connect = pmsconnect.PmsConnect()
|
pms_connect = pmsconnect.PmsConnect()
|
||||||
|
|
|
@ -819,11 +819,11 @@ class WebInterface(object):
|
||||||
|
|
||||||
```
|
```
|
||||||
Required parameters:
|
Required parameters:
|
||||||
section_id (str): The id of the Plex library section
|
section_id (str): The id of the Plex library section
|
||||||
|
|
||||||
Optional parameters:
|
Optional parameters:
|
||||||
grouping (int): 0 or 1
|
grouping (int): 0 or 1
|
||||||
query_days (str): Comma separated days, e.g. "1, 7, 30, 0"
|
query_days (str): Comma separated days, e.g. "1,7,30,0"
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
json:
|
json:
|
||||||
|
@ -1447,7 +1447,7 @@ class WebInterface(object):
|
||||||
|
|
||||||
Optional parameters:
|
Optional parameters:
|
||||||
grouping (int): 0 or 1
|
grouping (int): 0 or 1
|
||||||
query_days (str): Comma separated days, e.g. "1, 7, 30, 0"
|
query_days (str): Comma separated days, e.g. "1,7,30,0"
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
json:
|
json:
|
||||||
|
@ -1853,16 +1853,30 @@ class WebInterface(object):
|
||||||
@cherrypy.expose
|
@cherrypy.expose
|
||||||
@cherrypy.tools.json_out()
|
@cherrypy.tools.json_out()
|
||||||
@requireAuth(member_of("admin"))
|
@requireAuth(member_of("admin"))
|
||||||
def delete_history_rows(self, row_id, **kwargs):
|
@addtoapi("delete_history")
|
||||||
|
def delete_history_rows(self, row_ids=None, **kwargs):
|
||||||
|
""" Delete history rows from Tautulli.
|
||||||
|
|
||||||
|
```
|
||||||
|
Required parameters:
|
||||||
|
row_ids (str): Comma separated row ids to delete, e.g. "65,110,2,3645"
|
||||||
|
|
||||||
|
Optional parameters:
|
||||||
|
None
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
None
|
||||||
|
```
|
||||||
|
"""
|
||||||
data_factory = datafactory.DataFactory()
|
data_factory = datafactory.DataFactory()
|
||||||
|
|
||||||
if row_id:
|
if row_ids:
|
||||||
delete_row = data_factory.delete_session_history_rows(row_id=row_id)
|
delete_row = data_factory.delete_session_history_rows(row_ids=row_ids)
|
||||||
|
|
||||||
if delete_row:
|
if delete_row:
|
||||||
return {'message': delete_row}
|
return {'message': delete_row}
|
||||||
else:
|
else:
|
||||||
return {'message': 'no data received'}
|
return {'message': 'No row ids received.'}
|
||||||
|
|
||||||
|
|
||||||
##### Graphs #####
|
##### Graphs #####
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue