[Creation] Store location of new objects

The creation service stores the location (the full path) to
the domain object as "model.location"
This commit is contained in:
larkin
2015-06-30 10:55:23 -07:00
committed by Pete Richards
parent 2ca3c6ea93
commit 40e85b718d
2 changed files with 50 additions and 1 deletions

View File

@ -112,12 +112,37 @@ define(
return $q.when(
uuid()
).then(function (id) {
model = addLocationToModel(id, model, parent);
return doPersist(persistence.getSpace(), id, model);
}).then(function (id) {
return addToComposition(id, parent, persistence);
});
}
// Store the location of an object relative to it's parent.
function addLocationToModel(modelId, model, parent) {
var context = parent.getCapability("context"),
pathObjects,
pathIds;
if (!context) {
$log.warn('No parent context, location will not be set.');
return model;
}
pathObjects = context.getPath();
if (!pathObjects || !pathObjects.length) {
pathObjects = [];
}
pathIds = pathObjects.map(function (object) {
return object.getId();
});
pathIds.push(modelId);
model.location = pathIds.join('/');
return model;
}
return {
/**
* Create a new domain object with the provided model, as