83 lines
4.3 KiB
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}}
|