1
0
mirror of https://shylinux.com/x/icebergs synced 2025-04-26 01:24:05 +08:00
This commit is contained in:
harveyshao 2022-11-06 21:41:38 +08:00
parent a63831976b
commit c27f669787
3 changed files with 30 additions and 33 deletions

View File

@ -7,14 +7,13 @@ import (
"shylinux.com/x/icebergs/base/ctx"
"shylinux.com/x/icebergs/base/mdb"
"shylinux.com/x/icebergs/base/nfs"
kit "shylinux.com/x/toolkits"
)
const DRAW = "draw"
func init() {
Index.MergeCommands(ice.Commands{
DRAW: {Name: "draw path=src/main.svg pid:text refresh:button=auto save edit actions", Help: "思维导图", Actions: ice.MergeActions(ice.Actions{
DRAW: {Name: "draw path=src/main.svg@key pid refresh save edit actions", Help: "思维导图", Actions: ice.MergeActions(ice.Actions{
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
m.Cmd(mdb.RENDER, mdb.CREATE, mdb.TYPE, nfs.SVG, mdb.NAME, m.PrefixKey())
}},
@ -23,7 +22,7 @@ func init() {
m.Cmdy(nfs.CAT, path.Join(arg[2], arg[1]))
}},
}, WikiAction("", nfs.SVG), ctx.CmdAction()), Hand: func(m *ice.Message, arg ...string) {
if !_wiki_list(m, kit.Select(nfs.PWD, arg, 0)) {
if !_wiki_list(m, arg...) {
_wiki_show(m, arg[0])
}
}},

View File

@ -83,6 +83,13 @@ func WikiAction(dir string, ext ...string) ice.Actions {
web.UPLOAD: {Hand: func(m *ice.Message, arg ...string) { _wiki_upload(m, m.Option(nfs.PATH)) }},
nfs.SAVE: {Name: "save path text", Hand: func(m *ice.Message, arg ...string) { _wiki_save(m, m.Option(nfs.PATH), m.Option(mdb.TEXT)) }},
nfs.TRASH: {Hand: func(m *ice.Message, arg ...string) { m.Cmd(nfs.TRASH, _wiki_path(m, m.Option(nfs.PATH))) }},
mdb.INPUTS: {Hand: func(m *ice.Message, arg ...string) {
switch arg[0] {
case nfs.PATH:
m.Option(nfs.DIR_REG, m.Config(lex.REGEXP))
m.Cmdy(nfs.DIR, path.Join(m.Config(nfs.PATH), kit.Select("", arg, 1)))
}
}},
}
}

51
misc.go
View File

@ -382,8 +382,8 @@ func SplitCmd(name string, actions Actions) (list []Any) {
BUTTON = "button"
)
const (
REFRESH = "refresh"
RUN = "run"
REFRESH = "refresh"
LIST = "list"
BACK = "back"
AUTO = "auto"
@ -392,43 +392,36 @@ func SplitCmd(name string, actions Actions) (list []Any) {
)
item, button := kit.Dict(), false
push := func(arg ...string) {
button = kit.Select("", arg, 0) == BUTTON
item = kit.Dict(TYPE, kit.Select("", arg, 0), NAME, kit.Select("", arg, 1), ACTION, kit.Select("", arg, 2))
list = append(list, item)
}
ls := kit.Split(name, SP, "*:=@")
for i := 1; i < len(ls); i++ {
switch ls[i] {
case REFRESH:
list = append(list, kit.Dict(TYPE, BUTTON, NAME, ls[i], ACTION, AUTO))
button = true
case RUN:
list = append(list, kit.Dict(TYPE, BUTTON, NAME, ls[i]))
button = true
push(BUTTON, ls[i])
case REFRESH:
push(BUTTON, ls[i], AUTO)
case LIST:
list = append(list, kit.Dict(TYPE, BUTTON, NAME, ls[i], ACTION, AUTO))
button = true
push(BUTTON, ls[i], AUTO)
case AUTO:
list = append(list, kit.Dict(TYPE, BUTTON, NAME, LIST, ACTION, AUTO))
list = append(list, kit.Dict(TYPE, BUTTON, NAME, BACK))
button = true
push(BUTTON, LIST, AUTO)
push(BUTTON, BACK, AUTO)
case PAGE:
list = append(list, kit.Dict(TYPE, TEXT, NAME, "limit"))
list = append(list, kit.Dict(TYPE, TEXT, NAME, "offend"))
list = append(list, kit.Dict(TYPE, BUTTON, NAME, "prev"))
list = append(list, kit.Dict(TYPE, BUTTON, NAME, "next"))
push(TEXT, "limit")
push(TEXT, "offend")
push(BUTTON, "prev")
push(BUTTON, "next")
case ARGS, TEXT, TEXTAREA:
item = kit.Dict(TYPE, TEXTAREA, NAME, ls[i])
list = append(list, item)
push(TEXTAREA, ls[i])
case PASSWORD:
item = kit.Dict(TYPE, PASSWORD, NAME, ls[i])
list = append(list, item)
push(PASSWORD, ls[i])
case "image":
item = kit.Dict(TYPE, TEXT, NAME, ls[i], ACTION, "img")
list = append(list, item)
push(TEXT, ls[i], "img")
case "time":
item = kit.Dict(TYPE, TEXT, NAME, ls[i], ACTION, "date")
list = append(list, item)
push(TEXT, ls[i], "date")
case "*":
item["need"] = "must"
case DF:
@ -453,10 +446,8 @@ func SplitCmd(name string, actions Actions) (list []Any) {
case AT:
item[ACTION] = kit.Select("", ls, i+1)
i++
default:
item = kit.Dict(TYPE, kit.Select(TEXT, BUTTON, button || actions != nil && actions[ls[i]] != nil), NAME, ls[i])
list = append(list, item)
push(kit.Select(TEXT, BUTTON, button || actions != nil && actions[ls[i]] != nil), ls[i])
}
}
return list