From 921cddd2fa9252dccec77ae76127f803fbd8ab21 Mon Sep 17 00:00:00 2001
From: Daniel <845765@qq.com>
Date: Mon, 30 Jun 2025 14:42:23 +0800
Subject: [PATCH 1/3] :art: Database supports setting display field icons
https://github.com/siyuan-note/siyuan/issues/15089
---
app/appearance/langs/ar_SA.json | 3 ++-
app/appearance/langs/de_DE.json | 3 ++-
app/appearance/langs/en_US.json | 3 ++-
app/appearance/langs/es_ES.json | 3 ++-
app/appearance/langs/fr_FR.json | 3 ++-
app/appearance/langs/he_IL.json | 3 ++-
app/appearance/langs/it_IT.json | 3 ++-
app/appearance/langs/ja_JP.json | 3 ++-
app/appearance/langs/pl_PL.json | 3 ++-
app/appearance/langs/pt_BR.json | 3 ++-
app/appearance/langs/ru_RU.json | 3 ++-
app/appearance/langs/zh_CHT.json | 5 +++--
app/appearance/langs/zh_CN.json | 1 +
app/src/protyle/render/av/layout.ts | 2 +-
14 files changed, 27 insertions(+), 14 deletions(-)
diff --git a/app/appearance/langs/ar_SA.json b/app/appearance/langs/ar_SA.json
index a42f435d1..63239e876 100644
--- a/app/appearance/langs/ar_SA.json
+++ b/app/appearance/langs/ar_SA.json
@@ -11,7 +11,8 @@
"medium": "متوسط",
"small": "صغير",
"fitImage": "تعديل حجم الصورة تلقائيًا",
- "showIcon": "عرض أيقونة المفتاح الأساسي",
+ "showIcon": "عرض الأيقونة",
+ "showAllFieldsIcon": "عرض أيقونات الحقول",
"wrapAllFields": "التفاف الحقول تلقائيًا",
"gallery": "معرض",
"newTag": "علامة جديدة",
diff --git a/app/appearance/langs/de_DE.json b/app/appearance/langs/de_DE.json
index 70f1f23dd..dc6316425 100644
--- a/app/appearance/langs/de_DE.json
+++ b/app/appearance/langs/de_DE.json
@@ -11,7 +11,8 @@
"medium": "Mittel",
"small": "Klein",
"fitImage": "Bildgröße automatisch anpassen",
- "showIcon": "Primärschlüssel-Symbol anzeigen",
+ "showIcon": "Symbol anzeigen",
+ "showAllFieldsIcon": "Feldsymbole anzeigen",
"wrapAllFields": "Felder automatisch umbrechen",
"gallery": "Galerie",
"newTag": "Neuer Tag",
diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json
index 4199a27b7..0267dd052 100644
--- a/app/appearance/langs/en_US.json
+++ b/app/appearance/langs/en_US.json
@@ -11,7 +11,8 @@
"medium": "Medium",
"small": "Small",
"fitImage": "Auto-fit image size",
- "showIcon": "Show primary key icon",
+ "showIcon": "Show icon",
+ "showAllFieldsIcon": "Show field icons",
"wrapAllFields": "Auto-wrap fields",
"gallery": "Gallery",
"newTag": "New tag",
diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json
index 5d62a177c..6205da53f 100644
--- a/app/appearance/langs/es_ES.json
+++ b/app/appearance/langs/es_ES.json
@@ -11,7 +11,8 @@
"medium": "Mediano",
"small": "Pequeño",
"fitImage": "Ajustar automáticamente el tamaño de la imagen",
- "showIcon": "Mostrar ícono de clave primaria",
+ "showIcon": "Mostrar ícono",
+ "showAllFieldsIcon": "Mostrar íconos de campos",
"wrapAllFields": "Ajuste automático de campos",
"gallery": "Galería",
"newTag": "Nueva etiqueta",
diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json
index 5f4e9bc7c..36d37af1d 100644
--- a/app/appearance/langs/fr_FR.json
+++ b/app/appearance/langs/fr_FR.json
@@ -11,7 +11,8 @@
"medium": "Moyen",
"small": "Petit",
"fitImage": "Ajuster automatiquement la taille de l'image",
- "showIcon": "Afficher l'icône de la clé primaire",
+ "showIcon": "Afficher l'icône",
+ "showAllFieldsIcon": "Afficher les icônes des champs",
"wrapAllFields": "Retour automatique des champs",
"gallery": "Galerie",
"newTag": "Nouvelle étiquette",
diff --git a/app/appearance/langs/he_IL.json b/app/appearance/langs/he_IL.json
index 28def3c15..5999ecdf1 100644
--- a/app/appearance/langs/he_IL.json
+++ b/app/appearance/langs/he_IL.json
@@ -11,7 +11,8 @@
"medium": "בינוני",
"small": "קטן",
"fitImage": "התאמה אוטומטית לגודל התמונה",
- "showIcon": "הצג את סמל המפתח הראשי",
+ "showIcon": "הצג סמל",
+ "showAllFieldsIcon": "הצג סמלי שדות",
"wrapAllFields": "עטיפת שדות אוטומטית",
"gallery": "גלריה",
"newTag": "תג חדש",
diff --git a/app/appearance/langs/it_IT.json b/app/appearance/langs/it_IT.json
index 94ae6744a..99fa12d2e 100644
--- a/app/appearance/langs/it_IT.json
+++ b/app/appearance/langs/it_IT.json
@@ -11,7 +11,8 @@
"medium": "Medio",
"small": "Piccolo",
"fitImage": "Adatta automaticamente la dimensione dell'immagine",
- "showIcon": "Mostra l'icona della chiave primaria",
+ "showIcon": "Mostra icona",
+ "showAllFieldsIcon": "Mostra icone dei campi",
"wrapAllFields": "Avvolgi automaticamente i campi",
"gallery": "Galleria",
"newTag": "Nuova etichetta",
diff --git a/app/appearance/langs/ja_JP.json b/app/appearance/langs/ja_JP.json
index 118809b45..dbf894ae8 100644
--- a/app/appearance/langs/ja_JP.json
+++ b/app/appearance/langs/ja_JP.json
@@ -11,7 +11,8 @@
"medium": "中",
"small": "小",
"fitImage": "画像サイズを自動調整",
- "showIcon": "主キーアイコンを表示",
+ "showIcon": "アイコンを表示",
+ "showAllFieldsIcon": "フィールドアイコンを表示",
"wrapAllFields": "フィールドを自動折り返し",
"gallery": "ギャラリー",
"newTag": "新しいタグ",
diff --git a/app/appearance/langs/pl_PL.json b/app/appearance/langs/pl_PL.json
index 8a1add4cf..e9edb7326 100644
--- a/app/appearance/langs/pl_PL.json
+++ b/app/appearance/langs/pl_PL.json
@@ -11,7 +11,8 @@
"medium": "Średni",
"small": "Mały",
"fitImage": "Automatyczne dopasowanie rozmiaru obrazu",
- "showIcon": "Pokaż ikonę klucza głównego",
+ "showIcon": "Pokaż ikonę",
+ "showAllFieldsIcon": "Pokaż ikony pól",
"wrapAllFields": "Automatyczne zawijanie pól",
"gallery": "Galeria",
"newTag": "Nowy tag",
diff --git a/app/appearance/langs/pt_BR.json b/app/appearance/langs/pt_BR.json
index 75078fc09..bb91216d1 100644
--- a/app/appearance/langs/pt_BR.json
+++ b/app/appearance/langs/pt_BR.json
@@ -11,7 +11,8 @@
"medium": "Médio",
"small": "Pequeno",
"fitImage": "Ajustar automaticamente o tamanho da imagem",
- "showIcon": "Mostrar ícone da chave primária",
+ "showIcon": "Mostrar ícone",
+ "showAllFieldsIcon": "Mostrar ícones de campos",
"wrapAllFields": "Quebrar automaticamente os campos",
"gallery": "Galeria",
"newTag": "Nova tag",
diff --git a/app/appearance/langs/ru_RU.json b/app/appearance/langs/ru_RU.json
index ab14691fa..2d0cf3ba8 100644
--- a/app/appearance/langs/ru_RU.json
+++ b/app/appearance/langs/ru_RU.json
@@ -11,7 +11,8 @@
"medium": "Средний",
"small": "Маленький",
"fitImage": "Автоматическая подгонка размера изображения",
- "showIcon": "Показать значок первичного ключа",
+ "showIcon": "Показать значок",
+ "showAllFieldsIcon": "Показать значки полей",
"wrapAllFields": "Автоматический перенос полей",
"gallery": "Галерея",
"newTag": "Новый тег",
diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json
index c91e9433f..99afbf5b8 100644
--- a/app/appearance/langs/zh_CHT.json
+++ b/app/appearance/langs/zh_CHT.json
@@ -11,8 +11,9 @@
"medium": "中",
"small": "小",
"fitImage": "自動調整圖片大小",
- "showIcon": "顯示主鍵圖標",
- "wrapAllFields": "欄位自動換行",
+ "showIcon": "顯示圖標",
+ "showAllFieldsIcon": "顯示字段圖標",
+ "wrapAllFields": "字段自動換行",
"gallery": "圖庫",
"newTag": "新建標籤",
"pleaseWait": "請稍等片刻...",
diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json
index 9f986cce9..6a6e314cf 100644
--- a/app/appearance/langs/zh_CN.json
+++ b/app/appearance/langs/zh_CN.json
@@ -12,6 +12,7 @@
"small": "小",
"fitImage": "自适应图片大小",
"showIcon": "显示图标",
+ "showAllFieldsIcon": "显示字段图标",
"wrapAllFields": "字段自动换行",
"gallery": "画廊",
"newTag": "新建标签",
diff --git a/app/src/protyle/render/av/layout.ts b/app/src/protyle/render/av/layout.ts
index afcdc236b..0c7db90c0 100644
--- a/app/src/protyle/render/av/layout.ts
+++ b/app/src/protyle/render/av/layout.ts
@@ -44,7 +44,7 @@ export const getLayoutHTML = (data: IAV) => {
From 1991e2b76fa3a8405ac27a9e99a2cfe410eb90cc Mon Sep 17 00:00:00 2001
From: Daniel <845765@qq.com>
Date: Mon, 30 Jun 2025 15:06:43 +0800
Subject: [PATCH 2/3] :art: Database supports setting display field icons
https://github.com/siyuan-note/siyuan/issues/15089
---
kernel/av/av.go | 4 +-
kernel/av/layout.go | 8 ++++
kernel/av/layout_gallery.go | 6 +--
kernel/av/layout_table.go | 11 ++---
kernel/model/attribute_view.go | 80 +++++++++++++++++++---------------
kernel/model/export.go | 2 +-
6 files changed, 60 insertions(+), 51 deletions(-)
diff --git a/kernel/av/av.go b/kernel/av/av.go
index 6b55bf51d..5d6eb5afc 100644
--- a/kernel/av/av.go
+++ b/kernel/av/av.go
@@ -223,10 +223,10 @@ func NewTableViewWithBlockKey(blockKeyID string) (view *View, blockKey, selectKe
Table: NewLayoutTable(),
}
blockKey = NewKey(blockKeyID, GetAttributeViewI18n("key"), "", KeyTypeBlock)
- view.Table.Columns = []*ViewTableColumn{{ID: blockKeyID}}
+ view.Table.Columns = []*ViewTableColumn{{BaseField: &BaseField{ID: blockKeyID}}}
selectKey = NewKey(ast.NewNodeID(), GetAttributeViewI18n("select"), "", KeyTypeSelect)
- view.Table.Columns = append(view.Table.Columns, &ViewTableColumn{ID: selectKey.ID})
+ view.Table.Columns = append(view.Table.Columns, &ViewTableColumn{BaseField: &BaseField{ID: selectKey.ID}})
return
}
diff --git a/kernel/av/layout.go b/kernel/av/layout.go
index a4115cfdf..c475973f1 100644
--- a/kernel/av/layout.go
+++ b/kernel/av/layout.go
@@ -36,6 +36,14 @@ type BaseLayout struct {
PageSize int `json:"pageSize,omitempty"` // 每页条目数
}
+// BaseField 描述了字段的基础结构。
+type BaseField struct {
+ ID string `json:"id"` // 字段 ID
+ Wrap bool `json:"wrap"` // 是否换行
+ Hidden bool `json:"hidden"` // 是否隐藏
+ Desc string `json:"desc,omitempty"` // 字段描述
+}
+
// BaseValue 描述了字段值的基础结构。
type BaseValue struct {
ID string `json:"id"` // 字段值 ID
diff --git a/kernel/av/layout_gallery.go b/kernel/av/layout_gallery.go
index 9974c931b..47df9fe76 100644
--- a/kernel/av/layout_gallery.go
+++ b/kernel/av/layout_gallery.go
@@ -82,11 +82,7 @@ const (
// ViewGalleryCardField 描述了画廊卡片字段的结构。
type ViewGalleryCardField struct {
- ID string `json:"id"` // 字段 ID
-
- Wrap bool `json:"wrap"` // 是否换行
- Hidden bool `json:"hidden"` // 是否隐藏
- Desc string `json:"desc,omitempty"` // 字段描述
+ *BaseField
}
// Gallery 描述了画廊实例的结构。
diff --git a/kernel/av/layout_table.go b/kernel/av/layout_table.go
index b4abaf2b4..7f957b4fb 100644
--- a/kernel/av/layout_table.go
+++ b/kernel/av/layout_table.go
@@ -44,14 +44,11 @@ func NewLayoutTable() *LayoutTable {
// ViewTableColumn 描述了表格列的结构。
type ViewTableColumn struct {
- ID string `json:"id"` // 列 ID
+ *BaseField
- Wrap bool `json:"wrap"` // 是否换行
- Hidden bool `json:"hidden"` // 是否隐藏
- Pin bool `json:"pin"` // 是否固定
- Width string `json:"width"` // 列宽度
- Desc string `json:"desc,omitempty"` // 列描述
- Calc *ColumnCalc `json:"calc,omitempty"` // 计算
+ Pin bool `json:"pin"` // 是否固定
+ Width string `json:"width"` // 列宽度
+ Calc *ColumnCalc `json:"calc,omitempty"` // 计算
}
// Table 描述了表格实例的结构。
diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go
index 2a1c671d9..4ca04e721 100644
--- a/kernel/model/attribute_view.go
+++ b/kernel/model/attribute_view.go
@@ -120,7 +120,7 @@ func ChangeAttrViewLayout(blockID, avID string, layout av.LayoutType) (err error
switch view.LayoutType {
case av.LayoutTypeGallery:
for _, field := range view.Gallery.CardFields {
- view.Table.Columns = append(view.Table.Columns, &av.ViewTableColumn{ID: field.ID})
+ view.Table.Columns = append(view.Table.Columns, &av.ViewTableColumn{BaseField: &av.BaseField{ID: field.ID}})
}
for _, cardID := range view.Gallery.CardIDs {
view.Table.RowIDs = append(view.Table.RowIDs, cardID)
@@ -139,7 +139,7 @@ func ChangeAttrViewLayout(blockID, avID string, layout av.LayoutType) (err error
switch view.LayoutType {
case av.LayoutTypeTable:
for _, col := range view.Table.Columns {
- view.Gallery.CardFields = append(view.Gallery.CardFields, &av.ViewGalleryCardField{ID: col.ID})
+ view.Gallery.CardFields = append(view.Gallery.CardFields, &av.ViewGalleryCardField{BaseField: &av.BaseField{ID: col.ID}})
}
for _, rowID := range view.Table.RowIDs {
view.Gallery.CardIDs = append(view.Gallery.CardIDs, rowID)
@@ -1636,9 +1636,9 @@ func updateAttributeViewColRelation(operation *Operation) (err error) {
for _, v := range destAv.Views {
switch v.LayoutType {
case av.LayoutTypeTable:
- v.Table.Columns = append(v.Table.Columns, &av.ViewTableColumn{ID: operation.BackRelationKeyID})
+ v.Table.Columns = append(v.Table.Columns, &av.ViewTableColumn{BaseField: &av.BaseField{ID: operation.BackRelationKeyID}})
case av.LayoutTypeGallery:
- v.Gallery.CardFields = append(v.Gallery.CardFields, &av.ViewGalleryCardField{ID: operation.BackRelationKeyID})
+ v.Gallery.CardFields = append(v.Gallery.CardFields, &av.ViewGalleryCardField{BaseField: &av.BaseField{ID: operation.BackRelationKeyID}})
}
}
@@ -1896,13 +1896,15 @@ func (tx *Transaction) doDuplicateAttrViewView(operation *Operation) (ret *TxErr
case av.LayoutTypeTable:
for _, col := range masterView.Table.Columns {
view.Table.Columns = append(view.Table.Columns, &av.ViewTableColumn{
- ID: col.ID,
- Wrap: col.Wrap,
- Hidden: col.Hidden,
- Pin: col.Pin,
- Width: col.Width,
- Desc: col.Desc,
- Calc: col.Calc,
+ BaseField: &av.BaseField{
+ ID: col.ID,
+ Wrap: col.Wrap,
+ Hidden: col.Hidden,
+ Desc: col.Desc,
+ },
+ Pin: col.Pin,
+ Width: col.Width,
+ Calc: col.Calc,
})
}
@@ -1912,10 +1914,12 @@ func (tx *Transaction) doDuplicateAttrViewView(operation *Operation) (ret *TxErr
case av.LayoutTypeGallery:
for _, field := range masterView.Gallery.CardFields {
view.Gallery.CardFields = append(view.Gallery.CardFields, &av.ViewGalleryCardField{
- ID: field.ID,
- Wrap: field.Wrap,
- Hidden: field.Hidden,
- Desc: field.Desc,
+ BaseField: &av.BaseField{
+ ID: field.ID,
+ Wrap: field.Wrap,
+ Hidden: field.Hidden,
+ Desc: field.Desc,
+ },
})
}
@@ -1972,14 +1976,14 @@ func addAttrViewView(avID, viewID, blockID string, layout av.LayoutType) (err er
switch firstView.LayoutType {
case av.LayoutTypeTable:
for _, col := range firstView.Table.Columns {
- view.Table.Columns = append(view.Table.Columns, &av.ViewTableColumn{ID: col.ID})
+ view.Table.Columns = append(view.Table.Columns, &av.ViewTableColumn{BaseField: &av.BaseField{ID: col.ID}})
}
for _, rowID := range firstView.Table.RowIDs {
view.Table.RowIDs = append(view.Table.RowIDs, rowID)
}
case av.LayoutTypeGallery:
for _, field := range firstView.Gallery.CardFields {
- view.Table.Columns = append(view.Table.Columns, &av.ViewTableColumn{ID: field.ID})
+ view.Table.Columns = append(view.Table.Columns, &av.ViewTableColumn{BaseField: &av.BaseField{ID: field.ID}})
}
for _, cardID := range firstView.Gallery.CardIDs {
view.Table.RowIDs = append(view.Table.RowIDs, cardID)
@@ -1990,14 +1994,14 @@ func addAttrViewView(avID, viewID, blockID string, layout av.LayoutType) (err er
switch firstView.LayoutType {
case av.LayoutTypeTable:
for _, col := range firstView.Table.Columns {
- view.Gallery.CardFields = append(view.Gallery.CardFields, &av.ViewGalleryCardField{ID: col.ID})
+ view.Gallery.CardFields = append(view.Gallery.CardFields, &av.ViewGalleryCardField{BaseField: &av.BaseField{ID: col.ID}})
}
for _, rowID := range firstView.Table.RowIDs {
view.Gallery.CardIDs = append(view.Gallery.CardIDs, rowID)
}
case av.LayoutTypeGallery:
for _, field := range firstView.Gallery.CardFields {
- view.Gallery.CardFields = append(view.Gallery.CardFields, &av.ViewGalleryCardField{ID: field.ID})
+ view.Gallery.CardFields = append(view.Gallery.CardFields, &av.ViewGalleryCardField{BaseField: &av.BaseField{ID: field.ID}})
}
for _, cardID := range firstView.Gallery.CardIDs {
view.Gallery.CardIDs = append(view.Gallery.CardIDs, cardID)
@@ -2743,12 +2747,14 @@ func duplicateAttributeViewKey(operation *Operation) (err error) {
if column.ID == key.ID {
view.Table.Columns = append(view.Table.Columns[:i+1], append([]*av.ViewTableColumn{
{
- ID: copyKey.ID,
- Wrap: column.Wrap,
- Hidden: column.Hidden,
- Pin: column.Pin,
- Width: column.Width,
- Desc: column.Desc,
+ BaseField: &av.BaseField{
+ ID: copyKey.ID,
+ Wrap: column.Wrap,
+ Hidden: column.Hidden,
+ Desc: column.Desc,
+ },
+ Pin: column.Pin,
+ Width: column.Width,
},
}, view.Table.Columns[i+1:]...)...)
break
@@ -2759,10 +2765,12 @@ func duplicateAttributeViewKey(operation *Operation) (err error) {
if field.ID == key.ID {
view.Gallery.CardFields = append(view.Gallery.CardFields[:i+1], append([]*av.ViewGalleryCardField{
{
- ID: copyKey.ID,
- Wrap: field.Wrap,
- Hidden: field.Hidden,
- Desc: field.Desc,
+ BaseField: &av.BaseField{
+ ID: copyKey.ID,
+ Wrap: field.Wrap,
+ Hidden: field.Hidden,
+ Desc: field.Desc,
+ },
},
}, view.Gallery.CardFields[i+1:]...)...)
break
@@ -3245,39 +3253,39 @@ func AddAttributeViewKey(avID, keyID, keyName, keyType, keyIcon, previousKeyID s
if "" == previousKeyID {
if av.LayoutTypeGallery == currentView.LayoutType {
// 如果当前视图是画廊视图则添加到最后
- view.Table.Columns = append(view.Table.Columns, &av.ViewTableColumn{ID: key.ID})
+ view.Table.Columns = append(view.Table.Columns, &av.ViewTableColumn{BaseField: &av.BaseField{ID: key.ID}})
} else {
- view.Table.Columns = append([]*av.ViewTableColumn{{ID: key.ID}}, view.Table.Columns...)
+ view.Table.Columns = append([]*av.ViewTableColumn{{BaseField: &av.BaseField{ID: key.ID}}}, view.Table.Columns...)
}
} else {
added := false
for i, column := range view.Table.Columns {
if column.ID == previousKeyID {
- view.Table.Columns = append(view.Table.Columns[:i+1], append([]*av.ViewTableColumn{{ID: key.ID}}, view.Table.Columns[i+1:]...)...)
+ view.Table.Columns = append(view.Table.Columns[:i+1], append([]*av.ViewTableColumn{{BaseField: &av.BaseField{ID: key.ID}}}, view.Table.Columns[i+1:]...)...)
added = true
break
}
}
if !added {
- view.Table.Columns = append(view.Table.Columns, &av.ViewTableColumn{ID: key.ID})
+ view.Table.Columns = append(view.Table.Columns, &av.ViewTableColumn{BaseField: &av.BaseField{ID: key.ID}})
}
}
}
if nil != view.Gallery {
if "" == previousKeyID {
- view.Gallery.CardFields = append(view.Gallery.CardFields, &av.ViewGalleryCardField{ID: key.ID})
+ view.Gallery.CardFields = append(view.Gallery.CardFields, &av.ViewGalleryCardField{BaseField: &av.BaseField{ID: key.ID}})
} else {
added := false
for i, field := range view.Gallery.CardFields {
if field.ID == previousKeyID {
- view.Gallery.CardFields = append(view.Gallery.CardFields[:i+1], append([]*av.ViewGalleryCardField{{ID: key.ID}}, view.Gallery.CardFields[i+1:]...)...)
+ view.Gallery.CardFields = append(view.Gallery.CardFields[:i+1], append([]*av.ViewGalleryCardField{{BaseField: &av.BaseField{ID: key.ID}}}, view.Gallery.CardFields[i+1:]...)...)
added = true
break
}
}
if !added {
- view.Gallery.CardFields = append(view.Gallery.CardFields, &av.ViewGalleryCardField{ID: key.ID})
+ view.Gallery.CardFields = append(view.Gallery.CardFields, &av.ViewGalleryCardField{BaseField: &av.BaseField{ID: key.ID}})
}
}
}
diff --git a/kernel/model/export.go b/kernel/model/export.go
index 48e091087..a77a88d5e 100644
--- a/kernel/model/export.go
+++ b/kernel/model/export.go
@@ -3403,7 +3403,7 @@ func getAttrViewTable(attrView *av.AttributeView, view *av.View, query string) (
case av.LayoutTypeGallery:
view.Table = av.NewLayoutTable()
for _, field := range view.Gallery.CardFields {
- view.Table.Columns = append(view.Table.Columns, &av.ViewTableColumn{ID: field.ID})
+ view.Table.Columns = append(view.Table.Columns, &av.ViewTableColumn{BaseField: &av.BaseField{ID: field.ID}})
}
for _, cardID := range view.Gallery.CardIDs {
view.Table.RowIDs = append(view.Table.RowIDs, cardID)
From 96a50a6a49269089632227a7f2dfdbcfbfc31426 Mon Sep 17 00:00:00 2001
From: Daniel <845765@qq.com>
Date: Mon, 30 Jun 2025 15:11:37 +0800
Subject: [PATCH 3/3] :art: Database supports setting display field icons
https://github.com/siyuan-note/siyuan/issues/15089
---
kernel/av/layout_gallery.go | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/kernel/av/layout_gallery.go b/kernel/av/layout_gallery.go
index 47df9fe76..6837d6f51 100644
--- a/kernel/av/layout_gallery.go
+++ b/kernel/av/layout_gallery.go
@@ -94,12 +94,9 @@ type Gallery struct {
CardAspectRatio CardAspectRatio `json:"cardAspectRatio"` // 卡片宽高比
CardSize CardSize `json:"cardSize"` // 卡片大小
FitImage bool `json:"fitImage"` // 是否适应封面图片大小
- ShowIcon bool `json:"showIcon"` // 是否显示字段图标
- WrapField bool `json:"wrapField"` // 是否换行字段内容
-
- Fields []*GalleryField `json:"fields"` // 画廊字段
- Cards []*GalleryCard `json:"cards"` // 画廊卡片
- CardCount int `json:"cardCount"` // 画廊总卡片数
+ Fields []*GalleryField `json:"fields"` // 画廊字段
+ Cards []*GalleryCard `json:"cards"` // 画廊卡片
+ CardCount int `json:"cardCount"` // 画廊总卡片数
}
// GalleryCard 描述了画廊实例卡片的结构。