mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-01-24 17:26:10 +01:00
Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
6b1202be2a
3 changed files with 16 additions and 10 deletions
|
|
@ -172,7 +172,6 @@ export const openCardByData = (cardsData: ICard[], html = "") => {
|
|||
fetchPost("/api/riff/reviewRiffCard", {
|
||||
deckID: blocks[index].deckID,
|
||||
cardID: blocks[index].cardID,
|
||||
blockID: blocks[index].blockID,
|
||||
rating: parseInt(type)
|
||||
}, () => {
|
||||
index++;
|
||||
|
|
|
|||
|
|
@ -76,9 +76,8 @@ func reviewRiffCard(c *gin.Context) {
|
|||
|
||||
deckID := arg["deckID"].(string)
|
||||
cardID := arg["cardID"].(string)
|
||||
blockID := arg["blockID"].(string)
|
||||
rating := int(arg["rating"].(float64))
|
||||
err := model.ReviewFlashcard(deckID, cardID, blockID, riff.Rating(rating))
|
||||
err := model.ReviewFlashcard(deckID, cardID, riff.Rating(rating))
|
||||
if nil != err {
|
||||
ret.Code = -1
|
||||
ret.Msg = err.Error()
|
||||
|
|
@ -126,7 +125,6 @@ func getRiffDueCards(c *gin.Context) {
|
|||
ret.Data = cards
|
||||
}
|
||||
|
||||
// TODO 删除闪卡
|
||||
func removeRiffCards(c *gin.Context) {
|
||||
ret := gulu.Ret.NewResult()
|
||||
defer c.JSON(http.StatusOK, ret)
|
||||
|
|
@ -149,8 +147,11 @@ func removeRiffCards(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
|
||||
deck := model.Decks[deckID]
|
||||
ret.Data = deckData(deck)
|
||||
if "" != deckID {
|
||||
deck := model.Decks[deckID]
|
||||
ret.Data = deckData(deck)
|
||||
}
|
||||
// All 卡包不返回数据
|
||||
}
|
||||
|
||||
func addRiffCards(c *gin.Context) {
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ func getCardsBlocks(cards []riff.Card, page int) (blocks []*Block, total, pageCo
|
|||
// reviewCardCache <cardID, card> 用于复习时缓存卡片,以便支持撤销。
|
||||
var reviewCardCache = map[string]riff.Card{}
|
||||
|
||||
func ReviewFlashcard(deckID, cardID, blockID string, rating riff.Rating) (err error) {
|
||||
func ReviewFlashcard(deckID, cardID string, rating riff.Rating) (err error) {
|
||||
deckLock.Lock()
|
||||
defer deckLock.Unlock()
|
||||
|
||||
|
|
@ -150,16 +150,16 @@ func ReviewFlashcard(deckID, cardID, blockID string, rating riff.Rating) (err er
|
|||
return
|
||||
}
|
||||
|
||||
if cachedCard := reviewCardCache[card.ID()]; nil != cachedCard {
|
||||
if cachedCard := reviewCardCache[cardID]; nil != cachedCard {
|
||||
// 命中缓存说明这张卡片已经复习过了,这次调用复习是撤销后再次复习
|
||||
// 将缓存的卡片重新覆盖回卡包中,以恢复最开始复习前的状态
|
||||
deck.SetCard(cachedCard)
|
||||
} else {
|
||||
// 首次复习该卡片,将卡片缓存以便后续支持撤销后再次复习
|
||||
reviewCardCache[card.ID()] = card
|
||||
reviewCardCache[cardID] = card
|
||||
}
|
||||
|
||||
deck.Review(blockID, rating)
|
||||
deck.Review(cardID, rating)
|
||||
err = deck.Save()
|
||||
if nil != err {
|
||||
logging.LogErrorf("save deck [%s] failed: %s", deckID, err)
|
||||
|
|
@ -602,6 +602,12 @@ func AddFlashcards(deckID string, blockIDs []string) (err error) {
|
|||
}
|
||||
|
||||
for _, blockID := range blockIDs {
|
||||
cards := deck.GetCardsByBlockID(blockID)
|
||||
if 0 < len(cards) {
|
||||
// 一个块只能添加生成一张闪卡 https://github.com/siyuan-note/siyuan/issues/7476
|
||||
continue
|
||||
}
|
||||
|
||||
cardID := ast.NewNodeID()
|
||||
deck.AddCard(cardID, blockID)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue