1
0
forked from x/icebergs
This commit is contained in:
IT 老营长 @云轩领航-创始人 2024-05-15 15:58:50 +08:00
parent bfa6ecefb2
commit 82415d742a
4 changed files with 54 additions and 82 deletions

View File

@ -5,8 +5,10 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg) { can.page.style(can, can._ou
].concat(msg.Table(function(item) { ].concat(msg.Table(function(item) {
return {view: [html.ITEM], list: [{img: can.page.drawText(can, item.name||item.index, 25, 0, 20)}], onclick: function(event) { can.sup.onexport.record(can, item) }} return {view: [html.ITEM], list: [{img: can.page.drawText(can, item.name||item.index, 25, 0, 20)}], onclick: function(event) { can.sup.onexport.record(can, item) }}
}), [ }), [
{view: [[html.MENU, html.TITLE]], list: [{img: can.misc.ResourceFavicon(can, msg.Option(html.FAVICON))}, {text: decodeURIComponent(can.ConfSpace()||can.misc.Search(can, ice.POD)||location.host)}], {view: [[html.MENU, html.TITLE]], list: [
onclick: function(event) { can.sup.onexport.record(can, html.DESKTOP) }}, {img: can.misc.ResourceFavicon(can, msg.Option(html.FAVICON))},
{text: decodeURIComponent(can.ConfSpace()||can.misc.Search(can, ice.POD)||location.host)},
], 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.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

@ -1,6 +1,12 @@
$output>table.content tr.item td:nth-child(2) { color:var(--notice-bg-color); }
$output>table.content tr.index td:nth-child(2) { color:var(--notice-bg-color); }
$output>table.content tr.storm td:nth-child(2) { color:var(--notice-bg-color); }
$output>table.content tr.legend td:nth-child(2) { color:var(--notice-bg-color); } $output>table.content tr.legend td:nth-child(2) { color:var(--notice-bg-color); }
$output>table.content tr.option td:nth-child(2) { color:var(--notice-bg-color); } $output>table.content tr.option td:nth-child(2) { color:var(--notice-bg-color); }
$output>table.content tr.action td:nth-child(2) { color:var(--notice-bg-color); } $output>table.content tr.action td:nth-child(2) { color:var(--notice-bg-color); }
$output>table.content tr.button td:nth-child(2) { color:var(--notice-bg-color); } $output>table.content tr.button td:nth-child(2) { color:var(--notice-bg-color); }
$output>table.content tr.status td:nth-child(2) { color:var(--notice-bg-color); } $output>table.content tr.status td:nth-child(2) { color:var(--notice-bg-color); }
$output>table.content tr.submit td:nth-child(2) { color:var(--notice-bg-color); }
$output>table.content tr.cancel td:nth-child(2) { color:var(--danger-bg-color); }
$output>table.content tr.close td:nth-child(2) { color:var(--danger-bg-color); }
$output>table.content tr.remove td:nth-child(2) { color:var(--danger-bg-color); } $output>table.content tr.remove td:nth-child(2) { color:var(--danger-bg-color); }

View File

@ -14,18 +14,14 @@ func init() {
TUTOR: {Name: "tutor zone id auto", Help: "向导", Actions: ice.MergeActions(ice.Actions{ TUTOR: {Name: "tutor zone id auto", Help: "向导", Actions: ice.MergeActions(ice.Actions{
nfs.SAVE: {Name: "save zone*", Hand: func(m *ice.Message, arg ...string) {}}, nfs.SAVE: {Name: "save zone*", Hand: func(m *ice.Message, arg ...string) {}},
}, mdb.ZoneAction( }, mdb.ZoneAction(
mdb.SHORT, "zone", mdb.FIELD, "time,zone,count", mdb.FIELDS, "time,id,type,name,text", mdb.SHORT, "zone", mdb.FIELD, "time,zone,count", mdb.FIELDS, "time,id,type,text",
)), Hand: func(m *ice.Message, arg ...string) { )), Hand: func(m *ice.Message, arg ...string) {
m.Option("cache.limit", "-1") if mdb.ZoneSelectAll(m, arg...); len(arg) == 0 {
if mdb.ZoneSelect(m, arg...); len(arg) == 0 {
m.Push(mdb.TIME, m.Time()).Push(mdb.ZONE, "_current") m.Push(mdb.TIME, m.Time()).Push(mdb.ZONE, "_current")
} else if m.SortInt(mdb.ID); arg[0] == "_current" {
m.Action(web.PLAY, nfs.SAVE)
} else { } else {
m.SortInt(mdb.ID) m.PushAction(web.SHOW, mdb.VIEW, mdb.DATA).Action(web.PLAY)
if arg[0] == "_current" {
m.Action(web.PLAY, nfs.SAVE)
} else {
m.PushAction(web.SHOW, "view", "data").Action(web.PLAY)
}
} }
m.Display("").DisplayCSS("") m.Display("").DisplayCSS("")
}}, }},

View File

@ -1,92 +1,60 @@
Volcanos(chat.ONIMPORT, { Volcanos(chat.ONIMPORT, {
_init: function(can, msg) { _init: function(can, msg) {
if (can.Option(mdb.ZONE) == "_current" && can._root.Footer.db.tutor) { if (can.Option(mdb.ZONE) == "_current" && can._root.Footer.db.tutor) {
can._root.Footer.db.tutor.Table(function(value) { can._root.Footer.db.tutor.Table(function(value) { msg.Push(value, [mdb.TIME, mdb.TYPE, mdb.TEXT])
msg.Push(value, [mdb.TIME, mdb.TYPE, mdb.TEXT]) if (can.base.isIn(value.type, chat.STORM, mdb.REMOVE)) {
if (can.base.isIn(value.type, "storm", mdb.REMOVE)) {
msg.PushButton(web.SHOW) msg.PushButton(web.SHOW)
} else { } else {
msg.PushButton(web.SHOW, "view", "data") msg.PushButton(web.SHOW, mdb.VIEW, mdb.DATA)
} }
}) })
} } msg.Show(can)
msg.Show(can)
}, },
}) })
Volcanos(chat.ONACTION, { Volcanos(chat.ONACTION, {_trans: {icons: {view: "bi bi-code-slash", data: "bi bi-diagram-3"}},
_trans: {
icons: {
view: "bi bi-code-slash", data: "bi bi-diagram-3",
},
},
save: function(event, can) { save: function(event, can) {
can.user.input(event, can, ["zone"], function(data) { can.user.input(event, can, [mdb.ZONE], function(data) {
can.core.Next(can._msg.Table(), function(value, next, index, list) { can.core.Next(can._msg.Table(), function(value, next, index, list) { can.user.toastProcess(can, `save ${data.zone} ${index}/${list.length}`)
can.user.toastProcess(can, `save ${data.zone} ${index}/${list.length}`) var args = [ctx.ACTION, mdb.INSERT, mdb.ZONE, data.zone]; can.core.Item(value, function(k, v) { args.push(k, v) })
var args = [ctx.ACTION, mdb.INSERT, mdb.ZONE, data.zone]; can.core.Item(value, function(key, value) { args.push(key, value) })
can.run(can.request(event, {_handle: ice.TRUE}), args, function() { next() }) can.run(can.request(event, {_handle: ice.TRUE}), args, function() { next() })
}, function() { }, function() { can.user.toastSuccess(can) })
can.user.toastSuccess(can)
})
}) })
}, },
play: function(can) { play: function(can) {
can.core.Next(can._msg.Table(), function(value, next, index, list) { var delay = 30 can.core.Next(can._msg.Table(), function(value, next, index, list) { var delay = 30
if (list[index+1]) { delay = (Date.parse(list[index+1].time)-Date.parse(value.time)) } if (list[index+1]) { delay = (Date.parse(list[index+1].time)-Date.parse(value.time)) }
can.onaction.show(can, value.type, value.text, delay), can.onmotion.delay(can, next, delay)
can.onmotion.select(can, can.page.SelectOne(can, can._output, "tbody"), html.TR, index)
can.user.toastProcess(can, `show ${index}/${list.length} ${value.type} ${delay}ms`) can.user.toastProcess(can, `show ${index}/${list.length} ${value.type} ${delay}ms`)
}, function() { can.onmotion.select(can, can.page.SelectOne(can, can._output, html.TBODY), html.TR, index)
can.user.toastSuccess(can, "play done") can.onaction.show(can, value.type, value.text, delay, next)
}) }, function() { can.user.toastSuccess(can) })
}, },
show: function(can, type, text, delay) { var ls = text.split(",") show: function(can, type, text, delay, next) { var ls = text.split(","), target = can.page.SelectOne(can, document.body, ls[0])
switch (type) { switch (type) {
case "theme": can._root.Header.onimport.theme(can._root.Header, text, {}); break case chat.THEME: can._root.Header.onimport.theme(can._root.Header, text, {}); break
case "storm": can._root.River.onaction.action({}, can._root.River, ls[0], ls[1]); break case chat.STORM: can._root.River.onaction.action({}, can._root.River, ls[0], ls[1]); break
case "index": can.page.Select(can, document.body, "fieldset.panel.Header>div.output>div.Action>div._tabs>div.tabs."+text, function(target) { target.click() }); break case ctx.INDEX: can.page.Select(can, document.body, "fieldset.panel.Header>div.output>div.Action>div._tabs>div.tabs."+text, function(target) { target.click() }); break
case "click": case html.LEGEND:
case "legend": case html.OPTION:
case "option": case html.ACTION:
case "action": case html.BUTTON:
case "button": case html.STATUS:
case "status": case html.SUBMIT:
can.page.Select(can, document.body, text, function(target) { var count = 5 case html.CANCEL:
can.core.Next(can.core.List(count), function(value, next, index) { can.page.ClassList.add(can, target, "picker") case html.CLOSE:
can.onmotion.delay(can, function() { can.page.ClassList.del(can, target, "picker"), can.onmotion.delay(can, function() { next() }, delay/5/4) }, delay/5/4) case html.ITEM:
}, function() { target.click() }) case html.CLICK: var count = 5; delay = can.base.Min(delay, 3000)
}) can.core.Next(can.core.List(count), function(value, next, index) { can.page.ClassList.add(can, target, html.PICKER)
break can.onmotion.delay(can, function() { can.page.ClassList.del(can, target, html.PICKER), can.onmotion.delay(can, function() { next() }, delay/count/4) }, delay/count/4)
case "focus": can.page.Select(can, document.body, ls[0], function(target) { target.focus() }); break }, function() { target.click() }); break
case "blur": can.page.Select(can, document.body, ls[0], function(target) { target.value = ls[1], can.onmotion.delay(can, function() { target.blur() }, 300) }); break case html.FOCUS: target.focus(); break
case "item": can.page.Select(can, document.body, ls[0], function(target) { can.onmotion.delay(can, function() { target._can.sub.ui[ls[1]].click() }) }); break case html.BLUR: target.value = ls[1], can.onmotion.delay(can, function() { target.blur() }, 300); break
case "remove": can.page.Select(can, document.body, text, function(target) { can.page.Remove(can, target) }); break case mdb.REMOVE: can.page.Remove(can, target); break
} } next && can.onmotion.delay(can, function() { next() }, delay)
},
view: function(can, type, text, delay) {
can.onappend._float(can, "can.view", [], function(sub) {
if (type == "click") {
can.page.Select(can, document.body, can.core.Split(text, ">,")[0], function(target) {
sub.Conf("_target", target)
})
} else if (type == "index") {
can.page.Select(can, document.body, "fieldset.plugin."+text, function(target) {
sub.Conf("_target", target)
})
}
})
},
data: function(can, type, text, delay) {
can.onappend._float(can, "can.data", [], function(sub) {
if (type == "click") {
can.page.Select(can, document.body, can.core.Split(text, ">,")[0], function(target) {
sub.Conf("_target", target._can)
})
} else if (type == "index") {
can.page.Select(can, document.body, "fieldset.plugin."+text, function(target) {
sub.Conf("_target", target._can)
})
}
})
}, },
view: function(can, type, text) { can.onappend._float(can, "can.view", [], function(sub) {
can.page.Select(can, document.body, type == ctx.INDEX? "fieldset.plugin."+text: can.core.Split(text, ">,")[0], function(target) { sub.Conf("_target", target) })
}) },
data: function(can, type, text) { can.onappend._float(can, "can.data", [], function(sub) {
can.page.Select(can, document.body, type == ctx.INDEX? "fieldset.plugin."+text: can.core.Split(text, ">,")[0], function(target) { sub.Conf("_target", target._can) })
}) },
}) })