From 6080649ac7d61d8e6e07cc2c4d6eeeea4349af03 Mon Sep 17 00:00:00 2001 From: Heiko Date: Thu, 21 Nov 2019 11:15:42 +0100 Subject: [PATCH] fixing issue #10470 (#10491) * fixing issue #10470 * changelog * 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 9d5cdf22c7..597f6479f4 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,9 @@ devel ----- +* Fixed issue #10470: The WebUI now shows potential errors and details which occured using _api/import (e.g. + unique constraint violated). + * Added startup option `--query.optimizer-rules` to selectively enable or disable optimizer rules by default. The option can be specified multiple times, and takes the same input as the query option of the same name. 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 d8b883f493..4606970ff8 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 @@ -360,9 +360,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, @@ -370,18 +382,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 bbe0a74641..c06390b6ca 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(); }