{@link Action}s added to a model object creates additional URL subspace under the parent model object, through which it can interact with users. {@link Action}s are also capable of exposing themselves to the left hand side menu of a {@link ModelObject} (for example to {@link Project}, {@link Build}, and etc.)
Some actions use the latter without the former (for example, to add a link to an external website), while others do the former without the latter (for example, to just draw some graphs in floatingBox.jelly), and still some others do both.
If an action has a view named floatingBox.jelly, it will be displayed as a floating box on the top page of the target {@link ModelObject}. (For example, this is how the JUnit test result trend shows up in the project top page. See {@link TestResultProjectAction}.
On the target {@link ModelObject} page, actions are rendered as an item in the side panelby the "/lib/hudson:actions" jelly tag, but you can override this for your action by writing {@code action.jelly}. See the "actions" tag for what the default handling is and tweak from there. One of the use cases of this is to show nested actions, like where Jenkins show the option to wipe out the workspace inside the workspace link:
<l:task icon="images/24x24/folder.gif" href="${url}/ws/" title="${%Workspace}"> <l:task icon="images/24x24/folder-delete.gif" href="${url}/wipeOutWorkspace" title="${%Wipe Out Workspace}" /> </l:task>
Actions are often persisted as a part of {@link Actionable}(for example with {@link Build}) via XStream. In some other cases, {@link Action}s are transient and not persisted (such as when it's used with {@link Job}). @author Kohsuke Kawaguchi
|
|
|
|
|
|
|
|
|
|