1
0
mirror of https://shylinux.com/x/icebergs synced 2025-04-26 09:34:05 +08:00
This commit is contained in:
IT 老营长 @云轩领航-创始人 2023-07-22 09:04:29 +08:00
parent 4ef21b479e
commit 6c2899868b
7 changed files with 42 additions and 16 deletions

View File

@ -75,6 +75,13 @@ func init() {
m.Echo(`%s %s %s;" f`+lex.NL, value[mdb.NAME], value[nfs.FILE], value[nfs.LINE]) m.Echo(`%s %s %s;" f`+lex.NL, value[mdb.NAME], value[nfs.FILE], value[nfs.LINE])
}).Cmd(nfs.SAVE, nfs.TAGS, m.Result()) }).Cmd(nfs.SAVE, nfs.TAGS, m.Result())
}}, }},
mdb.INPUTS: {Hand: func(m *ice.Message, arg ...string) {
if len(arg) > 0 && arg[0] != "" {
m.Cmdy(arg).Search(arg[0], func(key string, cmd *ice.Command) {
m.Cut(kit.Format(kit.Value(cmd.List, kit.Format("%d.name", len(arg)-1))))
})
}
}},
}, CmdAction(), aaa.RoleAction()), Hand: func(m *ice.Message, arg ...string) { }, CmdAction(), aaa.RoleAction()), Hand: func(m *ice.Message, arg ...string) {
if len(arg) == 0 { if len(arg) == 0 {
m.Cmdy("", mdb.SEARCH, COMMAND, ice.OptionFields(INDEX)).StatusTimeCount() m.Cmdy("", mdb.SEARCH, COMMAND, ice.OptionFields(INDEX)).StatusTimeCount()

View File

@ -80,14 +80,14 @@ func _space_handle(m *ice.Message, safe bool, name string, c *websocket.Conn) {
break break
} }
msg := m.Spawn(b) msg := m.Spawn(b)
if safe { // 下行命令
msg.OptionDefault(ice.MSG_USERROLE, aaa.UserRole(msg, msg.Option(ice.MSG_USERNAME)))
} else { // 上行请求
msg.Option(ice.MSG_USERROLE, aaa.VOID)
}
source, target := kit.Simple(msg.Optionv(ice.MSG_SOURCE), name), kit.Simple(msg.Optionv(ice.MSG_TARGET)) source, target := kit.Simple(msg.Optionv(ice.MSG_SOURCE), name), kit.Simple(msg.Optionv(ice.MSG_TARGET))
msg.Log(tcp.RECV, "%v->%v %v %v", source, target, msg.Detailv(), msg.FormatsMeta(nil)) msg.Log(tcp.RECV, "%v->%v %v %v", source, target, msg.Detailv(), msg.FormatsMeta(nil))
if next := msg.Option(ice.MSG_TARGET); next == "" || len(target) == 0 { if next := msg.Option(ice.MSG_TARGET); next == "" || len(target) == 0 {
if safe { // 下行命令
msg.Option(ice.MSG_USERROLE, aaa.UserRole(msg, msg.Option(ice.MSG_USERNAME)))
} else { // 上行请求
msg.Option(ice.MSG_USERROLE, aaa.VOID)
}
m.Go(func() { _space_exec(msg, source, target, c) }, strings.Join(kit.Simple(SPACE, name, msg.Detailv()), lex.SP)) m.Go(func() { _space_exec(msg, source, target, c) }, strings.Join(kit.Simple(SPACE, name, msg.Detailv()), lex.SP))
} else { } else {
done := false done := false
@ -140,6 +140,7 @@ func _space_send(m *ice.Message, name string, arg ...string) (h string) {
h = mdb.HashCreate(m.Spawn(), mdb.TYPE, tcp.SEND, mdb.NAME, kit.Keys(name, m.Target().ID()), mdb.TEXT, kit.Join(arg, lex.SP), kit.Dict(mdb.TARGET, done)) h = mdb.HashCreate(m.Spawn(), mdb.TYPE, tcp.SEND, mdb.NAME, kit.Keys(name, m.Target().ID()), mdb.TEXT, kit.Join(arg, lex.SP), kit.Dict(mdb.TARGET, done))
if target := kit.Split(name, nfs.PT, nfs.PT); mdb.HashSelectDetail(m, target[0], func(value ice.Map) { if target := kit.Split(name, nfs.PT, nfs.PT); mdb.HashSelectDetail(m, target[0], func(value ice.Map) {
if c, ok := value[mdb.TARGET].(*websocket.Conn); !m.Warn(!ok, ice.ErrNotValid, mdb.TARGET) { if c, ok := value[mdb.TARGET].(*websocket.Conn); !m.Warn(!ok, ice.ErrNotValid, mdb.TARGET) {
kit.For([]string{ice.MSG_USERROLE}, func(k string) { m.Optionv(k, m.Optionv(k)) })
kit.For(m.Optionv(ice.MSG_OPTS), func(k string) { m.Optionv(k, m.Optionv(k)) }) kit.For(m.Optionv(ice.MSG_OPTS), func(k string) { m.Optionv(k, m.Optionv(k)) })
_space_echo(m.Set(ice.MSG_DETAIL, arg...), []string{h}, target, c) _space_echo(m.Set(ice.MSG_DETAIL, arg...), []string{h}, target, c)
} }

View File

@ -33,7 +33,24 @@ func init() {
AppInstall(m, "", web.CODE_GIT_STATUS, mdb.ICON, "usr/icons/git.jpg") AppInstall(m, "", web.CODE_GIT_STATUS, mdb.ICON, "usr/icons/git.jpg")
}}, }},
code.INSTALL: {Hand: func(m *ice.Message, arg ...string) { AppInstall(m, arg[0], arg[1], arg[2:]...) }}, code.INSTALL: {Hand: func(m *ice.Message, arg ...string) { AppInstall(m, arg[0], arg[1], arg[2:]...) }},
}, CmdHashAction("index,args"))}, mdb.INPUTS: {Hand: func(m *ice.Message, arg ...string) {
switch arg[0] {
case web.SPACE:
m.Cmdy(web.SPACE).CutTo(mdb.NAME, arg[0])
case ctx.INDEX:
m.Cmdy(web.Space(m, m.Option(web.SPACE)), ctx.COMMAND)
case ctx.ARGS:
m.Cmdy(web.Space(m, m.Option(web.SPACE)), ctx.COMMAND, mdb.INPUTS, m.Option(ctx.INDEX))
case mdb.ICON:
if m.Option(ctx.INDEX) != "" {
m.Cmd(web.Space(m, m.Option(web.SPACE)), m.Option(ctx.INDEX), mdb.INPUTS, arg[0]).Table(func(value ice.Maps) {
m.Push(arg[0], value[arg[0]]+"?pod="+kit.Keys(m.Option(ice.MSG_USERPOD), m.Option(web.SPACE)))
})
}
m.Cmd(nfs.DIR, USR_ICONS, func(value ice.Maps) { m.Push(arg[0], value[nfs.PATH]) })
}
}}, mdb.CREATE: {Name: "create space index args name icon"},
}, CmdHashAction("space,index,args"))},
}) })
} }
func install(m *ice.Message, cmd, name, index string, arg ...string) { func install(m *ice.Message, cmd, name, index string, arg ...string) {

View File

@ -32,6 +32,8 @@ fieldset.macos.desktop>div.output>div.desktop>fieldset>div.item.button { border-
fieldset.macos.desktop>div.output>div.desktop>fieldset>legend { background-color:unset; padding-right:10px; margin:10px 0; } fieldset.macos.desktop>div.output>div.desktop>fieldset>legend { background-color:unset; padding-right:10px; margin:10px 0; }
fieldset.macos.desktop>div.output>div.desktop>fieldset>form.option>*:not(.textarea) { margin:10px 0px 10px 10px; } fieldset.macos.desktop>div.output>div.desktop>fieldset>form.option>*:not(.textarea) { margin:10px 0px 10px 10px; }
fieldset.macos.desktop>div.output>div.desktop>fieldset>form.option>div.icon { margin-left:0; margin-top:10px; margin-bottom:8px; } fieldset.macos.desktop>div.output>div.desktop>fieldset>form.option>div.icon { margin-left:0; margin-top:10px; margin-bottom:8px; }
fieldset.macos.desktop>div.output>div.desktop>fieldset>form.option>div.item.button>span.icon { font-size:26px; line-height:28px; }
fieldset.macos.desktop>div.output>div.desktop>fieldset>form.option>div.item.icons { margin-left:0; } fieldset.macos.desktop>div.output>div.desktop>fieldset>form.option>div.item.icons { margin-left:0; }
fieldset.macos.desktop>div.output>div.desktop>fieldset>form.option>div.item:last-child { margin-right:20px; } fieldset.macos.desktop>div.output>div.desktop>fieldset>form.option>div.item:last-child { margin-right:20px; }
fieldset.macos.desktop>div.output>div.desktop>fieldset>form.option>div.item:last-child { margin-right:80px; } fieldset.macos.desktop>div.output>div.desktop>fieldset>form.option>div.item:last-child { margin-right:80px; }

View File

@ -8,7 +8,10 @@ import (
const FINDER = "finder" const FINDER = "finder"
func init() { func init() {
Index.MergeCommands(ice.Commands{FINDER: {Name: "finder list", Actions: CmdHashAction(mdb.NAME)}}) Index.MergeCommands(ice.Commands{FINDER: {Name: "finder list insert", Actions: ice.MergeActions(ice.Actions{
mdb.INPUTS: {Hand: func(m *ice.Message, arg ...string) { m.Cmdy(APPLICATIONS, mdb.INPUTS, arg) }},
mdb.INSERT: {Name: "insert space index* args name* icon*", Hand: func(m *ice.Message, arg ...string) { m.Cmdy(APPLICATIONS, mdb.CREATE, arg) }},
}, CmdHashAction(mdb.NAME))}})
} }
func FinderAppend(m *ice.Message, name, index string, arg ...string) { func FinderAppend(m *ice.Message, name, index string, arg ...string) {

View File

@ -36,5 +36,5 @@ func CmdHashAction(arg ...string) ice.Actions {
mdb.SELECT: {Name: "list hash auto create", Hand: func(m *ice.Message, arg ...string) { mdb.SELECT: {Name: "list hash auto create", Hand: func(m *ice.Message, arg ...string) {
mdb.HashSelect(m, arg...).Sort(mdb.NAME).Display(ctx.FileURI(file)) mdb.HashSelect(m, arg...).Sort(mdb.NAME).Display(ctx.FileURI(file))
}}, }},
}, ctx.CmdAction(), mdb.HashAction(mdb.SHORT, kit.Select("", arg, 0), mdb.FIELD, kit.Select("time,hash,name,icon,text,index,args", arg, 1), kit.Slice(arg, 2))) }, ctx.CmdAction(), mdb.HashAction(mdb.SHORT, kit.Select("", arg, 0), mdb.FIELD, kit.Select("time,hash,name,icon,text,space,index,args", arg, 1), kit.Slice(arg, 2)))
} }

View File

@ -49,15 +49,11 @@ func init() {
case nfs.TEMPLATE: case nfs.TEMPLATE:
m.Cmdy(TEMPLATE).CutTo(RIVER, arg[0]) m.Cmdy(TEMPLATE).CutTo(RIVER, arg[0])
case web.SPACE: case web.SPACE:
m.Cmd(web.SPACE, func(value ice.Maps) { m.Cmdy(web.SPACE).CutTo(mdb.NAME, arg[0])
kit.If(kit.IsIn(value[mdb.TYPE], web.WORKER), func() { m.Push(arg[0], value[mdb.NAME]) })
})
case ctx.INDEX: case ctx.INDEX:
if m.Option(web.SPACE) == "" { m.Cmdy(web.Space(m, m.Option(web.SPACE)), ctx.COMMAND)
m.Cmdy(ctx.COMMAND) case ctx.ARGS:
} else { m.Cmdy(web.Space(m, m.Option(web.SPACE)), ctx.COMMAND, mdb.INPUTS, m.Option(ctx.INDEX))
m.Cmdy(web.SPACE, m.Option(web.SPACE), ctx.COMMAND)
}
default: default:
mdb.HashInputs(m, arg) mdb.HashInputs(m, arg)
} }