Thursday, August 2, 2018

AEM 61 Classic UI Limit Multifield Widget

AEM 61 Classic UI Limit Multifield Widget


Goal


Extend CQ.form.Multifield to create a LimitMultfield to limit the number of items added in the widget

For TouchUI check this post

Demo | Package Install


Configuration



Error



Solution


1) Login to CRXDE Lite (http://localhost:4502/crx/de) and create folder /apps/classic-ui-multi-field-limit-items

2) Create node /apps/classic-ui-multi-field-limit-items/clientlib of type cq:ClientLibraryFolder and add a String property categories with value cq.widgets

3) Create file (nt:file) /apps/classic-ui-multi-field-limit-items/clientlib/js.txt and add

                       multi-field-limit-items.js

4) Create file (nt:file) /apps/classic-ui-multi-field-limit-items/clientlib/multi-field-limit-items.js and add the following code.

CQ.Ext.ns("ExperienceAEM");

ExperienceAEM.LimitMultiField = CQ.Ext.extend(CQ.form.MultiField, {
initComponent: function () {
ExperienceAEM.LimitMultiField.superclass.initComponent.call(this);

if(!this.limit){
return;
}

this.on("beforeadd", function(){
var items = this.findByType(this.fieldConfig.xtype);

if(items.length < parseInt(this.limit)){
return;
}

CQ.Ext.Msg.alert(Error, More than + this.limit + " not allowed");

return false;
});
}
});

CQ.Ext.reg("limit-multifield", ExperienceAEM.LimitMultiField);




visit link download