diff --git a/kernel/model/repository.go b/kernel/model/repository.go index 8497ad80b..53530a50e 100644 --- a/kernel/model/repository.go +++ b/kernel/model/repository.go @@ -1347,6 +1347,7 @@ func processSyncMergeResult(exit, byHand bool, mergeResult *dejavu.MergeResult, //logSyncMergeResult(mergeResult) + var needReloadFiletree bool if 0 < len(mergeResult.Conflicts) { luteEngine := util.NewLute() if Conf.Sync.GenerateConflictDoc { @@ -1375,6 +1376,8 @@ func processSyncMergeResult(exit, byHand bool, mergeResult *dejavu.MergeResult, resetTree(tree, "Conflicted") createTreeTx(tree) } + + needReloadFiletree = true } historyDir := filepath.Join(util.HistoryDir, mergeResult.Time.Format("2006-01-02-150405")+"-sync") @@ -1401,7 +1404,7 @@ func processSyncMergeResult(exit, byHand bool, mergeResult *dejavu.MergeResult, var upserts, removes []string var upsertTrees int // 可能需要重新加载部分功能 - var needReloadFlashcard, needReloadOcrTexts, needReloadFiletree, needReloadPlugin bool + var needReloadFlashcard, needReloadOcrTexts, needReloadPlugin bool for _, file := range mergeResult.Upserts { upserts = append(upserts, file.Path) if strings.HasPrefix(file.Path, "/storage/riff/") { @@ -1465,7 +1468,7 @@ func processSyncMergeResult(exit, byHand bool, mergeResult *dejavu.MergeResult, } if needReloadFiletree { - util.BroadcastByType("filetree", "reloadFiletree", 0, "", nil) + util.PushReloadFiletree() } if exit { // 退出时同步不用推送事件 diff --git a/kernel/util/websocket.go b/kernel/util/websocket.go index 2c8bcbf10..8f42342bd 100644 --- a/kernel/util/websocket.go +++ b/kernel/util/websocket.go @@ -158,6 +158,10 @@ func PushBackgroundTask(data map[string]interface{}) { BroadcastByType("main", "backgroundtask", 0, "", data) } +func PushReloadFiletree() { + BroadcastByType("filetree", "reloadFiletree", 0, "", nil) +} + type BlockStatResult struct { RuneCount int `json:"runeCount"` WordCount int `json:"wordCount"`