mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-18 15:40:12 +01:00
🎨 Improve database unbind block https://github.com/siyuan-note/siyuan/issues/11013
This commit is contained in:
parent
58c98ce697
commit
97f8d6c013
1 changed files with 28 additions and 24 deletions
|
|
@ -1301,18 +1301,20 @@ func unbindAttributeViewBlock(operation *Operation, tx *Transaction) (err error)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
keyValues := attrView.GetBlockKeyValues()
|
for _, keyValues := range attrView.KeyValues {
|
||||||
for _, value := range keyValues.Values {
|
for _, value := range keyValues.Values {
|
||||||
if value.BlockID != operation.ID {
|
if value.BlockID != operation.ID {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
unbindBlockAv(tx, operation.AvID, value.BlockID)
|
if av.KeyTypeBlock == value.Type {
|
||||||
value.BlockID = operation.NextID
|
unbindBlockAv(tx, operation.AvID, value.BlockID)
|
||||||
if nil != value.Block {
|
}
|
||||||
value.Block.ID = operation.NextID
|
value.BlockID = operation.NextID
|
||||||
|
if nil != value.Block {
|
||||||
|
value.Block.ID = operation.NextID
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break
|
|
||||||
}
|
}
|
||||||
|
|
||||||
replacedRowID := false
|
replacedRowID := false
|
||||||
|
|
@ -2956,25 +2958,27 @@ func replaceAttributeViewBlock(operation *Operation, tx *Transaction) (err error
|
||||||
|
|
||||||
for _, keyValues := range attrView.KeyValues {
|
for _, keyValues := range attrView.KeyValues {
|
||||||
for _, value := range keyValues.Values {
|
for _, value := range keyValues.Values {
|
||||||
if value.BlockID == operation.PreviousID {
|
if value.BlockID != operation.PreviousID {
|
||||||
if value.BlockID != operation.NextID {
|
continue
|
||||||
// 换绑
|
}
|
||||||
unbindBlockAv(tx, operation.AvID, value.BlockID)
|
|
||||||
}
|
|
||||||
|
|
||||||
value.BlockID = operation.NextID
|
if av.KeyTypeBlock == value.Type && value.BlockID != operation.NextID {
|
||||||
if nil != value.Block {
|
// 换绑
|
||||||
value.Block.ID = operation.NextID
|
unbindBlockAv(tx, operation.AvID, value.BlockID)
|
||||||
value.IsDetached = operation.IsDetached
|
}
|
||||||
if !operation.IsDetached {
|
|
||||||
value.Block.Content = getNodeRefText(node)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
value.BlockID = operation.NextID
|
||||||
|
if av.KeyTypeBlock == value.Type && nil != value.Block {
|
||||||
|
value.Block.ID = operation.NextID
|
||||||
|
value.IsDetached = operation.IsDetached
|
||||||
if !operation.IsDetached {
|
if !operation.IsDetached {
|
||||||
bindBlockAv(tx, operation.AvID, operation.NextID)
|
value.Block.Content = getNodeRefText(node)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if av.KeyTypeBlock == value.Type && !operation.IsDetached {
|
||||||
|
bindBlockAv(tx, operation.AvID, operation.NextID)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue