Quantcast
Channel: Experiencing Adobe Experience Manager (AEM, CQ)
Viewing all articles
Browse latest Browse all 525

AEM CQ 56 - Disable Component (EditRollOver) Menu Delete

$
0
0

Goal


This post can be useful if you'd like to disable some of the menu options of components added to par on a page, for example, you might want to disable Delete option for targeted components on a page, to avoid deletion by authors (An other ideal way is to statically include the component) Check the demo




Solution


1) Create folder /apps/clientlibs

2) Create /apps/clientlibs/myclientlib of type cq:ClientLibraryFolder and add property categories with String value cq.widgets

3) Create /apps/clientlibs/myclientlib/js.txt of type nt:file, add the following

                       disableDelete.js

4) Create /apps/clientlibs/myclientlib/disableDelete.js of type nt:file and add the following code

CQ.Ext.ns("MyClientLib");

MyClientLib.EditRollover = CQ.Ext.extend(CQ.wcm.EditRollover, {
handleContextMenu: function(e){
MyClientLib.EditRollover.superclass.handleContextMenu.call(this, e);

var component = this.element.linkedEditComponent;

if (!component || !component.menuComponent) {
return;
}

var menu = component.menuComponent;
var dTargeting = menu.find('text', "Disable targeting");

//if Disable targeting menu option doesn't exist, donot disable Delete
if(!dTargeting || dTargeting.length == 0){
return;
}

var del = menu.find('text', "Delete");

if(del && del.length > 0){
del[0].setDisabled(true);
}
}
});

CQ.Ext.reg("editrollover", MyClientLib.EditRollover);


Viewing all articles
Browse latest Browse all 525

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>