[Edit Mode] Disallow context menu actions on tree items during edit mode. #277

This commit is contained in:
Henry 2015-11-25 14:44:31 -08:00
parent 75d4be290c
commit 9eb8158c4e
3 changed files with 24 additions and 1 deletions

View File

@ -66,7 +66,8 @@
"$document", "$document",
"$rootScope", "$rootScope",
"popupService", "popupService",
"agentService" "agentService",
"navigationService"
] ]
} }
] ]

View File

@ -55,12 +55,14 @@ define(
$rootScope, $rootScope,
popupService, popupService,
agentService, agentService,
navigationService,
actionContext actionContext
) { ) {
this.$compile = $compile; this.$compile = $compile;
this.agentService = agentService; this.agentService = agentService;
this.actionContext = actionContext; this.actionContext = actionContext;
this.popupService = popupService; this.popupService = popupService;
this.navigationService = navigationService;
this.getDocument = function () { return $document; }; this.getDocument = function () { return $document; };
this.getRootScope = function () { return $rootScope; }; this.getRootScope = function () { return $rootScope; };
} }
@ -82,6 +84,10 @@ define(
menu, menu,
popup; popup;
if (this.navigationService.getNavigation() && this.navigationService.getNavigation().hasCapability('editor')){
return;
}
// Remove the context menu // Remove the context menu
function dismiss() { function dismiss() {
if (popup) { if (popup) {

View File

@ -47,6 +47,8 @@ define(
mockScope, mockScope,
mockElement, mockElement,
mockDomainObject, mockDomainObject,
mockNavigatedObject,
mockNavigationService,
mockEvent, mockEvent,
mockPopup, mockPopup,
mockActionContext, mockActionContext,
@ -67,9 +69,11 @@ define(
]); ]);
mockRootScope = jasmine.createSpyObj("$rootScope", ["$new"]); mockRootScope = jasmine.createSpyObj("$rootScope", ["$new"]);
mockAgentService = jasmine.createSpyObj("agentService", ["isMobile"]); mockAgentService = jasmine.createSpyObj("agentService", ["isMobile"]);
mockNavigationService = jasmine.createSpyObj("navigationService", ["getNavigation"]);
mockScope = jasmine.createSpyObj("scope", ["$destroy"]); mockScope = jasmine.createSpyObj("scope", ["$destroy"]);
mockElement = jasmine.createSpyObj("element", JQLITE_FUNCTIONS); mockElement = jasmine.createSpyObj("element", JQLITE_FUNCTIONS);
mockDomainObject = jasmine.createSpyObj("domainObject", DOMAIN_OBJECT_METHODS); mockDomainObject = jasmine.createSpyObj("domainObject", DOMAIN_OBJECT_METHODS);
mockNavigatedObject = jasmine.createSpyObj("domainObject", DOMAIN_OBJECT_METHODS);
mockEvent = jasmine.createSpyObj("event", ["preventDefault", "stopPropagation"]); mockEvent = jasmine.createSpyObj("event", ["preventDefault", "stopPropagation"]);
mockEvent.pageX = 123; mockEvent.pageX = 123;
mockEvent.pageY = 321; mockEvent.pageY = 321;
@ -79,6 +83,7 @@ define(
mockDocument.find.andReturn(mockBody); mockDocument.find.andReturn(mockBody);
mockRootScope.$new.andReturn(mockScope); mockRootScope.$new.andReturn(mockScope);
mockPopupService.display.andReturn(mockPopup); mockPopupService.display.andReturn(mockPopup);
mockNavigationService.getNavigation.andReturn(mockNavigatedObject);
mockActionContext = {key: 'menu', domainObject: mockDomainObject, event: mockEvent}; mockActionContext = {key: 'menu', domainObject: mockDomainObject, event: mockEvent};
@ -88,6 +93,7 @@ define(
mockRootScope, mockRootScope,
mockPopupService, mockPopupService,
mockAgentService, mockAgentService,
mockNavigationService,
mockActionContext mockActionContext
); );
}); });
@ -182,6 +188,15 @@ define(
expect(mockBody.off).not.toHaveBeenCalled(); expect(mockBody.off).not.toHaveBeenCalled();
}); });
it("is not active when in edit mode", function () {
mockNavigatedObject.hasCapability.andReturn(true);
// Show the menu
action.perform();
expect(mockPopupService.display).not.toHaveBeenCalled();
});
it("keeps a menu when menu is clicked on mobile", function () { it("keeps a menu when menu is clicked on mobile", function () {
mockAgentService.isMobile.andReturn(true); mockAgentService.isMobile.andReturn(true);
action = new ContextMenuAction( action = new ContextMenuAction(
@ -190,6 +205,7 @@ define(
mockRootScope, mockRootScope,
mockPopupService, mockPopupService,
mockAgentService, mockAgentService,
mockNavigationService,
mockActionContext mockActionContext
); );
action.perform(); action.perform();