🎨 Support one-click enable/disable of all downloaded plugins https://github.com/siyuan-note/siyuan/issues/8523

This commit is contained in:
Daniel 2023-06-23 22:47:44 +08:00
parent 1a3c0e7f42
commit 41cd90b771
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
4 changed files with 4 additions and 71 deletions

View file

@ -61,29 +61,3 @@ func setPetalEnabled(c *gin.Context) {
ret.Data = data
}
func setPetalConf(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)
arg, ok := util.JsonArg(c, ret)
if !ok {
return
}
param, err := gulu.JSON.MarshalJSON(arg)
if nil != err {
ret.Code = -1
ret.Msg = err.Error()
return
}
conf := &model.PetalConf{}
if err = gulu.JSON.UnmarshalJSON(param, conf); nil != err {
ret.Code = -1
ret.Msg = err.Error()
return
}
conf.Save()
}

View file

@ -363,5 +363,4 @@ func ServeAPI(ginServer *gin.Engine) {
ginServer.Handle("POST", "/api/petal/loadPetals", model.CheckAuth, model.CheckReadonly, loadPetals)
ginServer.Handle("POST", "/api/petal/setPetalEnabled", model.CheckAuth, model.CheckReadonly, setPetalEnabled)
ginServer.Handle("POST", "/api/petal/setPetalConf", model.CheckAuth, model.CheckReadonly, setPetalConf)
}

View file

@ -18,10 +18,12 @@ package conf
type Bazaar struct {
Trust bool `json:"trust"`
Petal bool `json:"petal"`
}
func NewBazaar() *Bazaar {
return &Bazaar{
Trust: false,
Petal: true,
}
}

View file

@ -40,33 +40,6 @@ type Petal struct {
I18n map[string]interface{} `json:"i18n"` // i18n text
}
type PetalConf struct {
Enabled bool `json:"enabled"`
}
func (pConf *PetalConf) Save() {
if util.ReadOnly {
return
}
petalsStoreLock.Lock()
defer petalsStoreLock.Unlock()
data, _ := gulu.JSON.MarshalIndentJSON(pConf, "", " ")
petalDir := filepath.Join(util.DataDir, "storage", "petal")
if err := os.MkdirAll(petalDir, 0777); nil != err {
logging.LogErrorf("create petal dir [%s] failed: %s", petalDir, err)
return
}
confPath := filepath.Join(petalDir, "conf.json")
if err := filelock.WriteFile(confPath, data); nil != err {
logging.LogErrorf("write petal conf [%s] failed: %s", confPath, err)
util.ReportFileSysFatalError(err)
return
}
}
func SetPetalEnabled(name string, enabled bool, frontend string) (ret *Petal, err error) {
petals := getPetals()
@ -99,23 +72,8 @@ func SetPetalEnabled(name string, enabled bool, frontend string) (ret *Petal, er
func LoadPetals(frontend string) (ret []*Petal) {
ret = []*Petal{}
petalDir := filepath.Join(util.DataDir, "storage", "petal")
confPath := filepath.Join(petalDir, "conf.json")
if gulu.File.IsExist(confPath) {
data, err := filelock.ReadFile(confPath)
if nil != err {
logging.LogErrorf("read petal conf [%s] failed: %s", confPath, err)
} else {
petalConf := &PetalConf{}
if err = gulu.JSON.UnmarshalJSON(data, petalConf); nil != err {
logging.LogErrorf("unmarshal petal conf [%s] failed: %s", confPath, err)
} else {
if !petalConf.Enabled {
logging.LogInfof("plugin system has been disabled")
return
}
}
}
if !Conf.Bazaar.Petal {
return
}
petals := getPetals()