This commit is contained in:
Liang Ding 2022-06-05 11:20:22 +08:00
parent eb78e27d9c
commit e4219bf679
No known key found for this signature in database
GPG key ID: 136F30F901A2231D
4 changed files with 27 additions and 30 deletions

View file

@ -155,7 +155,8 @@ func openNotebook(c *gin.Context) {
}
notebook := arg["notebook"].(string)
util.PushMsg(model.Conf.Language(45), 1000*60*15)
msgId := util.PushMsg(model.Conf.Language(45), 1000*60*15)
defer util.PushClearMsg(msgId)
existed, err := model.Mount(notebook)
if nil != err {
ret.Code = -1

View file

@ -837,8 +837,8 @@ func renameWriteJSONQueue(tree *parse.Tree, oldHPath string) (err error) {
}
func DuplicateDoc(rootID string) (err error) {
util.PushMsg(Conf.Language(116), 30000)
defer util.PushClearMsg()
msgId := util.PushMsg(Conf.Language(116), 30000)
defer util.PushClearMsg(msgId)
WaitForWritingFiles()
tree, err := loadTreeByBlockID(rootID)

View file

@ -248,7 +248,7 @@ func SyncData(boot, exit, byHand bool) {
wroteFiles, transferSize, err := ossUpload(localSyncDirPath, "sync/"+Conf.Sync.CloudName, device, boot, removedSyncList, upsertedSyncList)
if nil != err {
util.PushClearMsg()
util.PushClearProgress()
IncWorkspaceDataVer() // 上传失败的话提升本地版本,以备下次上传
msg := fmt.Sprintf(Conf.Language(80), formatErrorMsg(err))
@ -263,7 +263,7 @@ func SyncData(boot, exit, byHand bool) {
return
}
util.PushClearMsg()
util.PushClearProgress()
elapsed := time.Now().Sub(start).Seconds()
stat := fmt.Sprintf(Conf.Language(130), wroteFiles, humanize.Bytes(transferSize)) + fmt.Sprintf(Conf.Language(132), elapsed)
util.LogInfof("sync [cloud=%d, local=%d, wroteFiles=%d, transferSize=%s] uploaded in [%.2fs]", cloudSyncVer, syncConf.SyncVer, wroteFiles, humanize.Bytes(transferSize), elapsed)
@ -293,7 +293,7 @@ func SyncData(boot, exit, byHand bool) {
var tmpTransferSize uint64
err = ossDownload0(util.TempDir+"/sync", "sync/"+Conf.Sync.CloudName, "/"+pathJSON, &tmpFetchedFiles, &tmpTransferSize, boot || exit)
if nil != err {
util.PushClearMsg()
util.PushClearProgress()
msg := fmt.Sprintf(Conf.Language(80), formatErrorMsg(err))
Conf.Sync.Stat = msg
util.PushErrMsg(msg, 7000)
@ -314,7 +314,7 @@ func SyncData(boot, exit, byHand bool) {
}
data, err = encryption.AESGCMDecryptBinBytes(data, Conf.E2EEPasswd)
if nil != err {
util.PushClearMsg()
util.PushClearProgress()
msg := Conf.Language(28)
Conf.Sync.Stat = msg
util.PushErrMsg(fmt.Sprintf(Conf.Language(80), msg), 7000)
@ -331,7 +331,7 @@ func SyncData(boot, exit, byHand bool) {
// 解密验证成功后将其移动到 sync/ 文件夹下
if err = os.Rename(tmpPathJSON, filepath.Join(localSyncDirPath, pathJSON)); nil != err {
util.PushClearMsg()
util.PushClearProgress()
msg := fmt.Sprintf(Conf.Language(80), formatErrorMsg(err))
Conf.Sync.Stat = msg
util.PushErrMsg(msg, 7000)
@ -347,7 +347,7 @@ func SyncData(boot, exit, byHand bool) {
fetchedFilesCount, transferSize, downloadedFiles, err := ossDownload(localSyncDirPath, "sync/"+Conf.Sync.CloudName, boot || exit)
if nil != err {
util.PushClearMsg()
util.PushClearProgress()
msg := fmt.Sprintf(Conf.Language(80), formatErrorMsg(err))
Conf.Sync.Stat = msg
util.PushErrMsg(msg, 7000)
@ -366,7 +366,7 @@ func SyncData(boot, exit, byHand bool) {
syncDownloadErrCount++
return
}
util.PushClearMsg()
util.PushClearProgress()
// 恢复
var upsertFiles, removeFiles []string

View file

@ -19,6 +19,7 @@ package util
import (
"sync"
"github.com/88250/gulu"
"github.com/88250/melody"
)
@ -126,19 +127,14 @@ func PushTxErr(msg string, code int, data interface{}) {
BroadcastByType("main", "txerr", code, msg, data)
}
func PushMsg(msg string, timeout int) {
evt := NewCmdResult("msg", 0, PushModeBroadcast, 0)
evt.Msg = msg
evt.Data = map[string]interface{}{"closeTimeout": timeout}
PushEvent(evt)
func PushMsg(msg string, timeout int) string {
ret := gulu.Rand.String(7)
BroadcastByType("main", "msg", 0, msg, map[string]interface{}{"id": ret, "closeTimeout": timeout})
return ret
}
func PushErrMsg(msg string, timeout int) {
evt := NewCmdResult("msg", 0, PushModeBroadcast, 0)
evt.Code = -1
evt.Msg = msg
evt.Data = map[string]interface{}{"closeTimeout": timeout}
PushEvent(evt)
BroadcastByType("main", "msg", -1, msg, map[string]interface{}{"closeTimeout": timeout})
}
const (
@ -156,20 +152,20 @@ func PushEndlessProgress(msg string) {
}
func PushProgress(code, current, total int, msg string) {
evt := NewCmdResult("progress", 0, PushModeBroadcast, 0)
evt.Msg = msg
evt.Code = code
evt.Data = map[string]interface{}{
BroadcastByType("main", "progress", code, msg, map[string]interface{}{
"current": current,
"total": total,
}
PushEvent(evt)
})
}
// PushClearMsg 会清空消息提示以及进度遮罩。
func PushClearMsg() {
evt := NewCmdResult("cmsg", 0, PushModeBroadcast, 0)
PushEvent(evt)
// PushClearMsg 会清空指定消息。
func PushClearMsg(msgId string) {
BroadcastByType("main", "cmsg", 0, "", map[string]interface{}{"id": msgId})
}
// PushClearProgress 取消进度遮罩。
func PushClearProgress() {
BroadcastByType("main", "cprogress", 0, "", nil)
}
func PushDownloadProgress(id string, percent float32) {