refactor: 视频源删除改用ID,彻底避免中文URL编码问题
This commit is contained in:
parent
332e36bd8f
commit
25d860ca33
@ -878,6 +878,13 @@ func (s *ConfigPreviewService) SaveVideoSourceAsset(asset ConfigVideoSourceAsset
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *ConfigPreviewService) DeleteVideoSourceByID(id int) error {
|
||||
if s == nil || s.assets == nil {
|
||||
return fmt.Errorf("基础配置仓库未初始化")
|
||||
}
|
||||
return s.assets.DeleteVideoSourceByID(id)
|
||||
}
|
||||
|
||||
func (s *ConfigPreviewService) DeleteVideoSource(name string) error {
|
||||
if s == nil || s.assets == nil {
|
||||
return fmt.Errorf("基础配置仓库未初始化")
|
||||
|
||||
@ -392,6 +392,14 @@ func (r *AssetsRepo) DeleteIntegrationService(name string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
func (r *AssetsRepo) DeleteVideoSourceByID(id int) error {
|
||||
if r == nil || r.db == nil {
|
||||
return nil
|
||||
}
|
||||
_, err := r.db.Exec(`DELETE FROM video_sources WHERE id = ?`, id)
|
||||
return err
|
||||
}
|
||||
|
||||
func (r *AssetsRepo) DeleteVideoSource(name string) error {
|
||||
if r == nil || r.db == nil {
|
||||
return nil
|
||||
|
||||
@ -791,7 +791,7 @@ func (u *UI) Routes() (chi.Router, error) {
|
||||
r.Get("/assets/video-sources/template", u.actionVideoSourceCSVTemplate)
|
||||
r.Post("/assets/video-sources/import", u.actionVideoSourceCSVImport)
|
||||
r.Post("/assets/video-sources", u.actionAssetVideoSourceSave)
|
||||
r.Post("/assets/video-sources/{name}/delete", u.actionAssetVideoSourceDelete)
|
||||
r.Post("/assets/video-sources/{id}/delete", u.actionAssetVideoSourceDelete)
|
||||
r.Get("/assets/templates", u.pageAssetTemplates)
|
||||
r.Post("/assets/templates/create", u.actionAssetTemplateCreate)
|
||||
r.Post("/assets/templates/{name}/clone", u.actionAssetTemplateClone)
|
||||
@ -3769,12 +3769,14 @@ func (u *UI) actionAssetVideoSourceDelete(w http.ResponseWriter, r *http.Request
|
||||
http.Error(w, "config preview service is not configured", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
name := chi.URLParam(r, "name")
|
||||
if decoded, err := url.PathUnescape(name); err == nil {
|
||||
name = decoded
|
||||
idStr := chi.URLParam(r, "id")
|
||||
id, err := strconv.Atoi(idStr)
|
||||
if err != nil {
|
||||
http.Redirect(w, r, "/assets/video-sources?error="+urlQueryEscape("无效的ID"), http.StatusFound)
|
||||
return
|
||||
}
|
||||
if err := u.preview.DeleteVideoSource(name); err != nil {
|
||||
http.Redirect(w, r, "/assets/video-sources?error="+urlQueryEscape(err.Error())+"&name="+url.PathEscape(name), http.StatusFound)
|
||||
if err := u.preview.DeleteVideoSourceByID(id); err != nil {
|
||||
http.Redirect(w, r, "/assets/video-sources?error="+urlQueryEscape(err.Error()), http.StatusFound)
|
||||
return
|
||||
}
|
||||
http.Redirect(w, r, "/assets/video-sources?msg="+urlQueryEscape("视频源已删除"), http.StatusFound)
|
||||
|
||||
@ -190,7 +190,7 @@ toggleIntegrationFields('{{.AssetIntegration.Type}}');
|
||||
<a class="btn secondary" href="/assets/video-sources?new=1">{{icon "apply"}}<span>新增视频源</span></a>
|
||||
{{if .AssetVideoSource}}{{if .AssetVideoSource.Name}}
|
||||
<a class="btn secondary" href="/assets/video-sources?name={{.AssetVideoSource.Name}}&edit=1">{{icon "edit"}}<span>编辑</span></a>
|
||||
<form method="post" action="/assets/video-sources/{{.AssetVideoSource.Name}}/delete" onsubmit="return confirm('确认删除视频源 {{.AssetVideoSource.Name}}?')">
|
||||
<form method="post" action="/assets/video-sources/{{.AssetVideoSource.ID}}/delete" onsubmit="return confirm('确认删除视频源 {{.AssetVideoSource.Name}}?')">
|
||||
<button class="btn secondary" type="submit">删除</button>
|
||||
</form>
|
||||
{{end}}{{end}}
|
||||
|
||||
Binary file not shown.
Loading…
Reference in New Issue
Block a user