From 8666964c5e645a9584b7ab8f2fc9919b4a4cb22a Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Mon, 9 Jun 2025 22:34:07 +0800 Subject: [PATCH] :art: Database gallery view https://github.com/siyuan-note/siyuan/issues/10414 --- kernel/model/attribute_view.go | 30 ++++++++++++++++++++++++++++++ kernel/model/transaction.go | 2 ++ 2 files changed, 32 insertions(+) diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index 5ec8815d5..6f62a2dae 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -44,6 +44,36 @@ import ( "github.com/xrash/smetrics" ) +func (tx *Transaction) doSetAttrViewWrapField(operation *Operation) (ret *TxErr) { + err := setAttrViewWrapField(operation) + if err != nil { + return &TxErr{code: TxErrWriteAttributeView, id: operation.AvID, msg: err.Error()} + } + return +} + +func setAttrViewWrapField(operation *Operation) (err error) { + attrView, err := av.ParseAttributeView(operation.AvID) + if err != nil { + return + } + + view, err := getAttrViewViewByBlockID(attrView, operation.BlockID) + if err != nil { + return + } + + switch view.LayoutType { + case av.LayoutTypeTable: + return + case av.LayoutTypeGallery: + view.Gallery.WrapField = operation.Data.(bool) + } + + err = av.SaveAttributeView(attrView) + return +} + func (tx *Transaction) doSetAttrViewShowIcon(operation *Operation) (ret *TxErr) { err := setAttrViewShowIcon(operation) if err != nil { diff --git a/kernel/model/transaction.go b/kernel/model/transaction.go index a3f141393..4ee57bc01 100644 --- a/kernel/model/transaction.go +++ b/kernel/model/transaction.go @@ -288,6 +288,8 @@ func performTx(tx *Transaction) (ret *TxErr) { ret = tx.doSetAttrViewFitImage(op) case "setAttrViewShowIcon": ret = tx.doSetAttrViewShowIcon(op) + case "setAttrViewWrapField": + ret = tx.doSetAttrViewWrapField(op) } if nil != ret {