100 lines
4.3 KiB
HTML
100 lines
4.3 KiB
HTML
{{define "device_batch_config"}}
|
|
<div class="card">
|
|
<div class="section-title">
|
|
<div>
|
|
<h2 class="title-with-icon">{{icon "devices"}}<span>已选设备</span></h2>
|
|
</div>
|
|
<div class="actions compact">
|
|
<a class="btn secondary" href="{{.SelectedDevicesURL}}#batch-config">返回设备列表</a>
|
|
<a class="btn secondary" href="/ui/devices">重新选择</a>
|
|
</div>
|
|
</div>
|
|
<div class="info-list">
|
|
{{range .SelectedDevices}}
|
|
<div>
|
|
<span>{{.DisplayName}}</span>
|
|
<strong class="mono">{{.DeviceID}}</strong>
|
|
</div>
|
|
{{else}}
|
|
<div class="full">
|
|
<span>目标设备</span>
|
|
<strong>还没有选中设备</strong>
|
|
</div>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card">
|
|
<div class="section-title">
|
|
<div>
|
|
<h2 class="title-with-icon">{{icon "config"}}<span>批量配置</span></h2>
|
|
</div>
|
|
{{if .ConfigSources.Root}}<div class="muted small mono">{{.ConfigSources.Root}}</div>{{end}}
|
|
</div>
|
|
|
|
<form method="post" action="/ui/devices/batch-config">
|
|
{{range .SelectedDeviceIDs}}<input type="hidden" name="device_id" value="{{.}}" />{{end}}
|
|
<div class="field-grid">
|
|
<label><span>模板</span>
|
|
<select name="template">
|
|
{{range .ConfigSources.Templates}}
|
|
<option value="{{.Name}}" {{if eq .Name $.SelectedTemplate}}selected{{end}}>{{.Name}}</option>
|
|
{{end}}
|
|
</select>
|
|
</label>
|
|
<label><span>Profile</span>
|
|
<select name="profile">
|
|
{{range .ConfigSources.Profiles}}
|
|
<option value="{{.Name}}" {{if eq .Name $.SelectedProfile}}selected{{end}}>{{.Name}}</option>
|
|
{{end}}
|
|
</select>
|
|
</label>
|
|
<label><span>config_id</span><input name="config_id" value="{{.SelectedConfigID}}" placeholder="留空自动生成" /></label>
|
|
<label><span>config_version</span><input name="config_version" value="{{.SelectedVersion}}" placeholder="留空自动生成" /></label>
|
|
<div class="full">
|
|
<span class="muted small">Overlay</span>
|
|
<div class="actions" style="margin-top:6px">
|
|
{{range .ConfigSources.Overlays}}
|
|
<label class="btn secondary">
|
|
<input type="checkbox" name="overlay" value="{{.Name}}" {{if hasString $.SelectedOverlays .Name}}checked{{end}} />
|
|
{{.Name}}
|
|
</label>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="actions">
|
|
<button type="submit" class="primary">创建批量下发任务</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
|
|
<div class="card">
|
|
<div class="section-title">
|
|
<div>
|
|
<h2 class="title-with-icon">{{icon "preview"}}<span>预览摘要</span></h2>
|
|
</div>
|
|
</div>
|
|
<div class="info-list">
|
|
<div><span>模板</span><strong>{{if .ConfigPreview}}{{index .ConfigPreview.Metadata "template"}}{{else}}{{.SelectedTemplate}}{{end}}</strong></div>
|
|
<div><span>Profile</span><strong>{{if .ConfigPreview}}{{index .ConfigPreview.Metadata "profile"}}{{else}}{{.SelectedProfile}}{{end}}</strong></div>
|
|
<div><span>Overlay</span><strong class="mono">{{if .ConfigPreview}}{{if index .ConfigPreview.Metadata "overlays"}}{{range $i, $name := index .ConfigPreview.Metadata "overlays"}}{{if $i}}, {{end}}{{$name}}{{end}}{{else}}-{{end}}{{else}}{{if .SelectedOverlays}}{{range $i, $name := .SelectedOverlays}}{{if $i}}, {{end}}{{$name}}{{end}}{{else}}-{{end}}{{end}}</strong></div>
|
|
<div><span>目标设备</span><strong>{{len .SelectedDeviceIDs}} 台</strong></div>
|
|
<div><span>config_id</span><strong class="mono">{{if .ConfigPreview}}{{index .ConfigPreview.Metadata "config_id"}}{{else}}{{if .SelectedConfigID}}{{.SelectedConfigID}}{{else}}自动生成{{end}}{{end}}</strong></div>
|
|
<div><span>config_version</span><strong class="mono">{{if .ConfigPreview}}{{index .ConfigPreview.Metadata "config_version"}}{{else}}{{if .SelectedVersion}}{{.SelectedVersion}}{{else}}自动生成{{end}}{{end}}</strong></div>
|
|
{{if .ConfigPreview}}
|
|
<div><span>大小</span><strong class="mono">{{.ConfigPreview.Size}} bytes</strong></div>
|
|
<div class="full"><span>SHA256</span><strong class="mono">{{.ConfigPreview.Sha256}}</strong></div>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
|
|
{{if .ConfigPreview}}
|
|
<details class="card collapsible">
|
|
<summary class="title-with-icon">{{icon "tech"}}<span>完整 JSON</span></summary>
|
|
<pre>{{.ConfigPreview.JSON}}</pre>
|
|
</details>
|
|
{{end}}
|
|
{{end}}
|