1
0
Fork 0

Merge branch 'devel' of github.com:triAGENS/ArangoDB into devel

This commit is contained in:
Thomas Schmidts 2014-05-22 15:48:28 +02:00
commit e5d4642193
1 changed files with 26 additions and 8 deletions

View File

@ -471,7 +471,6 @@ var _create = function (graphName, edgeDefinitions) {
};
////////////////////////////////////////////////////////////////////////////////
/// @brief constructor.
////////////////////////////////////////////////////////////////////////////////
@ -487,13 +486,31 @@ var Graph = function(graphName, edgeDefinitions, vertexCollections, edgeCollecti
var wrap = wrapCollection(obj);
var old_remove = wrap.remove;
wrap.remove = function(vertexId, options) {
var myEdges = self._EDGES(vertexId);
myEdges.forEach(
function(edgeObj) {
var edgeId = edgeObj._id;
var edgeCollection = edgeId.split("/")[0];
if (db[edgeCollection] && db[edgeCollection].exists(edgeId)) {
db[edgeCollection].remove(edgeId);
var graphs = getGraphCollection().toArray();
var vertexCollectionName = vertexId.split("/")[0];
graphs.forEach(
function(graph) {
var edgeDefinitions = graph.edgeDefinitions;
if (graph.edgeDefinitions) {
edgeDefinitions.forEach(
function(edgeDefinition) {
var from = edgeDefinition.from;
var to = edgeDefinition.to;
var collection = edgeDefinition.collection;
if (from.indexOf(vertexCollectionName) !== -1
|| to.indexOf(vertexCollectionName) !== -1
) {
var edges = db._collection(collection).toArray();
edges.forEach(
function(edge) {
if (edge._from === vertexId || edge._to === vertexId) {
db._remove(edge._id);
}
}
);
}
}
);
}
}
);
@ -503,6 +520,7 @@ var Graph = function(graphName, edgeDefinitions, vertexCollections, edgeCollecti
}
return old_remove(vertexId, options);
};
self[key] = wrap;
});