🎨 Support modifying the primary key value of the binding block https://github.com/siyuan-note/siyuan/issues/9892

This commit is contained in:
Daniel 2023-12-18 12:53:53 +08:00
parent 2b201abb80
commit 63d07237ad
No known key found for this signature in database
GPG key ID: 86211BA83DF03017

View file

@ -1747,7 +1747,21 @@ func UpdateAttributeViewCell(tx *Transaction, avID, keyID, rowID, cellID string,
return
}
var blockVal *av.Value
for _, kv := range attrView.KeyValues {
if av.KeyTypeBlock == kv.Key.Type {
for _, v := range kv.Values {
if rowID == v.Block.ID {
blockVal = v
break
}
}
break
}
}
var val *av.Value
oldIsDetached := blockVal.IsDetached
for _, keyValues := range attrView.KeyValues {
if keyID != keyValues.Key.ID {
continue
@ -1768,9 +1782,7 @@ func UpdateAttributeViewCell(tx *Transaction, avID, keyID, rowID, cellID string,
break
}
oldIsDetached := val.IsDetached
oldBoundBlockID := val.BlockID
data, err := gulu.JSON.MarshalJSON(valueData)
if nil != err {
return
@ -1802,18 +1814,10 @@ func UpdateAttributeViewCell(tx *Transaction, avID, keyID, rowID, cellID string,
}
}
for _, kv := range attrView.KeyValues {
if av.KeyTypeBlock == kv.Key.Type {
for _, v := range kv.Values {
if rowID == v.Block.ID {
v.Block.Updated = time.Now().UnixMilli()
v.IsInitialized = true
v.IsDetached = val.IsDetached
break
}
}
break
}
if nil != blockVal {
blockVal.Block.Updated = time.Now().UnixMilli()
blockVal.IsInitialized = true
blockVal.IsDetached = val.IsDetached
}
if err = av.SaveAttributeView(attrView); nil != err {