Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
Vanessa 2023-12-23 23:50:21 +08:00
commit d20d17f049
4 changed files with 82 additions and 34 deletions

View file

@ -472,29 +472,28 @@ func createDailyNote(c *gin.Context) {
return
}
appArg := arg["app"]
app := ""
if nil != appArg {
app = appArg.(string)
if !existed {
// 只有创建的情况才推送,已经存在的情况不推送
// Creating a dailynote existed no longer expands the doc tree https://github.com/siyuan-note/siyuan/issues/9959
appArg := arg["app"]
app := ""
if nil != appArg {
app = appArg.(string)
}
evt := util.NewCmdResult("createdailynote", 0, util.PushModeBroadcast)
evt.AppId = app
name := path.Base(p)
files, _, _ := model.ListDocTree(box.ID, path.Dir(p), util.SortModeUnassigned, false, false, model.Conf.FileTree.MaxListCount)
evt.Data = map[string]interface{}{
"box": box,
"path": p,
"files": files,
"name": name,
"id": tree.Root.ID,
}
evt.Callback = arg["callback"]
util.PushEvent(evt)
}
pushMode := util.PushModeBroadcast
if existed && "" != app {
pushMode = util.PushModeBroadcastApp
}
evt := util.NewCmdResult("createdailynote", 0, pushMode)
evt.AppId = app
name := path.Base(p)
files, _, _ := model.ListDocTree(box.ID, path.Dir(p), util.SortModeUnassigned, false, false, model.Conf.FileTree.MaxListCount)
evt.Data = map[string]interface{}{
"box": box,
"path": p,
"files": files,
"name": name,
"id": tree.Root.ID,
}
evt.Callback = arg["callback"]
util.PushEvent(evt)
ret.Data = map[string]interface{}{
"id": tree.Root.ID,

View file

@ -49,6 +49,7 @@ type SearchAttributeViewResult struct {
AvID string `json:"avID"`
AvName string `json:"avName"`
BlockID string `json:"blockID"`
HPath string `json:"hPath"`
}
func SearchAttributeView(keyword string, page int, pageSize int) (ret []*SearchAttributeViewResult, pageCount int) {
@ -102,11 +103,23 @@ func SearchAttributeView(keyword string, page int, pageSize int) (ret []*SearchA
break
}
}
var hPath string
baseBlock := treenode.GetBlockTreeRootByPath(node.Box, node.Path)
if nil != baseBlock {
hPath = baseBlock.HPath
}
box := Conf.Box(node.Box)
if nil != box {
hPath = box.Name + hPath
}
if !exist {
ret = append(ret, &SearchAttributeViewResult{
AvID: avID,
AvName: attrView.Name,
BlockID: block.ID,
HPath: hPath,
})
}
}
@ -170,6 +183,20 @@ func GetBlockAttributeViewKeys(blockID string) (ret []*BlockAttributeViewKeys) {
// 先处理创建时间和更新时间
for _, kv := range keyValues {
switch kv.Key.Type {
case av.KeyTypeRelation:
relKey, _ := attrView.GetKey(kv.Values[0].KeyID)
if nil != relKey && nil != relKey.Relation {
destAv, _ := av.ParseAttributeView(relKey.Relation.AvID)
if nil != destAv {
blocks := map[string]string{}
for _, blockValue := range destAv.GetBlockKeyValues().Values {
blocks[blockValue.BlockID] = blockValue.Block.Content
}
for _, blockID := range kv.Values[0].Relation.BlockIDs {
kv.Values[0].Relation.Contents = append(kv.Values[0].Relation.Contents, blocks[blockID])
}
}
}
case av.KeyTypeCreated:
createdStr := blockID[:len("20060102150405")]
created, parseErr := time.ParseInLocation("20060102150405", createdStr, time.Local)
@ -673,10 +700,19 @@ func renderAttributeViewTable(attrView *av.AttributeView, view *av.View) (ret *a
content := renderTemplateCol(ial, cell.Value.Template.Content, keyValues)
cell.Value.Template.Content = content
case av.KeyTypeRelation: // 渲染关联列
//for _, blockID := range cell.Value.Relation.BlockIDs {
//
//}
relKey, _ := attrView.GetKey(cell.Value.KeyID)
if nil != relKey && nil != relKey.Relation {
destAv, _ := av.ParseAttributeView(relKey.Relation.AvID)
if nil != destAv {
blocks := map[string]string{}
for _, blockValue := range destAv.GetBlockKeyValues().Values {
blocks[blockValue.BlockID] = blockValue.Block.Content
}
for _, blockID := range cell.Value.Relation.BlockIDs {
cell.Value.Relation.Contents = append(cell.Value.Relation.Contents, blocks[blockID])
}
}
}
case av.KeyTypeCreated: // 渲染创建时间
createdStr := row.ID[:len("20060102150405")]
created, parseErr := time.ParseInLocation("20060102150405", createdStr, time.Local)

View file

@ -52,9 +52,9 @@ func createDocsByHPath(boxID, hPath, content, parentID, id string /* id 参数
return
}
} else {
retID = ast.NewNodeID()
if "" == id {
id = ast.NewNodeID()
retID = id
id = retID
}
}
@ -95,10 +95,12 @@ func createDocsByHPath(boxID, hPath, content, parentID, id string /* id 参数
root = hpathBtMap[hp]
isNotLast := i < len(parts)-1
if nil == root {
if "" == retID {
retID = ast.NewNodeID()
rootID := ast.NewNodeID()
if i == len(parts)-1 {
rootID = retID
}
pathBuilder.WriteString(retID)
pathBuilder.WriteString(rootID)
docP := pathBuilder.String() + ".sy"
if isNotLast {
if _, err = createDoc(boxID, docP, part, ""); nil != err {
@ -118,9 +120,6 @@ func createDocsByHPath(boxID, hPath, content, parentID, id string /* id 参数
}
}
} else {
if "" == retID {
retID = root.ID
}
pathBuilder.WriteString(root.ID)
if !isNotLast {
pathBuilder.WriteString(".sy")

View file

@ -724,6 +724,20 @@ func renderAttributeViewTable(attrView *av.AttributeView, view *av.View) (ret *a
}
content := renderTemplateCol(ial, cell.Value.Template.Content, keyValues)
cell.Value.Template.Content = content
case av.KeyTypeRelation: // 渲染关联列
relKey, _ := attrView.GetKey(cell.Value.KeyID)
if nil != relKey && nil != relKey.Relation {
destAv, _ := av.ParseAttributeView(relKey.Relation.AvID)
if nil != destAv {
blocks := map[string]string{}
for _, blockValue := range destAv.GetBlockKeyValues().Values {
blocks[blockValue.BlockID] = blockValue.Block.Content
}
for _, blockID := range cell.Value.Relation.BlockIDs {
cell.Value.Relation.Contents = append(cell.Value.Relation.Contents, blocks[blockID])
}
}
}
case av.KeyTypeCreated: // 渲染创建时间
createdStr := row.ID[:len("20060102150405")]
created, parseErr := time.ParseInLocation("20060102150405", createdStr, time.Local)