[#popup-on-start]
= Popup on Start (Execution Feedback)

OliveTin now has several options to control "execution feedback" when actions are started. This can be controlled on
a per-action basis, using the `popupOnStart` configuration option.

You can also set the default for OliveTin using the `defaultPopupOnStart` configuration option.

== Big Flashy Buttons (default)

[source,yaml]
.`config.yaml`
----
actions:
  - title: Ping the Internet
    popupOnStart: default
----

This will also be the option that is used if no other values match.

image::../flashyButton.png[]

== Execution Dialog (Output Only)

This can be useful for just displaying the output of a command, without too many additional details like the start time, end time, etc.

[source,yaml]
.`config.yaml`
----
actions:
  - title: Check disk space
    popupOnStart: execution-dialog-stdout-only
----

[NOTE]
OliveTin used to separate out the Standard Output (`stdout`) and Standard Error (`stderr`) into two separate output streams. This made no sense, as lines would effectively be separated. This behavior has change to now display `stdout` and `stderr` in the same output stream. However, the configuration option `execution-dialog-stdout-only` was not renamed - and now it includes `stderr` as well.

image::../popupOutputOnly.png[]

== Execution Dialog

The `execution-dialog` option for `popupOnStart` is simialr to the above `execution-dialog-stdout-only`, but it includes the start time, end time, exit code and the duration of time it took for the command to execute.

[source,yaml]
.`config.yaml`
----
actions:
  - title: Check dmesg logs
    popupOnStart: execution-dialog
----

.Example of `popupOnStart: execution-dialog`
image::../executionDialog.png[]

== Execution Buttons

This mode of `popupOnStart` will create a new button for each individual execution. This can be useful for actions that are executed again and again.

The text of the button (eg, "0s" in the screenshot below), is the time it took to execute the action in seconds.

[source,yaml]
.`config.yaml`
----
actions:
  - title: date
    popupOnStart: execution-button
----

image::../executionButtons.png[]

== Action execution history

The `history` option opens the action details page for that binding when the execution starts, so you can see past runs and status for the same action.

[source,yaml]
.`config.yaml`
----
actions:
  - title: Long-running job
    popupOnStart: history
----


