1
0
forked from x/icebergs
This commit is contained in:
root 2024-10-12 11:06:29 +08:00
parent 4d892e03d3
commit 1060a60a5e
13 changed files with 43 additions and 22 deletions

View File

@ -182,8 +182,8 @@ const RUNTIME = "runtime"
func init() { func init() {
Index.MergeCommands(ice.Commands{ Index.MergeCommands(ice.Commands{
RUNTIME: {Name: "runtime info=bootinfo,ifconfig,diskinfo,hostinfo,userinfo,bootinfo,role,api,cli,cmd,mod,env,path,chain auto upgrade reboot lock", Icon: "Infomation.png", Help: "运行环境", Actions: ice.MergeActions(ice.Actions{ RUNTIME: {Name: "runtime info=bootinfo,ifconfig,diskinfo,hostinfo,userinfo,bootinfo,role,api,cli,cmd,mod,env,path,chain auto upgrade reboot lock", Icon: "Infomation.png", Help: "环境", Actions: ice.MergeActions(ice.Actions{
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) { _runtime_init(m); }}, ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) { _runtime_init(m) }},
IFCONFIG: {Hand: func(m *ice.Message, arg ...string) { m.Cmdy(tcp.HOST) }}, IFCONFIG: {Hand: func(m *ice.Message, arg ...string) { m.Cmdy(tcp.HOST) }},
DISKINFO: {Hand: func(m *ice.Message, arg ...string) { _runtime_diskinfo(m) }}, DISKINFO: {Hand: func(m *ice.Message, arg ...string) { _runtime_diskinfo(m) }},
HOSTINFO: {Hand: func(m *ice.Message, arg ...string) { _runtime_hostinfo(m) }}, HOSTINFO: {Hand: func(m *ice.Message, arg ...string) { _runtime_hostinfo(m) }},

View File

@ -24,7 +24,7 @@ func init() {
LEVEL = "level" LEVEL = "level"
) )
Index.MergeCommands(ice.Commands{ Index.MergeCommands(ice.Commands{
DEBUG: {Name: "debug level=error,bench,debug,error,watch offset limit auto reset app doc", Help: "后台日志", Actions: ice.Actions{ DEBUG: {Name: "debug level=error,bench,debug,error,watch offset limit auto reset app doc", Help: "日志", Actions: ice.Actions{
"doc": {Help: "文档", Hand: func(m *ice.Message, arg ...string) { m.ProcessOpen("https://pkg.go.dev/std") }}, "doc": {Help: "文档", Hand: func(m *ice.Message, arg ...string) { m.ProcessOpen("https://pkg.go.dev/std") }},
"reset": {Help: "重置", Hand: func(m *ice.Message, arg ...string) { "reset": {Help: "重置", Hand: func(m *ice.Message, arg ...string) {
m.Cmd(nfs.CAT, _debug_file(arg[0]), func(line string, index int) { m.ProcessRewrite(mdb.OFFSET, index+2, mdb.LIMIT, 1000) }) m.Cmd(nfs.CAT, _debug_file(arg[0]), func(line string, index int) { m.ProcessRewrite(mdb.OFFSET, index+2, mdb.LIMIT, 1000) })

View File

@ -448,7 +448,8 @@ func init() {
// kit.If(m.IsDebug(), func() { list = append(list, cli.RUNTIME) }) // kit.If(m.IsDebug(), func() { list = append(list, cli.RUNTIME) })
switch m.Option(mdb.TYPE) { switch m.Option(mdb.TYPE) {
case WORKER: case WORKER:
list = append(list, "settings", nfs.COPY, tcp.SEND) list = append(list, "settings")
// list = append(list, "settings", nfs.COPY, tcp.SEND)
case SERVER: case SERVER:
list = append(list, "settoken", DREAM) list = append(list, "settoken", DREAM)
default: default:

View File

@ -52,7 +52,9 @@ Volcanos(chat.ONIMPORT, {
if (value.module == item.module) { worker = value } if (value.module == item.module) { worker = value }
}) })
} }
return !worker? html.NOTICE: (worker.status != cli.STOP && item.status != cli.STOP && (item.version != worker.version || item.time < worker.time))? html.DANGER: "" return !worker? html.NOTICE: (worker.status != cli.STOP && item.status != cli.STOP && (item.version != worker.version ||
(item["server.type"] == "origin"? item.time > worker.time: item.time < worker.time)
))? html.DANGER: ""
}, },
}, [""]) }, [""])
Volcanos(chat.ONACTION, { Volcanos(chat.ONACTION, {

View File

@ -215,7 +215,7 @@ func ProxyUpload(m *ice.Message, pod string, p string) string {
size, cache = s.Size(), s.ModTime() size, cache = s.Size(), s.ModTime()
} }
if m.Cmdv(SPACE, pod, mdb.TYPE) == ORIGIN { if m.Cmdv(SPACE, pod, mdb.TYPE) == ORIGIN {
m.Cmd(SPIDE, pod, SPIDE_SAVE, pp, p) m.Cmd(SPIDE, pod, SPIDE_SAVE, pp, "/p/"+p)
} else { } else {
kit.If(p == ice.BIN_ICE_BIN, func() { m.Option(ice.MSG_USERROLE, aaa.TECH) }) kit.If(p == ice.BIN_ICE_BIN, func() { m.Option(ice.MSG_USERROLE, aaa.TECH) })
share := m.Cmdx(SHARE, mdb.CREATE, mdb.TYPE, PROXY, mdb.NAME, p, mdb.TEXT, pod) share := m.Cmdx(SHARE, mdb.CREATE, mdb.TYPE, PROXY, mdb.NAME, p, mdb.TEXT, pod)

View File

@ -88,7 +88,8 @@ func init() {
dream := C(DREAM) dream := C(DREAM)
origin := SpideOrigin(m, arg[0]) origin := SpideOrigin(m, arg[0])
kit.If(origin == "", func() { arg[0], origin, dream = ice.DEV, arg[0], arg[0]+dream }) kit.If(origin == "", func() { arg[0], origin, dream = ice.DEV, arg[0], arg[0]+dream })
if kit.IsIn(kit.ParseURL(origin).Hostname(), append(m.Cmds(tcp.HOST).Appendv(aaa.IP), tcp.LOCALHOST)...) { // if kit.IsIn(kit.ParseURL(origin).Hostname(), append(m.Cmds(tcp.HOST).Appendv(aaa.IP), tcp.LOCALHOST)...) {
if kit.IsIn(kit.ParseURL(origin).Hostname(), tcp.LOCALHOST) {
origin = m.Option(ice.MSG_USERHOST) origin = m.Option(ice.MSG_USERHOST)
} else { } else {
origin = tcp.PublishLocalhost(m, origin) origin = tcp.PublishLocalhost(m, origin)

View File

@ -18,6 +18,7 @@ Volcanos(chat.ONIMPORT, {
switch (value) { switch (value) {
case "notifications": can.ui.notifications._output.innerHTML && can.onmotion.toggle(can, can.ui.notifications._target); break case "notifications": can.ui.notifications._output.innerHTML && can.onmotion.toggle(can, can.ui.notifications._target); break
case "searchs": can.onaction._search(can); break case "searchs": can.onaction._search(can); break
case "reload": can.Update(); break
case cli.QRCODE: can.sup.onaction["生成链接"]({}, can.sup); break case cli.QRCODE: can.sup.onaction["生成链接"]({}, can.sup); break
case mdb.CREATE: can.onaction.create(event, can); break case mdb.CREATE: can.onaction.create(event, can); break
case html.DESKTOP: case html.DESKTOP:
@ -51,7 +52,7 @@ Volcanos(chat.ONIMPORT, {
} } } }
}) }, }) },
_dock: function(can) { can.onappend.plugin(can, {index: "web.chat.macos.dock", style: html.OUTPUT}, function(sub) { can.ui.dock = sub _dock: function(can) { can.onappend.plugin(can, {index: "web.chat.macos.dock", style: html.OUTPUT}, function(sub) { can.ui.dock = sub
sub.onexport.output = function(sub, msg) { can.onimport.layout(can) } sub.onexport.output = function(sub, msg) { can.onmotion.delay(can, function() { can.onimport.layout(can) }) }
sub.onexport.record = function(sub, value, key, item) { can.onimport._window(can, item) } sub.onexport.record = function(sub, value, key, item) { can.onimport._window(can, item) }
}) }, }) },
_desktop: function(can, msg, name) { var target = can.page.Append(can, can._output, [html.DESKTOP])._target; can.ui.desktop = target _desktop: function(can, msg, name) { var target = can.page.Append(can, can._output, [html.DESKTOP])._target; can.ui.desktop = target
@ -119,7 +120,8 @@ Volcanos(chat.ONIMPORT, {
}, function() { next() }) }, function() { next() })
}, function() { _select && _select.click() }) }, function() { _select && _select.click() })
}, },
layout: function(can) { can.page.style(can, can._output, html.HEIGHT, can.ConfHeight(), html.WIDTH, can.ConfWidth()) layout: function(can) {
can.page.style(can, can._output, html.HEIGHT, can.ConfHeight(), html.WIDTH, can.ConfWidth())
can.ui.dock && can.page.style(can, can.ui.dock._output, "position", "") can.ui.dock && can.page.style(can, can.ui.dock._output, "position", "")
can.ui.dock && can.page.style(can, can.ui.dock._target, html.LEFT, can.base.Min((can.ConfWidth()-(can.ui.dock._target.offsetWidth||502))/2, 0)) can.ui.dock && can.page.style(can, can.ui.dock._target, html.LEFT, can.base.Min((can.ConfWidth()-(can.ui.dock._target.offsetWidth||502))/2, 0))
can.ui.menu && can.ui.menu.onimport.size(can.ui.menu, html.DESKTOP_MENU_HEIHGT, can.ConfWidth(), false) can.ui.menu && can.ui.menu.onimport.size(can.ui.menu, html.DESKTOP_MENU_HEIHGT, can.ConfWidth(), false)

View File

@ -9,7 +9,10 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg) { can.page.style(can, can._ou
{img: can.misc.ResourceFavicon(can, msg.Option(html.FAVICON), can.ConfSpace())}, {img: can.misc.ResourceFavicon(can, msg.Option(html.FAVICON), can.ConfSpace())},
{text: decodeURIComponent(can.ConfSpace()||can.misc.Search(can, ice.POD)||location.host)}, {text: decodeURIComponent(can.ConfSpace()||can.misc.Search(can, ice.POD)||location.host)},
], onclick: function(event) { can.sup.onexport.record(can, html.DESKTOP) }}, ], onclick: function(event) { can.sup.onexport.record(can, html.DESKTOP) }},
{view: [[html.MENU, mdb.ICON, web.REFRESH], "", can.page.unicode.refresh], onclick: function(event) { can.user.reload(true) }}, {view: [[html.MENU, mdb.ICON, web.REFRESH], "", can.page.unicode.refresh], onclick: function(event) {
can.sup.onexport.record(can, "reload")
// can.user.reload(true)
}},
{view: [[html.MENU, mdb.ICON, mdb.CREATE], "", can.page.unicode.create], onclick: function(event) { can.sup.onexport.record(can, mdb.CREATE) }}, {view: [[html.MENU, mdb.ICON, mdb.CREATE], "", can.page.unicode.create], onclick: function(event) { can.sup.onexport.record(can, mdb.CREATE) }},
])) ]))
}}) }})

View File

@ -33,14 +33,15 @@ fieldset.web.wiki.portal>div.output>div.layout>div.main div.story.column b { fon
fieldset.web.wiki.portal>div.output>div.layout>div.main div.story.column input[type=button] { box-shadow:var(--th-box-shadow); border:0; background-color:var(--notice-bg-color); color:var(--notice-fg-color); } fieldset.web.wiki.portal>div.output>div.layout>div.main div.story.column input[type=button] { box-shadow:var(--th-box-shadow); border:0; background-color:var(--notice-bg-color); color:var(--notice-fg-color); }
fieldset.web.wiki.portal>div.output>div.layout>div.main div.story.column input[type=button]:hover { box-shadow:var(--notice-box-shadow); } fieldset.web.wiki.portal>div.output>div.layout>div.main div.story.column input[type=button]:hover { box-shadow:var(--notice-box-shadow); }
fieldset.web.wiki.portal>div.output>div.layout>div.main fieldset.desktop>legend { display:none; } fieldset.web.wiki.portal>div.output>div.layout>div.main fieldset.desktop>legend { display:none; }
fieldset.web.wiki.portal>div.output>div.layout>div.main fieldset.inner.output div.content { background-color:var(--code-bg-color); color:var(--code-fg-color); padding:var(--input-padding) 0; fieldset.web.wiki.portal>div.output>div.layout>div.main fieldset.inner.output div.content {
--code-keyword:orange; --code-comment:silver; padding:var(--input-padding) 0;
--code-function:cyan; --code-constant:silver; --code-string:silver;
--code-package:silver; --code-datatype:silver; --code-object:silver;
} }
fieldset.web.wiki.portal>div.output>div.layout>div.main div.story[data-type=spark][data-name=shell] { box-shadow:var(--th-box-shadow); border:0; border-left:var(--box-notice3); } fieldset.web.wiki.portal>div.output>div.layout>div.main div.story[data-type=spark][data-name=shell] {
box-shadow:var(--th-box-shadow); border:var(--box-border); border-left:var(--box-notice3); }
fieldset.web.wiki.portal>div.output>div.layout>div.main div.story[data-type=spark][data-name=shell]:hover { box-shadow:var(--notice-box-shadow); } fieldset.web.wiki.portal>div.output>div.layout>div.main div.story[data-type=spark][data-name=shell]:hover { box-shadow:var(--notice-box-shadow); }
fieldset.web.wiki.portal>div.output>div.layout>div.main div.story[data-type=spark][data-name=shell] { background-color:var(--code-bg-color); color:var(--code-fg-color); padding:var(--button-padding); margin-top:var(--button-margin); } fieldset.web.wiki.portal>div.output>div.layout>div.main div.story[data-type=spark][data-name=shell] {
padding:var(--button-padding); margin-top:var(--button-margin);
}
fieldset.web.wiki.portal>div.output>div.layout>div.main table.content div.story[data-type=spark][data-name=shell] { margin-top:unset; } fieldset.web.wiki.portal>div.output>div.layout>div.main table.content div.story[data-type=spark][data-name=shell] { margin-top:unset; }
fieldset.web.wiki.portal.home>div.output>div.layout>div.main p { white-space:pre-wrap; text-align:center; } fieldset.web.wiki.portal.home>div.output>div.layout>div.main p { white-space:pre-wrap; text-align:center; }
fieldset.web.wiki.portal.home>div.output>div.layout>div.main p:hover { background-color:var(--hover-bg-color); color:var(--hover-fg-color); } fieldset.web.wiki.portal.home>div.output>div.layout>div.main p:hover { background-color:var(--hover-bg-color); color:var(--hover-fg-color); }
@ -49,7 +50,7 @@ body.dark fieldset.web.wiki.portal>div.output>div.header div.story[data-name=nav
body.dark fieldset.web.wiki.portal>div.output>div.header div.story[data-name=navmenu] div.item.select { background-color:var(--plugin-bg-color); } body.dark fieldset.web.wiki.portal>div.output>div.header div.story[data-name=navmenu] div.item.select { background-color:var(--plugin-bg-color); }
body.dark fieldset.web.wiki.portal>div.output>div.layout { background-color:var(--plugin-bg-color); --code-bg-color:var(--output-bg-color); } body.dark fieldset.web.wiki.portal>div.output>div.layout { background-color:var(--plugin-bg-color); --code-bg-color:var(--output-bg-color); }
body.dark fieldset.web.wiki.portal>div.output>div.layout>div.main fieldset:not(.macos) { border:var(--plugin-border); } body.dark fieldset.web.wiki.portal>div.output>div.layout>div.main fieldset:not(.macos) { border:var(--plugin-border); }
body.dark fieldset.web.wiki.portal>div.output>div.layout>div.main fieldset.output>div.output { border-radius:var(--plugin-radius); } body.dark fieldset.web.wiki.portal>div.output>div.layout>div.main fieldset { border-radius:0; }
body.dark fieldset.web.wiki.portal>div.output>div.layout>div.main div.story[data-type=spark][data-name=shell] { border-left:var(--box-notice3); } body.dark fieldset.web.wiki.portal>div.output>div.layout>div.main div.story[data-type=spark][data-name=shell] { border-left:var(--box-notice3); }
// body.dark fieldset.web.wiki.portal>div.output>div.layout>div.main div.story[data-type=spark][data-name=shell] { border:var(--box-border); } // body.dark fieldset.web.wiki.portal>div.output>div.layout>div.main div.story[data-type=spark][data-name=shell] { border:var(--box-border); }
body.white fieldset.web.wiki.portal>div.output>div.header { color:silver; } body.white fieldset.web.wiki.portal>div.output>div.header { color:silver; }

View File

@ -12,11 +12,6 @@ Volcanos(chat.ONIMPORT, {
} }
can.ui = can.onappend.layout(can, [html.HEADER, [html.NAV, html.MAIN, html.ASIDE]], html.FLOW), can.onimport._scroll(can) can.ui = can.onappend.layout(can, [html.HEADER, [html.NAV, html.MAIN, html.ASIDE]], html.FLOW), can.onimport._scroll(can)
can.ui.header.innerHTML = msg.Append(html.HEADER), can.ui.nav.innerHTML = msg.Append(html.NAV) can.ui.header.innerHTML = msg.Append(html.HEADER), can.ui.nav.innerHTML = msg.Append(html.NAV)
can.onmotion.delay(can, function() {
can.page.Select(can, can.ui.header, "div.item:first-child>span", function(target, index) {
index == 0 && can.page.insertBefore(can, [{img: can.misc.ResourceFavicon(can, can.user.info.favicon), style: {height: 42}}], target)
})
}, 300)
if (msg.Append(html.NAV) == "") { if (msg.Append(html.NAV) == "") {
can.onmotion.hidden(can, can.ui.nav), can.onmotion.hidden(can, can.ui.aside) can.onmotion.hidden(can, can.ui.nav), can.onmotion.hidden(can, can.ui.aside)
} else { } else {
@ -46,6 +41,9 @@ Volcanos(chat.ONIMPORT, {
}: function(target, item) { can.db.nav[can.base.trimPrefix(item.meta.link, nfs.USR_LEARNING_PORTAL, nfs.SRC_DOCUMENT)] = target }: function(target, item) { can.db.nav[can.base.trimPrefix(item.meta.link, nfs.USR_LEARNING_PORTAL, nfs.SRC_DOCUMENT)] = target
location.hash || item.list && item.list.length > 0 || link || (link = can.onaction.route({}, can, item.meta.link, true)) location.hash || item.list && item.list.length > 0 || link || (link = can.onaction.route({}, can, item.meta.link, true))
}, target) }, target)
can.page.Select(can, can.ui.header, "div.item:first-child>span", function(target, index) {
can.page.insertBefore(can, [{img: can.misc.ResourceFavicon(can, can.user.info.favicon), style: {height: 42}}], target)
})
}, },
content: function(can, file) { content: function(can, file) {
can.runActionCommand(event, web.WIKI_WORD, [(can.base.beginWith(file, nfs.USR, nfs.SRC)? "": nfs.USR_LEARNING_PORTAL+can.db.current)+file], function(msg) { can.ui.main.innerHTML = msg.Result(), can.onmotion.clear(can, can.ui.aside) can.runActionCommand(event, web.WIKI_WORD, [(can.base.beginWith(file, nfs.USR, nfs.SRC)? "": nfs.USR_LEARNING_PORTAL+can.db.current)+file], function(msg) { can.ui.main.innerHTML = msg.Result(), can.onmotion.clear(can, can.ui.aside)

View File

@ -42,6 +42,11 @@ func init() {
WordAlias(m, LABEL, CHART, LABEL) WordAlias(m, LABEL, CHART, LABEL)
WordAlias(m, CHAIN, CHART, CHAIN) WordAlias(m, CHAIN, CHART, CHAIN)
WordAlias(m, SEQUENCE, CHART, SEQUENCE) WordAlias(m, SEQUENCE, CHART, SEQUENCE)
if ls := kit.SplitLine(m.Cmdx(nfs.CAT, ice.SRC_MAIN_SHY)); len(ls) > 0 {
if list := kit.SplitWord(ls[0]); len(list) > 0 && list[0] == TITLE {
ice.Info.Titles = list[1]
}
}
}}, }},
mdb.SEARCH: {Hand: func(m *ice.Message, arg ...string) { mdb.SEARCH: {Hand: func(m *ice.Message, arg ...string) {
if mdb.IsSearchPreview(m, arg) { if mdb.IsSearchPreview(m, arg) {

View File

@ -51,6 +51,9 @@ func (s info) Title() string {
return p return p
return kit.Capital(p) return kit.Capital(p)
} }
func (s info) IconTitle() string {
return kit.Format("<img src='%s'/><span>%s</span>", Pulse.Resource(s.NodeIcon), s.Title())
}
type info struct { type info struct {
Make MakeInfo Make MakeInfo

View File

@ -65,6 +65,11 @@ var Index = &Context{Name: ICE, Help: "冰山模块", Commands: Commands{
m.Cmd(SOURCE, ETC_INIT_SHY) m.Cmd(SOURCE, ETC_INIT_SHY)
loadImportant(m) loadImportant(m)
m.Cmd(CTX_OPEN) m.Cmd(CTX_OPEN)
m.Travel(func(p *Context, c *Context, key string, cmd *Command) {
if h, ok := cmd.Actions["afterInit"]; ok {
h.Hand(m.Spawn(c, key, cmd), arg...)
}
})
}}, }},
QUIT: {Hand: func(m *Message, arg ...string) { QUIT: {Hand: func(m *Message, arg ...string) {
m.GoSleep300ms(func() { os.Exit(kit.Int(kit.Select("0", arg, 0))) }) m.GoSleep300ms(func() { os.Exit(kit.Int(kit.Select("0", arg, 0))) })