Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.

Check asset status (publish/unpublished) in Asset Finder on Page load (AEM 6.2)

Avatar

Community Advisor

Hi,

I've a requirement where it's required to check the Publish status to Published on component dialog open in AEM 6.2

asset_finder.PNG

I've tried checking the DOM changes on click on but I don't see the value e.g. checked=true getting added in the input field or not able to find how should perform click event pragmatically on radio button here?

Could anyone help me regarding this?

Regards,
Himanshu Singhal

4 Replies

Avatar

Level 10

Try this

(function ($, $document, author) {

    "use strict";

    $document.on('foundation-contentloaded', onAssetFinderLoad);

    function onAssetFinderLoad(){

        $.ajax(author.page.path+ "/jcr:content.json").done(checkStatus);

   }

    function checkStatus (data){

        var q = data["cq:lastReplicationAction"];

        if(q && q == "Activate"){

            $( "input[type=radio][value=Activate]")[0].checked = true;  // use a different selector for radio buttons in case of a conflict/customization

           $( "input[type=radio][value=Deactivate]")[0].checked = false;

        }

        else {

          $( "input[type=radio][value=Activate]")[0].checked = false;

          $( "input[type=radio][value=Deactivate]")[0].checked = true;

        }

    }

})($, $(document), Granite.author);

Add it under 'cq.authoring.dialog' category.

**This is just a sample code and not tested properly. Extend/Modify it per your use case to make it more specific.

Avatar

Community Advisor

Hi Gaurav,

Thanks for the code.

The code I made it work as per the requirement. But, what's happening is when I try to check the radio button using JavaScript/jQuery, that part is working fine as it's checking the radio button but when I try to trigger click event then it has no effect and nothing appears in the filter. However, if we click on radio button physically(manual click) then it appears in the filter.

Any idea?

You need to call this javascript on a click event of the radio button.

Avatar

Level 10

Did you use http://api.jquery.com/trigger/ to trigger the click event or some other way?

Did you apply debug breakpoint or check console logs to see if the issue is with trigger event or otherwise with code? Do you see modified DOM after the trigger event has finished processing?

Can you test the same code in different browser to rule out any issues with your source code?

Can you share the code that is not working?