3588AdminBackend/internal/web/ui/templates/asset_profile.html

83 lines
4.3 KiB
HTML

{{define "asset_profile"}}
{{template "asset_tabs" .}}
{{if .AssetProfileEditor}}
<form method="post" action="/ui/assets/profiles/{{.AssetProfileEditor.Name}}">
<div class="card">
<div class="section-title">
<div>
<h2 class="title-with-icon">{{icon "profile"}}<span>{{.AssetProfileEditor.Name}}</span></h2>
</div>
<a class="btn secondary" href="/ui/assets/profiles">返回 Profile 列表</a>
</div>
</div>
<div class="card">
<div class="card-tabs profile-editor-tabs">
<ul class="nav nav-tabs asset-tabs" role="tablist" aria-label="Profile 编辑页签">
<li class="nav-item"><a href="#profile-basic" class="nav-link active" data-bs-toggle="tab">基础信息</a></li>
<li class="nav-item"><a href="#profile-source" class="nav-link" data-bs-toggle="tab">视频源</a></li>
<li class="nav-item"><a href="#profile-output" class="nav-link" data-bs-toggle="tab">输出流</a></li>
<li class="nav-item"><a href="#profile-advanced" class="nav-link" data-bs-toggle="tab">高级设置</a></li>
</ul>
<div class="tab-content">
<div id="profile-basic" class="card tab-pane active show">
<div class="card-body">
<div class="field-grid">
<label><span>Profile 名称</span><input name="profile_name" value="{{.AssetProfileEditor.Name}}" /></label>
<label><span>实例名</span><input name="instance_name" value="{{.AssetProfileEditor.Instance.Name}}" /></label>
<label><span>设备显示名</span><input name="display_name" value="{{.AssetProfileEditor.Instance.DisplayName}}" /></label>
<label><span>设备编号</span><input name="device_code" value="{{.AssetProfileEditor.Instance.DeviceCode}}" /></label>
<label><span>站点名</span><input name="site_name" value="{{.AssetProfileEditor.Instance.SiteName}}" /></label>
<label><span>通道号</span><input name="channel_no" value="{{.AssetProfileEditor.Instance.ChannelNo}}" /></label>
<label class="full"><span>描述</span><input name="description" value="{{.AssetProfileEditor.Description}}" /></label>
</div>
</div>
</div>
<div id="profile-source" class="card tab-pane">
<div class="card-body">
<div class="field-grid">
<label class="full"><span>RTSP 地址</span><input class="mono" name="rtsp_url" value="{{.AssetProfileEditor.Instance.RTSPURL}}" /></label>
</div>
</div>
</div>
<div id="profile-output" class="card tab-pane">
<div class="card-body">
<div class="field-grid">
<label class="full"><span>HLS 输出路径</span><input class="mono" name="publish_hls_path" value="{{.AssetProfileEditor.Instance.PublishHLSPath}}" /></label>
<label><span>RTSP 输出端口</span><input class="mono" name="publish_rtsp_port" value="{{.AssetProfileEditor.Instance.PublishRTSPPort}}" /></label>
<label><span>RTSP 输出路径</span><input class="mono" name="publish_rtsp_path" value="{{.AssetProfileEditor.Instance.PublishRTSPPath}}" /></label>
</div>
</div>
</div>
<div id="profile-advanced" class="card tab-pane">
<div class="card-body">
<div class="field-grid">
<label><span>队列大小</span><input class="mono" name="queue_size" value="{{.AssetProfileEditor.Queue.Size}}" /></label>
<label><span>队列策略</span><input name="queue_strategy" value="{{.AssetProfileEditor.Queue.Strategy}}" /></label>
<label class="full"><span>高级设置 JSON</span><textarea name="advanced_params" rows="8" class="code-input">{{if .AssetProfileEditor.Instance.AdvancedParams}}{{json .AssetProfileEditor.Instance.AdvancedParams}}{{end}}</textarea></label>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="card">
<div class="actions">
<button type="submit">{{icon "apply"}}<span>保存</span></button>
</div>
</div>
</form>
<details class="card collapsible">
<summary class="title-with-icon">{{icon "tech"}}<span>原始 JSON</span></summary>
<pre>{{json .AssetProfileEditor.Raw}}</pre>
</details>
{{end}}
{{if .Error}}<div class="error">{{.Error}}</div>{{end}}
{{template "asset_tabs_end" .}}
{{end}}