1
0
forked from x/icebergs
This commit is contained in:
IT 老营长 @云轩领航-创始人 2024-03-08 23:48:50 +08:00
parent 939de032c1
commit abcddce974
7 changed files with 34 additions and 31 deletions

View File

@ -473,7 +473,7 @@ func init() {
}},
}, StatsAction(), DreamAction(), DreamTablesAction(), mdb.ImportantHashAction(
mdb.SHORT, mdb.NAME, mdb.FIELD, "time,name,icons,repos,binary,template,restart,access",
html.BUTTON, kit.JoinWord(PORTAL, DESKTOP, ADMIN, MESSAGE, WORD, STATUS, VIMER, COMPILE, XTERM, DREAM),
html.BUTTON, kit.JoinWord(PORTAL, DESKTOP, MESSAGE, ADMIN, WORD, STATUS, VIMER, COMPILE, XTERM, DREAM),
ctx.TOOLS, kit.Simple(SPIDE, ROUTE), ONLINE, ice.TRUE,
)), Hand: func(m *ice.Message, arg ...string) {
if len(arg) == 0 {

View File

@ -22,6 +22,8 @@ fieldset.web.matrix>div.output>table.content div.item div.status div.item:hover
fieldset.web.matrix>div.output>table.content div.item:hover { background-color:unset; color:unset; }
fieldset.web.matrix>div.output>table.content div.item.notice { background-color:var(--notice-bg-color); color:var(--notice-fg-color); }
fieldset.web.matrix>div.output>table.content div.item.danger { background-color:var(--danger-bg-color); color:var(--danger-fg-color); }
fieldset.web.matrix>div.output>table.content div.item.server { border:var(--notice-bg-color) solid 3px; }
fieldset.web.matrix>div.output>table.content div.item.master { border:var(--danger-bg-color) solid 3px; }
fieldset.web.matrix>div.output>table.content div.item.danger div.status div.item { color:var(--danger-fg-color); }
fieldset.web.matrix>div.output>table.content div.item.notice div.status div.item { color:var(--notice-fg-color); }
fieldset.web.matrix>div.output>table.content div.item.stop div.title>span { color:var(--disable-fg-color); }

View File

@ -14,34 +14,29 @@ import (
kit "shylinux.com/x/toolkits"
)
func _matrix_list(m *ice.Message, domain, icon, typ string, fields ...string) (server, icons, types []string) {
func _matrix_list(m *ice.Message, domain, typ string, meta ice.Maps, fields ...string) (server, icons, types []string) {
value := kit.Dict(cli.ParseMake(m.Cmdx(Space(m, domain), cli.RUNTIME)))
value[DOMAIN], value[mdb.ICONS], value[mdb.TYPE] = domain, icon, typ
button := []ice.Any{}
switch typ {
case MYSELF:
button = []ice.Any{PORTAL, WORD, STATUS, VIMER, COMPILE, DREAM, DESKTOP, ADMIN, OPEN, cli.RUNTIME, XTERM}
case SERVER:
button = []ice.Any{PORTAL, DESKTOP, ADMIN, OPEN, UPGRADE, DREAM, WORD, STATUS, VIMER, cli.RUNTIME, XTERM}
default:
button = []ice.Any{PORTAL, DESKTOP, ADMIN, OPEN, COMPILE, DREAM, WORD, STATUS, VIMER, cli.RUNTIME, XTERM}
}
value[DOMAIN], value[mdb.TYPE] = domain, typ
kit.For(meta, func(k, v string) { value[k] = v })
istech, isdebug := typ == SERVER || kit.IsIn(meta[aaa.ACCESS], aaa.TECH, aaa.ROOT), m.IsDebug()
compile := kit.Select("", kit.Select(COMPILE, UPGRADE, typ == SERVER), istech)
vimer := kit.Select("", VIMER, istech && isdebug)
button := []ice.Any{PORTAL, DESKTOP, DREAM, ADMIN, OPEN, compile}
kit.If(istech, func() { button = append(button, WORD, STATUS) })
kit.If(istech && isdebug, func() { button = append(button, vimer, cli.RUNTIME, XTERM) })
m.PushRecord(value, fields...).PushButton(button...)
switch typ {
case MYSELF:
button = []ice.Any{PORTAL, WORD, STATUS, VIMER, COMPILE, MESSAGE, DESKTOP, ADMIN, OPEN, cli.RUNTIME, XTERM}
case SERVER:
button = []ice.Any{PORTAL, DESKTOP, ADMIN, OPEN, UPGRADE, MESSAGE, WORD, STATUS, VIMER, cli.RUNTIME, XTERM}
default:
button = []ice.Any{PORTAL, DESKTOP, ADMIN, OPEN, WORD, STATUS, VIMER, cli.RUNTIME, XTERM}
}
button = append(button, cli.STOP)
button = []ice.Any{PORTAL, DESKTOP, MESSAGE, ADMIN, OPEN, compile}
kit.If(istech, func() { button = append(button, WORD, STATUS) })
kit.If(istech && isdebug, func() { button = append(button, vimer, cli.RUNTIME, XTERM, cli.STOP) })
m.Cmd(Space(m, domain), DREAM).Table(func(value ice.Maps) {
switch value[mdb.TYPE] {
case WORKER:
value[DOMAIN] = domain
kit.If(value[mdb.STATUS] == cli.STOP, func() { value[mdb.ICONS] = nfs.USR_ICONS_ICEBERGS })
kit.If(value[mdb.STATUS] == cli.STOP, func() { button = []ice.Any{cli.START, mdb.REMOVE} })
kit.If(value[mdb.STATUS] == cli.STOP && istech, func() { button = []ice.Any{cli.START, mdb.REMOVE} })
m.PushRecord(value, fields...).PushButton(button...)
case SERVER, MASTER:
server = append(server, kit.Keys(domain, value[mdb.NAME]))
@ -111,10 +106,10 @@ func init() {
mdb.REMOVE: {Hand: func(m *ice.Message, arg ...string) { _matrix_dream(m, nfs.TRASH); _matrix_dream(m, "") }},
cli.START: {Hand: func(m *ice.Message, arg ...string) { _matrix_dream(m, "") }},
cli.STOP: {Hand: func(m *ice.Message, arg ...string) { _matrix_dream(m, "") }},
COMPILE: {Hand: func(m *ice.Message, arg ...string) {
_matrix_cmd(m, "", cli.AMD64, cli.LINUX, ice.SRC_MAIN_GO).ProcessHold()
UPGRADE: {Hand: func(m *ice.Message, arg ...string) {
_matrix_cmd(m, "").Sleep3s()
m.ProcessRefresh()
}},
UPGRADE: {Hand: func(m *ice.Message, arg ...string) { _matrix_cmd(m, "").Sleep3s().ProcessRefresh() }},
INSTALL: {Hand: func(m *ice.Message, arg ...string) {
if kit.IsIn(m.Cmdv(Space(m, m.Option(DOMAIN)), SPIDE, ice.DEV_IP, CLIENT_HOSTNAME), m.Cmd(tcp.HOST).Appendv(aaa.IP)...) {
m.Option(nfs.BINARY, S(m.Option(mdb.NAME)))
@ -129,7 +124,7 @@ func init() {
StreamPushRefreshConfirm(m, m.Trans("refresh for new space ", "刷新列表查看新空间 ")+kit.Keys(m.Option(DOMAIN), m.Option(mdb.NAME)))
}},
}, ctx.ConfAction(
mdb.FIELD, "time,domain,status,type,name,text,icons,repos,binary,module,version",
mdb.FIELD, "time,domain,status,type,name,text,icons,repos,binary,module,version,access",
ctx.TOOLS, kit.Simple(SPIDE, STATUS, VERSION), ONLINE, ice.TRUE,
)), Hand: func(m *ice.Message, arg ...string) {
if kit.HasPrefixList(arg, ctx.ACTION) {
@ -138,11 +133,16 @@ func init() {
}
GoToast(m, func(toast func(name string, count, total int)) []string {
field := kit.Split(mdb.Config(m, mdb.FIELD))
space := m.CmdMap(SPACE, mdb.NAME)
m.Options("space.timeout", cli.TIME_3s, "dream.simple", ice.TRUE)
list, icons, types := _matrix_list(m, "", ice.SRC_MAIN_ICO, MYSELF, field...)
list, icons, types := _matrix_list(m, "", MYSELF, ice.Maps{
mdb.ICONS: ice.SRC_MAIN_ICO, aaa.ACCESS: m.Option(ice.MSG_USERROLE),
}, field...)
kit.For(list, func(domain string, index int, total int) {
toast(domain, index, total)
_matrix_list(m, domain, icons[index], types[index], field...)
_matrix_list(m, domain, types[index], ice.Maps{
mdb.ICONS: icons[index], aaa.ACCESS: kit.Format(kit.Value(space[domain], aaa.USERROLE)),
}, field...)
})
m.RewriteAppend(func(value, key string, index int) string {
if key == mdb.ICONS && strings.HasPrefix(value, nfs.REQUIRE) && m.Appendv(DOMAIN)[index] != "" {

View File

@ -27,7 +27,7 @@ Volcanos(chat.ONIMPORT, {
return {view: [[html.ITEM, item.type, item.status, can.onimport.style(can, item, list)]], list: [
{img: can.misc.Resource(can, item.icons, can.core.Keys(item.domain, item.name)), onclick: cb(web.DESKTOP)}, {view: wiki.TITLE, list: [
{text: item.name||item.domain||location.host, onclick: cb(web.OPEN)},
item.status != cli.STOP && can.onappend.label(can, item, {version: icon.version, time: icon.compile}),
item.status != cli.STOP && can.onappend.label(can, item, {version: icon.version, time: icon.compile, access: "bi bi-file-lock"}),
{text: [item.text, "", "status"]},
can.onappend.buttons(can, item),
]},

View File

@ -60,7 +60,7 @@ func init() {
m.Cmdy(nfs.DIR, dir, "time,size,path,hash").Push(web.ORIGIN, kit.MergeURL2(web.SpideOrigin(m, ice.DEV_IP), uri))
})
if web.ToastSuccess(m); m.Option(ice.EXIT) == ice.TRUE {
defer m.GoSleep(cli.TIME_30s, func() { m.Cmd("", cli.RESTART) })
defer m.GoSleep(cli.TIME_30ms, func() { m.Cmd("", cli.RESTART) })
web.Toast(m, cli.RESTART)
}
}},

View File

@ -58,6 +58,7 @@ func init() {
}},
web.DREAM_TABLES: {Hand: func(m *ice.Message, arg ...string) {
if !m.IsDebug() || !aaa.IsTechOrRoot(m) || !nfs.Exists(m, path.Join(ice.USR_LOCAL_WORK, m.Option(mdb.NAME), _GIT)) {
m.Push(mdb.TEXT, "")
return
}
m.Push(mdb.TEXT, web.DreamStat(m, m.Option(mdb.NAME)))

View File

@ -223,7 +223,7 @@ func (s relay) List(m *ice.Message, arg ...string) *ice.Message {
return
}
m.Push(web.LINK, web.HostPort(m.Message, value[tcp.HOST], value[web.PORTAL]))
m.PushButton(s.Portal, s.Desktop, s.Dream, s.Admin, s.Vimer, s.Login, s.Proxy, s.AdminCmd, s.Upgrade, s.Pushbin, s.Xterm, s.Trash, s.Remove)
m.PushButton(s.Portal, s.Desktop, s.Dream, s.Admin, s.Vimer, s.Proxy, s.Login, s.AdminCmd, s.Upgrade, s.Pushbin, s.Xterm, s.Trash, s.Remove)
kit.If(len(arg) > 0, func() { m.PushQRCode(cli.QRCODE, m.Append(web.LINK)) })
})
_stats := kit.Dict(MEM, kit.FmtSize(stats[MEM_FREE], stats[MEM_TOTAL]), DISK, kit.FmtSize(stats[DISK_USED], stats[DISK_TOTAL]))