Add extension management page

This commit is contained in:
2025-06-24 19:18:30 +08:00
parent f3bcb87828
commit 8e91e3cf7c
13 changed files with 331 additions and 276 deletions

View File

@@ -182,28 +182,6 @@ func (es *ExtensionSettings) GetExtensionByID(id ExtensionID) *Extension {
return nil
}
// GetEnabledExtensions 获取所有启用的扩展
func (es *ExtensionSettings) GetEnabledExtensions() []Extension {
var enabled []Extension
for _, ext := range es.Extensions {
if ext.Enabled {
enabled = append(enabled, ext)
}
}
return enabled
}
// GetExtensionsByCategory 根据分类获取扩展
func (es *ExtensionSettings) GetExtensionsByCategory(category ExtensionCategory) []Extension {
var extensions []Extension
for _, ext := range es.Extensions {
if ext.Category == category {
extensions = append(extensions, ext)
}
}
return extensions
}
// UpdateExtension 更新扩展配置
func (es *ExtensionSettings) UpdateExtension(id ExtensionID, enabled bool, config ExtensionConfig) bool {
for i := range es.Extensions {

View File

@@ -178,8 +178,8 @@ func (es *ExtensionService) saveExtensionConfig() error {
return nil
}
// GetExtensionSettings 获取完整扩展配置
func (es *ExtensionService) GetExtensionSettings() (*models.ExtensionSettings, error) {
// GetAllExtensions 获取所有扩展配置
func (es *ExtensionService) GetAllExtensions() ([]models.Extension, error) {
es.mu.RLock()
defer es.mu.RUnlock()
@@ -187,26 +187,12 @@ func (es *ExtensionService) GetExtensionSettings() (*models.ExtensionSettings, e
if err := es.koanf.Unmarshal("", &settings); err != nil {
return nil, &ExtensionError{"unmarshal_config", "", err}
}
return &settings, nil
}
// GetAllExtensions 获取所有扩展配置
func (es *ExtensionService) GetAllExtensions() ([]models.Extension, error) {
settings, err := es.GetExtensionSettings()
if err != nil {
return nil, err
}
return settings.Extensions, nil
}
// EnableExtension 启用扩展
func (es *ExtensionService) EnableExtension(id models.ExtensionID) error {
return es.UpdateExtensionState(id, true, nil)
}
// DisableExtension 禁用扩展
func (es *ExtensionService) DisableExtension(id models.ExtensionID) error {
return es.UpdateExtensionState(id, false, nil)
// UpdateExtensionEnabled 更新扩展启用状态
func (es *ExtensionService) UpdateExtensionEnabled(id models.ExtensionID, enabled bool) error {
return es.UpdateExtensionState(id, enabled, nil)
}
// UpdateExtensionState 更新扩展状态