mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 08:48:06 +08:00
opt some
This commit is contained in:
parent
521e25fe6d
commit
d6fffd47f4
13
frame.js
13
frame.js
@ -198,6 +198,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
_action: function(can, list, action, meta) {
|
||||
list = can.base.getValid(list, can.core.Item(meta))
|
||||
list = can.base.Obj(list, can.core.Value(can, [chat.ONACTION, mdb.LIST]))
|
||||
if (!list) { return }
|
||||
var _list = []; for (var i = 0; i < list.length; i++) {
|
||||
switch (list[i]) { case "": _list.push(""); break
|
||||
case mdb.PAGE:
|
||||
@ -220,7 +221,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
}) ()
|
||||
}
|
||||
}
|
||||
meta = meta||can.onaction, action = action||can._action, can.onmotion.clear(can, action)
|
||||
meta = meta||can.onaction||{}, action = action||can._action, can.onmotion.clear(can, action)
|
||||
return can.core.List(_list, function(item) { if (item == undefined) { return } can.onappend.input(can, item == ""? /*空白*/ {type: html.SPACE}:
|
||||
can.base.isString(item)? /*按键*/ {type: html.BUTTON, value: can.user.trans(can, item), onclick: function(event) {
|
||||
var cb = meta[item]||meta["_engine"]; cb? can.core.CallFunc(cb, {event: event, can: can, button: item}): can.run(event, [ctx.ACTION, item].concat(can.sup.Input()))
|
||||
@ -271,13 +272,13 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
var process = msg._can == can || msg._can == sub
|
||||
if (process && can.core.CallFunc([sub, chat.ONIMPORT, ice.MSG_PROCESS], {can: sub, msg: msg})) { return }
|
||||
if (process && can.core.CallFunc([can, chat.ONIMPORT, ice.MSG_PROCESS], {can: can, msg: msg})) { return }
|
||||
!silent && can.onappend._output(can, msg, msg.Option(ice.MSG_DISPLAY)||meta.display||meta.feature.display)
|
||||
!silent && can.onappend._output(can, msg, msg.Option(ice.MSG_DISPLAY)||meta.display||meta.feature.display, can._output, can._action)
|
||||
})
|
||||
},
|
||||
_output: function(can, msg, display, output, action, cb) { display = display||chat.PLUGIN_TABLE_JS, output = output||can._output
|
||||
Volcanos(display, {_follow: can.core.Keys(can._follow, display), _display: display, _target: output, _fields: can._target,
|
||||
_option: can._option, _action: can._action, _output: can._output, _status: can._status, _legend: can._legend, _inputs: {},
|
||||
Update: can.Update, Option: can.Option, Action: can.Action, Status: can.Status,
|
||||
Update: can.Update, Option: can.Option, Action: can.Action, Status: can.Status, _root: can._root,
|
||||
}, [display, chat.PLUGIN_TABLE_JS], function(table) { table.Conf(can.Conf())
|
||||
table.run = function(event, cmds, cb, silent) { var msg = can.request(event)
|
||||
if (msg.RunAction(event, table, cmds)) { return }
|
||||
@ -423,7 +424,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
|
||||
}, ondblclick: function(event) { if ([mdb.KEY].indexOf(key) > -1) { return }
|
||||
var item = can.core.List(can.Conf("feature.insert"), function(item) { if (item.name == key) { return item } })[0]||{name: key, value: value}
|
||||
item.run = function(event, cmds, cb) { can.run(can.request(event, line)._event, cmds, cb, true) }
|
||||
item.run = function(event, cmds, cb) { can.run(can.request(event, line), cmds, cb, true) }
|
||||
can.onmotion.modifys(can, event.target, function(event, value, old) { run([ctx.ACTION, mdb.MODIFY, key, value]) }, item)
|
||||
}}
|
||||
}); table && can.page.Modify(can, table, {className: chat.CONTENT})
|
||||
@ -665,7 +666,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
}
|
||||
}
|
||||
can.base.isFunc(cbs) && cbs(sub, meta, skip)
|
||||
}, target): /* 后端命令 */ can.run(can.request({}, meta)._event, [ctx.ACTION, ctx.COMMAND, meta.index], function(msg) { msg.Table(function(value) {
|
||||
}, target): /* 后端命令 */ can.run(can.request({}, meta), [ctx.ACTION, ctx.COMMAND, meta.index], function(msg) { msg.Table(function(value) {
|
||||
can.onappend._plugin(can, value, meta, cbs, target)
|
||||
}) }, true)
|
||||
return res
|
||||
@ -903,7 +904,7 @@ Volcanos("onmotion", {help: "动态特效", list: [], _init: function(can, targe
|
||||
},
|
||||
share: function(event, can, input, args) {
|
||||
return can.user.input(event, can, input, function(ev, button, data, list, _args) {
|
||||
can.search(can.request(event, {args: [mdb.TYPE, chat.FIELD].concat(args||[], _args||[])})._event, [["Header", chat.ONACTION, web.SHARE]])
|
||||
can.search(can.request(event, {args: [mdb.TYPE, chat.FIELD].concat(args||[], _args||[])}), [["Header", chat.ONACTION, web.SHARE]])
|
||||
})
|
||||
},
|
||||
|
||||
|
@ -2,7 +2,7 @@ Volcanos("misc", {help: "通信协议", Message: function(event, can) { var msg
|
||||
var proto = {_event: event, _can: can,
|
||||
RunAction: function(event, sub, cmds, meta) { var msg = can.request(event); meta = meta || sub&&sub.onaction || {}
|
||||
if (msg.Option(ice.MSG_HANDLE) == ice.TRUE) { return }
|
||||
if (cmds && cmds[0] == ctx.ACTION && can.base.isFunc(meta[cmds[1]])) {
|
||||
if (cmds && cmds[0] == ctx.ACTION && can.base.isFunc(meta[cmds[1]])) { event = event._event||event
|
||||
return msg.Option(ice.MSG_HANDLE, ice.TRUE), can.core.CallFunc(meta[cmds[1]], {event: event, can: sub, msg: msg, button: cmds[1], cmd: cmds[1]}), true
|
||||
}
|
||||
return false
|
||||
|
@ -131,7 +131,7 @@ Volcanos("user", {help: "用户操作", info: {}, agent: {
|
||||
return !meta.action && can.onmotion.float.add(can, chat.TOAST, action), action
|
||||
},
|
||||
share: function(can, msg, cmd) {
|
||||
can.run(msg._event, cmd||[ctx.ACTION, chat.SHARE], function(msg) {
|
||||
can.run(msg, cmd||[ctx.ACTION, chat.SHARE], function(msg) {
|
||||
can.user.toast(can, {height: 300, width: 500,
|
||||
title: msg.Append(mdb.NAME), duration: -1,
|
||||
content: msg.Append(mdb.TEXT), action: [cli.CLOSE, cli.OPEN],
|
||||
@ -313,7 +313,7 @@ Volcanos("user", {help: "用户操作", info: {}, agent: {
|
||||
},
|
||||
select: function(event, can, type, fields, cb, cbs) {
|
||||
var msg = can.request(event, {fields: fields||"type,name,text"})
|
||||
can.search(msg._event, ["Search.onimport.select", type, "", ""], function(list) {
|
||||
can.search(msg, ["Search.onimport.select", type, "", ""], function(list) {
|
||||
can.core.Next(list, cb, cbs||function() {
|
||||
can.user.toastSuccess(can)
|
||||
})
|
||||
|
@ -13,7 +13,7 @@ fieldset.Action.free>div.output fieldset.plugin.select { display:block; }
|
||||
fieldset.Action.flow>div.output fieldset.plugin { float:left; }
|
||||
|
||||
fieldset.Action div.output fieldset.plugin.Full { background-color:#073947f2; padding:0; margin:0; position:fixed; left:0; top:0; overflow:auto; z-index:10; }
|
||||
fieldset.Action div.output fieldset.plugin.Full>legend { float:left; display:contents; }
|
||||
fieldset.Action div.output fieldset.plugin.Full>legend { float:left; display:block; }
|
||||
fieldset.Action div.output fieldset.story.Full { background-color:#073947f2; padding:0; margin:0; position:fixed; left:0; top:0; overflow:auto; z-index:10; }
|
||||
fieldset.Action div.output fieldset.story.Full>legend { height:30px; float:left; }
|
||||
fieldset.Action>div.project.toggle {
|
||||
|
@ -186,7 +186,7 @@ Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, cb, t
|
||||
can.Conf(chat.TOOL)? can.core.Next(can.Conf(chat.TOOL), function(item, next) {
|
||||
can.onimport._cmd(can, item, next)
|
||||
|
||||
}): can.run(can.request()._event, [ctx.ACTION, ctx.COMMAND], function(msg) {
|
||||
}): can.run(can.request(), [ctx.ACTION, ctx.COMMAND], function(msg) {
|
||||
can.core.Next(msg.Table(), function(item, next) {
|
||||
can.onimport._cmd(can, item, next)
|
||||
})
|
||||
|
@ -222,19 +222,19 @@ Volcanos("ondetail", {help: "菜单交互",
|
||||
},
|
||||
"重命名群组": function(event, can, button, river) {
|
||||
can.user.input(event, can, [mdb.NAME], function(event, button, meta, list) {
|
||||
can.run(can.request(event, {hash: river})._event, [ctx.ACTION, mdb.MODIFY, mdb.NAME, meta.name], function(msg) {
|
||||
can.run(can.request(event, {hash: river}), [ctx.ACTION, mdb.MODIFY, mdb.NAME, meta.name], function(msg) {
|
||||
can.misc.Search(can, {river: river})
|
||||
})
|
||||
})
|
||||
},
|
||||
"删除群组": function(event, can, button, river) {
|
||||
can.run(can.request(event, {hash: river})._event, [ctx.ACTION, mdb.REMOVE], function(msg) { can.misc.Search(can, {}) })
|
||||
can.run(can.request(event, {hash: river}), [ctx.ACTION, mdb.REMOVE], function(msg) { can.misc.Search(can, {}) })
|
||||
},
|
||||
|
||||
"保存参数": function(event, can, button, river, storm) {
|
||||
can.getAction(ctx.ARGS, function(item, next, index, array) { var msg = can.request({}, {hash: storm, id: item.dataset.id})
|
||||
var toast = can.user.toast(can, (index+1)+ice.PS+array.length, button, 10000, (index+1)*100/array.length)
|
||||
can.run(msg._event, [river, chat.STORM, ctx.ACTION, mdb.MODIFY, ice.ARG, item.dataset.args], function(msg) {
|
||||
can.run(msg, [river, chat.STORM, ctx.ACTION, mdb.MODIFY, ice.ARG, item.dataset.args], function(msg) {
|
||||
can.core.Timer(200, function() {
|
||||
toast.close(), next(), index == array.length-1 && can.user.toastSuccess(can, button)
|
||||
})
|
||||
@ -243,13 +243,13 @@ Volcanos("ondetail", {help: "菜单交互",
|
||||
},
|
||||
"重命名应用": function(event, can, button, river, storm) {
|
||||
can.user.input(event, can, [mdb.NAME], function(ev, button, meta, list, args) {
|
||||
can.run(can.request(event, {hash: storm})._event, [river, chat.STORM, ctx.ACTION, mdb.MODIFY].concat(args), function(msg) {
|
||||
can.run(can.request(event, {hash: storm}), [river, chat.STORM, ctx.ACTION, mdb.MODIFY].concat(args), function(msg) {
|
||||
can.misc.Search(can, {river: river, storm: storm})
|
||||
})
|
||||
})
|
||||
},
|
||||
"删除应用": function(event, can, button, river, storm) {
|
||||
can.run(can.request(event, {hash: storm})._event, [river, chat.STORM, ctx.ACTION, mdb.REMOVE], function(msg) {
|
||||
can.run(can.request(event, {hash: storm}), [river, chat.STORM, ctx.ACTION, mdb.REMOVE], function(msg) {
|
||||
can.misc.Search(can, {river: river})
|
||||
})
|
||||
},
|
||||
|
@ -27,7 +27,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
})
|
||||
|
||||
can.onengine.signal(can, chat.ONSEARCH, res)
|
||||
can.run(res._event, cmds, function(res) { can.onimport._init(can, res, fields) })
|
||||
can.run(res, cmds, function(res) { can.onimport._init(can, res, fields) })
|
||||
can.onmotion.show(can), can.onmotion.focus(can, can.ui.word)
|
||||
},
|
||||
|
||||
|
@ -170,7 +170,7 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target
|
||||
}}, {view: html.LIST}]); list = ui.list
|
||||
if (index > 0) { ui.item.click() }
|
||||
}
|
||||
can.run(can.request({}, {dir_root: path, dir_deep: true})._event, [ice.PWD], function(msg) { can._file = msg.Table()
|
||||
can.run(can.request({}, {dir_root: path, dir_deep: true}), [ice.PWD], function(msg) { can._file = msg.Table()
|
||||
can.core.List(can._file, function(item) { if (can.Option(nfs.FILE).indexOf(item.path) == 0) { item.expand = true } })
|
||||
can.onappend.tree(can, can._file, nfs.PATH, ice.PS, function(event, item) {
|
||||
can.onimport.tabview(can, path, item.path)
|
||||
@ -178,7 +178,7 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target
|
||||
}, true)
|
||||
}, function() { can.base.isFunc(cb) && cb() })
|
||||
|
||||
can.run(can.request({}, {fields: "index"})._event, [ctx.ACTION, ctx.COMMAND, "search", "command"], function(msg) {
|
||||
can.run(can.request({}, {fields: "index"}), [ctx.ACTION, ctx.COMMAND, "search", "command"], function(msg) {
|
||||
can.onappend.tree(can, msg.Table(), ctx.INDEX, ice.PT, function(event, item) {
|
||||
can.onimport.tabview(can, can.Option(nfs.PATH), item.index, ctx.INDEX)
|
||||
}, project.module)
|
||||
|
@ -36,21 +36,21 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, args, cb) { var
|
||||
show(msg)
|
||||
},
|
||||
nfs.TAGS, function(cmds) { msg.Option(kit.Dict(ice.MSG_HANDLE, ice.TRUE, ice.MSG_FIELDS, "file,line,text"))
|
||||
can.run(msg._event, [ctx.ACTION, mdb.SEARCH, can.parse, cmds[0], can.Option(nfs.PATH)], function(msg) { var sub = msg._can
|
||||
can.run(msg, [ctx.ACTION, 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()
|
||||
can.onmotion.focus(can, msg._can._inputs["word"]._target)
|
||||
}, true)
|
||||
},
|
||||
nfs.GREP, function(cmds) { msg.Option(kit.Dict(ice.MSG_HANDLE, ice.TRUE, ice.MSG_FIELDS, "file,line,text", nfs.PATH, can.Option(nfs.PATH)))
|
||||
can.run(msg._event, [ctx.ACTION, nfs.GREP, cmds[0]], function(msg) { var sub = msg._can
|
||||
can.run(msg, [ctx.ACTION, nfs.GREP, cmds[0]], 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()
|
||||
can.onmotion.focus(can, msg._can._inputs["word"]._target)
|
||||
}, true)
|
||||
},
|
||||
"last", function(cmds) { history.pop(), show(history.pop()) },
|
||||
))) { return } can.run(msg._event, cmds, function(msg) { show(msg) }, true) }))
|
||||
))) { return } can.run(msg, cmds, function(msg) { show(msg) }, true) }))
|
||||
can.onimport.toolkit(can, {index: SEARCH}, function(sub) {
|
||||
can.ui.search = sub, can.base.isFunc(cb) && cb(sub)
|
||||
can.ui.search._show = show
|
||||
|
@ -134,7 +134,7 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target
|
||||
|
||||
can.core.Value(item, "auto.cmd") && can.core.Timer300ms(function() {
|
||||
var msg = sub.request({}, can.core.Value(item, "opts")); msg.Option(ice.MSG_HANDLE, ice.TRUE)
|
||||
sub.Update(msg._event, [ctx.ACTION, can.core.Value(item, "auto.cmd")])
|
||||
sub.Update(msg, [ctx.ACTION, can.core.Value(item, "auto.cmd")])
|
||||
})
|
||||
}, can._output, target)
|
||||
},
|
||||
|
@ -7,10 +7,10 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, conf,
|
||||
_location: function(can, msg, _arg) { location.href = _arg; return true },
|
||||
_replace: function(can, msg, _arg) { location.replace(_arg); return true },
|
||||
_history: function(can, msg) { history.back(); return true },
|
||||
_confirm: function(can, msg, _arg) { can.user.confirm(_arg) && can.runAction(can.request({}, msg)._event, "confirm"); return true },
|
||||
_confirm: function(can, msg, _arg) { can.user.confirm(_arg) && can.runAction(can.request({}, msg), "confirm"); return true },
|
||||
_refresh: function(can, msg) {
|
||||
can.core.Timer(parseInt(msg.Option("_delay")||"500"), function() {
|
||||
can.Update(can.request({}, {_count: parseInt(msg.Option("_count"))-1})._event)
|
||||
can.Update(can.request({}, {_count: parseInt(msg.Option("_count"))-1}))
|
||||
})
|
||||
return true
|
||||
},
|
||||
@ -90,23 +90,21 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, conf,
|
||||
})
|
||||
Volcanos("onaction", {help: "交互操作", list: [
|
||||
"刷新数据", "切换全屏", "共享工具", "打开链接", "生成链接", "生成脚本", "生成图片", [
|
||||
"其它", "清空参数", "扩展参数", "复制数据", "下载数据", "清空数据", "删除工具",
|
||||
"其它", "刷新页面", "清空参数", "扩展参数", "复制数据", "下载数据", "清空数据", "删除工具",
|
||||
],
|
||||
], _init: function(can, msg, list, cb, target) {},
|
||||
_engine: function(event, can, button) { can.Update(event, [ctx.ACTION, button].concat(can.Input([], true))) },
|
||||
|
||||
"刷新数据": function(event, can) { can.Update({}, can.Input([], true)) },
|
||||
"切换全屏": function(event, can) { var sub = can._outputs[can._outputs.length-1]
|
||||
if (can.page.ClassList.neg(can, can._target, "Full")) {
|
||||
sub._height_bak = sub.ConfHeight(), sub._width_bak = sub.ConfWidth()
|
||||
var height = window.innerHeight-(can._status.innerText? 2: 1)*html.ACTION_HEIGHT
|
||||
can.user.isMobile && (height -= 2*html.ACTION_HEIGHT)
|
||||
if (can.page.ClassList.neg(can, can._target, "Full")) { sub._height_bak = sub.ConfHeight(), sub._width_bak = sub.ConfWidth()
|
||||
var height = window.innerHeight-(can._status.innerText? 2: 1)*html.ACTION_HEIGHT; can.user.isMobile && (height -= 2*html.ACTION_HEIGHT)
|
||||
can.page.style(can, can._output, html.HEIGHT, sub.ConfHeight(height), html.MIN_WIDTH, sub.ConfWidth(window.innerWidth))
|
||||
can.core.CallFunc([sub, "onimport.layout"], {can: sub})
|
||||
} else {
|
||||
sub.ConfHeight(sub._height_bak), sub.ConfWidth(sub._width_bak)
|
||||
can.core.CallFunc([sub, "onimport.layout"], {can: sub})
|
||||
can.page.style(can, can._output, html.HEIGHT, "", html.MIN_WIDTH, "")
|
||||
can.core.CallFunc([sub, "onimport.layout"], {can: sub})
|
||||
}
|
||||
},
|
||||
"共享工具": function(event, can) { var meta = can.Conf()
|
||||
@ -133,6 +131,9 @@ Volcanos("onaction", {help: "交互操作", list: [
|
||||
},
|
||||
"生成图片": function(event, can) { can.onmotion.toimage(event, can, can._name) },
|
||||
|
||||
"刷新页面": function(event, can) { var sub = can.core.Value(can._outputs, "-1")
|
||||
can.core.CallFunc([sub, chat.ONIMPORT, "_init"], {can: sub, msg: sub._msg, cb: function(msg) {}, target: can._output})
|
||||
},
|
||||
"清空参数": function(event, can) { can.page.SelectArgs(can, can._option, "", function(item) { return item.value = "" }) },
|
||||
"扩展参数": function(event, can) { can.onmotion.toggle(can, can._action) },
|
||||
"复制数据": function(event, can) { can.user.copy(event, can, can.onexport.table(can)||can.onexport.board(can)) },
|
||||
@ -146,10 +147,6 @@ Volcanos("onaction", {help: "交互操作", list: [
|
||||
|
||||
"保存参数": function(event, can) { can.search(event, ["River.ondetail.保存参数"]) },
|
||||
"打包页面": function(event, can) { can.onengine.signal(can, "onwebpack", can.request(event)) },
|
||||
"刷新页面": function(event, can) { var sub = can.core.Value(can._outputs, "-1"), msg = sub._msg
|
||||
can.core.CallFunc([sub, chat.ONIMPORT, "_init"], {can: sub, msg: msg, list: msg.result||msg.append||[], cb: function(msg) {
|
||||
}, target: can._output})
|
||||
},
|
||||
|
||||
"摄像头": function(event, can) {
|
||||
var constraints = {audio: false, video: {width: 200, height: 200}}
|
||||
@ -177,10 +174,12 @@ Volcanos("onaction", {help: "交互操作", list: [
|
||||
})
|
||||
},
|
||||
|
||||
actions: function(event, can) { can.onmotion.toggle(can, can._action) },
|
||||
clear: function(event, can, name) { can.onmotion.clear(can, can._output) },
|
||||
close: function(event, can) { can.page.Remove(can, can._target) },
|
||||
upload: function(event, can) { can.user.upload(event, can) },
|
||||
actions: function(event, can) { can.onmotion.toggle(can, can._action) },
|
||||
next: function(event, can) { can.Update(event, [ctx.ACTION, mdb.NEXT, can.Status(mdb.TOTAL)||0, can.Option(mdb.LIMIT)||can.Action(mdb.LIMIT)||"", can.Option(mdb.OFFEND)||can.Action(mdb.OFFEND)||""]) },
|
||||
prev: function(event, can) { can.Update(event, [ctx.ACTION, mdb.PREV, can.Status(mdb.TOTAL)||0, can.Option(mdb.LIMIT)||can.Action(mdb.LIMIT)||"", can.Option(mdb.OFFEND)||can.Action(mdb.OFFEND)||""]) },
|
||||
change: function(event, can, name, value, cb) {
|
||||
return can.page.SelectArgs(can, can._option, "", function(input) {
|
||||
if (input.name == name && value != input.value) { input.value = value
|
||||
@ -190,36 +189,19 @@ Volcanos("onaction", {help: "交互操作", list: [
|
||||
})
|
||||
},
|
||||
|
||||
next: function(event, can) {
|
||||
can.Update(event, [ctx.ACTION, "next", can.Status("total")||0, can.Option("limit")||can.Action("limit")||"", can.Option("offend")||can.Action("offend")||""])
|
||||
},
|
||||
prev: function(event, can) {
|
||||
can.Update(event, [ctx.ACTION, "prev", can.Status("total")||0, can.Option("limit")||can.Action("limit")||"", can.Option("offend")||can.Action("offend")||""])
|
||||
},
|
||||
|
||||
getClipboardData: function(event, can, button) {
|
||||
function add(text) {
|
||||
can.run(event, can.base.Simple(ctx.ACTION, button, can.base.ParseJSON(text)), function(msg) {
|
||||
can.user.toastSuccess(can), can.Update()
|
||||
}, true)
|
||||
}
|
||||
if (navigator.clipboard) {
|
||||
navigator.clipboard.readText().then(add).catch(function(err) { can.misc.Log(err) })
|
||||
} else {
|
||||
can.user.input(event, can, [{type: html.TEXTAREA, name: mdb.TEXT}], function(ev, button, data, list, args) { add(list[0]) })
|
||||
}
|
||||
},
|
||||
openLocation: function(event, can) { can.user.agent.openLocation(can.request(event)) },
|
||||
getLocation: function(event, can, button) {
|
||||
can.user.agent.getLocation(function(data) { can.request(event, data)
|
||||
can.user.input(event, can, [mdb.TYPE, mdb.NAME, mdb.TEXT, "latitude", "longitude"], function(ev, bu, data, list, args) {
|
||||
can.run(event, [ctx.ACTION, button].concat(can.base.Simple(args, data)), function(msg) {
|
||||
can.user.toastSuccess(can), can.Update()
|
||||
}, true)
|
||||
can.run(event, [ctx.ACTION, button].concat(can.base.Simple(args, data)), function(msg) { can.user.toastSuccess(can, button) }, true)
|
||||
})
|
||||
})
|
||||
},
|
||||
openLocation: function(event, can) { can.user.agent.openLocation(can.request(event)) },
|
||||
|
||||
getClipboardData: function(event, can, button) {
|
||||
function add(text) { can.run(event, can.base.Simple(ctx.ACTION, button, can.base.ParseJSON(text)), function(msg) { can.user.toastSuccess(can, button) }, true) }
|
||||
navigator.clipboard? navigator.clipboard.readText().then(add).catch(function(err) { can.misc.Log(err) }):
|
||||
can.user.input(event, can, [{type: html.TEXTAREA, name: mdb.TEXT}], function(ev, button, data, list, args) { add(list[0]) })
|
||||
},
|
||||
})
|
||||
Volcanos("onexport", {help: "导出数据", list: [],
|
||||
table: function(can) { var msg = can._msg; if (msg.Length() == 0) { return }
|
||||
@ -228,7 +210,5 @@ Volcanos("onexport", {help: "导出数据", list: [],
|
||||
})
|
||||
return res.join(ice.NL)
|
||||
},
|
||||
board: function(can) { var msg = can._msg
|
||||
return msg.Result()
|
||||
},
|
||||
board: function(can) { var msg = can._msg; return msg.Result() },
|
||||
})
|
||||
|
@ -1,32 +1,25 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, cb, target) {
|
||||
can.user.isMobile && !can.user.isLandscape() && can.onmotion.hidden(can, can._action)
|
||||
var cbs = can.onimport[can._args["style"]]; if (can.base.isFunc(cbs)) {
|
||||
can.page.ClassList.add(can, target, can._args["style"])
|
||||
var cbs = can.onimport[can._args[ctx.STYLE]]; if (can.base.isFunc(cbs)) {
|
||||
can.page.ClassList.add(can, target, can._args[ctx.STYLE])
|
||||
return cbs(can, msg, target)
|
||||
}
|
||||
|
||||
can.onmotion.clear(can, target)
|
||||
can.onappend.table(can, msg, null, target)
|
||||
can.onappend.board(can, msg, target)
|
||||
can.onmotion.story.auto(can, target)
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
},
|
||||
|
||||
_process: function(can, msg) {
|
||||
msg.Option(ice.MSG_TOAST) && can.user.toast(can, msg.Option(ice.MSG_TOAST))
|
||||
return can.core.CallFunc([can.onimport, msg.Option(ice.MSG_PROCESS)], [can, msg])
|
||||
},
|
||||
card: function(can, msg, target) {
|
||||
can.page.Appends(can, target, msg.Table(function(value) {
|
||||
return {view: "item", list: [
|
||||
{view: ["title", "div", value.name]},
|
||||
{view: ["content", "div", value.text]},
|
||||
{view: "operate", inner: value.action, onclick: function(event) {
|
||||
can.request(event, value)
|
||||
can.run(event, [ctx.ACTION, event.target.name])
|
||||
return {view: html.ITEM, list: [
|
||||
{view: [wiki.TITLE, html.DIV, value.name]},
|
||||
{view: [wiki.CONTENT, html.DIV, value.text]},
|
||||
{view: html.ACTION, inner: value.action, onclick: function(event) {
|
||||
can.run(can.request(event, value), [ctx.ACTION, event.target.name])
|
||||
}},
|
||||
]}
|
||||
}))
|
||||
},
|
||||
})
|
||||
Volcanos("onaction", {help: "控件交互", list: []})
|
||||
Volcanos("onexport", {help: "导出数据", list: []})
|
||||
|
17
proto.js
17
proto.js
@ -125,6 +125,7 @@ var wiki = {
|
||||
TITLE: "title", BRIEF: "brief", REFER: "refer", SPARK: "spark",
|
||||
ORDER: "order", TABLE: "table", CHART: "chart", IMAGE: "image", VIDEO: "video",
|
||||
FIELD: "field", SHELL: "shell", LOCAL: "local", PARSE: "parse",
|
||||
CONTENT: "content",
|
||||
|
||||
NAVMENU: "navmenu", PREMENU: "premenu",
|
||||
|
||||
@ -225,7 +226,7 @@ var html = {
|
||||
OPACITY: "opacity",
|
||||
STROKE_WIDTH: "stroke-width", STROKE: "stroke", FILL: "fill", FONT_SIZE: "font-size", MONOSPACE: "monospace",
|
||||
SCROLL: "scroll", HEIGHT: "height", WIDTH: "width", LEFT: "left", TOP: "top", RIGHT: "right", BOTTOM: "bottom",
|
||||
MIN_HEIGHT: "min-height", MAX_HEIGHT: "max-height", MAX_WIDTH: "max-width", MARGIN_TOP: "margin-top", MARGIN_X: "margin-x", MARGIN_Y: "margin-y",
|
||||
MIN_HEIGHT: "min-height", MAX_HEIGHT: "max-height", MAX_WIDTH: "max-width", MIN_WIDTH: "min-width", MARGIN_TOP: "margin-top", MARGIN_X: "margin-x", MARGIN_Y: "margin-y",
|
||||
PLUGIN_MARGIN: 10, ACTION_HEIGHT: 29, ACTION_MARGIN: 200,
|
||||
TOGGLE: "toggle",
|
||||
|
||||
@ -278,13 +279,13 @@ function shy(help, meta, list, cb) {
|
||||
var Volcanos = shy("火山架", {iceberg: "/chat/", volcano: "/frame.js", args: {}, pack: {}, libs: [], cache: {}}, function(name, can, libs, cb) {
|
||||
var meta = arguments.callee.meta, list = arguments.callee.list
|
||||
if (typeof name == lang.OBJECT) { var Config = name; Config.plugin = Config.plugin||chat.plugin_list
|
||||
Config.panels = Config.panels||chat.panel_list, Config.main = Config.main||{name: "Header"}
|
||||
Config.panels = Config.panels||chat.panel_list
|
||||
meta.libs = Config.libs||chat.libs, meta.iceberg = Config.iceberg||meta.iceberg
|
||||
|
||||
// 预加载
|
||||
libs = []; for (var i = 0; i < Config.panels.length; i++) { var panel = Config.panels[i]
|
||||
panel && (libs = libs.concat(panel.list = panel.list||["/panel/"+panel.name+".css", "/panel/"+panel.name+".js"]))
|
||||
}; libs = libs.concat(Config.plugin, Config.main.list||[])
|
||||
}; libs = libs.concat(Config.plugin)
|
||||
|
||||
// 根模块
|
||||
_can_name = "", name = Config.name||"chat", cb = can||function(can) {
|
||||
@ -330,7 +331,7 @@ var Volcanos = shy("火山架", {iceberg: "/chat/", volcano: "/frame.js", args:
|
||||
function next() { can._load(name, each), can.require(libs.slice(1), cb, each) }
|
||||
meta.cache[name]? next(): (_can_path = libs[0], meta._load(name, next))
|
||||
},
|
||||
request: function(event) { event = event||{}
|
||||
request: function(event) { event = event||{}, event = event._event||event
|
||||
var msg = event._msg||can.misc.Message(event, can); event._msg = msg
|
||||
function set(key, value) { msg.Option(key) || value == "" || msg.Option(key, value) }
|
||||
|
||||
@ -345,10 +346,10 @@ var Volcanos = shy("火山架", {iceberg: "/chat/", volcano: "/frame.js", args:
|
||||
},
|
||||
|
||||
actions: function(event, button) { can.run(event, [ctx.ACTION, button], null, true) },
|
||||
runAction: function(event, action, args, cb) { can.request(event, {_handle: ice.TRUE}, can.Option())
|
||||
runAction: function(event, action, args, cb, silent) { can.request(event, {_handle: ice.TRUE}, can.Option())
|
||||
can.run(event, can.misc.concat(can, [ctx.ACTION, action], args), cb||function(msg) {
|
||||
can.user.toastSuccess(can, action)
|
||||
}, true)
|
||||
}, silent)
|
||||
},
|
||||
|
||||
search: function(event, cmds, cb) {
|
||||
@ -359,11 +360,11 @@ var Volcanos = shy("火山架", {iceberg: "/chat/", volcano: "/frame.js", args:
|
||||
},
|
||||
get: function(name, key, cb) { return can.search({}, [can.core.Keys(name, chat.ONEXPORT, key)], cb) },
|
||||
set: function(name, key, value) { var msg = can.request({}); msg.Option(key, value)
|
||||
return can.search(msg._event, [[name, chat.ONIMPORT, key]])
|
||||
return can.search(msg, [[name, chat.ONIMPORT, key]])
|
||||
},
|
||||
setHeaderMenu: function(list, cb) { can._menu && can.page.Remove(can, can._menu)
|
||||
var msg = can.request({}, {trans: can.onaction._trans})
|
||||
return can._menu = can.search(msg._event, [["Header", chat.ONIMPORT, "menu"], can._name].concat(list), cb)
|
||||
return can._menu = can.search(msg, [["Header", chat.ONIMPORT, "menu"], can._name].concat(list), cb)
|
||||
},
|
||||
setHeader: function(key, value) { return can.set("Header", key, value) },
|
||||
getHeader: function(key, cb) { return can.get("Header", key, cb) },
|
||||
|
@ -38,7 +38,7 @@ Volcanos({
|
||||
var msg = can.request({}, {tid: sender.tab.id, url: sender.url})
|
||||
can.core.List(req.option, function(key) { msg.Option(key, req[key][0]) })
|
||||
msg.__daemon = can.core.Keys(html.CHROME, sender.tab.id)
|
||||
can.run(msg._event, req.detail||[], cb)
|
||||
can.run(msg, req.detail||[], cb)
|
||||
return true
|
||||
})
|
||||
chrome.history.onVisited.addListener(function(item) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user