Modified edit policy to hide edit button when in edit mode

This commit is contained in:
Henry 2015-11-30 17:45:46 -08:00
parent acb7d4b807
commit 833ef82e67
2 changed files with 21 additions and 7 deletions

View File

@ -51,6 +51,19 @@ define(
return count;
}
/**
* Checks whether the domain object is currently being edited. If
* so, the edit action is not applicable.
* @param context
* @returns {*|boolean}
*/
function isEditing(context) {
var domainObject = (context || {}).domainObject;
return domainObject
&& domainObject.hasCapability('status')
&& domainObject.getCapability('status').get('editing');
}
EditActionPolicy.prototype.allow = function (action, context) {
var key = action.getMetadata().key,
category = (context || {}).category;
@ -59,11 +72,12 @@ define(
if (category === 'view-control') {
// Restrict 'edit' to cases where there are editable
// views (similarly, restrict 'properties' to when
// the converse is true)
// the converse is true), and where the domain object is not
// already being edited.
if (key === 'edit') {
return countEditableViews(context) > 0;
return countEditableViews(context) > 0 && !isEditing(context);
} else if (key === 'properties') {
return countEditableViews(context) < 1;
return countEditableViews(context) < 1 && !isEditing(context);
}
}

View File

@ -134,8 +134,7 @@ define(
function drop(e) {
var event = (e || {}).originalEvent || e,
id = event.dataTransfer.getData(GestureConstants.MCT_DRAG_TYPE),
domainObjectType = editableDomainObject.getModel().type,
virtualPanel;
domainObjectType = editableDomainObject.getModel().type;
// If currently in edit mode allow drag and drop gestures to the
// domain object. An exception to this is folders which have drop
@ -147,10 +146,10 @@ define(
// the change.
if (id) {
if (shouldCreateVirtualPanel(domainObject)){
navigationService.setNavigation(createVirtualPanel(domainObject, id));
editableDomainObject = createVirtualPanel(domainObject, id)
navigationService.setNavigation(editableDomainObject);
broadcastDrop(id, event);
} else {
editableDomainObject.getCapability('status').set('editing', true);
$q.when(action && action.perform()).then(function (result) {
//Don't go into edit mode for folders
if (domainObjectType!=='folder') {
@ -159,6 +158,7 @@ define(
broadcastDrop(id, event);
});
}
editableDomainObject.getCapability('status').set('editing', true);
}
//}
// TODO: Alert user if drag and drop is not allowed