Browse Source

:art: Improve db tv relation render

Daniel 1 year ago
parent
commit
5700a9f18a
4 changed files with 11 additions and 11 deletions
  1. 1 1
      kernel/av/filter.go
  2. 4 4
      kernel/av/value.go
  3. 4 4
      kernel/model/attribute_view.go
  4. 2 2
      kernel/treenode/node.go

+ 1 - 1
kernel/av/filter.go

@@ -300,7 +300,7 @@ func (filter *ViewFilter) GetAffectValue(key *Key, defaultVal *Value) (ret *Valu
 			}
 		case FilterOperatorDoesNotContain:
 		case FilterOperatorIsEmpty:
-			ret.Relation = &ValueRelation{Contents: []string{}}
+			ret.Relation = &ValueRelation{Contents: []*Value{}}
 		case FilterOperatorIsNotEmpty:
 		}
 	}

+ 4 - 4
kernel/av/value.go

@@ -141,16 +141,16 @@ func (value *Value) String() string {
 		}
 		return ""
 	case KeyTypeRelation:
-		if 1 > len(value.Relation.Contents) {
+		if nil == value.Relation || 1 > len(value.Relation.Contents) {
 			return ""
 		}
 		var ret []string
 		for _, v := range value.Relation.Contents {
-			ret = append(ret, v)
+			ret = append(ret, v.String())
 		}
 		return strings.TrimSpace(strings.Join(ret, ", "))
 	case KeyTypeRollup:
-		if nil == value.Rollup || nil == value.Rollup.Contents {
+		if nil == value.Rollup || 1 > len(value.Rollup.Contents) {
 			return ""
 		}
 		var ret []string
@@ -648,8 +648,8 @@ type ValueCheckbox struct {
 }
 
 type ValueRelation struct {
-	Contents []string `json:"contents"`
 	BlockIDs []string `json:"blockIDs"`
+	Contents []*Value `json:"contents"`
 }
 
 type ValueRollup struct {

+ 4 - 4
kernel/model/attribute_view.go

@@ -403,9 +403,9 @@ func GetBlockAttributeViewKeys(blockID string) (ret []*BlockAttributeViewKeys) {
 					break
 				}
 
-				blocks := map[string]string{}
+				blocks := map[string]*av.Value{}
 				for _, blockValue := range destAv.GetBlockKeyValues().Values {
-					blocks[blockValue.BlockID] = blockValue.Block.Content
+					blocks[blockValue.BlockID] = blockValue
 				}
 				for _, bID := range kv.Values[0].Relation.BlockIDs {
 					kv.Values[0].Relation.Contents = append(kv.Values[0].Relation.Contents, blocks[bID])
@@ -1029,9 +1029,9 @@ func renderAttributeViewTable(attrView *av.AttributeView, view *av.View) (ret *a
 				if nil != relKey && nil != relKey.Relation {
 					destAv, _ := av.ParseAttributeView(relKey.Relation.AvID)
 					if nil != destAv {
-						blocks := map[string]string{}
+						blocks := map[string]*av.Value{}
 						for _, blockValue := range destAv.GetBlockKeyValues().Values {
-							blocks[blockValue.BlockID] = blockValue.Block.Content
+							blocks[blockValue.BlockID] = blockValue
 						}
 						for _, blockID := range cell.Value.Relation.BlockIDs {
 							cell.Value.Relation.Contents = append(cell.Value.Relation.Contents, blocks[blockID])

+ 2 - 2
kernel/treenode/node.go

@@ -827,9 +827,9 @@ func renderAttributeViewTable(attrView *av.AttributeView, view *av.View) (ret *a
 				if nil != relKey && nil != relKey.Relation {
 					destAv, _ := av.ParseAttributeView(relKey.Relation.AvID)
 					if nil != destAv {
-						blocks := map[string]string{}
+						blocks := map[string]*av.Value{}
 						for _, blockValue := range destAv.GetBlockKeyValues().Values {
-							blocks[blockValue.BlockID] = blockValue.Block.Content
+							blocks[blockValue.BlockID] = blockValue
 						}
 						for _, blockID := range cell.Value.Relation.BlockIDs {
 							cell.Value.Relation.Contents = append(cell.Value.Relation.Contents, blocks[blockID])