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

SOLVED

Clientlib issue

Shaheena_Sheikh
Level 4
Level 4

I have an existing component that has clientlib with category "abc" (suppose). I added a validation for a dialog field and created this clientlib outside the folder of my component and the named the category as "xyz".

I have added xyz in the category as well as the dependency of my component clientlib (abc), but still my js files doesn't load. Whereas, in the dialog of my component if I used 'granite include-clientlib' node and add category xyz in that node, then my js loads.

/apps-->clientlib(xyz)

/apps-->mycomp-->clientlib(abc)

 

1 Accepted Solution
Anudeep_Garnepudi
Correct answer by
Community Advisor
Community Advisor

@Shaheena_Sheikh 

If clientlib xyz contains Dialog related js/css then use includeclientlibs.

  1. You won't be able to see this clientlib being loaded on editor page unless until you open the dialog at least once.
  2. Very specific to editor mode

If clientlib xyz contain rendering related js/css then include it in template or component.

  1. You will not see this clientlib loading on editor page directly, because the page will be loaded in iframe.
  2. clientlib xyz will not interact with editor page, as it loads in iframe

View solution in original post

0 Replies
BrianKasingli
Community Advisor
Community Advisor

@Shaheena_Sheikh,

If you are trying to create a client library for its sole purpose, to add behavior to the Touch UI dialogues, I suggest you create a new client library just for its single responsibility. 

As an example:

 

<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
    jcr:primaryType="cq:ClientLibraryFolder"
    allowProxy="{Boolean}true"
    categories="[cq.authoring.editor.hook]"
    dependencies="[cq.authoring.editor.core]"/>

Documentation can be found here, https://experienceleague.adobe.com/docs/experience-manager-64/developing/extending-aem/customizing-p...

 

Shaheena_Sheikh
Level 4
Level 4
if i create a clientlib for dialogs only then if i include those clientlib through the granite-include-clientlib node, will the other clientlib that belongs to my component wont get discarded right?
Anudeep_Garnepudi
Correct answer by
Community Advisor
Community Advisor

@Shaheena_Sheikh 

If clientlib xyz contains Dialog related js/css then use includeclientlibs.

  1. You won't be able to see this clientlib being loaded on editor page unless until you open the dialog at least once.
  2. Very specific to editor mode

If clientlib xyz contain rendering related js/css then include it in template or component.

  1. You will not see this clientlib loading on editor page directly, because the page will be loaded in iframe.
  2. clientlib xyz will not interact with editor page, as it loads in iframe

View solution in original post

Veena_Vikram
Community Advisor
Community Advisor

@Shaheena_Sheikh What I understood from your requirement is that , you have to load some JS specifically for authoring dialog alone. If that is the case I think the best way to do so is to use the extraClientLibs property in the dialog node

 

Check this https://experienceleaguecommunities.adobe.com/t5/adobe-experience-manager/could-you-please-explain-w...

 

Thanks

Veena ✌