diff --git a/base/web/dream.go b/base/web/dream.go index 31fd9e27..0056a6eb 100644 --- a/base/web/dream.go +++ b/base/web/dream.go @@ -19,7 +19,7 @@ func _dream_list(m *ice.Message) *ice.Message { if m.Richs(SPACE, nil, value[mdb.NAME], func(key string, val map[string]interface{}) { m.Push(mdb.TYPE, val[mdb.TYPE]) m.Push(cli.STATUS, cli.START) - m.PushButton(cli.STOP) + m.PushButton("edit", "open", cli.STOP) m.PushAnchor(strings.Split(m.MergePOD(value[mdb.NAME]), "?")[0]) }) == nil { m.Push(mdb.TYPE, WORKER) @@ -114,6 +114,12 @@ func init() { cli.START: {Name: "start name repos river", Help: "启动", Hand: func(m *ice.Message, arg ...string) { _dream_show(m, m.Option(mdb.NAME, kit.Select(path.Base(m.Option(nfs.REPOS)), m.Option(mdb.NAME)))) }}, + "open": {Name: "open", Help: "打开", Hand: func(m *ice.Message, arg ...string) { + m.ProcessOpen(m.MergePOD(m.Option(mdb.NAME), "", "")) + }}, + "edit": {Name: "edit", Help: "编辑", Hand: func(m *ice.Message, arg ...string) { + m.ProcessOpen(m.MergePOD(m.Option(mdb.NAME)+"/cmd/web.code.vimer", "", "")) + }}, cli.STOP: {Name: "stop", Help: "停止", Hand: func(m *ice.Message, arg ...string) { m.Cmdy(SPACE, mdb.MODIFY, m.OptionSimple(mdb.NAME), mdb.STATUS, cli.STOP) m.Cmdy(SPACE, m.Option(mdb.NAME), ice.EXIT) @@ -129,7 +135,28 @@ func init() { }, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { if len(arg) == 0 { _dream_list(m) + m.SetAppend("text") + m.Table(func(index int, value map[string]string, head []string) { + if value["status"] == "start" { + ls := kit.Split(m.Cmdx(SPACE, value["name"], cli.SYSTEM, "git", "diff", "--shortstat"), ",", ",") + text := []string{} + for _, line := range ls { + list := kit.Split(line) + if strings.Contains(line, "file") { + text = append(text, list[0]+" file") + } else if strings.Contains(line, "ins") { + text = append(text, list[0]+" +++") + } else if strings.Contains(line, "dele") { + text = append(text, list[0]+" ---") + } + } + m.Push("text", strings.Join(text, ", ")) + } else { + m.Push("text", "") + } + }) m.Sort("status,type,name") + m.Display("/plugin/table.js", "style", "card") return } diff --git a/conf.go b/conf.go index efd29d7d..5d90932d 100644 --- a/conf.go +++ b/conf.go @@ -22,9 +22,13 @@ const ( EXIT = "exit" SAVE = "save" LOAD = "load" - SHOW = "show" - EXEC = "exec" + AUTO = "auto" + LIST = "list" + BACK = "back" + EXEC = "exec" + + SHOW = "show" PLAY = "play" HELP = "help" HTTP = "http" diff --git a/core/chat/website.go b/core/chat/website.go index 2427a4c9..cd9e509f 100644 --- a/core/chat/website.go +++ b/core/chat/website.go @@ -37,6 +37,15 @@ func _website_parse(m *ice.Message, text string, args ...string) (map[string]int prefix := "" m.Cmd(lex.SPLIT, "", mdb.KEY, mdb.NAME, func(deep int, ls []string, meta map[string]interface{}) []string { + if deep == 1 { + switch ls[0] { + case "header": + for i := 1; i < len(ls); i += 2 { + kit.Value(river, kit.Keys("Header", ls[i]), ls[i+1]) + } + return ls + } + } data := kit.Dict() switch display := ice.DisplayRequire(1, ls[0])[ctx.DISPLAY]; kit.Ext(ls[0]) { case nfs.JS: diff --git a/core/team/todo.go b/core/team/todo.go index 8023b28e..b68bcd43 100644 --- a/core/team/todo.go +++ b/core/team/todo.go @@ -21,10 +21,8 @@ func init() { m.Cmd(mdb.DELETE, m.PrefixKey(), "", mdb.HASH, m.OptionSimple(mdb.HASH)) }}, }, mdb.HashAction(mdb.FIELD, "time,hash,zone,name,text")), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { - m.Fields(len(arg), m.Config(mdb.FIELD)) - m.Cmdy(mdb.SELECT, m.PrefixKey(), "", mdb.HASH, mdb.HASH, arg) - m.PushAction(cli.START, mdb.REMOVE) - m.StatusTimeCount() + m.Display("/plugin/table.js", "style", "card") + mdb.HashSelect(m, arg...).PushAction(cli.START, mdb.REMOVE) }}, }}) } diff --git a/misc/git/repos.go b/misc/git/repos.go index 178c004e..569a8e6f 100644 --- a/misc/git/repos.go +++ b/misc/git/repos.go @@ -91,14 +91,10 @@ func init() { }}, }, mdb.HashAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { if len(arg) == 0 { // 仓库列表 - mdb.HashSelect(m, arg...) - m.Sort(mdb.NAME) - m.RenameAppend(mdb.NAME, "repos") + mdb.HashSelect(m, arg...).Sort(mdb.NAME).RenameAppend(mdb.NAME, REPOS) return } - - m.Option(nfs.DIR_ROOT, _repos_path(arg[0])) - m.Cmdy(nfs.DIR, kit.Select("", arg, 1), "time,line,path") + m.Cmdy(nfs.DIR, kit.Select("", arg, 1), "time,line,path", kit.Dict(nfs.DIR_ROOT, _repos_path(arg[0]))) }}, }}) }