From 083e9b839b72fb35a68229040d46516dfbdc267d Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Fri, 1 Dec 2023 10:44:10 +0800 Subject: [PATCH] :art: Supports multiple views for the database https://github.com/siyuan-note/siyuan/issues/9751 --- kernel/api/av.go | 3 +++ kernel/model/attribute_view.go | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/kernel/api/av.go b/kernel/api/av.go index 2f4a773fa..b7b1d66ee 100644 --- a/kernel/api/av.go +++ b/kernel/api/av.go @@ -48,6 +48,7 @@ func renderSnapshotAttributeView(c *gin.Context) { for _, v := range attrView.Views { view := map[string]interface{}{ "id": v.ID, + "icon": v.Icon, "name": v.Name, "type": v.LayoutType, } @@ -88,6 +89,7 @@ func renderHistoryAttributeView(c *gin.Context) { for _, v := range attrView.Views { view := map[string]interface{}{ "id": v.ID, + "icon": v.Icon, "name": v.Name, "type": v.LayoutType, } @@ -132,6 +134,7 @@ func renderAttributeView(c *gin.Context) { for _, v := range attrView.Views { view := map[string]interface{}{ "id": v.ID, + "icon": v.Icon, "name": v.Name, "type": v.LayoutType, } diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index d482436a3..b76c235ca 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -644,18 +644,21 @@ func (tx *Transaction) doRemoveAttrViewView(operation *Operation) (ret *TxErr) { } if 1 >= len(attrView.Views) { + logging.LogWarnf("can't remove last view [%s] of attribute view [%s]", operation.ID, avID) return } viewID := operation.ID + var index int for i, view := range attrView.Views { if viewID == view.ID { attrView.Views = append(attrView.Views[:i], attrView.Views[i+1:]...) + index = i - 1 break } } - attrView.ViewID = attrView.Views[0].ID + attrView.ViewID = attrView.Views[index].ID if err = av.SaveAttributeView(attrView); nil != err { logging.LogErrorf("save attribute view [%s] failed: %s", avID, err) return &TxErr{code: TxErrCodeWriteTree, msg: err.Error(), id: avID}