Button Actions
Toolbar button actions can be server-side or client-side.
Currently most buttons are server-side but the preferred way of writing new code is calling the API from client-side button actions.
Server-side Button Actions
When a toolbar button is pressed current controller’s button
or x_button
method is called.
The identifier of the button that was pressed is passed in params[:pressed]
.
The x_button
or button
handlers should follow this pattern:
def x_button
generic_x_button(AE_CUSTOM_X_BUTTON_ALLOWED_ACTIONS)
end
Meaning that just a lookup in the list of valid actions for the controller is done and the action is called if found. Nothing else.
Cleaning up the handlers to this form will allow us to do furter refactorings and make the button actions plugable.
Client-side Button Actions
In Toolbars and Buttons you can see how to define javascript-only buttons.
Such button can perform changes in the UI or it can call the ManageIQ REST API to get work done. See Calling the API.