AEM CQ 56 - Get Sidekick instance and disable components panel

Goal


In your javascript code of a component, get the sidekick (CQ.wcm.Sidekick) instance and disable components panel

Often situations arise where you need to play with the sidekick of AEM (CQ5) instance and do some customization. This is not Adobe recommended or suggested approach. It's just a way to get the sidekick and do operations on sidekick components.

Tested on 


Adobe Experience Manager ( AEM 561 )

Solution - 1


1) Login to CRXDE Lite (http://localhost:4502/crx/de) and create folder /apps/sk-comp-panel-disabled

2) Create node /apps/sk-comp-panel-disabled/clientlib of type cq:ClientLibraryFolder and add a String property categories with value cq.widgets

3) Create file (nt:file) /apps/sk-comp-panel-disabled/clientlib/js.txt and add

                       disabled.js

4) Create file (nt:file) /apps/sk-comp-panel-disabled/clientlib/disabled.js and add the following code

(function(){
    if( ( window.location.pathname == "/cf" ) || ( window.location.pathname.indexOf("/content") == 0)){
        CQ.WCM.on("sidekickready", function(sk){
            sk.on("loadcontent", function(){
                var compTab = sk.panels["COMPONENTS"];

                if (compTab) {
                    compTab.setDisabled(true);
                }
            });
        });
    }
})();

Solution - 2


In your component jsp add the following script

<script type="text/javascript">
    window.MyComponent = window.MyComponent || {};

    MyComponent.HideComponentsPanel = {
        IN_ID : '',

        disableFn: function(){
            try{
                var sk = CQ.WCM.getSidekick();

                if(!sk){
                    return;
                }

                var compTab = sk.panels["COMPONENTS"];

                if (compTab) {
                    compTab.setDisabled(true);
                    clearInterval(MyComponent.HideComponentsPanel.IN_ID);
                }
            }catch(err){
                console.log("Error:--" + err);
            }
        }
    }

    CQ.Ext.onReady(function(){
        var h = MyComponent.HideComponentsPanel;
        h.IN_ID = setInterval(h.disableFn, 500);
    });
</script>


18 comments:

  1. Can anybody please explain this script

    ReplyDelete
  2. Nice article i was really impressed by seeing this article, it was very interesting and it is very useful for me.I get a lot of great information from this blog. Thank you for your sharing this informative blog.Adobe CQ5 Training | Adobe CQ5 Online Training

    ReplyDelete
  3. can any one explain me about i18n.and how it works in adobe cq

    ReplyDelete
  4. One of the biggest challenges that organizations face today is having inaccurate data and being unresponsive to the needs of the Adobe CQ5 CMS Email List organization.

    ReplyDelete
  5. Once the above steps are done, one can verify by checking how sidekick component tab will appear. It will be grey out.
    To find other panels just go to "console" in chrome bug and run following command

    CQ_Sidekick.panels
    {PAGE: sb, COMPONENTS: sb, WORKFLOW: sb, VERSIONING: sb, INFO: sb}

    ReplyDelete
  6. It will be useful for students to take a look here. I know that it's great idea to order an essay here if you don't want to waste your time.

    ReplyDelete
  7. This is a decent post. This post gives genuinely quality data.
    subtitles on kodi
    getmyoffers capital one

    ReplyDelete
  8. https://www.techshure.com/?s=blaze+credit+card

    ReplyDelete

  9. This article are supper help full if you want to now more about How to Activate PNC Credit Card then please click

    ReplyDelete
  10. Hi, I read your post and found it quite interesting. The post you shared is very unique and informative. Thanks for sharing such a useful post. giffgaff login

    ReplyDelete