This commit is contained in:
2026-06-25 15:26:53 -05:00
parent 3fc94ae1c1
commit 94f4d8959d
3 changed files with 455 additions and 18 deletions

View File

@@ -511,24 +511,24 @@
<label v-if="runPlanForm.visibility === 'group'"><span>Group</span><select v-model="runPlanForm.groupId"><option :value="null">Choose group</option><option v-for="group in groups" :key="group.id" :value="group.id">{{ group.name }}</option></select></label>
<label class="toggle modal-toggle"><input v-model="runPlanForm.parallel" type="checkbox" /><span><strong>Parallel execution</strong><small>Run against selected hosts concurrently.</small></span></label>
<label class="full"><span>Description</span><textarea v-model="runPlanForm.description" rows="3" placeholder="Purpose, operator notes, approval context"></textarea></label>
<div class="full modal-host-picker">
<div class="list-header"><span>Target host groups</span><strong>{{ runPlanForm.hostGroupIds.length }} selected</strong></div>
<div class="host-picker">
<label v-for="hostGroup in hostGroups" :key="hostGroup.id">
<input v-model="runPlanForm.hostGroupIds" type="checkbox" :value="hostGroup.id" />
<span><strong>{{ hostGroup.name }}</strong><small>{{ hostGroup.mode }} · {{ hostGroup.memberCount || 0 }} host(s)</small></span>
</label>
</div>
</div>
<div class="full modal-host-picker">
<div class="list-header"><span>Target hosts</span><strong>{{ runPlanForm.hostIds.length }} selected</strong></div>
<div class="host-picker">
<label v-for="host in hosts" :key="host.id">
<input v-model="runPlanForm.hostIds" type="checkbox" :value="host.id" />
<span><strong>{{ host.name }}</strong><small>{{ host.transport }} · {{ host.address }}</small></span>
</label>
</div>
</div>
<TargetBrowser
v-model="runPlanForm.hostGroupIds"
:items="hostGroups"
kind="group"
eyebrow="HOST GROUP TARGETS"
title="Target host groups"
description="Select dynamic or manual collections. Dynamic groups use their latest synced membership when the RunPlan executes."
search-placeholder="Search groups, mode, rule text..."
/>
<TargetBrowser
v-model="runPlanForm.hostIds"
:items="hosts"
kind="host"
eyebrow="DIRECT HOST TARGETS"
title="Target hosts"
description="Select individual systems when this RunPlan needs exact one-off targets in addition to host groups."
search-placeholder="Search host, FQDN, address, tags..."
/>
<div class="form-actions modal-actions full">
<button class="ghost-button" type="button" @click="runPlanModalOpen = false">Cancel</button>
<button class="primary-action" type="submit"><Save :size="17" />{{ runPlanForm.id ? 'Update RunPlan' : 'Create RunPlan' }}</button>
@@ -971,6 +971,7 @@ import HelpCenter from './components/help/HelpCenter.vue';
import ParticleBackdrop from './components/ParticleBackdrop.vue';
import BaseModal from './components/ui/BaseModal.vue';
import ResourceTable from './components/ui/ResourceTable.vue';
import TargetBrowser from './components/ui/TargetBrowser.vue';
import ScriptExplorer from './components/scripts/ScriptExplorer.vue';
import ScriptTestRunModal from './components/scripts/ScriptTestRunModal.vue';
import VariableEditorModal from './components/scripts/VariableEditorModal.vue';