Resolved merge conflicts
This commit is contained in:
@@ -39,6 +39,20 @@ define(
|
||||
this.domainObject.getCapability('status').set('editing', true);
|
||||
};
|
||||
|
||||
function isEditing (domainObject) {
|
||||
return domainObject.getCapability('status').get('editing') ||
|
||||
domainObject.hasCapability('context') && isEditing(domainObject.getCapability('context').getParent());
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines whether this object, or any of its ancestors are
|
||||
* currently being edited.
|
||||
* @returns boolean
|
||||
*/
|
||||
EditorCapability.prototype.isEditing = function () {
|
||||
return isEditing(this.domainObject);
|
||||
};
|
||||
|
||||
EditorCapability.prototype.save = function () {
|
||||
var domainObject = this.domainObject;
|
||||
return this.transactionService.commit().then(function() {
|
||||
@@ -60,8 +74,10 @@ define(
|
||||
return this.dirtyModelCache.isDirty(this.domainObject);
|
||||
};
|
||||
|
||||
//TODO: add 'appliesTo'. EditorCapability should not be available
|
||||
// for objects that should not be edited
|
||||
EditorCapability.prototype.appliesTo = function(context) {
|
||||
var domainObject = context.domainObject;
|
||||
return domainObject && domainObject.getType().hasFeature("creation");
|
||||
}
|
||||
|
||||
return EditorCapability;
|
||||
}
|
||||
|
||||
@@ -35,11 +35,12 @@ define([], function () {
|
||||
}
|
||||
|
||||
EditableLinkPolicy.prototype.allow = function (action, context) {
|
||||
var key = action.getMetadata().key;
|
||||
var key = action.getMetadata().key,
|
||||
object;
|
||||
|
||||
if (key === 'link') {
|
||||
return !((context.selectedObject || context.domainObject)
|
||||
.hasCapability('editor'));
|
||||
object = context.selectedObject || context.domainObject;
|
||||
return !(object.hasCapability("editor") && object.getCapability("editor").isEditing());
|
||||
}
|
||||
|
||||
// Like all policies, allow by default.
|
||||
|
||||
@@ -37,8 +37,8 @@ define([], function () {
|
||||
selectedObject = context.selectedObject,
|
||||
key = action.getMetadata().key;
|
||||
|
||||
if (key === 'move' && domainObject.hasCapability('editor')) {
|
||||
return !!selectedObject && selectedObject.hasCapability('editor');
|
||||
if (key === 'move' && domainObject.hasCapability('editor') && domainObject.getCapability('editor').isEditing()) {
|
||||
return !!selectedObject && selectedObject.hasCapability('editor') && selectedObject.getCapability('editor').isEditing();
|
||||
}
|
||||
|
||||
// Like all policies, allow by default.
|
||||
|
||||
@@ -37,7 +37,7 @@ define(
|
||||
// If a view is flagged as non-editable, only allow it
|
||||
// while we're not in Edit mode.
|
||||
if ((view || {}).editable === false) {
|
||||
return !domainObject.hasCapability('editor');
|
||||
return !(domainObject.hasCapability('editor') && domainObject.getCapability('editor').isEditing());
|
||||
}
|
||||
|
||||
// Like all policies, allow by default.
|
||||
|
||||
@@ -32,7 +32,8 @@ define(
|
||||
*/
|
||||
function InspectorController($scope, policyService) {
|
||||
var domainObject = $scope.domainObject,
|
||||
typeCapability = domainObject.getCapability('type');
|
||||
typeCapability = domainObject.getCapability('type'),
|
||||
listener;
|
||||
|
||||
/**
|
||||
* Filters region parts to only those allowed by region policies
|
||||
@@ -46,7 +47,20 @@ define(
|
||||
});
|
||||
}
|
||||
|
||||
$scope.regions = filterRegions(typeCapability.getDefinition().inspector || new InspectorRegion());
|
||||
function setRegions() {
|
||||
$scope.regions = filterRegions(typeCapability.getDefinition().inspector || new InspectorRegion());
|
||||
}
|
||||
|
||||
//Listen for changes to object status that might necessitate
|
||||
// recalculation of screen regions.
|
||||
//listener =
|
||||
// domainObject.getCapability("status").listen(setRegions);
|
||||
|
||||
setRegions();
|
||||
|
||||
$scope.$on("$destroy", function() {
|
||||
listener();
|
||||
})
|
||||
}
|
||||
|
||||
return InspectorController;
|
||||
|
||||
Reference in New Issue
Block a user