From 435a53cb490dec30e90da4c521e2054607857710 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sat, 6 Apr 2024 10:11:23 +0800 Subject: [PATCH] :art: Database select field filters follow option editing changes https://github.com/siyuan-note/siyuan/issues/10881 --- kernel/model/attribute_view.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index b04a04b9c..b99c67e45 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -3251,6 +3251,7 @@ func updateAttributeViewColumnOption(operation *Operation) (err error) { } } + // 如果存在选项对应的值,需要更新值中的选项 for _, keyValues := range attrView.KeyValues { if keyValues.Key.ID != operation.ID { continue @@ -3272,6 +3273,30 @@ func updateAttributeViewColumnOption(operation *Operation) (err error) { break } + // 如果存在选项对应的过滤器,需要更新过滤器中设置的选项值 + // Database select field filters follow option editing changes https://github.com/siyuan-note/siyuan/issues/10881 + for _, view := range attrView.Views { + switch view.LayoutType { + case av.LayoutTypeTable: + table := view.Table + for _, filter := range table.Filters { + if filter.Column != key.ID { + continue + } + + if nil != filter.Value && (av.KeyTypeSelect == filter.Value.Type || av.KeyTypeMSelect == filter.Value.Type) { + for i, opt := range filter.Value.MSelect { + if oldName == opt.Content { + filter.Value.MSelect[i].Content = newName + filter.Value.MSelect[i].Color = newColor + break + } + } + } + } + } + } + err = av.SaveAttributeView(attrView) return }