Signed-off-by: Daniel <845765@qq.com>
This commit is contained in:
Daniel 2025-10-05 12:12:08 +08:00
parent 755b852813
commit 11e8385cfb
No known key found for this signature in database
GPG key ID: 86211BA83DF03017

View file

@ -567,6 +567,7 @@ func (tx *Transaction) doSetAttrViewGroup(operation *Operation) (ret *TxErr) {
logging.LogErrorf("marshal operation data failed: %s", err)
return &TxErr{code: TxErrHandleAttributeView, id: operation.AvID, msg: err.Error()}
}
group := &av.ViewGroup{}
if err = gulu.JSON.UnmarshalJSON(data, &group); nil != err {
logging.LogErrorf("unmarshal operation data failed: %s", err)
@ -590,6 +591,14 @@ func SetAttributeViewGroup(avID, blockID string, group *av.ViewGroup) (err error
return err
}
setAttributeViewGroup(attrView, view, group)
err = av.SaveAttributeView(attrView)
ReloadAttrView(avID)
return
}
func setAttributeViewGroup(attrView *av.AttributeView, view *av.View, group *av.ViewGroup) {
var oldHideEmpty, firstInit, changeGroupField bool
if nil != view.Group {
oldHideEmpty = view.Group.HideEmpty
@ -646,10 +655,6 @@ func SetAttributeViewGroup(avID, blockID string, group *av.ViewGroup) (err error
g.GroupSort = i
}
}
err = av.SaveAttributeView(attrView)
ReloadAttrView(avID)
return
}
func (tx *Transaction) doSetAttrViewCardAspectRatio(operation *Operation) (ret *TxErr) {
@ -777,6 +782,10 @@ func ChangeAttrViewLayout(blockID, avID string, layout av.LayoutType) (err error
view.Kanban.Fields = append(view.Kanban.Fields, &av.ViewKanbanField{BaseField: &av.BaseField{ID: field.ID}})
}
}
preferredGroupKey := getKanbanPreferredGroupKey(attrView)
group := &av.ViewGroup{Field: preferredGroupKey.ID}
setAttributeViewGroup(attrView, view, group)
}
view.LayoutType = newLayout
@ -2842,11 +2851,19 @@ func addAttrViewView(avID, viewID, blockID string, layout av.LayoutType) (err er
for _, col := range firstView.Table.Columns {
view.Kanban.Fields = append(view.Kanban.Fields, &av.ViewKanbanField{BaseField: &av.BaseField{ID: col.ID}})
}
case av.LayoutTypeGallery:
for _, field := range firstView.Gallery.CardFields {
view.Kanban.Fields = append(view.Kanban.Fields, &av.ViewKanbanField{BaseField: &av.BaseField{ID: field.ID}})
}
case av.LayoutTypeKanban:
for _, field := range firstView.Kanban.Fields {
view.Kanban.Fields = append(view.Kanban.Fields, &av.ViewKanbanField{BaseField: &av.BaseField{ID: field.ID}})
}
}
preferredGroupKey := getKanbanPreferredGroupKey(attrView)
group := &av.ViewGroup{Field: preferredGroupKey.ID}
setAttributeViewGroup(attrView, view, group)
default:
err = av.ErrWrongLayoutType
logging.LogErrorf("wrong layout type [%s] for attribute view [%s]", layout, avID)
@ -2880,6 +2897,19 @@ func addAttrViewView(avID, viewID, blockID string, layout av.LayoutType) (err er
return
}
func getKanbanPreferredGroupKey(attrView *av.AttributeView) (ret *av.Key) {
for _, kv := range attrView.KeyValues {
if av.KeyTypeSelect == kv.Key.Type {
ret = kv.Key
break
}
}
if nil == ret {
ret = attrView.GetBlockKey()
}
return
}
func (tx *Transaction) doSetAttrViewViewName(operation *Operation) (ret *TxErr) {
var err error
avID := operation.AvID