1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 08:48:06 +08:00
This commit is contained in:
shylinux@163.com 2022-09-11 19:18:23 +08:00
parent 1fde613b1f
commit 5733782825
8 changed files with 19 additions and 11 deletions

View File

@ -185,7 +185,7 @@ Volcanos(chat.ONAPPEND, {help: "渲染引擎", _init: function(can, meta, list,
return Volcanos(item.name, {_follow: can.core.Keys(can._follow, item.name), _root: can._root,
_target: can.onappend.input(can, item, args[index]||opts[item.name], option||can._option),
_option: option||can._option, _action: can._action, _output: can._output, _status: can._status,
Option: can.Option, Action: can.Action, Status: can.Status, CloneField: can.Clone,
Option: can.Option, Action: can.Action, Status: can.Status, CloneField: can.Clone, Input: can.Input,
CloneInput: function() { can.onmotion.focus(can, add(item)._target) },
}, [item.display, chat.PLUGIN_INPUT_JS], function(input) { input.Conf(item)
input.run = function(event, cmds, cb, silent) { var msg = can.request(event)
@ -291,7 +291,7 @@ Volcanos(chat.ONAPPEND, {help: "渲染引擎", _init: function(can, meta, list,
},
_status: function(can, list, status) { status = status||can._status, can.onmotion.clear(can, status)
can.core.List(can.base.Obj(list, can.core.Value(can, [chat.ONEXPORT, mdb.LIST])), function(item) { item = can.base.isObject(item)? item: {name: item}
msg = can._msg, item.name == "cost" && (item.value += "/"+msg.Option("_cost")+"ms")
if (item.value && item.value.indexOf && item.value.indexOf("http") == 0) { item.value = can.page.Format(html.A, item.value) }
can.page.Append(can, status, [{view: can.base.join([html.ITEM, item.name]), title: item.name, list: [
{text: [item.name, html.LABEL]}, {text: [": ", html.LABEL]}, {text: [(item.value||"")+"", html.SPAN, item.name]},

View File

@ -96,6 +96,7 @@ Volcanos("misc", {help: "通信协议", Message: function(event, can) { var msg
},
POST: function(can, msg, url, form, cb) { // _method _accept _upload _progress
var xhr = new XMLHttpRequest(); msg._xhr = xhr
var begin = new Date()
xhr.open(msg._method||"POST", url), xhr.onreadystatechange = function() {
if (xhr.readyState != 4) { return }
@ -104,6 +105,7 @@ Volcanos("misc", {help: "通信协议", Message: function(event, can) { var msg
} catch (e) {
var res = {result: [xhr.responseText]}
}
msg.Option("_cost", new Date() - begin)
if (xhr.status == 200) {
return can.base.isFunc(cb) && cb(msg.Copy(res))
}

View File

@ -16,7 +16,7 @@ input[name=offend] { width:48px; }
input[name=id] { width:48px; }
input[name=ID] { width:48px; }
input[type=button] { background-color:black; color:cyan; border:0; }
input[type=button][name=start] { background-color:green; }
input[type=button][name=start] { background-color:blue; }
input[type=button][name=open] { background-color:blue; }
input[type=button][name=stop] { background-color:red; }
input[type=button][name=trash] { background-color:red; }
@ -175,7 +175,7 @@ body.white input[type=password] { background-color:white; }
body.white input[type=text] { background-color:white; }
body.white input[name=cmd] { background-color:black; color:white; }
body.white input[type=button] { background-color:cornflowerblue; color:white; }
body.white input[type=button][name=start] { background-color:green; }
body.white input[type=button][name=start] { background-color:blue; }
body.white input[type=button][name=open] { background-color:blue; }
body.white input[type=button][name=stop] { background-color:red; }
body.white input[type=button][name=trash] { background-color:red; }

View File

@ -131,7 +131,7 @@ Volcanos(chat.ONACTION, {help: "控件交互", list: ["create", "share", "refres
can.onmotion.share(event, can, [{name: chat.TITLE, value: can.Conf(chat.STORM)}], [mdb.TYPE, chat.STORM])
},
refresh: function(event, can) {
var args = {river: can.Conf(chat.RIVER), storm: can.Conf(chat.STORM), topic: can.getHeader(chat.TOPIC), layout: can.getAction(chat.LAYOUT)}
var args = {river: can.Conf(chat.RIVER), storm: can.Conf(chat.STORM), layout: can.getAction(chat.LAYOUT)}
if (can.user.isExtension) { localStorage.setItem(ctx.ARGS, JSON.stringify(args)) }
can.misc.Search(can, args)
},

View File

@ -12,6 +12,9 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
var files = can.core.Split(can.Option(nfs.FILE), ice.FS); can.Option(nfs.FILE, files[0])
can.tabview = can.tabview||{}, can.history = can.history||[], can.toolkit = {}, can.extentions = {}
can.profile_size = {}, can.display_size = {}
can.core.List(paths.concat(msg.modules||[], can.sup.paths||[]), function(p) {
if (paths.indexOf(p) == -1) { paths.push(p) }
}), can.sup.paths = paths
can.page.ClassList.add(can, can._fields, "inner")
can.onmotion.clear(can), can.onlayout.profile(can)
@ -377,7 +380,7 @@ Volcanos(chat.ONSYNTAX, {help: "语法高亮", list: ["keyword", "prefix", "line
function wrap(type, str) { return type? '<span class="'+type+'">'+str+'</span>': str }
var p = can.onsyntax[can.parse]; if (!p) { return line } p = can.onsyntax[p.link]||p, p.split = p.split||{}
p.keyword && (line = can.core.List(can.core.Split(line, p.split.space||"\t ", p.split.operator||"{[(.,:;!|<*>)]}", {detail: true}), function(item, index, array) {
p.keyword && (line = can.core.List(can.core.Split(line, p.split.space||"\t ", p.split.operator||"{[(,:;!|<*>)]}", {detail: true}), function(item, index, array) {
item = can.base.isObject(item)? item: {text: item}; var text = item.text, type = item.keyword||p.keyword[text]
switch (item.type) {
case html.SPACE: return text

View File

@ -3,7 +3,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, args, cb) {
!sub.page.ClassList.has(sub, sub._legend, "select") && can.ui.search.select()
sub.onmotion.clear(sub), sub.onappend.table(sub, msg, function(value, key, index, line) {
return {text: ["", html.TD], list: [{text: [can.page.replace(can, value, ice.PWD, ""), html.DIV]}], onclick: function(event) {
line.line && can.onimport.tabview(can, can.Option(nfs.PATH), line.file.replace(ice.PWD, ""), parseInt(line.line))
line.line && can.onimport.tabview(can, line.path||can.Option(nfs.PATH), line.file.replace(ice.PWD, ""), parseInt(line.line))
}}
}, sub._output), sub.onappend.board(sub, msg.Result()), sub.onappend._status(sub, msg.Option(ice.MSG_STATUS)), can.Status("标签数", msg.Length())
}
@ -35,7 +35,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, args, cb) {
})
show(msg)
},
nfs.TAGS, function(cmds) { msg.Option(kit.Dict(ice.MSG_HANDLE, ice.TRUE, ice.MSG_FIELDS, "file,line,text"))
nfs.TAGS, function(cmds) { msg.Option(kit.Dict(ice.MSG_HANDLE, ice.TRUE, ice.MSG_FIELDS, "path,file,line,text"))
can.runAction(msg, mdb.SEARCH, [can.parse, cmds[0], can.Option(nfs.PATH)], function(msg) { var sub = msg._can
can.page.style(can, sub._output, html.MAX_HEIGHT, can.ConfHeight()/4), show(msg, msg._word = cmds[0])
can.page.ClassList.has(sub, sub._target, html.SELECT) || sub._legend.click()

View File

@ -3,6 +3,8 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
can.onkeymap._build(can), can.onkeymap._plugin({}, can)
can.base.isFunc(cb) && cb(msg)
}, target) } , function(can, name, sub) { name == chat.ONIMPORT && (can.onimport.inner_init = sub._init)
can.page.ClassList.add(can, can._fields, "inner")
can.page.ClassList.add(can, can._fields, "vimer")
if (name == chat.ONACTION) { can._trans = can.base.Copy(can._trans||{}, sub._trans) }
if (name == chat.ONKEYMAP) { can.core.Item(sub._mode, function(mode, value) {
var list = can.onkeymap._mode[mode] = can.onkeymap._mode[mode]||{}
@ -236,7 +238,8 @@ Volcanos(chat.ONKEYMAP, {help: "键盘交互",
},
}, _engine: {},
})
Volcanos(chat.ONACTION, {help: "控件交互", list: [nfs.SAVE, code.COMPILE, code.AUTOGEN, nfs.SCRIPT, chat.WEBSITE, web.DREAM],
Volcanos(chat.ONACTION, {help: "控件交互", list: [],
// list: [nfs.SAVE, code.COMPILE, code.AUTOGEN, nfs.SCRIPT, chat.WEBSITE, web.DREAM],
_run: function(event, can, button, args, cb) {
can.runAction(event, button, args, cb||function(msg) {
can.onimport.tabview(can, can.Option(nfs.PATH), msg.Option(nfs.FILE)), can.ui.source.refresh()

View File

@ -35,7 +35,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, conf, cb, ta
return can.onappend._output(can, msg, msg.Option(ice.MSG_DISPLAY)), true
},
_field: function(can, msg) {
msg.Table(function(item) { item.type = chat.STORY, can.onappend._plugin(can, item, {type: chat.STORY, arg: can.base.Obj(item[ice.ARG], [])}, function(sub, meta) {
msg.Table(function(item) { item.type = chat.STORY, can.onappend._plugin(can, item, {index: item.index, type: chat.STORY, arg: can.base.Obj(item[ice.ARG], [])}, function(sub, meta) {
sub.Conf(can.base.Obj(item.conf))
if (sub.Conf("mode") == "simple") { (function() {
var msg = can.request(); msg.Echo(sub.Conf("result")), sub.ConfHeight(can.ConfHeight()/2)
@ -61,7 +61,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, conf, cb, ta
return true
},
_hold: function(can, msg) { return true },
_hold: function(can, msg, _arg) { _arg && can.user.toast(can, _arg); return true },
_back: function(can) { can._history.pop()
for (var his = can._history.pop(); his; his = can._history.pop()) { if (his[0] == ctx.ACTION) { continue }
var index = 0