From db0fcbd05b51a07611d82938e4b59f365020e859 Mon Sep 17 00:00:00 2001 From: Heiko Date: Wed, 27 Nov 2019 16:37:44 +0100 Subject: [PATCH] Bug fix 3.4/issue 10470 (#10498) * fixing issue #10470 * changelog --- CHANGELOG | 3 ++ .../js/collections/arangoDocuments.js | 28 ++++++++++--------- .../APP/frontend/js/views/documentsView.js | 3 +- 3 files changed, 20 insertions(+), 14 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index ed1d1a377c..4c4d150c39 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,9 @@ v3.4.9 (XXXX-XX-XX) ------------------- +* Fixed issue #10470: The WebUI now shows potential errors and details which + occured using _api/import (e.g. unique constraint violated). + * Updated arangosync to 0.7.0. * Make the timeouts for replication requests (for active failover and master-slave diff --git a/js/apps/system/_admin/aardvark/APP/frontend/js/collections/arangoDocuments.js b/js/apps/system/_admin/aardvark/APP/frontend/js/collections/arangoDocuments.js index ab80748156..c43cc0ee35 100644 --- a/js/apps/system/_admin/aardvark/APP/frontend/js/collections/arangoDocuments.js +++ b/js/apps/system/_admin/aardvark/APP/frontend/js/collections/arangoDocuments.js @@ -371,9 +371,21 @@ }, uploadDocuments: function (file, callback) { + var analyzeResponse = function (data) { + if (data.hasOwnProperty('error')) { + delete data.error; + } + + if (data.errors > 0) { + callback(true, 'Info: ' + JSON.stringify(data)); + } else { + callback(false, 'Info: ' + JSON.stringify(data)); + } + }; + $.ajax({ type: 'POST', - url: arangoHelper.databaseUrl('/_api/import?type=auto&collection=' + + url: arangoHelper.databaseUrl('/_api/import?type=auto&details=true&collection=' + encodeURIComponent(this.collectionID) + '&createCollection=false'), data: file, @@ -381,18 +393,8 @@ contentType: 'json', dataType: 'json', complete: function (xhr) { - if (xhr.readyState === 4 && xhr.status === 201) { - callback(false); - } else { - try { - var data = JSON.parse(xhr.responseText); - if (data.errors > 0) { - var result = 'At least one error occurred during upload'; - callback(false, result); - } - } catch (err) { - console.log(err); - } + if (xhr.responseJSON) { + analyzeResponse(xhr.responseJSON); } }, error: function (msg) { diff --git a/js/apps/system/_admin/aardvark/APP/frontend/js/views/documentsView.js b/js/apps/system/_admin/aardvark/APP/frontend/js/views/documentsView.js index 7717ff365a..9143eca0ca 100644 --- a/js/apps/system/_admin/aardvark/APP/frontend/js/views/documentsView.js +++ b/js/apps/system/_admin/aardvark/APP/frontend/js/views/documentsView.js @@ -220,7 +220,7 @@ $('#documents_first').css('visibility', 'visible'); this.addDocumentSwitch = true; this.collection.resetFilter(); - this.collection.loadTotal(callback); + this.collection.loadCollectionConfig(callback); this.restoredFilters = []; // for resetting json upload @@ -249,6 +249,7 @@ if (error) { arangoHelper.arangoError('Upload', msg); } else { + arangoHelper.arangoMessage('Upload', msg); this.hideImportModal(); this.resetView(); }