diff --git a/base/mdb/mdb.go b/base/mdb/mdb.go index 0ec4173c..23ea0362 100644 --- a/base/mdb/mdb.go +++ b/base/mdb/mdb.go @@ -62,11 +62,11 @@ func _hash_select(m *ice.Message, prefix, chain, field, value string) { func _hash_modify(m *ice.Message, prefix, chain string, field, value string, arg ...string) { m.Richs(prefix, chain, value, func(key string, val map[string]interface{}) { val = kit.GetMeta(val) - for i := 0; i < len(arg)-1; i += 2 { + for i := 0; i < len(arg); i += 2 { if arg[i] == field { continue } - kit.Value(val, arg[i], arg[i+1]) + kit.Value(val, arg[i], kit.Select("", arg, i+1)) } m.Log_MODIFY(kit.MDB_KEY, path.Join(prefix, chain), field, value, arg) }) @@ -177,11 +177,11 @@ func _list_select(m *ice.Message, prefix, chain, field, value string) { func _list_modify(m *ice.Message, prefix, chain string, field, value string, arg ...string) { m.Grows(prefix, chain, field, value, func(index int, val map[string]interface{}) { val = kit.GetMeta(val) - for i := 0; i < len(arg)-1; i += 2 { + for i := 0; i < len(arg); i += 2 { if arg[i] == field { continue } - kit.Value(val, arg[i], arg[i+1]) + kit.Value(val, arg[i], kit.Select("", arg, i+1)) } m.Log_MODIFY(kit.MDB_KEY, path.Join(prefix, chain), field, value, arg) }) diff --git a/core/chat/river.go b/core/chat/river.go index 5a1194f2..d9ce9986 100644 --- a/core/chat/river.go +++ b/core/chat/river.go @@ -220,7 +220,7 @@ func init() { return // 应用列表 } - m.Option(mdb.FIELDS, "time,id,pod,ctx,cmd,arg") + m.Option(mdb.FIELDS, "time,id,pod,ctx,cmd,arg,display,style") msg := m.Cmd(mdb.SELECT, RIVER, kit.Keys(kit.MDB_HASH, m.Option(ice.MSG_RIVER), TOOL, kit.MDB_HASH, arg[0]), mdb.LIST, kit.MDB_ID, kit.Select("", arg, 1)) if len(msg.Appendv(CMD)) == 0 && len(arg) > 1 { msg.Push(CMD, arg[1]) diff --git a/core/team/task.go b/core/team/task.go index 2093ba27..dc914de7 100644 --- a/core/team/task.go +++ b/core/team/task.go @@ -26,7 +26,7 @@ func _task_scope(m *ice.Message, tz int, arg ...string) (time.Time, time.Time) { begin_time = begin_time.Add(-time.Duration(tz) * time.Hour) end_time := begin_time - switch arg[0] { + switch kit.Select("week", arg, 0) { case TaskScale.DAY: end_time = begin_time.AddDate(0, 0, 1) case TaskScale.WEEK: @@ -58,7 +58,7 @@ func _task_action(m *ice.Message, status interface{}, action ...string) string { return strings.Join(action, ",") } -func _task_list(m *ice.Message, zone string, id string) { +func _task_list(m *ice.Message, zone string, id string) *ice.Message { if zone == "" { m.Option(mdb.FIELDS, "time,zone,count") } else { @@ -67,7 +67,7 @@ func _task_list(m *ice.Message, zone string, id string) { m.PushButton(_task_action(m, value[TaskField.STATUS])) }) } - m.Cmdy(mdb.SELECT, TASK, "", mdb.ZONE, zone, id) + return m.Cmdy(mdb.SELECT, TASK, "", mdb.ZONE, zone, id) } func _task_create(m *ice.Message, zone string) { m.Cmdy(mdb.INSERT, TASK, "", mdb.HASH, kit.MDB_ZONE, zone) diff --git a/go.sum b/go.sum index 2349ebb1..18bc2a30 100644 --- a/go.sum +++ b/go.sum @@ -19,6 +19,8 @@ github.com/shylinux/toolkits v0.2.0 h1:ZMJGFqqgZBXxu2jUw2Zqu8Vx8KhEgWcMBnlH3cR+M github.com/shylinux/toolkits v0.2.0/go.mod h1:Y68Ot6xOmo1bun67YvqC3chDGeU2gDxtsUnvVDGJm4g= github.com/shylinux/toolkits v0.2.1 h1:FNCL4Tz6KRHjJbJFGswRLAROzo/AJavW+MrcIOEuB34= github.com/shylinux/toolkits v0.2.1/go.mod h1:Y68Ot6xOmo1bun67YvqC3chDGeU2gDxtsUnvVDGJm4g= +github.com/shylinux/toolkits v0.2.2 h1:98AsnjCetFifxV89HrsYv0sdusNiu41D3pvQHbWgPec= +github.com/shylinux/toolkits v0.2.2/go.mod h1:oMwi/N00I2cXenmcAkqikEncTzB4u5JhTQ9mO5xj7sY= github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e h1:MRM5ITcdelLK2j1vwZ3Je0FKVCfqOLp5zO6trqMLYs0= github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e/go.mod h1:XV66xRDqSt+GTGFMVlhk3ULuV0y9ZmzeVGR4mloJI3M= github.com/tuotoo/qrcode v0.0.0-20190222102259-ac9c44189bf2/go.mod h1:lPnW9HVS0vJdeYyQtOvIvlXgZPNhUAhwz+z5r8AJk0Y= diff --git a/type.go b/type.go index dfb0c5da..1b21d10b 100644 --- a/type.go +++ b/type.go @@ -7,6 +7,7 @@ import ( "fmt" "io" "net/http" + "path" "reflect" "runtime" "sort" @@ -167,6 +168,15 @@ func (c *Context) Merge(s *Context) *Context { v.Meta = kit.Dict() } + if p := kit.Format(v.Meta[kit.MDB_DISPLAY]); p != "" && !strings.HasPrefix(p, "/") { + ls := strings.Split(kit.FileLine(2, 100), "usr") + p = kit.Select(p+".js", p, strings.HasSuffix(p, ".js")) + v.Meta[kit.MDB_DISPLAY] = path.Join("/require/github.com/shylinux", path.Dir(ls[len(ls)-1]), p) + } + if p := kit.Format(v.Meta[kit.MDB_STYLE]); p == "" { + v.Meta[kit.MDB_STYLE] = k + } + for k, a := range v.Action { kit.Value(v.Meta, kit.Keys("trans", k), a.Help) if a.Hand == nil {