From 711a7a3c4fd55f177070c063801c41356f90d1c3 Mon Sep 17 00:00:00 2001 From: hkernbach Date: Thu, 11 Feb 2016 14:27:29 +0100 Subject: [PATCH] web ui - collections now using async loading mechanism --- .../js/models/arangoCollectionModel.js | 16 ++++++------- .../frontend/js/views/collectionsItemView.js | 24 ++++++++++++++++++- 2 files changed, 31 insertions(+), 9 deletions(-) diff --git a/js/apps/system/_admin/aardvark/APP/frontend/js/models/arangoCollectionModel.js b/js/apps/system/_admin/aardvark/APP/frontend/js/models/arangoCollectionModel.js index 0255a31e6c..50dfa8c061 100644 --- a/js/apps/system/_admin/aardvark/APP/frontend/js/models/arangoCollectionModel.js +++ b/js/apps/system/_admin/aardvark/APP/frontend/js/models/arangoCollectionModel.js @@ -144,25 +144,25 @@ }); }, - loadCollection: function () { - var self = this; - window.progressView.showWithDelay(500, "Loading collection..."); + loadCollection: function (callback) { + $.ajax({ async: true, cache: false, type: 'PUT', url: "/_api/collection/" + this.get("id") + "/load", success: function () { - self.set("status", "loaded"); - if (window.location.hash === "#collections") { - window.App.collectionsView.render(); - } window.progressView.hide(); + callback(false); }, error: function () { - arangoHelper.arangoError('Collection error'); + window.progressView.hide(); + callback(true); } }); + + callback(); + }, unloadCollection: function () { diff --git a/js/apps/system/_admin/aardvark/APP/frontend/js/views/collectionsItemView.js b/js/apps/system/_admin/aardvark/APP/frontend/js/views/collectionsItemView.js index dfdda7148e..126365aae6 100644 --- a/js/apps/system/_admin/aardvark/APP/frontend/js/views/collectionsItemView.js +++ b/js/apps/system/_admin/aardvark/APP/frontend/js/views/collectionsItemView.js @@ -68,7 +68,29 @@ }, loadCollection: function () { - this.model.loadCollection(); + + var loadCollectionCallback = function(error) { + + if (error) { + arangoHelper.arangoError('Collection error'); + } + else if (error === undefined) { + this.model.set("status", "loading"); + this.render(); + } + else { + if (window.location.hash === "#collections") { + this.model.set("status", "loaded"); + this.render(); + } + else { + arangoHelper.arangoNotification("Collection " + this.model.get("name") + " loaded."); + } + } + + }.bind(this); + + this.model.loadCollection(loadCollectionCallback); window.modalView.hide(); },