1
0
forked from x/icebergs
This commit is contained in:
IT 老营长 @云轩领航-创始人 2024-03-08 21:39:48 +08:00
parent 84fe540a9a
commit 939de032c1
6 changed files with 30 additions and 24 deletions

View File

@ -189,7 +189,8 @@ func init() {
}
}
func SystemFindGo(m *ice.Message) bool { return SystemFind(m, "go") != "" }
func SystemFindGit(m *ice.Message) bool { return SystemFind(m, GIT) != "" }
func SystemFindGo(m *ice.Message) bool { return SystemFind(m, GO) != "" }
func SystemFind(m *ice.Message, bin string, dir ...string) string {
dir = append(dir, EtcPath(m)...)
return _system_find(m, bin, append(dir, _path_split(kit.Env(PATH))...)...)

View File

@ -32,7 +32,7 @@ func _dream_list(m *ice.Message, simple bool) *ice.Message {
m.Push("", value, kit.Slice(head, 0, -1))
if m.IsCliUA() || simple {
m.Push(mdb.TYPE, space[mdb.TYPE]).Push(cli.STATUS, cli.START)
m.Push(nfs.MODULE, space[nfs.MODULE]).Push(nfs.VERSION, space[nfs.VERSION]).Push(mdb.TEXT, "")
m.Push(nfs.MODULE, space[nfs.MODULE]).Push(nfs.VERSION, space[nfs.VERSION]).Push(mdb.TEXT, DreamStat(m, value[mdb.NAME]))
if aaa.IsTechOrRoot(m) {
m.PushButton(cli.STOP)
} else {
@ -573,3 +573,19 @@ func DreamListSpide(m *ice.Message, list []string, types string, cb func(dev, or
func DreamList(m *ice.Message) *ice.Message {
return AdminCmd(m.Options("dream.simple", ice.TRUE), DREAM)
}
func DreamStat(m *ice.Message, name string) (res string) {
if cli.SystemFindGit(m) {
text := []string{}
for _, line := range kit.Split(m.Cmdx(cli.SYSTEM, cli.GIT, "diff", "--shortstat", kit.Dict(cli.CMD_DIR, path.Join(ice.USR_LOCAL_WORK, name))), mdb.FS, mdb.FS) {
if list := kit.Split(line); strings.Contains(line, nfs.FILE) {
text = append(text, kit.Format("<span class='files'>%s file</span>", list[0]))
} else if strings.Contains(line, "ins") {
text = append(text, kit.Format("<span class='add'>%s+++</span>", list[0]))
} else if strings.Contains(line, "del") {
text = append(text, kit.Format("<span class='del'>%s---</span>", list[0]))
}
}
res = strings.Join(text, "")
}
return
}

View File

@ -8,6 +8,11 @@ fieldset.web.matrix>div.output>table.content div.item img { height:var(--header-
fieldset.web.matrix>div.output>table.content div.item img.jpg { padding:var(--input-padding); }
fieldset.web.matrix>div.output>table.content div.item div.title { text-align:left; padding:var(--input-padding); }
fieldset.web.matrix>div.output>table.content div.item div.title>span { cursor:pointer; }
fieldset.web.matrix>div.output>table.content div.item div.title>span.status { font-size:var(--status-font-size); }
fieldset.web.matrix>div.output>table.content div.item div.title>span.status>span { padding:0 var(--input-padding); }
fieldset.web.matrix>div.output>table.content div.item div.title>span.status>span.files { background-color:purple; color:var(--notice-fg-color);}
fieldset.web.matrix>div.output>table.content div.item div.title>span.status>span.add { background-color:var(--notice-bg-color); color:var(--notice-fg-color);}
fieldset.web.matrix>div.output>table.content div.item div.title>span.status>span.del { background-color:var(--danger-bg-color); color:var(--danger-fg-color);}
fieldset.web.matrix>div.output>table.content div.item div.status i { font-size:var(--status-font-size); padding:0; }
fieldset.web.matrix>div.output>table.content div.item div.action { margin-top:var(--input-margin); overflow:hidden; }
fieldset.web.matrix>div.output>table.content div.item div.action input.icons { display:none; }

View File

@ -123,14 +123,9 @@ func init() {
}
_matrix_dream(m, mdb.CREATE, kit.Simple(m.OptionSimple(mdb.ICONS, nfs.REPOS, nfs.BINARY))...)
m.Cmd(SPACE, kit.Keys(m.Option(DOMAIN), m.Option(mdb.NAME)), MESSAGE, mdb.CREATE,
mdb.TYPE, aaa.TECH, mdb.ICONS, nfs.USR_ICONS_VOLCANOS,
TARGET, kit.Keys("from", m.Option(mdb.NAME)),
// "target", kit.Keys(ice.OPS, ice.DEV, m.Option(mdb.NAME)),
)
mdb.TYPE, aaa.TECH, mdb.ICONS, nfs.USR_ICONS_VOLCANOS, TARGET, kit.Keys(nfs.FROM, m.Option(mdb.NAME)))
m.Cmd(SPACE, m.Option(mdb.NAME), MESSAGE, mdb.CREATE,
mdb.TYPE, aaa.TECH, mdb.ICONS, nfs.USR_ICONS_ICEBERGS,
TARGET, kit.Keys(ice.OPS, m.Option(DOMAIN), m.Option(mdb.NAME)),
)
mdb.TYPE, aaa.TECH, mdb.ICONS, nfs.USR_ICONS_ICEBERGS, TARGET, kit.Keys(ice.OPS, m.Option(DOMAIN), m.Option(mdb.NAME)))
StreamPushRefreshConfirm(m, m.Trans("refresh for new space ", "刷新列表查看新空间 ")+kit.Keys(m.Option(DOMAIN), m.Option(mdb.NAME)))
}},
}, ctx.ConfAction(
@ -156,7 +151,7 @@ func init() {
return value
})
m.Action(html.FILTER, mdb.CREATE).StatusTimeCountStats(mdb.TYPE, mdb.STATUS).Display("")
m.Sort("type,status,name,domain", []string{MYSELF, SERVER, MASTER, WORKER, ""}, []string{cli.START, cli.STOP, ""}, "str_r", "str_r")
m.Sort("type,status,name,domain", []string{MYSELF, SERVER, MASTER, WORKER, ""}, []string{cli.START, cli.STOP, ""}, ice.STR_R, ice.STR_R)
ctx.Toolkit(m)
return nil
})

View File

@ -22,13 +22,13 @@ Volcanos(chat.ONIMPORT, {
}}, "", target)
}}
},
item: function(can, item, list) { var name = item.name, domain = item.domain, worker = list[name][""], server = list[""][domain]
item["server.type"] = server.type
item: function(can, item, list) { var name = item.name, domain = item.domain, worker = list[name][""], server = list[""][domain]; item["server.type"] = server.type
function cb(action) { return function(event) { can.Update(can.request(event, item), [ctx.ACTION, action]) } }
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}),
{text: [item.text, "", "status"]},
can.onappend.buttons(can, item),
]},
]}

View File

@ -60,18 +60,7 @@ func init() {
if !m.IsDebug() || !aaa.IsTechOrRoot(m) || !nfs.Exists(m, path.Join(ice.USR_LOCAL_WORK, m.Option(mdb.NAME), _GIT)) {
return
}
text := []string{}
for _, line := range kit.Split(m.Cmdx(cli.SYSTEM, GIT, DIFF, "--shortstat", kit.Dict(cli.CMD_DIR, path.Join(ice.USR_LOCAL_WORK, m.Option(mdb.NAME)))), mdb.FS, mdb.FS) {
if list := kit.Split(line); strings.Contains(line, nfs.FILE) {
text = append(text, list[0]+" file")
} else if strings.Contains(line, "ins") {
text = append(text, list[0]+" +++")
} else if strings.Contains(line, "del") {
text = append(text, list[0]+" ---")
}
}
// m.Push(mdb.TEXT, kit.JoinLine(m.Option(nfs.MODULE), strings.Join(text, ", ")))
m.Push(mdb.TEXT, strings.Join(text, ", "))
m.Push(mdb.TEXT, web.DreamStat(m, m.Option(mdb.NAME)))
m.PushButton(kit.Dict(m.CommandKey(), "源码"))
}},
mdb.DEV_REQUEST: {Name: "dev.request origin*", Help: "授权"},