1
0
forked from x/volcanos
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, 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), _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: 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) }, CloneInput: function() { can.onmotion.focus(can, add(item)._target) },
}, [item.display, chat.PLUGIN_INPUT_JS], function(input) { input.Conf(item) }, [item.display, chat.PLUGIN_INPUT_JS], function(input) { input.Conf(item)
input.run = function(event, cmds, cb, silent) { var msg = can.request(event) 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) _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} 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) } 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: [ 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]}, {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 POST: function(can, msg, url, form, cb) { // _method _accept _upload _progress
var xhr = new XMLHttpRequest(); msg._xhr = xhr var xhr = new XMLHttpRequest(); msg._xhr = xhr
var begin = new Date()
xhr.open(msg._method||"POST", url), xhr.onreadystatechange = function() { xhr.open(msg._method||"POST", url), xhr.onreadystatechange = function() {
if (xhr.readyState != 4) { return } if (xhr.readyState != 4) { return }
@ -104,6 +105,7 @@ Volcanos("misc", {help: "通信协议", Message: function(event, can) { var msg
} catch (e) { } catch (e) {
var res = {result: [xhr.responseText]} var res = {result: [xhr.responseText]}
} }
msg.Option("_cost", new Date() - begin)
if (xhr.status == 200) { if (xhr.status == 200) {
return can.base.isFunc(cb) && cb(msg.Copy(res)) 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[name=ID] { width:48px; } input[name=ID] { width:48px; }
input[type=button] { background-color:black; color:cyan; border:0; } 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=open] { background-color:blue; }
input[type=button][name=stop] { background-color:red; } input[type=button][name=stop] { background-color:red; }
input[type=button][name=trash] { 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[type=text] { background-color:white; }
body.white input[name=cmd] { background-color:black; 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] { 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=open] { background-color:blue; }
body.white input[type=button][name=stop] { background-color:red; } body.white input[type=button][name=stop] { background-color:red; }
body.white input[type=button][name=trash] { 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]) can.onmotion.share(event, can, [{name: chat.TITLE, value: can.Conf(chat.STORM)}], [mdb.TYPE, chat.STORM])
}, },
refresh: function(event, can) { 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)) } if (can.user.isExtension) { localStorage.setItem(ctx.ARGS, JSON.stringify(args)) }
can.misc.Search(can, 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]) 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.tabview = can.tabview||{}, can.history = can.history||[], can.toolkit = {}, can.extentions = {}
can.profile_size = {}, can.display_size = {} 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.page.ClassList.add(can, can._fields, "inner")
can.onmotion.clear(can), can.onlayout.profile(can) 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 } 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||{} 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] item = can.base.isObject(item)? item: {text: item}; var text = item.text, type = item.keyword||p.keyword[text]
switch (item.type) { switch (item.type) {
case html.SPACE: return text 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.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) { 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) { 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()) }, 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) 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.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.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() 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.onkeymap._build(can), can.onkeymap._plugin({}, can)
can.base.isFunc(cb) && cb(msg) can.base.isFunc(cb) && cb(msg)
}, target) } , function(can, name, sub) { name == chat.ONIMPORT && (can.onimport.inner_init = sub._init) }, 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.ONACTION) { can._trans = can.base.Copy(can._trans||{}, sub._trans) }
if (name == chat.ONKEYMAP) { can.core.Item(sub._mode, function(mode, value) { if (name == chat.ONKEYMAP) { can.core.Item(sub._mode, function(mode, value) {
var list = can.onkeymap._mode[mode] = can.onkeymap._mode[mode]||{} var list = can.onkeymap._mode[mode] = can.onkeymap._mode[mode]||{}
@ -236,7 +238,8 @@ Volcanos(chat.ONKEYMAP, {help: "键盘交互",
}, },
}, _engine: {}, }, _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) { _run: function(event, can, button, args, cb) {
can.runAction(event, button, args, cb||function(msg) { can.runAction(event, button, args, cb||function(msg) {
can.onimport.tabview(can, can.Option(nfs.PATH), msg.Option(nfs.FILE)), can.ui.source.refresh() 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 return can.onappend._output(can, msg, msg.Option(ice.MSG_DISPLAY)), true
}, },
_field: function(can, msg) { _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)) sub.Conf(can.base.Obj(item.conf))
if (sub.Conf("mode") == "simple") { (function() { if (sub.Conf("mode") == "simple") { (function() {
var msg = can.request(); msg.Echo(sub.Conf("result")), sub.ConfHeight(can.ConfHeight()/2) 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 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() _back: function(can) { can._history.pop()
for (var his = can._history.pop(); his; his = can._history.pop()) { if (his[0] == ctx.ACTION) { continue } for (var his = can._history.pop(); his; his = can._history.pop()) { if (his[0] == ctx.ACTION) { continue }
var index = 0 var index = 0