Sfoglia il codice sorgente

:art: Add Relation column to database table view https://github.com/siyuan-note/siyuan/issues/9888

Daniel 1 anno fa
parent
commit
848289ef54
1 ha cambiato i file con 12 aggiunte e 1 eliminazioni
  1. 12 1
      kernel/model/attribute_view.go

+ 12 - 1
kernel/model/attribute_view.go

@@ -18,6 +18,7 @@ package model
 
 import (
 	"bytes"
+	"errors"
 	"os"
 	"path/filepath"
 	"sort"
@@ -790,6 +791,11 @@ func updateAttributeViewColRelation(operation *Operation) (err error) {
 	// operation.BackRelationKeyID 双向关联的目标关联列 ID
 	// operation.Name 双向关联的目标关联列名称
 
+	if "" == operation.AvID || "" == operation.ID || "" == operation.KeyID {
+		err = errors.New("invalid operation")
+		return
+	}
+
 	srcAv, err := av.ParseAttributeView(operation.AvID)
 	if nil != err {
 		return
@@ -862,10 +868,15 @@ func updateAttributeViewColRelation(operation *Operation) (err error) {
 
 	if !destAdded {
 		if operation.IsTwoWay {
+			name := strings.TrimSpace(operation.Name)
+			if "" == name {
+				name = destAv.Name
+			}
+
 			destAv.KeyValues = append(destAv.KeyValues, &av.KeyValues{
 				Key: &av.Key{
 					ID:       operation.BackRelationKeyID,
-					Name:     operation.Name,
+					Name:     name,
 					Type:     av.KeyTypeRelation,
 					Relation: &av.Relation{AvID: operation.AvID, IsTwoWay: operation.IsTwoWay, BackKeyID: operation.KeyID},
 				},