diff --git a/js/apps/system/aardvark/frontend/js/arango/arango.js b/js/apps/system/aardvark/frontend/js/arango/arango.js index 6a1daecea2..66ac399918 100644 --- a/js/apps/system/aardvark/frontend/js/arango/arango.js +++ b/js/apps/system/aardvark/frontend/js/arango/arango.js @@ -122,8 +122,9 @@ window.arangoHelper = { return val.substr(0, 1) === '_'; }, - collectionApiType: function (identifier) { - if (this.CollectionTypes[identifier] === undefined) { + collectionApiType: function (identifier, refresh) { + // set "refresh" to disable caching collection type + if (refresh || this.CollectionTypes[identifier] === undefined) { this.CollectionTypes[identifier] = window.arangoDocumentStore .getCollectionInfo(identifier).type; } diff --git a/js/apps/system/aardvark/frontend/js/modules/org/arangodb/arango-database.js b/js/apps/system/aardvark/frontend/js/modules/org/arangodb/arango-database.js index bd56af494c..be46ce2f31 100644 --- a/js/apps/system/aardvark/frontend/js/modules/org/arangodb/arango-database.js +++ b/js/apps/system/aardvark/frontend/js/modules/org/arangodb/arango-database.js @@ -407,12 +407,24 @@ ArangoDatabase.prototype._truncate = function (id) { //////////////////////////////////////////////////////////////////////////////// ArangoDatabase.prototype._drop = function (id) { - var collection = this._collection(id); + var name; - if (collection instanceof this._collectionConstructor) { - return collection.drop(); + for (name in this) { + if (this.hasOwnProperty(name)) { + var collection = this[name]; + + if (collection instanceof this._collectionConstructor) { + if (collection._id === id || collection._name === id) { + return collection.drop(); + } + } + } } + var c = this._collection(id); + if (c) { + return c.drop(); + } return undefined; }; diff --git a/js/apps/system/aardvark/frontend/js/views/documentsView.js b/js/apps/system/aardvark/frontend/js/views/documentsView.js index ae3f28d647..5f45fdec7d 100644 --- a/js/apps/system/aardvark/frontend/js/views/documentsView.js +++ b/js/apps/system/aardvark/frontend/js/views/documentsView.js @@ -331,7 +331,8 @@ var documentsView = Backbone.View.extend({ addDocument: function () { var collid = window.location.hash.split("/")[1]; - var doctype = arangoHelper.collectionApiType(collid); + // second parameter is "true" to disable caching of collection type + var doctype = arangoHelper.collectionApiType(collid, true); if (doctype === 'edge') { $('#edgeCreateModal').modal('show'); diff --git a/js/client/modules/org/arangodb/arango-database.js b/js/client/modules/org/arangodb/arango-database.js index f3afb904b6..184fea664d 100644 --- a/js/client/modules/org/arangodb/arango-database.js +++ b/js/client/modules/org/arangodb/arango-database.js @@ -406,12 +406,24 @@ ArangoDatabase.prototype._truncate = function (id) { //////////////////////////////////////////////////////////////////////////////// ArangoDatabase.prototype._drop = function (id) { - var collection = this._collection(id); + var name; - if (collection instanceof this._collectionConstructor) { - return collection.drop(); + for (name in this) { + if (this.hasOwnProperty(name)) { + var collection = this[name]; + + if (collection instanceof this._collectionConstructor) { + if (collection._id === id || collection._name === id) { + return collection.drop(); + } + } + } } + var c = this._collection(id); + if (c) { + return c.drop(); + } return undefined; };