Browse Source

:art: Database column icon https://github.com/siyuan-note/siyuan/issues/9304

Daniel 1 năm trước cách đây
mục cha
commit
c516e83bb7
2 tập tin đã thay đổi với 27 bổ sung0 xóa
  1. 25 0
      kernel/model/attribute_view.go
  2. 2 0
      kernel/model/transaction.go

+ 25 - 0
kernel/model/attribute_view.go

@@ -758,6 +758,31 @@ func setAttributeViewColHidden(operation *Operation) (err error) {
 	return
 }
 
+func (tx *Transaction) doSetAttrViewColumnIcon(operation *Operation) (ret *TxErr) {
+	err := setAttributeViewColIcon(operation)
+	if nil != err {
+		return &TxErr{code: TxErrWriteAttributeView, id: operation.AvID, msg: err.Error()}
+	}
+	return
+}
+
+func setAttributeViewColIcon(operation *Operation) (err error) {
+	attrView, err := av.ParseAttributeView(operation.AvID)
+	if nil != err {
+		return
+	}
+
+	for _, keyValues := range attrView.KeyValues {
+		if keyValues.Key.ID == operation.ID {
+			keyValues.Key.Icon = operation.Data.(string)
+			break
+		}
+	}
+
+	err = av.SaveAttributeView(attrView)
+	return
+}
+
 func (tx *Transaction) doSortAttrViewRow(operation *Operation) (ret *TxErr) {
 	err := sortAttributeViewRow(operation)
 	if nil != err {

+ 2 - 0
kernel/model/transaction.go

@@ -206,6 +206,8 @@ func performTx(tx *Transaction) (ret *TxErr) {
 			ret = tx.doSetAttrViewColumnWrap(op)
 		case "setAttrViewColHidden":
 			ret = tx.doSetAttrViewColumnHidden(op)
+		case "setAttrViewColIcon":
+			ret = tx.doSetAttrViewColumnIcon(op)
 		case "insertAttrViewBlock":
 			ret = tx.doInsertAttrViewBlock(op)
 		case "removeAttrViewBlock":