From 4dd1a97262260b4c258069417564e8a999c79470 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Mon, 25 Sep 2023 22:06:58 +0800 Subject: [PATCH] :art: Update av https://github.com/siyuan-note/siyuan/issues/9091#issuecomment-1733776589 --- kernel/model/attribute_view.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index 45c3e6f31..4bde9c3a8 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -529,6 +529,19 @@ func (tx *Transaction) removeAttributeViewBlock(operation *Operation) (err error } delete(attrs, NodeAttrNamePrefixAvKey+operation.AvID+"-"+values.KeyID) node.RemoveIALAttr(NodeAttrNamePrefixAvKey + operation.AvID + "-" + values.KeyID) + + if avs := attrs[NodeAttrNameAvs]; "" != avs { + avIDs := strings.Split(avs, ",") + avIDs = gulu.Str.RemoveElem(avIDs, operation.AvID) + if 0 == len(avIDs) { + delete(attrs, NodeAttrNameAvs) + node.RemoveIALAttr(NodeAttrNameAvs) + } else { + attrs[NodeAttrNameAvs] = strings.Join(avIDs, ",") + node.SetIALAttr(NodeAttrNameAvs, strings.Join(avIDs, ",")) + } + } + if err = setNodeAttrsWithTx(tx, node, tree, attrs); nil != err { return }