Only use form data if uploading a database file

This commit is contained in:
JonnyWong16 2020-05-03 17:49:10 -07:00
parent 12effd643f
commit 8c7476a670
No known key found for this signature in database
GPG key ID: B1F1F9807184697A
3 changed files with 39 additions and 24 deletions

View file

@ -124,27 +124,42 @@
$("#import_db").click(function() { $("#import_db").click(function() {
$(this).prop('disabled', true); $(this).prop('disabled', true);
var database_file = false;
var formData = new FormData(); var app = $("#import_app").val();
formData.append('app', $("#import_app").val()); var database_file = $('#import_database_file')[0].files[0];
formData.append('database_path', $("#import_database_path").val()); var database_path = $("#import_database_path").val();
if ($('#import_database_file')[0].files[0]) { var method = $("#import_method").val();
database_file = true; var backup = $("#import_backup_db").is(':checked');
formData.append('database_file', $('#import_database_file')[0].files[0]); var table_name = $("#import_table_name").val();
var ignore_interval = $("#import_ignore_interval").val();
var content_type;
var process_data;
var data;
if (database_file) {
content_type = false;
process_data = false;
data = new FormData();
data.append('app', app);
data.append('database_file', database_file);
data.append('method', method);
data.append('backup', backup);
data.append('table_name', table_name);
data.append('ignore_interval', ignore_interval);
} else {
content_type = 'application/x-www-form-urlencoded; charset=UTF-8';
process_data = true;
data = {
app: app,
database_path: database_path,
method: method,
backup: backup,
table_name: table_name,
ignore_interval: ignore_interval
} }
if ($("#import_method").length) {
formData.append('method', $("#import_method").val());
}
if ($("#import_backup_db").length) {
formData.append('backup', $("#import_backup_db").is(':checked'));
}
if ($("#import_table_name").length) {
formData.append('table_name', $("#import_table_name").val());
}
if ($("#import_ignore_interval").length) {
formData.append('ignore_interval', $("#import_ignore_interval").val());
} }
if (database_file) { if (database_file) {
$("#status-message").html('<i class="fa fa-fw fa-spin fa-refresh"></i>&nbsp; Uploading database file...'); $("#status-message").html('<i class="fa fa-fw fa-spin fa-refresh"></i>&nbsp; Uploading database file...');
} else { } else {
@ -154,11 +169,11 @@
$.ajax({ $.ajax({
url: 'import_database', url: 'import_database',
type: 'POST', type: 'POST',
data: formData, data: data,
cache: false, cache: false,
async: true, async: true,
contentType: false, contentType: content_type,
processData: false, processData: process_data,
success: function(data) { success: function(data) {
var msg; var msg;
if (data.result === 'success') { if (data.result === 'success') {

View file

@ -59,7 +59,7 @@ def validate_database(database=None):
return 'success' return 'success'
def import_tautulli_db(database=None, method=None, backup=True): def import_tautulli_db(database=None, method=None, backup=False):
db_validate = validate_database(database=database) db_validate = validate_database(database=database)
if not db_validate == 'success': if not db_validate == 'success':
logger.error("Tautulli Database :: Failed to import Tautulli database: %s", db_validate) logger.error("Tautulli Database :: Failed to import Tautulli database: %s", db_validate)

View file

@ -3742,7 +3742,7 @@ class WebInterface(object):
@cherrypy.tools.json_out() @cherrypy.tools.json_out()
@requireAuth(member_of("admin")) @requireAuth(member_of("admin"))
@addtoapi() @addtoapi()
def import_database(self, app=None, database_file=None, database_path=None, method=None, backup=True, def import_database(self, app=None, database_file=None, database_path=None, method=None, backup=False,
table_name=None, import_ignore_interval=0, **kwargs): table_name=None, import_ignore_interval=0, **kwargs):
""" Import a Tautulli, PlexWatch, or Plexivity database into Tautulli. """ Import a Tautulli, PlexWatch, or Plexivity database into Tautulli.