[Persistence] Handle overwrite/cancel

Handle Overwrite/Cancel more correctly when revision conflicts
are detected. WTD-1033.
This commit is contained in:
Victor Woeltjen
2015-03-20 14:39:47 -07:00
parent 513c06a81b
commit 1174f746f7
4 changed files with 59 additions and 19 deletions

View File

@ -22,10 +22,10 @@ define(
// Issue a new persist call for the domain object associated with
// this failure.
function persist(failure) {
var undecoratedPersistence =
var decoratedPersistence =
failure.domainObject.getCapability('persistence');
return undecoratedPersistence &&
undecoratedPersistence.persist();
return decoratedPersistence &&
decoratedPersistence.persist(true);
}
// Retry persistence for this set of failed attempts
@ -38,6 +38,16 @@ define(
});
}
// Discard changes for a failed refresh
function discard(failure) {
return failure.persistence.refresh(true);
}
// Discard changes associated with a failed save
function discardAll(failures) {
return $q.all(failures.map(discard));
}
// Handle failures in persistence
function handleFailures(failures) {
// Prepare dialog for display
@ -49,6 +59,8 @@ define(
// If so, try again
if (key === PersistenceFailureConstants.OVERWRITE_KEY) {
return retry(revisionErrors);
} else {
return discardAll(revisionErrors);
}
}