fix: clone standard template to user-editable copy before first use
This commit is contained in:
parent
76f4b5af9a
commit
0895d19fe0
@ -372,6 +372,31 @@ func (s *AutoConfigService) BuildPipeline(req AutoConfigRequest, deploy bool) (*
|
||||
templateName := resolveResult.TemplateName
|
||||
result.Composed = resolveResult.Composed
|
||||
|
||||
// ---- 1.5. Clone standard template to user-editable copy ----
|
||||
if strings.HasPrefix(templateName, "std_") {
|
||||
userName := strings.TrimPrefix(templateName, "std_")
|
||||
if _, _, err := s.preview.readAssetJSON("templates", userName); err != nil {
|
||||
raw, _, err := s.preview.readAssetJSON("templates", templateName)
|
||||
if err != nil {
|
||||
result.Error = fmt.Sprintf("读取标准模板失败: %v", err)
|
||||
return result, fmt.Errorf(result.Error)
|
||||
}
|
||||
raw["name"] = userName
|
||||
raw["description"] = "从 " + templateName + " 复制"
|
||||
delete(raw, "source")
|
||||
body, err := marshalConfigJSON(raw)
|
||||
if err != nil {
|
||||
result.Error = fmt.Sprintf("序列化模板失败: %v", err)
|
||||
return result, fmt.Errorf(result.Error)
|
||||
}
|
||||
if err := s.preview.SaveTemplateAsset(userName, stringValue(raw["description"]), string(body)); err != nil {
|
||||
result.Error = fmt.Sprintf("保存用户模板失败: %v", err)
|
||||
return result, fmt.Errorf(result.Error)
|
||||
}
|
||||
}
|
||||
templateName = userName
|
||||
}
|
||||
|
||||
// ---- 2. Compose template if needed ----
|
||||
if resolveResult.Composed {
|
||||
composed, err := s.composeFromFeatureTemplates(req.Features, resolveResult.composePrimary, resolveResult.composeFeatures)
|
||||
|
||||
Binary file not shown.
Loading…
Reference in New Issue
Block a user