Expand my Community achievements bar.

SOLVED

ExtJS-custom multifield component-node creation instead of property value in AEM 5.6.1

Avatar

Level 4

I am currently working on a project where i will need to implement custom multifield component. I am really specific about the fact that i need to create nodes (which can be any number) when user specifies a value instead of key, value property.

I have currently added a pathField and a textbox.. which will be loaded using HTTP GET and when the user tries to input a value i would HTTP post from my custom extjs.

As shown in the attachment  i would prefer the LHS to store entered values in nodes instead of RHS. I have created the component of the following structure

The  http calls will be made  and will not insert to jcr:content or any other path i've decided to remove the node reference "./multishort" below?

Request you to please help in this regard.

Note:the Above details are in the attachment with the screen shot.

1 Accepted Solution

Avatar

Correct answer by
Level 10

 In your example, you named your multi-field ./multishort in the dialog property. Each time a user adds a new multifield  by clicking the Add Item on your dialog:

[img]multixtype.png[/img]

AEM controls defined in your custom xtype is displayed. That is -- objects defined in:

 Ejst.CustomWidget = CQ.Ext.extend(CQ.form.CompositeField)

are displayed. A user using your component will enter values into the controls in each multi-field. You can read back the values in the component's JSP by using node application logic. However - to read these values back - you need to reference the name of the multi-field - as defined by the property in the dialog. In your case - multishort.

I am not sure why you want to remove reference to ./multishort.  You need this reference to read back the values that a user entered in the controls in the custom xtype using node application logic. 

We will be releasing a new xtype community article on Fri March 21 that shows how to read back values from a multi-field that uses a custom xtype. Very similiar to this use case. 

View solution in original post

2 Replies

Avatar

Level 10

Enhancement request has been placed(CQ5-4257) . You might need to develop your own widget at project level.

Avatar

Correct answer by
Level 10

 In your example, you named your multi-field ./multishort in the dialog property. Each time a user adds a new multifield  by clicking the Add Item on your dialog:

[img]multixtype.png[/img]

AEM controls defined in your custom xtype is displayed. That is -- objects defined in:

 Ejst.CustomWidget = CQ.Ext.extend(CQ.form.CompositeField)

are displayed. A user using your component will enter values into the controls in each multi-field. You can read back the values in the component's JSP by using node application logic. However - to read these values back - you need to reference the name of the multi-field - as defined by the property in the dialog. In your case - multishort.

I am not sure why you want to remove reference to ./multishort.  You need this reference to read back the values that a user entered in the controls in the custom xtype using node application logic. 

We will be releasing a new xtype community article on Fri March 21 that shows how to read back values from a multi-field that uses a custom xtype. Very similiar to this use case.