Using Granite condition to make the field read-only | Community
Skip to main content
Level 6
Jan 11, 2021 11:43 PM UTC
Solved

Using Granite condition to make the field read-only

Hello All - I have a use-case to make the checkbox readonly in a dialog based on sling:resourceType using granite:RenderCondition. Can someone advise on this?

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Anudeep_Garnepudi
Anudeep_GarnepudiAccepted solution
New Participant
Jan 12, 2021 6:14 AM UTC

@test1234567 

As @kunal_gaba_  said granite:renderCondition is server side implementation. Only if the condition satisfies the field will be rendered on to the dialog. The name renderCondition say it all, based on condition field will be rendered. Use below listener to disable the checkbox.

(function ($, $document, Ga) { $document.on("dialog-ready", function() { let checkbox = $("coral-checkbox[name='./checkbox']"); if (window.location.pathname.indexOf("/content/test/") >= 0) { //your condition checkbox[0].disabled = true; } }); })(jQuery, jQuery(document), Granite.author);

- AG

4 replies

Anudeep_Garnepudi
Anudeep_GarnepudiAccepted solution
New Participant
Jan 12, 2021 6:14 AM UTC

@test1234567 

As @kunal_gaba_  said granite:renderCondition is server side implementation. Only if the condition satisfies the field will be rendered on to the dialog. The name renderCondition say it all, based on condition field will be rendered. Use below listener to disable the checkbox.

(function ($, $document, Ga) { $document.on("dialog-ready", function() { let checkbox = $("coral-checkbox[name='./checkbox']"); if (window.location.pathname.indexOf("/content/test/") >= 0) { //your condition checkbox[0].disabled = true; } }); })(jQuery, jQuery(document), Granite.author);

- AG

Translate
Kunal_Gaba_
New Participant
Jan 12, 2021 2:16 AM UTC

You can hide a check box using a render condition and not make it read only. Render conditions are evaluated server side by Granite UI framework to show or hide a UI component. 

You can write a custom render condition to hide the checkbox based on the resource type. For more details see the following blog- http://www.nateyolles.com/blog/2016/07/aem-granite-custom-render-conditions 

Translate
Level 6
Jan 12, 2021 2:42 AM UTC
@1889520 - I am able to show / hide the option based on the path. is there any way to make it read-only based on a path instead of hiding the section.
Translate