Hi,
I've just found this bug in my AEM 5.6.1 instance: if a dialog tab has only 1 field and this field is a textfield with a regex property then the author will get the error 'this.regex.test is not a function'. Is this a known bug? if so, what is the recommendation to workaround it?
Bellow I'll put some of the investigation I've done, in case it might help:
I think the culprit is this piece of code (inside function FormatData in file /libs/cq/ui/widgets/source/utils/Util.js):
if (i == "items" && array.length == 1) {
// set single items directly as object
data[i] = array[0];
}
else {
data[i] = array;
}
other parts of the system expect data[i] to be an array, even it has only one element. For an example, the function 'CQ.Util.applyDefaults' has this piece of code:
if (value && typeof value == "object" &&
!(value instanceof Array) && !isCqInstance(value)) {
base[name] = CQ.utils.Util.applyDefaults(base[name], value);
}
as can be seen, the conditional will be evaluated to true and CQ.utils.Util.applyDefaults will be wrongly called. This call will in turn change the value of regex from a RegExp instance to an Object instance.
Solved! Go to Solution.
Hi,
I was able to replicate this, can you please raise a day care ticket for the same.
Views
Replies
Total Likes
I am going to see if i can reproduce these results. I will post back the findings.
Views
Replies
Total Likes
smacdonald2008 wrote...
I am going to see if i can reproduce these results. I will post back the findings.
thanks! Some more data:
1. if the dialog has more than one tab, the error doesn't happen
2. if the dialog has a sibling cq:editConfig node, the error doesn't happen
here is a definition of a dialog that triggers the error:
<?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:Dialog" xtype="dialog">
<items jcr:primaryType="cq:Widget" activeTab="{Long}0" xtype="tabpanel">
<items jcr:primaryType="cq:WidgetCollection">
<tab jcr:primaryType="cq:Widget"
xtype="panel"
title="test">
<items jcr:primaryType="cq:WidgetCollection">
<test
jcr:primaryType="cq:Widget"
allowBlank="{Boolean}false"
regex="/[a-zA-Z0-9]+/"
fieldLabel="Test"
name="./test"
xtype="textfield" />
</items>
</tab>
</items>
</items>
</jcr:root>
if you add a new field called 'hack' of type hidden, the error disappears.
Hi,
I was able to replicate this, can you please raise a day care ticket for the same.
Views
Replies
Total Likes
ok, I'll.
Views
Replies
Total Likes
Hi,
I'm having the same issue. Is there a hot-fix available?
Views
Replies
Total Likes
Hi @bru
brunovianarezende wrote...
smacdonald2008 wrote...
I am going to see if i can reproduce these results. I will post back the findings.
thanks! Some more data:
1. if the dialog has more than one tab, the error doesn't happen
2. if the dialog has a sibling cq:editConfig node, the error doesn't happen
here is a definition of a dialog that triggers the error:
<?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:Dialog" xtype="dialog">
<items jcr:primaryType="cq:Widget" activeTab="{Long}0" xtype="tabpanel">
<items jcr:primaryType="cq:WidgetCollection">
<tab jcr:primaryType="cq:Widget"
xtype="panel"
title="test">
<items jcr:primaryType="cq:WidgetCollection">
<test
jcr:primaryType="cq:Widget"
allowBlank="{Boolean}false"
regex="/[a-zA-Z0-9]+/"
fieldLabel="Test"
name="./test"
xtype="textfield" />
</items>
</tab>
</items>
</items>
</jcr:root>
if you add a new field called 'hack' of type hidden, the error disappears.
How did you fix this issue? Can you please share the solution?
Views
Replies
Total Likes