mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 08:48:06 +08:00
opt chat
This commit is contained in:
parent
6d8459e767
commit
a2aabed8c0
11
frame.js
11
frame.js
@ -34,7 +34,7 @@ Volcanos(chat.ONENGINE, {_init: function(can, meta, list, cb, target) {
|
||||
|
||||
var names = msg.Option(chat._NAMES)||panel._names||((can.Conf("iceberg")||Volcanos.meta.iceberg)+panel._name)
|
||||
can.misc.Run(event, can, {names: names, daemon: msg._daemon}, cmds, function(msg) { toast && toast.close(), toast = true
|
||||
can.base.isFunc(cb) && cb(msg), Volcanos.meta.pack[can.core.Keys(panel._name, cmds.join(ice.FS))] = msg
|
||||
can.base.isFunc(cb) && cb(msg)//, Volcanos.meta.pack[can.core.Keys(panel._name, cmds.join(ice.FS))] = msg
|
||||
})
|
||||
},
|
||||
_static: function(event, can, msg, panel, cmds, cb) { if (!can.user.isLocalFile) { return false }
|
||||
@ -54,7 +54,7 @@ Volcanos(chat.ONENGINE, {_init: function(can, meta, list, cb, target) {
|
||||
if (can.base.isUndefined(name) || !can.base.isString(name) || name.indexOf("can.") == -1) { return }
|
||||
if (can.base.isUndefined(command)) { return arguments.callee.meta[can.base.trimPrefix(name, "can.")] }
|
||||
var type = html.TEXT; command.list = can.core.List(command.list, function(item) { return can.base.isString(item) && (item = can.core.SplitInput(item, type)), type = item.type, item })
|
||||
command.can = can, command.name = name, arguments.callee.meta[can.base.trimPrefix(name, "can.")] = command
|
||||
command.can = can, command.meta.name = name, arguments.callee.meta[can.base.trimPrefix(name, "can.")] = command
|
||||
}),
|
||||
listen: shy(function(can, name, cb) { arguments.callee.meta[name] = (arguments.callee.meta[name]||[]).concat(cb) }),
|
||||
signal: function(can, name, msg) { msg = msg||can.request(); var _msg = name == chat.ONREMOTE? msg.Option("_msg"): msg
|
||||
@ -162,6 +162,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
||||
},
|
||||
_output0: function(can, meta, event, cmds, cb, silent) { var msg = can.request(event); if (msg.RunAction(event, can, cmds)) { return }
|
||||
if (msg.Option(ice.MSG_HANDLE) != ice.TRUE && cmds && cmds[0] == ctx.ACTION && meta.feature[cmds[1]]) { var msg = can.request(event, {action: cmds[1]})
|
||||
if (can.base.isFunc(meta.feature[cmds[1]])) { return meta.feature[cmds[1]](can, msg, cmds.slice(2)) }
|
||||
return can.user.input(event, can, meta.feature[cmds[1]], function(args) { can.Update(can.request(event, {_handle: ice.TRUE}, can.Option()), cmds.slice(0, 2).concat(args)) })
|
||||
}
|
||||
return can.onengine._plugin(event, can, msg, can, cmds, cb) || can.run(event, cmds, cb||function(msg) { if (silent) { return }
|
||||
@ -249,10 +250,10 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
||||
tools: function(can, msg, cb, target) { can.onimport.tool(can, can.base.Obj(msg.Option(ice.MSG_TOOLKIT), []), cb, target) },
|
||||
|
||||
_plugin: function(can, value, meta, cb, target, field) { can.base.Copy(meta, value, true)
|
||||
meta.name = meta.name||value&&value.meta&&value.meta.name||""
|
||||
meta.type = meta.type||chat.STORY, meta.height = meta.height||can.ConfHeight(), meta.width = meta.width||can.ConfWidth()
|
||||
meta.args = can.base.getValid(can.base.Obj(meta.args), can.base.Obj(meta.arg), can.base.Obj(value.args), can.base.Obj(value.arg))||[]
|
||||
meta.inputs = can.base.getValid(meta.inputs, can.base.Obj(value.list))||[], meta.feature = can.base.getValid(meta.feature, can.base.Obj(value.meta))||{}
|
||||
if (can.misc.Debug(can, chat.PLUGIN, meta.index, meta.args, meta)) { debugger }
|
||||
can.onappend._init(can, meta, [chat.PLUGIN_STATE_JS], function(sub, skip) {
|
||||
sub.run = function(event, cmds, cb) { can.runActionCommand(event, sub._index, cmds, cb) }
|
||||
sub._index = value.index||meta.index, can.base.isFunc(cb) && cb(sub, meta, skip)
|
||||
@ -261,7 +262,9 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
||||
plugin: function(can, meta, cb, target, field) { meta = meta||{}, meta.index = meta.index||can.core.Keys(meta.ctx, meta.cmd)||ice.CAN_PLUGIN
|
||||
var res = {}; function _cb(sub, meta, skip) { kit.proto(res, sub), cb && cb(sub, meta, skip) } if (can.misc.Debug(can, chat.PLUGIN, meta.index, meta.args, meta)) { debugger }
|
||||
if (meta.inputs && meta.inputs.length > 0 || meta.meta) { can.onappend._plugin(can, {meta: meta.meta, list: meta.list}, meta, _cb, target, field); return res }
|
||||
var value = can.onengine.plugin(can, meta.index); if (value) { can.onappend._plugin(can, value, meta, _cb, target, field); return res }
|
||||
var value = can.onengine.plugin(can, meta.index); if (value) { can.onappend._plugin(can, value, meta, function(sub, meta, skip) {
|
||||
_cb(sub, meta, skip), can.onmotion.delay(can, function() { value.meta && value.meta._init && value.meta._init(sub, meta) })
|
||||
}, target, field); return res }
|
||||
can.runAction(can.request({}, meta), ctx.COMMAND, [meta.index], function(msg) { msg.Table(function(value) { can.onappend._plugin(can, value, meta, _cb, target, field) })}); return res
|
||||
},
|
||||
_float: function(can, index, args) {
|
||||
|
@ -48,6 +48,7 @@ Volcanos("core", {
|
||||
} return begin >= 0 && (s? push({type: lang.STRING, text: str.slice(begin), left: s, right: ""}): push(str.slice(begin))), res
|
||||
},
|
||||
SplitInput: function(item, type) { if (typeof item == lang.OBJECT) { return item } type = type||html.TEXT; switch (item) {
|
||||
case ice.RUN: return {type: type = html.BUTTON, name: item}
|
||||
case mdb.LIST: return {type: type = html.BUTTON, name: item, action: ice.AUTO}
|
||||
case ice.BACK: return {type: type = html.BUTTON, name: item}
|
||||
case mdb.NAME: return {type: type = html.TEXT, name: item}
|
||||
|
@ -1,3 +1,4 @@
|
||||
Volcanos.meta.cache["/lib/lunar.js"] = []
|
||||
var calendar = { // @1900-2100区间内的公历转农历
|
||||
solar2lunar: function(date) { var y = date.getFullYear(), m = date.getMonth()+1, d = date.getDate()
|
||||
var day = (Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) - Date.UTC(1900,0,31))/86400000
|
||||
|
@ -142,9 +142,6 @@ Volcanos("page", {ClassList: {
|
||||
inputs: function(can, list) {
|
||||
var _list = []; for (var i = 0; i < list.length; i++) { switch (list[i]) {
|
||||
case "": _list.push(""); break
|
||||
case ice.RUN:
|
||||
_list.push({type: html.BUTTON, name: ice.RUN})
|
||||
break
|
||||
case ice.AUTO:
|
||||
_list.push({type: html.BUTTON, name: ice.LIST})
|
||||
_list.push({type: html.BUTTON, name: ice.BACK})
|
||||
|
@ -45,7 +45,7 @@ Volcanos("user", {info: {}, agent: {
|
||||
can.user.mod.isCmd && name.push(chat.SIMPLE)
|
||||
can.page.styleClass(can, can._root._target, name.join(ice.SP))
|
||||
},
|
||||
language: function(can) { return can.misc.Search(can, "language") },
|
||||
language: function(can) { return can.misc.Search(can, "language")||can.user.info.language },
|
||||
trans: function(can, text, list) { if (can.base.isFunc(text)) { text = text.name||"" }
|
||||
if (can.base.isObject(text)) { return can.core.Item(text, function(k, v) { can.core.Value(can._trans, k, v) }) }
|
||||
if (can.user.language(can) == "en") { return text } if (can.base.isString(list)) { return list }
|
||||
|
@ -203,7 +203,7 @@ Volcanos(chat.ONPLUGIN, {
|
||||
"command": shy("插件列表", {}, [], function(can, msg, arg) { var meta = can.onengine.plugin.meta
|
||||
can.core.Item(arg[0] == ""? meta: meta[arg[0]]? kit.Dict(arg[0], meta[arg[0]]): {}, function(name, command) {
|
||||
msg.Push(kit.Dict(ice.CTX, ice.CAN, ice.CMD, ctx.COMMAND,
|
||||
mdb.TYPE, ice.CAN, mdb.NAME, name, mdb.TEXT, command.help,
|
||||
mdb.TYPE, ice.CAN, mdb.NAME, name||command.name, mdb.TEXT, command.help,
|
||||
ctx.CONTEXT, ice.CAN, ctx.COMMAND, name, ctx.INDEX, can.core.Keys(ice.CAN, name),
|
||||
), msg.Option(ice.MSG_FIELDS).split(ice.FS))
|
||||
})
|
||||
|
@ -6,7 +6,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) {
|
||||
},
|
||||
_title: function(can, msg, target) { can.user.isMobile || can.core.List(msg.result, function(item) { can.page.Append(can, target, [{view: [chat.TITLE, html.DIV, item], title: "联系站长"}]) }) },
|
||||
_state: function(can, msg, target) {
|
||||
can.core.List(can.base.Obj(can.Conf(chat.STATE)||msg.Option(chat.STATE), ["ncmd", "ntip"]), function(item) {
|
||||
can.core.List(can.base.Obj(can.Conf(chat.STATE)||msg.Option(chat.STATE), ["ntip", "ncmd"]).reverse(), function(item) {
|
||||
can.page.Append(can, target, [{view: [can.base.join([chat.STATE, item]), html.DIV, can.Conf(item)], list: [
|
||||
{text: [item, html.LABEL]}, {text: [": ", html.LABEL]}, {text: [can.Conf(item)||"", html.SPAN, item]},
|
||||
], onclick: function(event) { can.onexport[item](can) }}])
|
||||
@ -45,14 +45,14 @@ Volcanos(chat.ONEXPORT, {height: function(can) { return can._target.offsetHeight
|
||||
return {text: [value, html.TD], onclick: function(event) { can.base.isFunc(cb) && cb(value, key, index, line, list) }}
|
||||
}, ui.output), can.onappend.board(can, msg.Result(), ui.output); return ui
|
||||
},
|
||||
ntip: function(can) { can.onexport.float(can, can._tips, "ntip", function(value, key, index, line) { can.onappend._float(can, "web.code.inner", ["usr/volcanos/"].concat(line.fileline.split(ice.DF))) }) },
|
||||
ntip: function(can) { can.onexport.float(can, can._tips, "ntip", function(value, key, index, line) { can.onappend._float(can, web.CODE_INNER, [ice.USR_VOLCANOS].concat(line.fileline.split(ice.DF))) }) },
|
||||
ncmd: function(can) { can.onexport.float(can, can._cmds, "ncmd", function(value, key, index, line) {
|
||||
var cmds = can.base.Obj(line.cmds); switch (line.follow) {
|
||||
case "can.Action": cmds = cmds.slice(2); break
|
||||
case "can.Footer": cmds = cmds.slice(2); break
|
||||
}
|
||||
switch (cmds[0]) {
|
||||
case "web.wiki.word": cmds = cmds.slice(5); break
|
||||
case web.WIKI_WORD: cmds = cmds.slice(5); break
|
||||
}
|
||||
can.onappend._float(can, cmds[0], cmds.slice(1))
|
||||
}) },
|
||||
|
@ -1,4 +1,4 @@
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, target) {
|
||||
Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) {
|
||||
can.onimport._title(can, msg, target)
|
||||
can.onimport._state(can, msg, target)
|
||||
can.onimport._avatar(can, msg, target)
|
||||
@ -12,7 +12,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, target)
|
||||
})
|
||||
},
|
||||
_state: function(can, msg, target) { if (can.user.isMobile) { return }
|
||||
can.core.List(can.base.Obj(can.Conf(chat.STATE)||msg.Option(chat.STATE), [aaa.USERNICK, mdb.TIME]).reverse(), function(item) {
|
||||
can.core.List(can.base.Obj(can.Conf(chat.STATE)||msg.Option(chat.STATE), [aaa.AVATAR, aaa.USERNICK, mdb.TIME]).reverse(), function(item) {
|
||||
if (item == aaa.AVATAR ) { if (can.user.isLocalFile) { return }
|
||||
can.page.Append(can, target, [{view: can.base.join([chat.STATE, item]), list: [{img: ice.SP}], onmouseenter: function(event) {
|
||||
can.onaction.carte(event, can, [can.page.Format(html.IMG, can.onexport.avatar(can), 160)])
|
||||
@ -107,8 +107,8 @@ Volcanos(chat.ONACTION, {
|
||||
password: function(event, can) { var ui = can.user.input(event, can, [{name: html.PASSWORD, type: html.PASSWORD, action: ice.AUTO}, {name: html.PASSWORD, type: html.PASSWORD, action: ice.AUTO}], function(list) {
|
||||
if (list[0] != list[1]) { return can.user.toast(can, "密码不一致"), ui.focus(), true } can.runAction(event, aaa.PASSWORD, [list[0]])
|
||||
}) },
|
||||
chinese: function(event, can) { can.misc.Search(can, aaa.LANGUAGE, "zh") },
|
||||
english: function(event, can) { can.misc.Search(can, aaa.LANGUAGE, "en") },
|
||||
chinese: function(event, can) { can.runAction(event, aaa.LANGUAGE, ["zh"], function(msg) { can.user.reload() }) },
|
||||
english: function(event, can) { can.runAction(event, aaa.LANGUAGE, ["en"], function(msg) { can.user.reload() }) },
|
||||
clear: function(event, can) { can.onimport.background(event, can, ""), can.onimport.avatar(event, can, "") },
|
||||
logout: function(event, can) { can.user.logout(can) },
|
||||
})
|
||||
@ -118,20 +118,22 @@ Volcanos(chat.ONEXPORT, {height: function(can) { return can._target.offsetHeight
|
||||
avatar: function(can) { return can.user.info.avatar == "void"? "": can.user.info.avatar },
|
||||
})
|
||||
Volcanos(chat.ONPLUGIN, {
|
||||
"title": shy("标题", {}, [chat.TITLE, ice.RUN], function(can, msg, cmds) { can.user.title(cmds[0]) }),
|
||||
"topic": shy("主题", {}, ["topic:select=white,black", ice.RUN], function(can, msg, cmds) { can.onimport.topic(can, cmds[0]) }),
|
||||
"cookie": shy("参数", {}, [mdb.NAME, mdb.VALUE, ice.AUTO], function(can, msg, cmds) {
|
||||
can.core.Item(can.misc.Cookie(can), function(key, value) { if (cmds[0] && key != cmds[0]) { return }
|
||||
msg.Push(mdb.NAME, key), msg.Push(mdb.VALUE, value)
|
||||
})
|
||||
}),
|
||||
"alert": shy("提示", {}, [mdb.TEXT, ice.AUTO], function(can, msg, cmds) { cmds && cmds[0] && can.user.alert(cmds[0]) }),
|
||||
"log": shy("日志", {}, [mdb.TEXT, ice.AUTO], function(can, msg, cmds) { can.misc.Log(cmds) }),
|
||||
"location": shy("地址", {
|
||||
title: shy("标题", {}, [chat.TITLE, ice.LIST], function(can, msg, cmds) { msg.Echo(can.user.title(cmds[0])) }),
|
||||
topic: shy("主题", {
|
||||
_init: function(can) { can.Option(chat.TOPIC, can.getHeader(chat.TOPIC)) },
|
||||
}, ["topic:select=white,black", ice.RUN], function(can, msg, cmds) { msg.Echo(can.onimport.topic(can, cmds[0])) }),
|
||||
alert: shy("提示", {}, [mdb.TEXT, ice.LIST], function(can, msg, cmds) { cmds && cmds[0] && can.user.alert(cmds[0]) }),
|
||||
location: shy("地址", {
|
||||
copy: function(can, msg, cmds) { can.user.copy(msg._event, can, location.href) },
|
||||
}, [mdb.LINK, ice.AUTO, ice.COPY], function(can, msg, cmds, cb) {
|
||||
}, [mdb.LINK, ice.LIST, ice.COPY], function(can, msg, cmds, cb) {
|
||||
can.run(can.request({}, mdb.LINK, location.href), [web.SHARE], function(res) {
|
||||
msg.Echo(res.Append(mdb.TEXT)).Echo(ice.NL).Echo(can.page.Format(html.A, res.Append(mdb.NAME))), can.base.isFunc(cb) && cb(msg)
|
||||
})
|
||||
}),
|
||||
cookie: shy("参数", {}, [mdb.NAME, mdb.VALUE, ice.LIST, ice.BACK], function(can, msg, cmds) {
|
||||
can.core.Item(can.misc.Cookie(can), function(key, value) { if (cmds[0] && key != cmds[0]) { return }
|
||||
msg.Push(mdb.NAME, key), msg.Push(mdb.VALUE, value)
|
||||
})
|
||||
}),
|
||||
log: shy("日志", {}, [mdb.TEXT, ice.LIST], function(can, msg, cmds) { can.misc.Log(cmds) }),
|
||||
})
|
@ -52,7 +52,7 @@ Volcanos(chat.ONACTION, {_init: function(can) { can.onmotion.hidden(can) }, list
|
||||
|
||||
plugin: function(event, can, index) { var line = can.list[index]; if (can.base.isFunc(line.text)) { return can.onmotion.hide(can), line.text(event) }
|
||||
var cmd = line.cmd == ctx.COMMAND? can.core.Keys(line.type, line.name.split(ice.SP)[0]): can.core.Keys(line.ctx, line.cmd)
|
||||
can.onappend.plugin(can, {index: cmd||msg.Option(mdb.INDEX), args: cmd == "web.wiki.word"? [line.name]: []}, function(sub, meta) { can.onmotion.delay(can, function() { sub.Focus() }, 20)
|
||||
can.onappend.plugin(can, {index: cmd||msg.Option(mdb.INDEX), args: cmd == web.WIKI_WORD? [line.name]: []}, function(sub, meta) { can.onmotion.delay(can, function() { sub.Focus() }, 20)
|
||||
sub.onimport.size(sub, can.base.Min(320, can.ConfHeight()-html.ACTION_HEIGHT-can.ui.content.offsetHeight-can.ui.display.offsetHeight)-2*html.ACTION_HEIGHT-1, can.ConfWidth()-1, true)
|
||||
}, can.ui.profile)
|
||||
},
|
||||
|
@ -1,4 +1,4 @@
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
|
||||
Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) {
|
||||
var meta = {}; msg.Table(function(value) { meta[value.key] = value.value })
|
||||
can._list = can.base.Obj(meta.text, {meta: {name: meta.name||html.DIV}, list: []})
|
||||
can.sup._keys = can.sup._keys||can._list.meta.name
|
||||
@ -53,7 +53,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
|
||||
can.onimport._item(can, can._list.meta.name, can._list, can.ui.project, width, height)
|
||||
},
|
||||
}, [""])
|
||||
Volcanos(chat.ONACTION, {help: "操作数据",
|
||||
Volcanos(chat.ONACTION, {
|
||||
"添加": function(event, can) {
|
||||
can.user.input(event, can, [mdb.NAME, ctx.INDEX, ctx.ARGS, ctx.STYLE, html.HEIGHT, html.WIDTH], function(data) {
|
||||
can.current._add({meta: data, list: []})
|
||||
|
@ -1,11 +1,10 @@
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb) {
|
||||
Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) {
|
||||
can.current = msg.TableDetail(), can.onimport.layout(can), can.base.isFunc(cb) && cb(msg)
|
||||
},
|
||||
layout: function(can) { var item = can.current; can.onmotion.clear(can), can.onimport.title(can, item.name||item.link)
|
||||
can.page.Append(can, can._output, [{type: html.IFRAME, src: item.link, height: can.ConfHeight(), width: can.ConfWidth(), style: {border: 0}}])
|
||||
},
|
||||
})
|
||||
Volcanos(chat.ONACTION, {help: "操作数据",
|
||||
Volcanos(chat.ONACTION, {
|
||||
open: function(can) { can.user.open(can.current.link) },
|
||||
})
|
||||
Volcanos(chat.ONEXPORT, {help: "导出数据"})
|
||||
|
@ -1,4 +1,4 @@
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg) {
|
||||
Volcanos(chat.ONIMPORT, {_init: function(can, msg) {
|
||||
can.onappend.table(can, msg), can.onappend.board(can, msg)
|
||||
var meta = {}; msg.Table(function(value, key) { meta[value.key] = value.value })
|
||||
can.require(["/plugin/input/keyboard.js"], function() {
|
||||
|
@ -1,4 +1,4 @@
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
|
||||
Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) {
|
||||
can.onmotion.clear(can), can.onlayout.profile(can), can.base.isFunc(cb) && cb(msg)
|
||||
!can.isCmdMode() && can.ConfHeight(window.innerHeight - 5*html.ACTION_HEIGHT - 5*html.PLUGIN_MARGIN)
|
||||
can.user.isMobile && can.ConfHeight(window.innerHeight-html.ACTION_HEIGHT)
|
||||
@ -242,7 +242,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
|
||||
return new myInfoWindow({map: can.map, position: can.onimport.point(can, item), meta: meta})
|
||||
},
|
||||
})
|
||||
Volcanos(chat.ONACTION, {help: "操作数据", list: [["mode", "select", "insert"],
|
||||
Volcanos(chat.ONACTION, {list: [["mode", "select", "insert"],
|
||||
{type: html.TEXT, name: "zoom", value: 17, range: [3, 21]},
|
||||
{type: html.TEXT, name: "pitch", value: 30, range: [0, 80, 5]},
|
||||
{type: html.TEXT, name: "rotation", value: "0", range: [0, 360, 10]},
|
||||
@ -290,7 +290,7 @@ Volcanos(chat.ONACTION, {help: "操作数据", list: [["mode", "select", "insert
|
||||
return can.base.Copy({left: rect.left+event.point.x, bottom: rect.top+event.point.y, latitude: parseInt(event.latLng.lat*100000), longitude: parseInt(event.latLng.lng*100000)}, item, true)
|
||||
},
|
||||
})
|
||||
Volcanos(chat.ONEXPORT, {help: "导出数据", list: ["nation", "province", "city", "latitude", "longitude", "type", "name", "text"],
|
||||
Volcanos(chat.ONEXPORT, {list: ["nation", "province", "city", "latitude", "longitude", "type", "name", "text"],
|
||||
point: function(can, point, item) { return can.base.Copy({latitude: parseInt(point.lat*100000), longitude: parseInt(point.lng*100000)}, item, true) },
|
||||
center: function(can) { return can.onexport.point(can, can.map.getCenter()) },
|
||||
current: function(can) {
|
||||
|
@ -1,4 +1,4 @@
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
|
||||
Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) {
|
||||
can.ui = can.onlayout.display(can, target)
|
||||
can.ui.canvas = can.page.Append(can, can.ui.display, [{type: "canvas", width: 320, height: 240, style: {display: "none"}}])._target
|
||||
|
||||
@ -14,7 +14,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, ta
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
},
|
||||
})
|
||||
Volcanos(chat.ONACTION, {help: "操作数据", _init: function(can, msg, cb, target) {
|
||||
Volcanos(chat.ONACTION, {_init: function(can, msg, cb, target) {
|
||||
},
|
||||
|
||||
open: function(event, can) {
|
||||
|
@ -1,4 +1,4 @@
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
|
||||
Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) {
|
||||
can.onmotion.clear(can)
|
||||
can.from = can.onimport._plugin(can, nfs.DIR, html.LEFT, "from", "to")
|
||||
can.to = can.onimport._plugin(can, nfs.DIR, html.RIGHT, "to", "from")
|
||||
@ -21,7 +21,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
|
||||
})
|
||||
},
|
||||
})
|
||||
Volcanos(chat.ONACTION, {help: "操作数据",
|
||||
Volcanos(chat.ONACTION, {
|
||||
send: function(can, from, to, event, cmds, cb) { var _from = can[from], _to = can[to]
|
||||
var path = can.request(event).Option(nfs.PATH)
|
||||
var msg = can.request(event, {_handle: ice.TRUE,
|
||||
|
@ -1,4 +1,4 @@
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据",
|
||||
Volcanos(chat.ONIMPORT, {
|
||||
_tabs: function(can) {
|
||||
can.ui._tabs = can.page.insertBefore(can, ["tabs"], can.ui._content), can.ui._path = can.page.insertBefore(can, ["path"], can.ui._content)
|
||||
can.page.Append(can, can.ui._tabs, [{view: [["time", "select"]], style: {"float": html.RIGHT}, _init: function(target) {
|
||||
@ -98,7 +98,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据",
|
||||
return can.Status("跳转数", can.history.length), record
|
||||
},
|
||||
}, [""])
|
||||
Volcanos(chat.ONFIGURE, {help: "索引导航",
|
||||
Volcanos(chat.ONFIGURE, {
|
||||
source: function(can, target, zone, path) { var total = 0
|
||||
function show(target, path) { can.run(can.request({}, {dir_root: path, dir_deep: true}), [nfs.PWD], function(msg) { var list = msg.Table()
|
||||
can.onimport.tree(can, list, nfs.PATH, ice.PS, function(event, item) { can.onimport.tabview(can, path, item.path) }, target)
|
||||
@ -114,7 +114,7 @@ Volcanos(chat.ONFIGURE, {help: "索引导航",
|
||||
}, target), zone._total(total)
|
||||
},
|
||||
})
|
||||
Volcanos(chat.ONSYNTAX, {help: "语法高亮", _init: function(can, msg, cb) {
|
||||
Volcanos(chat.ONSYNTAX, {_init: function(can, msg, cb) {
|
||||
if (can.onmotion.cache(can, function(cache_data) {
|
||||
can.file && (cache_data[can.file] = {current: can.current, max: can.max, profile_display: can.ui.profile.style.display, display_display: can.ui.display.style.display})
|
||||
can.file = can.onexport.keys(can, can.Option(nfs.PATH), can.Option(nfs.FILE))
|
||||
@ -189,10 +189,10 @@ Volcanos(chat.ONSYNTAX, {help: "语法高亮", _init: function(can, msg, cb) {
|
||||
return line
|
||||
},
|
||||
})
|
||||
Volcanos(chat.ONENGINE, {help: "搜索引擎",
|
||||
Volcanos(chat.ONENGINE, {
|
||||
listen: shy("监听事件", function(can, key, cb) { arguments.callee.meta[key] = (arguments.callee.meta[key]||[]).concat(cb) }),
|
||||
})
|
||||
Volcanos(chat.ONACTION, {help: "控件交互",
|
||||
Volcanos(chat.ONACTION, {
|
||||
appendLine: function(can, value) {
|
||||
var ui = can.page.Append(can, can.ui._content, [{type: html.TR, list: [
|
||||
{view: ["line unselectable", html.TD, ++can.max], onclick: function(event) {
|
||||
@ -246,7 +246,7 @@ Volcanos(chat.ONACTION, {help: "控件交互",
|
||||
},
|
||||
back: function(can) { can.history.pop(); var last = can.history.pop(); last && can.onimport.tabview(can, last.path, last.file, last.line) },
|
||||
})
|
||||
Volcanos(chat.ONEXPORT, {help: "导出数据", list: ["文件数", "解析器", "文件名", "当前行", "跳转数"],
|
||||
Volcanos(chat.ONEXPORT, {list: ["文件数", "解析器", "文件名", "当前行", "跳转数"],
|
||||
hash: function(can) { if (!can.isCmdMode()) { return }
|
||||
var list = []; if (can.Option(nfs.PATH) != can.misc.Search(can, nfs.PATH)) { list.push(can.Option(nfs.PATH)) }
|
||||
if (list.length > 0 || can.Option(nfs.FILE) != can.misc.Search(can, nfs.FILE)) { list.push(can.Option(nfs.FILE)) }
|
||||
@ -260,7 +260,7 @@ Volcanos(chat.ONEXPORT, {help: "导出数据", list: ["文件数", "解析器",
|
||||
line: function(can, line) { return parseInt(can.core.Value(can.page.Select(can, line, "td.line")[0], "innerText")) },
|
||||
})
|
||||
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据",
|
||||
Volcanos(chat.ONIMPORT, {
|
||||
_profile: function(can, target) {
|
||||
var ui = can.onimport._panel(can, target, kit.Dict(
|
||||
mdb.LINK, function(event) {
|
||||
@ -335,7 +335,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据",
|
||||
}
|
||||
},
|
||||
}, [""])
|
||||
Volcanos(chat.ONACTION, {help: "控件交互", _trans: {link: "链接", width: "宽度", height: "高度"},
|
||||
Volcanos(chat.ONACTION, {_trans: {link: "链接", width: "宽度", height: "高度"},
|
||||
"搜索": function(event, can) {
|
||||
can.user.input(event, can, [mdb.NAME, [ctx.ACTION, nfs.TAGS, cli.MAKE, nfs.GREP]], function(data) {
|
||||
can.ui.search.Update({}, [ctx.ACTION, data.action, data.name])
|
||||
@ -369,7 +369,7 @@ Volcanos(chat.ONACTION, {help: "控件交互", _trans: {link: "链接", width: "
|
||||
},
|
||||
})
|
||||
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据",
|
||||
Volcanos(chat.ONIMPORT, {
|
||||
_keydown: function(can) { if (!can.isCmdMode()) { return }
|
||||
can.onkeymap._build(can), can._root.onengine.listen(can, chat.ONKEYDOWN, function(event) {
|
||||
if (event.ctrlKey && event.key >= "0" && event.key <= "9") {
|
||||
@ -379,7 +379,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据",
|
||||
})
|
||||
},
|
||||
})
|
||||
Volcanos(chat.ONKEYMAP, {help: "导入数据",
|
||||
Volcanos(chat.ONKEYMAP, {
|
||||
_mode: {
|
||||
plugin: {
|
||||
Escape: shy("切换模式", function(event, can) { can.onaction.clear(event, can) }),
|
||||
@ -394,7 +394,7 @@ Volcanos(chat.ONKEYMAP, {help: "导入数据",
|
||||
}, _engine: {},
|
||||
})
|
||||
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
|
||||
Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) {
|
||||
can.onmotion.clear(can), can.page.ClassList.add(can, can._fields, code.INNER), can.onlayout.profile(can)
|
||||
can.onimport._profile(can, can.ui.profile), can.onimport._display(can, can.ui.display)
|
||||
if (msg.Result() == "" && can.Option(nfs.LINE) == "1") { return }
|
||||
@ -516,7 +516,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
|
||||
})
|
||||
},
|
||||
}, [""])
|
||||
Volcanos(chat.ONACTION, {help: "控件交互", list: [],
|
||||
Volcanos(chat.ONACTION, {list: [],
|
||||
sess: function(event, can) { can.onexport.sess(can), can.user.toastSuccess(can) },
|
||||
listTags: function(event, can, button) { var list = []
|
||||
can.core.Item(can.request(event), function(key, value) { if (key.indexOf("_") == 0) { return }
|
||||
@ -534,7 +534,7 @@ Volcanos(chat.ONACTION, {help: "控件交互", list: [],
|
||||
can.runAction(can.request(event, {text: can.base.Format(list)}), button)
|
||||
},
|
||||
})
|
||||
Volcanos(chat.ONEXPORT, {help: "导出数据",
|
||||
Volcanos(chat.ONEXPORT, {
|
||||
sess: function(can) { can.misc.localStorage(can, "web.code.inner.sess", {"plug": can.onexport.plug(can), "exts": can.onexport.exts(can), "tabs": can.onexport.tabs(can)}) },
|
||||
tabs: function(can) { return can.core.Item(can.tabview, function(key, msg) { return key+ice.DF+can.Option(nfs.LINE) }) },
|
||||
plug: function(can) { return can.core.Item(can.toolkit) },
|
||||
|
@ -1,4 +1,4 @@
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, cb) {
|
||||
Volcanos(chat.ONIMPORT, {_init: function(can, cb) {
|
||||
can.onimport.toolkit(can, {index: "web.code.favor"}, function(sub) {
|
||||
sub.run = function(event, cmds, cb) { var msg = can.request(event)
|
||||
if (can.misc.runAction(can, msg, cmds, cb, kit.Dict(
|
||||
|
@ -1,4 +1,4 @@
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, args, cb) { var SESS = "web.code.sess"
|
||||
Volcanos(chat.ONIMPORT, {_init: function(can, args, cb) { var SESS = "web.code.sess"
|
||||
can.onimport.toolkit(can, {index: SESS}, function(sub) {
|
||||
sub.run = function(event, cmds, cb) { var msg = can.request(event)
|
||||
if (can.misc.runAction(can, msg, cmds, cb, kit.Dict(
|
||||
|
@ -1,4 +1,4 @@
|
||||
Volcanos(chat.ONSYNTAX, {help: "语法高亮",
|
||||
Volcanos(chat.ONSYNTAX, {
|
||||
makefile: {
|
||||
prefix: {
|
||||
"#": code.COMMENT,
|
||||
|
@ -1,4 +1,4 @@
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, args, cb) {
|
||||
Volcanos(chat.ONIMPORT, {_init: function(can, args, cb) {
|
||||
can.onimport.toolkit(can, {index: "web.code.template"}, function(sub) {
|
||||
sub.run = function(event, cmds, cb) { var msg = sub.request(event, can.Option())
|
||||
if (can.misc.runAction(can, msg, cmds, cb, kit.Dict(
|
||||
|
@ -1,4 +1,4 @@
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
|
||||
Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) {
|
||||
can.require(["inner.js"], function(can) { can.onimport.inner_init(can, msg, function() { can.undo = [], can.redo = []
|
||||
can.page.ClassList.add(can, can._fields, code.VIMER)
|
||||
can.onimport._input(can), can.onkeymap._build(can), can.onkeymap._plugin({}, can)
|
||||
@ -25,7 +25,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
|
||||
]); can.ui.current = ui.current, can.ui.complete = ui.complete
|
||||
},
|
||||
}, [""])
|
||||
Volcanos(chat.ONFIGURE, {help: "索引导航",
|
||||
Volcanos(chat.ONFIGURE, {
|
||||
create: function(can, target, zone, path) {
|
||||
can.isCmdMode()? can.onappend._action(can, can.base.Obj(can._msg.Option(ice.MSG_ACTION)).concat(
|
||||
["查找", "git", "首页", "官网" , "文档" , "百度"], window.webview? ["浏览器", "录屏", "编辑器", "日志"]: [],
|
||||
@ -98,7 +98,7 @@ Volcanos(chat.ONFIGURE, {help: "索引导航",
|
||||
})
|
||||
},
|
||||
})
|
||||
Volcanos(chat.ONKEYMAP, {help: "键盘交互",
|
||||
Volcanos(chat.ONKEYMAP, {
|
||||
_model: function(can, value) { can.Status("模式", can.mode = value)
|
||||
can.page.styleClass(can, can.ui.current, ["current", can.mode]), value
|
||||
can.page.styleClass(can, can.ui.complete, [code.COMPLETE, can.mode]), value
|
||||
@ -237,7 +237,7 @@ Volcanos(chat.ONKEYMAP, {help: "键盘交互",
|
||||
},
|
||||
}, _engine: {},
|
||||
})
|
||||
Volcanos(chat.ONACTION, {help: "控件交互",
|
||||
Volcanos(chat.ONACTION, {
|
||||
_daemon: function(event, can, arg) {
|
||||
switch (arg[0]) {
|
||||
case web.DREAM:
|
||||
@ -498,8 +498,8 @@ Volcanos(chat.ONACTION, {help: "控件交互",
|
||||
can.onaction.selectLine(can, can.current.next()), can.onkeymap.cursorMove(target, 0, p)
|
||||
},
|
||||
})
|
||||
Volcanos(chat.ONEXPORT, {help: "导出数据", list: ["文件数", "模式", "按键", "解析器", "文件名", "当前行", "跳转数"]})
|
||||
Volcanos(chat.ONPLUGIN, {help: "注册插件",
|
||||
Volcanos(chat.ONEXPORT, {list: ["文件数", "模式", "按键", "解析器", "文件名", "当前行", "跳转数"]})
|
||||
Volcanos(chat.ONPLUGIN, {
|
||||
"code.vimer.keymap": shy("按键", {}, ["mode", "key", ice.LIST, ice.BACK], function(can, msg, cmds) {
|
||||
can.core.Item(can.onkeymap._mode, function(mode, value) {
|
||||
(!cmds[0] || cmds[0] == mode) && can.core.Item(value, function(key, func) {
|
||||
|
@ -1,4 +1,4 @@
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb) { can.onmotion.clear(can)
|
||||
Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { can.onmotion.clear(can)
|
||||
can.onlayout._init(can)
|
||||
can.requireModules(["xterm/css/xterm.css", "xterm", "xterm-addon-fit", "xterm-addon-web-links"], function() {
|
||||
var item = {hash: can.Option(mdb.HASH)}; msg.Table(function(value) { can.core.Value(item, value.key, value.value) })
|
||||
@ -31,7 +31,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb) { c
|
||||
},
|
||||
grow: function(can, msg) { can._current.write(msg.Option(mdb.TEXT)) },
|
||||
})
|
||||
Volcanos(chat.ONLAYOUT, {help: "界面布局",
|
||||
Volcanos(chat.ONLAYOUT, {
|
||||
_init: function(can) {
|
||||
can.page.style(can, can._output, html.HEIGHT, can.ConfHeight()+8, html.WIDTH, can.ConfWidth()+18, html.MAX_WIDTH, "")
|
||||
can._current && can._current._fit.fit(), can.onexport.term(can)
|
||||
@ -40,12 +40,12 @@ Volcanos(chat.ONLAYOUT, {help: "界面布局",
|
||||
// can.Option(mdb.HASH) && can.Option(mdb.HASH) == can.misc.Search(can, mdb.HASH)? can.sup.onaction.full({}, can.sup): can.onlayout._init(can)
|
||||
},
|
||||
})
|
||||
Volcanos(chat.ONACTION, {help: "操作数据",
|
||||
Volcanos(chat.ONACTION, {
|
||||
refresh: function(event, can, button) { can.onlayout._init(can), can._current.focus() },
|
||||
"波浪线": function(event, can, button) { can.onimport._input(can, "~"), can._current.focus() },
|
||||
"反引号": function(event, can, button) { can.onimport._input(can, "`"), can._current.focus() },
|
||||
})
|
||||
Volcanos(chat.ONEXPORT, {help: "导出数据", list: [mdb.TYPE, mdb.NAME, "rows", "cols", "cursorY", "cursorX"],
|
||||
Volcanos(chat.ONEXPORT, {list: [mdb.TYPE, mdb.NAME, "rows", "cols", "cursorY", "cursorX"],
|
||||
term: function(can) { var term = can._current||{}, item = term._item; if (!item) { return }
|
||||
can.core.List(can.onexport.list, function(key) {
|
||||
can.Status(key, can.base.getValid(item[key], term[key], term.buffer.active[key], ""))
|
||||
|
@ -329,7 +329,7 @@ Volcanos(chat.ONFIGURE, {
|
||||
},
|
||||
},
|
||||
}, [])
|
||||
Volcanos(chat.ONKEYMAP, {help: "键盘交互",
|
||||
Volcanos(chat.ONKEYMAP, {
|
||||
_mode: {
|
||||
normal: {
|
||||
Escape: function(event, can) { can._undo && can._undo(), can.points = [] },
|
||||
|
@ -1,4 +1,4 @@
|
||||
Volcanos("heart", {help: "心形",
|
||||
Volcanos("heart", {
|
||||
data: {name: "path", size: {},
|
||||
copy: ["d", "name", "meta", "tt", "xx", "yy"],
|
||||
x: function(event, can, value, cmd, target) {
|
||||
|
@ -1,4 +1,4 @@
|
||||
Volcanos(chat.ONFIGURE, {help: "图形绘制",
|
||||
Volcanos(chat.ONFIGURE, {
|
||||
path2v: { // <path d="M x0,y0 Q x2,y2 x3,y3 T x1,y1"/>
|
||||
data: {name: "path", size: {}, copy: []},
|
||||
draw: function(event, can, point) {
|
||||
|
@ -1,4 +1,4 @@
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据",
|
||||
Volcanos(chat.ONIMPORT, {
|
||||
init: function(can, msg, cb, output, action, option) {output.innerHTML = "";
|
||||
if (!msg.result || msg.result.length == 0) {
|
||||
var table = can.page.AppendTable(can, msg, output, msg.append);
|
||||
|
@ -1,4 +1,4 @@
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, target) { can.onmotion.clear(can)
|
||||
Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(can)
|
||||
can.page.Modify(can, target, msg.Result())
|
||||
can.page.Select(can, target, wiki.STORY_ITEM, function(target) { var meta = target.dataset||{}
|
||||
can.core.CallFunc([can.onimport, meta.type||target.tagName.toLowerCase()], [can, meta, target])
|
||||
@ -117,7 +117,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, target)
|
||||
})
|
||||
},
|
||||
}, [""])
|
||||
Volcanos(chat.ONKEYMAP, {help: "键盘交互",
|
||||
Volcanos(chat.ONKEYMAP, {
|
||||
_mode: {
|
||||
normal: {
|
||||
"n": function(event, can) { can.ondetail.next(can.sub) },
|
||||
@ -132,7 +132,7 @@ Volcanos(chat.ONKEYMAP, {help: "键盘交互",
|
||||
},
|
||||
}, _engine: {},
|
||||
})
|
||||
Volcanos(chat.ONACTION, {help: "控件交互",
|
||||
Volcanos(chat.ONACTION, {
|
||||
_trans: {view: "视图"},
|
||||
play: function(event, can) { var list = [], current = []
|
||||
can.page.Select(can, can._output, wiki.STORY_ITEM, function(item) {
|
||||
@ -186,7 +186,7 @@ Volcanos(chat.ONACTION, {help: "控件交互",
|
||||
}
|
||||
},
|
||||
})
|
||||
Volcanos(chat.ONDETAIL, {help: "交互操作", list: ["删除"],
|
||||
Volcanos(chat.ONDETAIL, {list: ["删除"],
|
||||
show: function(sub, which) { sub.page.styleClass(sub, sub.ui.content, chat.CONTENT)
|
||||
sub.page.Select(sub, sub.ui.content, html.DIV_PAGE, function(page, index) {
|
||||
if (index == which || page == which) {
|
||||
|
@ -215,7 +215,7 @@ Volcanos(chat.ONEXPORT, {
|
||||
actionHeight: function(can) { return can._action.style.display == html.NONE || can._action.innerHTML == ""? 0: html.ACTION_HEIGHT },
|
||||
record: function(can, line) {},
|
||||
link: function(can) { var meta = can.Conf(), args = can.Option()
|
||||
args.cmd = meta.index||can.core.Keys(meta.ctx, meta.cmd), args.cmd == "web.wiki.word" && (args.cmd = args.path)
|
||||
args.cmd = meta.index||can.core.Keys(meta.ctx, meta.cmd), args.cmd == web.WIKI_WORD && (args.cmd = args.path)
|
||||
return can.misc.MergePodCmd(can, args, true)
|
||||
},
|
||||
})
|
||||
|
@ -1,4 +1,4 @@
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
|
||||
Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) {
|
||||
can.page.ClassList.add(can, target, "form")
|
||||
msg.Push("type", "text")
|
||||
msg.Push("name", "name")
|
||||
|
@ -1,4 +1,4 @@
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
|
||||
Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) {
|
||||
can.page.ClassList.add(can, target, "json")
|
||||
can.onmotion.clear(can, target)
|
||||
can.onappend.table(can, msg), can.onimport.show(can, can.base.Obj(msg.Result(), {}), target)
|
||||
@ -43,7 +43,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
|
||||
}; show(data, can.page.Append(can, target, [{view: html.ITEM}]).item, 0, 0)
|
||||
},
|
||||
}, [""])
|
||||
Volcanos(chat.ONACTION, {help: "组件菜单", list: ["展开", "折叠", "复制"],
|
||||
Volcanos(chat.ONACTION, {list: ["展开", "折叠", "复制"],
|
||||
"展开": function(event, can) {
|
||||
can.page.Select(can, can._output, [html.DIV_LIST, html.DIV_LIST], function(list) {
|
||||
can.onmotion.toggle(can, list, true)
|
||||
|
@ -1,4 +1,4 @@
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
|
||||
Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) {
|
||||
can.onmotion.clear(can, target), can.base.isFunc(cb) && cb(msg)
|
||||
can.requireModules(["gifshot/dist/gifshot.js"], function() {
|
||||
|
||||
@ -27,7 +27,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
|
||||
return src
|
||||
},
|
||||
})
|
||||
Volcanos(chat.ONACTION, {help: "操作数据", list: ["录屏", "摄像"],
|
||||
Volcanos(chat.ONACTION, {list: ["录屏", "摄像"],
|
||||
"录屏": function(event, can) {
|
||||
can.onimport._layout(can, function(target) {
|
||||
navigator.mediaDevices.getDisplayMedia({video: {height: can.ConfHeight()*3/4}}).then(function(stream) { can.stream = stream
|
||||
@ -71,7 +71,7 @@ Volcanos(chat.ONACTION, {help: "操作数据", list: ["录屏", "摄像"],
|
||||
can.onmotion.clear(can, can.ui.output), can.onimport._action(can)
|
||||
},
|
||||
})
|
||||
Volcanos(chat.ONDETAIL, {help: "操作数据", list: ["关闭", "抓拍", "录制"],
|
||||
Volcanos(chat.ONDETAIL, {list: ["关闭", "抓拍", "录制"],
|
||||
"成图": function(event, can) {
|
||||
gifshot.createGIF({
|
||||
'video': [URL.createObjectURL(new Blob(can.ui.blobs, {type : 'video/webm'}))],
|
||||
@ -89,4 +89,4 @@ Volcanos(chat.ONDETAIL, {help: "操作数据", list: ["关闭", "抓拍", "录
|
||||
can.user.download(can, URL.createObjectURL(new Blob(can.ui.blobs, {type: "video/webm"})), "record.webm")
|
||||
},
|
||||
})
|
||||
Volcanos(chat.ONEXPORT, {help: "导出数据", list: ["total"]})
|
||||
Volcanos(chat.ONEXPORT, {list: ["total"]})
|
||||
|
@ -1,4 +1,4 @@
|
||||
Volcanos(chat.ONAPPEND, {help: "渲染引擎", list: ["{", "}", html.HEAD, html.LEFT, html.MAIN, html.FOOT],
|
||||
Volcanos(chat.ONAPPEND, {list: ["{", "}", html.HEAD, html.LEFT, html.MAIN, html.FOOT],
|
||||
_parse: function(can, text, name, height) { var stack = [{_deep: -1, list: []}], finish = false
|
||||
can.core.List(can.core.Split(text, ice.NL, ice.NL, ice.NL), function(line) { if (line == "" || finish) { return }
|
||||
var deep = 0; for (var i = 0; i < line.length; i++) { if (line[i] == ice.SP) { deep++ } else if (line[i] == ice.TB) { deep += 4 } else { break } }
|
||||
|
@ -68,7 +68,7 @@ Volcanos(chat.ONDETAIL, {
|
||||
}
|
||||
for (var node = tree; node; node = node.last) { can.request(event, node.meta) }
|
||||
can.run(can.request(event, can.Option()), can.base.Obj(can.Conf(lex.PREFIX), []).concat([can.Option("repos")||"", tree.file||"", tree.name]), function(msg) {
|
||||
if (msg.Length() == 0) { return can.ondetail.plugin(can, "web.code.inner", [can._msg.Option(nfs.DIR_ROOT), tree.file, tree.line], code.INNER) }
|
||||
if (msg.Length() == 0) { return can.ondetail.plugin(can, web.CODE_INNER, [can._msg.Option(nfs.DIR_ROOT), tree.file, tree.line], code.INNER) }
|
||||
if (msg.Append(mdb.INDEX)) { msg.Table(function(value) { can.ondetail.plugin(can, value.index, []) }); return }
|
||||
|
||||
if (msg.Option(lex.SPLIT)) {
|
||||
|
@ -1,4 +1,4 @@
|
||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
|
||||
Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) {
|
||||
can.onimport.select(can, msg)
|
||||
can.onmotion.clear(can), can.base.isFunc(cb) && cb(msg)
|
||||
can.onappend.table(can, msg), can.onappend.board(can, msg)
|
||||
@ -24,7 +24,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
|
||||
]))
|
||||
},
|
||||
})
|
||||
Volcanos(chat.ONACTION, {help: "控件交互",
|
||||
Volcanos(chat.ONACTION, {
|
||||
next: function(event, can) { var msg = can._msg
|
||||
msg.Table(function(line, index) {
|
||||
if (line.link == location.href) {
|
||||
|
11
proto.js
11
proto.js
@ -51,6 +51,8 @@ var ice = {
|
||||
ErrNotRight: "not right: ",
|
||||
ErrNotFound: "not found: ",
|
||||
ErrNotValid: "not valid: ",
|
||||
|
||||
USR_VOLCANOS: "usr/volcanos/",
|
||||
}
|
||||
|
||||
var ctx = {
|
||||
@ -78,6 +80,9 @@ var web = {
|
||||
GET: "GET", PUT: "PUT", POST: "POST", DELETE: "DELETE",
|
||||
Accept: "Accept", ContentType: "Content-Type",
|
||||
ContentJSON: "application/json", ContentFORM: "application/x-www-form-urlencoded",
|
||||
|
||||
CODE_INNER: "web.code.inner",
|
||||
WIKI_WORD: "web.wiki.word",
|
||||
}
|
||||
var mdb = {
|
||||
DICT: "dict", META: "meta", HASH: "hash", LIST: "list",
|
||||
@ -141,9 +146,7 @@ var chat = {
|
||||
HEADER: "Header", ACTION: "Action",
|
||||
libs: ["/lib/base.js", "/lib/core.js", "/lib/misc.js", "/lib/page.js", "/lib/user.js"],
|
||||
panel_list: [
|
||||
{name: "Header", pos: "head", state: ["avatar", "usernick", "time"]},
|
||||
{name: "River", pos: "left"}, {name: "Action", pos: "main"}, {name: "Search", pos: "auto"},
|
||||
{name: "Footer", pos: "foot", state: ["ncmd", "ntip"]},
|
||||
{name: "Header", pos: "head"}, {name: "River", pos: "left"}, {name: "Action", pos: "main"}, {name: "Search", pos: "auto"}, {name: "Footer", pos: "foot"},
|
||||
],
|
||||
plugin_list: [
|
||||
"/plugin/state.js",
|
||||
@ -329,7 +332,7 @@ try { if (typeof(window) == lang.OBJECT) { // chrome
|
||||
Volcanos.meta.target = document.body, Volcanos.meta._height = window.innerHeight, Volcanos.meta._width = window.innerWidth
|
||||
Volcanos.meta._load = function(url, cb) { switch (url.split("?")[0].split(ice.PT).pop().toLowerCase()) {
|
||||
case nfs.CSS: var item = document.createElement(mdb.LINK); item.rel = "stylesheet", item.href = url, item.onload = cb, document.head.appendChild(item); break
|
||||
default: var item = document.createElement(nfs.SCRIPT); item.src = url, item.onerror = cb, item.onload = cb, document.body.appendChild(item)
|
||||
case nfs.JS: var item = document.createElement(nfs.SCRIPT); item.src = url, item.onerror = cb, item.onload = cb, document.body.appendChild(item); break
|
||||
} }
|
||||
Volcanos.meta._init = function(can) {
|
||||
var last = can.page.width() < can.page.height(); window.onresize = function(event) {
|
||||
|
@ -23,7 +23,7 @@ try { if (typeof(global) == lang.OBJECT) { // nodejs
|
||||
} } catch (e) { console.log(e) }
|
||||
|
||||
_can_name = "./frame.js"
|
||||
Volcanos("onappend", {help: "渲染引擎",
|
||||
Volcanos("onappend", {
|
||||
table: function(can, msg) {
|
||||
var max = {}; msg.Table(function(value, index, array) {
|
||||
for (var k in value) { if (value[k].length > (max[k]||0)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user