Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

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

Himanshu_Singhal
Community Advisor
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
Gaurav-Behl
Community Advisor
Community Advisor

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.

Himanshu_Singhal
Community Advisor
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?

Lokesh_Shivalingaiah
Community Advisor
Community Advisor

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

Gaurav-Behl
Community Advisor
Community Advisor

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?