mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-17 07:00: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)
|
logging.LogErrorf("marshal operation data failed: %s", err)
|
||||||
return &TxErr{code: TxErrHandleAttributeView, id: operation.AvID, msg: err.Error()}
|
return &TxErr{code: TxErrHandleAttributeView, id: operation.AvID, msg: err.Error()}
|
||||||
}
|
}
|
||||||
|
|
||||||
group := &av.ViewGroup{}
|
group := &av.ViewGroup{}
|
||||||
if err = gulu.JSON.UnmarshalJSON(data, &group); nil != err {
|
if err = gulu.JSON.UnmarshalJSON(data, &group); nil != err {
|
||||||
logging.LogErrorf("unmarshal operation data failed: %s", 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
|
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
|
var oldHideEmpty, firstInit, changeGroupField bool
|
||||||
if nil != view.Group {
|
if nil != view.Group {
|
||||||
oldHideEmpty = view.Group.HideEmpty
|
oldHideEmpty = view.Group.HideEmpty
|
||||||
|
|
@ -646,10 +655,6 @@ func SetAttributeViewGroup(avID, blockID string, group *av.ViewGroup) (err error
|
||||||
g.GroupSort = i
|
g.GroupSort = i
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
err = av.SaveAttributeView(attrView)
|
|
||||||
ReloadAttrView(avID)
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tx *Transaction) doSetAttrViewCardAspectRatio(operation *Operation) (ret *TxErr) {
|
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}})
|
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
|
view.LayoutType = newLayout
|
||||||
|
|
@ -2842,11 +2851,19 @@ func addAttrViewView(avID, viewID, blockID string, layout av.LayoutType) (err er
|
||||||
for _, col := range firstView.Table.Columns {
|
for _, col := range firstView.Table.Columns {
|
||||||
view.Kanban.Fields = append(view.Kanban.Fields, &av.ViewKanbanField{BaseField: &av.BaseField{ID: col.ID}})
|
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:
|
case av.LayoutTypeKanban:
|
||||||
for _, field := range firstView.Kanban.Fields {
|
for _, field := range firstView.Kanban.Fields {
|
||||||
view.Kanban.Fields = append(view.Kanban.Fields, &av.ViewKanbanField{BaseField: &av.BaseField{ID: field.ID}})
|
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:
|
default:
|
||||||
err = av.ErrWrongLayoutType
|
err = av.ErrWrongLayoutType
|
||||||
logging.LogErrorf("wrong layout type [%s] for attribute view [%s]", layout, avID)
|
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
|
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) {
|
func (tx *Transaction) doSetAttrViewViewName(operation *Operation) (ret *TxErr) {
|
||||||
var err error
|
var err error
|
||||||
avID := operation.AvID
|
avID := operation.AvID
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue