Просмотр исходного кода

:art: Brand new marketplace UI https://github.com/siyuan-note/siyuan/issues/8181

Liang Ding 2 лет назад
Родитель
Сommit
99c01fc931
1 измененных файлов с 20 добавлено и 7 удалено
  1. 20 7
      kernel/model/plugin.go

+ 20 - 7
kernel/model/plugin.go

@@ -56,15 +56,28 @@ func SetPetalEnabled(name string, enabled bool) {
 	}
 
 	plugins := bazaar.InstalledPlugins()
-	for _, plugin := range plugins {
-		id := hash(plugin.URL)
-		petal := getPetalByID(id, petals)
-		if nil == petal {
-			continue
+	var plugin *bazaar.Plugin
+	for _, p := range plugins {
+		if p.Name == name {
+			plugin = p
+			break
 		}
+	}
+	if nil == plugin {
+		logging.LogErrorf("plugin [%s] not found", name)
+		return
+	}
 
+	petal := getPetalByID(hash(plugin.Name), petals)
+	if nil == petal {
+		petal = &Petal{
+			ID:      hash(plugin.Name),
+			Name:    plugin.Name,
+			Enabled: enabled,
+		}
+		petals = append(petals, petal)
+	} else {
 		petal.Enabled = enabled
-		break
 	}
 
 	if data, err = gulu.JSON.MarshalIndentJSON(petals, "", "\t"); nil != err {
@@ -113,7 +126,7 @@ func LoadPetals() (ret []*Petal) {
 
 	plugins := bazaar.InstalledPlugins()
 	for _, plugin := range plugins {
-		id := hash(plugin.URL)
+		id := hash(plugin.Name)
 		petal := getPetalByID(id, ret)
 		if nil == petal {
 			continue