|
@@ -2943,12 +2943,12 @@ func UpdateAttributeViewCell(tx *Transaction, avID, keyID, rowID, cellID string,
|
|
// 将游离行绑定到新建的块上
|
|
// 将游离行绑定到新建的块上
|
|
bindBlockAv(tx, avID, rowID)
|
|
bindBlockAv(tx, avID, rowID)
|
|
}
|
|
}
|
|
- } else { // 之前绑定了块
|
|
|
|
|
|
+ } else { // 之前绑定了块
|
|
if isUpdatingBlockKey { // 正在更新主键
|
|
if isUpdatingBlockKey { // 正在更新主键
|
|
if val.IsDetached { // 现在是游离行
|
|
if val.IsDetached { // 现在是游离行
|
|
// 将绑定的块从属性视图中移除
|
|
// 将绑定的块从属性视图中移除
|
|
unbindBlockAv(tx, avID, rowID)
|
|
unbindBlockAv(tx, avID, rowID)
|
|
- } else { // 现在绑定了块
|
|
|
|
|
|
+ } else { // 现在绑定了块
|
|
if oldBoundBlockID != val.BlockID { // 之前绑定的块和现在绑定的块不一样
|
|
if oldBoundBlockID != val.BlockID { // 之前绑定的块和现在绑定的块不一样
|
|
// 换绑块
|
|
// 换绑块
|
|
unbindBlockAv(tx, avID, oldBoundBlockID)
|
|
unbindBlockAv(tx, avID, oldBoundBlockID)
|
|
@@ -3251,6 +3251,7 @@ func updateAttributeViewColumnOption(operation *Operation) (err error) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ // 如果存在选项对应的值,需要更新值中的选项
|
|
for _, keyValues := range attrView.KeyValues {
|
|
for _, keyValues := range attrView.KeyValues {
|
|
if keyValues.Key.ID != operation.ID {
|
|
if keyValues.Key.ID != operation.ID {
|
|
continue
|
|
continue
|
|
@@ -3272,6 +3273,30 @@ func updateAttributeViewColumnOption(operation *Operation) (err error) {
|
|
break
|
|
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)
|
|
err = av.SaveAttributeView(attrView)
|
|
return
|
|
return
|
|
}
|
|
}
|