diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json index ecf975c15..946fe6d93 100644 --- a/app/appearance/langs/en_US.json +++ b/app/appearance/langs/en_US.json @@ -886,6 +886,9 @@ "140": "Failed to create data snapshot: %s", "141": "Failed to rollback data snapshot", "142": "Snapshot memo cannot be empty", - "143": "Creating data snapshot..." + "143": "Creating data snapshot...", + "144": "Resetting data repository...", + "145": "Data repository reset completed", + "146": "Failed to reset data repository: %s" } } diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json index 4f396218b..386c22e36 100644 --- a/app/appearance/langs/fr_FR.json +++ b/app/appearance/langs/fr_FR.json @@ -886,6 +886,9 @@ "140": "Échec de la création de l'instantané des données: %s", "141": "Échec de la restauration de l'instantané des données", "142": "Le mémo d'instantané ne peut pas être vide", - "143": "Création d'un instantané de données..." + "143": "Création d'un instantané de données...", + "144": "Réinitialisation du référentiel de données...", + "145": "Réinitialisation du référentiel de données terminée", + "146": "Échec de la réinitialisation du référentiel de données : %s" } } diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json index d12ff4a03..8fa2b9cc9 100644 --- a/app/appearance/langs/zh_CHT.json +++ b/app/appearance/langs/zh_CHT.json @@ -885,6 +885,9 @@ "140": "創建數據快照失敗:%s", "141": "回滾數據快照失敗", "142": "快照備註不能為空", - "143": "正在創建數據快照..." + "143": "正在創建數據快照...", + "144": "正在重置數據倉庫...", + "145": "數據倉庫重置完畢", + "146": "重置數據倉庫失敗:%s" } } diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json index fb098fc23..19e3206ae 100644 --- a/app/appearance/langs/zh_CN.json +++ b/app/appearance/langs/zh_CN.json @@ -887,6 +887,9 @@ "140": "创建数据快照失败:%s", "141": "回滚数据快照失败", "142": "快照备注不能为空", - "143": "正在创建数据快照..." + "143": "正在创建数据快照...", + "144": "正在重置数据仓库...", + "145": "数据仓库重置完毕", + "146": "重置数据仓库失败:%s" } } diff --git a/kernel/api/repo.go b/kernel/api/repo.go index 076036735..fda9e09f5 100644 --- a/kernel/api/repo.go +++ b/kernel/api/repo.go @@ -116,3 +116,18 @@ func initRepoKey(c *gin.Context) { "key": hex.EncodeToString(model.Conf.Repo.Key), } } + +func resetRepo(c *gin.Context) { + ret := gulu.Ret.NewResult() + defer c.JSON(http.StatusOK, ret) + + if err := model.ResetRepo(); nil != err { + ret.Code = -1 + ret.Msg = fmt.Sprintf(model.Conf.Language(146), err.Error()) + return + } + + ret.Data = map[string]interface{}{ + "key": hex.EncodeToString(model.Conf.Repo.Key), + } +} diff --git a/kernel/api/router.go b/kernel/api/router.go index 52b233f03..43d925001 100644 --- a/kernel/api/router.go +++ b/kernel/api/router.go @@ -248,6 +248,7 @@ func ServeAPI(ginServer *gin.Engine) { ginServer.Handle("POST", "/api/bazaar/getBazaarPackageREAME", model.CheckAuth, getBazaarPackageREAME) ginServer.Handle("POST", "/api/repo/initRepoKey", model.CheckAuth, initRepoKey) + ginServer.Handle("POST", "/api/repo/resetRepo", model.CheckAuth, resetRepo) ginServer.Handle("POST", "/api/repo/importRepoKey", model.CheckAuth, importRepoKey) ginServer.Handle("POST", "/api/repo/indexRepo", model.CheckAuth, indexRepo) ginServer.Handle("POST", "/api/repo/checkoutRepo", model.CheckAuth, checkoutRepo) diff --git a/kernel/model/repository.go b/kernel/model/repository.go index cdb90dc69..c3f2d1be3 100644 --- a/kernel/model/repository.go +++ b/kernel/model/repository.go @@ -85,6 +85,23 @@ func ImportRepoKey(hexKey string) (err error) { return } +func ResetRepo() (err error) { + msgId := util.PushMsg(Conf.Language(144), 1000*60) + + if err = os.RemoveAll(Conf.Repo.GetSaveDir()); nil != err { + return + } + if err = os.MkdirAll(Conf.Repo.GetSaveDir(), 0755); nil != err { + return + } + + Conf.Repo.Key = nil + Conf.Save() + + util.PushUpdateMsg(msgId, Conf.Language(145), 3000) + return +} + func InitRepoKey() (err error) { msgId := util.PushMsg(Conf.Language(136), 1000*7)