diff --git a/frontend-js/src/main/js/gui/leftPanel/PublicationListDialog.js b/frontend-js/src/main/js/gui/leftPanel/PublicationListDialog.js index 91eb2f95680cc5c89f6d1801cd56847eccf78383..275c840b777518b6ff13fb8338a1cfc2a1aad8ce 100644 --- a/frontend-js/src/main/js/gui/leftPanel/PublicationListDialog.js +++ b/frontend-js/src/main/js/gui/leftPanel/PublicationListDialog.js @@ -111,14 +111,18 @@ PublicationListDialog.prototype.show = function() { $(self.getElement()).dialog("open"); if (!$.fn.DataTable.isDataTable(self.tableElement)) { - $(self.tableElement).dataTable({ - serverSide : true, - ordering : false, - searching : false, - ajax : function(data, callback, settings) { - self._dataTableAjaxCall(data, callback, settings); - }, + return new Promise(function(resolve, reject) { + $(self.tableElement).dataTable({ + serverSide : true, + ordering : false, + searching : false, + ajax : function(data, callback, settings) { + resolve(self._dataTableAjaxCall(data, callback, settings)); + }, + }); }); + } else { + return Promise.resolve(); } }; diff --git a/frontend-js/src/test/js/gui/leftPanel/PublicationListDialog-test.js b/frontend-js/src/test/js/gui/leftPanel/PublicationListDialog-test.js index adcbff2422f78feb04ac0e7ebd9e074a71e5ce45..d5c94b2d23badc2cbb976979ade29fed59e25b72 100644 --- a/frontend-js/src/test/js/gui/leftPanel/PublicationListDialog-test.js +++ b/frontend-js/src/test/js/gui/leftPanel/PublicationListDialog-test.js @@ -32,19 +32,26 @@ describe('PublicationListDialog', function() { }); it('_dataTableAjaxCall', function() { + var dialog; + var callbackCalled = false; return ServerConnector.getProject().then(function(project) { - var div = testDiv; - var dialog = new PublicationListDialog({ - element : div, + dialog = new PublicationListDialog({ + element : testDiv, customMap : helper.createCustomMap(project), }); return dialog._dataTableAjaxCall({ start : 0, length : 10 - }, function() { - }, {}).then(function() { - dialog.destroy(); + }, function(){ + callbackCalled = true; }); + }).then(function() { + assert.ok(callbackCalled); + dialog.destroy(); + }).catch(function(exception) { + dialog.destroy(); + logger.error(exception); + assert.ok(false); }); });