Button property definition

Note: STABLE.
This API is reliable and breaking changes are unlikely.

Fields

The button definition property template can be used to add a custom property of button type. When defining a button property, the following fields can be used:

type

This field is optional for buttons. Can be either String, Integer, Number, Array or Boolean.

Note: The button effect is achieved by defining the component field to "button", see below.

label

Used for defining the label that is displayed in the property panel.

component

Used for defining how the property is visualized in the property panel. Used to override the default component that comes with the type setting. This field is mandatory for a button property and should always be "button".

ref

Name or ID used to reference a property.

action

Used for defining the action when clicking the button.

Example:  

action: function(data){
	//add your button action here
	alert("My visualization extension name is '"+data.visualization+"' and have id '"+data.qInfo.qId+"'.");
}

Example

Defining a custom button

Defining a custom property of button type can look like below.

Example:  

Note: Customization of properties always start with items:.
define( [
],
function ( ) {

	return {
		initialProperties : {
			qHyperCubeDef : {
				qDimensions : [],
				qMeasures : [],
				qInitialDataFetch : [{
					qWidth : 10,
					qHeight : 50
				}]
			}
		},
		definition : {
			type : "items",
			component : "accordion",
			items: {
				settings: {
					uses: "settings",
					items: {
						MyButton: {
							label:"My Button",
							component: "button",
							action: function(data){
								//add your button action here
								alert("My visualization extension name is '"+data.visualization+"' and have id '"+data.qInfo.qId+"'.");
							}
						}
					}
				}
			}
		},
		paint: function ($element) {
			
		}
	};

} );
This is what it looks like in the property panel

And this is what you receive back when clicking the button

Did this information help you?

Thanks for letting us know. Is there anything you'd like to tell us about this topic?

Can you tell us why it did not help you and how we can improve it?