mirror of
https://github.com/kemko/nomad.git
synced 2026-01-04 17:35:43 +03:00
* Initial pass at a global actions instance queue * Action card with a bunch of functionality that needs to be pared back a bit * Happy little actions button * runAction performs updated to use actions service * Stop All and Clear Finished buttons * Keyboard service now passes element, so we can pseudo-click the actions dropdown * resizable sidebar code blocks * Contextual actions within task and job levels * runAction greatly consolidated * Pluralize action text * Peer grouping of flyout action intances * ShortIDs instead of full alloc IDs * Testfixes that previously depended on notifications * Stop and stop all for peered action instances * Job name in action instance card linkable * Componentized actions global button * scss consolidation * Clear and Stop buttons become mutually exclusive in an action card * Clean up action card title styles a bit * todo-bashing * stopAll and stopPeers separated and fixed up * Socket handling functions moved to the Actions service * Error handling on socket message * Smarter import * Documentation note: need alloc-exec and alloc-raw-exec for raw_exec jobs * Tests for flyout and dropdown actions * Docs link when in empty flyout/queue state and percy snapshot test for it
58 lines
2.3 KiB
Handlebars
58 lines
2.3 KiB
Handlebars
{{!
|
|
Copyright (c) HashiCorp, Inc.
|
|
SPDX-License-Identifier: BUSL-1.1
|
|
~}}
|
|
|
|
<Hds::Dropdown class="actions-dropdown"
|
|
{{keyboard-shortcut
|
|
label="Open Actions Dropdown"
|
|
pattern=(array "a" "c")
|
|
action=(action this.openActionsDropdown)
|
|
}}
|
|
as |dd|>
|
|
<dd.ToggleButton class="action-toggle-button" @color="secondary" @text="Actions{{if @context (concat " for " @context.name)}}" @size="medium" />
|
|
{{#each @actions as |action|}}
|
|
{{#if @allocation}}
|
|
{{!-- If an allocation was passed in, we run the action on that alloc --}}
|
|
<dd.Interactive
|
|
{{keyboard-shortcut
|
|
enumerated=true
|
|
action=(fn this.nomadActions.runAction (hash action=action allocID=@allocation.id))
|
|
}}
|
|
{{on "click" (fn this.nomadActions.runAction (hash action=action allocID=@allocation.id))}} @text={{action.name}}
|
|
/>
|
|
{{else if (eq action.allocations.length 1)}}
|
|
{{!-- If there is only one allocation on the action, we can just run it on the 0th alloc --}}
|
|
<dd.Interactive
|
|
{{keyboard-shortcut
|
|
enumerated=true
|
|
action=(fn this.nomadActions.runAction (hash action=action allocID=(get (object-at 0 action.allocations) "id")))
|
|
}}
|
|
{{on "click" (fn this.nomadActions.runAction (hash action=action allocID=(get (object-at 0 action.allocations) "id")))}} @text="{{action.name}}"
|
|
/>
|
|
{{else}}
|
|
{{!-- Either no allocation was passed in, or there are multiple allocatios on the action to choose from --}}
|
|
<dd.Generic>
|
|
<Hds::Reveal @text={{action.name}}>
|
|
<dd.Interactive
|
|
{{keyboard-shortcut
|
|
enumerated=true
|
|
action=(fn this.nomadActions.runActionOnRandomAlloc action)
|
|
}}
|
|
{{on "click" (fn this.nomadActions.runActionOnRandomAlloc action)}}
|
|
@text="Run on a random alloc"
|
|
/>
|
|
<dd.Interactive
|
|
{{keyboard-shortcut
|
|
enumerated=true
|
|
action=(fn this.nomadActions.runActionOnAllAllocs action)
|
|
}}
|
|
{{on "click" (fn this.nomadActions.runActionOnAllAllocs action)}}
|
|
@text="Run on all {{action.allocations.length}} allocs"
|
|
/>
|
|
</Hds::Reveal>
|
|
</dd.Generic>
|
|
{{/if}}
|
|
{{/each}}
|
|
</Hds::Dropdown>
|