mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-16 14:40:12 +01:00
🎨 Database kanban view https://github.com/siyuan-note/siyuan/issues/8873
Signed-off-by: Daniel <845765@qq.com>
This commit is contained in:
parent
755b852813
commit
11e8385cfb
1 changed files with 34 additions and 4 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue