1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 16:58:06 +08:00

opt footer.js

This commit is contained in:
shaoying 2022-07-03 21:03:13 +08:00
parent b3740c74ee
commit 6067b86006
10 changed files with 57 additions and 61 deletions

View File

@ -159,7 +159,7 @@ Volcanos(chat.ONKEYMAP, {help: "键盘交互", list: [], _focus: [], _init: func
}, },
enter: function(event, can, target) { can.misc.Log("enter") }, enter: function(event, can, target) { can.misc.Log("enter") },
escape: function(event, can, target) { escape: function(event, can, target) {
can.page.Select(can, document.body, can.page.Keys(html.FIELDSET_FLOAT, html.DIV_FLOAT), function(item) { can.page.Select(can, can._root._target, can.page.Keys(html.FIELDSET_FLOAT, html.DIV_FLOAT), function(item) {
can.page.Remove(can, item) can.page.Remove(can, item)
}) })
}, },

View File

@ -1,4 +1,4 @@
Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) { Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, msg, cb, target) {
can.onmotion.clear(can) can.onmotion.clear(can)
can.onimport._title(can, msg, target) can.onimport._title(can, msg, target)
can.onimport._state(can, msg, target) can.onimport._state(can, msg, target)
@ -22,19 +22,19 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, ms
}) })
}, },
_state: function(can, msg, target) { _state: function(can, msg, target) {
can.core.List(can.base.Obj(msg.Option(chat.STATE)||can.Conf(chat.STATE), ["ncmd"]), function(item) { can.core.List(can.base.Obj(msg.Option(chat.STATE)||can.Conf(chat.STATE), ["ncmd", "ntip"]), function(item) {
can.page.Append(can, target, [{view: [can.base.join([chat.STATE, item]), html.DIV, can.Conf(item)], list: [ 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]}, {text: [item, html.LABEL]}, {text: [": ", html.LABEL]}, {text: [can.Conf(item)||"", html.SPAN, item]},
], onclick: function(event) { ], onclick: function(event) {
can.show = can.show? (can.page.Remove(can, can.show), null): can.onaction._cmd(can) can[item] = can[item]? (can.page.Remove(can, can[item]), null): can.onexport[item](can)
can.page.Modify(can, can.show, {style: {left: "", top: "", right: 0, bottom: can.onexport.height(can)}}) can.page.style(can, can.show, {left: "", top: "", right: 0, bottom: can.onexport.height(can)})
}}]) }}])
}) })
}, },
_toast: function(can, msg, target) { _toast: function(can, msg, target) {
can.toast = can.page.Append(can, target, [{view: chat.TOAST, onclick: function(event) { can.toast = can.page.Append(can, target, [{view: chat.TOAST, onclick: function(event) { var item = "ntip"
can.show = can.show? (can.page.Remove(can, can.show), null): can.onimport.float(can, can._toast).first can[item] = can[item]? (can.page.Remove(can, can[item]), null): can.onexport[item](can)
can.page.Modify(can, can.show, {style: {left: "", top: "", right: 0, bottom: can.onexport.height(can)}}) can.page.style(can, can.show, {left: "", top: "", right: 0, bottom: can.onexport.height(can)})
}}]).first }}]).first
}, },
_cli: function(can, msg, target) { _cli: function(can, msg, target) {
@ -45,25 +45,40 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, ms
case cli.CLOSE: can.cli && can.cli.close(); break case cli.CLOSE: can.cli && can.cli.close(); break
default: default:
can.run(event, [ice.RUN].concat(can.core.Split(event.target.value, ice.SP)), function(msg) { can.run(event, [ice.RUN].concat(can.core.Split(event.target.value, ice.SP)), function(msg) {
can.cli && can.cli.close() can.cli && can.cli.close(), can.cli = can.onexport.float(can, msg, function(value, key, index, line, list) {})
can.cli = can.onimport.float(can, msg, function(value, key, index, line, list) { can.page.style(can, can.cli.first, "bottom", can.onexport.height(can), "top", "")
}), can.page.Modify(can, can.cli.first, {style: {bottom: can.onexport.height(can), top: ""}})
}) })
} }
}}, "", target, "title cmd") }}, "", target, "title cmd")
}, },
toast: function(can, msg, title, content, fileline, time) { can._toast = can._toast||can.request() toast: function(can, msg, title, content, fileline, time) { can._tips = can._tips||can.request()
can._tips.Push({time: time, fileline: fileline, title: title, content: content})
can.onimport.count(can, "ntip")
can.page.Modify(can, can.toast, [time.split(ice.SP).pop(), title, content].join(ice.SP)) can.page.Modify(can, can.toast, [time.split(ice.SP).pop(), title, content].join(ice.SP))
can._toast.Push({time: time, fileline: fileline, title: title, content: content})
}, },
ncmd: function(can, msg, _follow, _cmds) { var NCMD = "ncmd"; can._cmds = can._cmds||can.request() count: function(can, name) {
can._cmds.Push({time: can.base.Time(), follow: _follow, cmds: _cmds}) can.page.Select(can, can._output, can.core.Keys(html.SPAN, name), function(item) {
can.page.Select(can, can._output, can.core.Keys(html.SPAN, NCMD), function(item) { item.innerHTML = can.Conf(name, parseInt(can.Conf(name)||"0")+1+"")+""
item.innerHTML = can.Conf(NCMD, parseInt(can.Conf(NCMD)||"0")+1+"")+""
}) })
}, },
ncmd: function(can, msg, _follow, _cmds) { can._cmds = can._cmds||can.request()
can._cmds.Push({time: can.base.Time(), follow: _follow, cmds: _cmds})
can.onimport.count(can, "ncmd")
},
})
Volcanos(chat.ONACTION, {help: "交互数据", list: [], _init: function(can, cb, target) {
if (can.user.mod.isPod || can.user.isExtension) { can.onmotion.hidden(can, can._target) }
can.base.isFunc(cb) && cb()
},
onlogin: function(can, msg) { can.run({}, [], function(msg) { can.onimport._init(can, msg, null, can._output) }) },
ontoast: function(can, msg) { can.core.CallFunc(can.onimport.toast, {can: can, msg: msg}) },
onremote: function(can, msg) { can.core.CallFunc(can.onimport.ncmd, {can: can, msg: msg}) },
onaction_cmd: function(can, msg) { can.onmotion.hidden(can) },
oncommandfocus: function(can) { can.page.Select(can, can._output, "div.cmd input", function(target) { target.focus() }) },
})
Volcanos(chat.ONEXPORT, {help: "导出数据", list: [],
height: function(can) { return can._target.offsetHeight },
float: function(can, msg, cb) { float: function(can, msg, cb) {
var ui = can.onappend.field(can, "story toast float", {}, can._root._target) var ui = can.onappend.field(can, "story toast float", {}, can._root._target)
ui.close = function() { can.page.Remove(can, ui.first) } ui.close = function() { can.page.Remove(can, ui.first) }
@ -98,27 +113,11 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, ms
}, ui.output), can.onappend.board(can, msg.Result(), ui.output) }, ui.output), can.onappend.board(can, msg.Result(), ui.output)
return ui return ui
}, },
}) ntip: function(can) {
Volcanos(chat.ONACTION, {help: "交互数据", list: [], _init: function(can, cb, target) { return can.onexport.float(can, can._tips).first
if (can.user.mod.isPod) {
can.onmotion.hidden(can, can._target)
} else if (can.user.isMobile) {
// can.onmotion.hidden(can, can._target)
} else if (can.user.isExtension) {
can.onmotion.hidden(can, can._target)
}
can.base.isFunc(cb) && cb()
}, },
onlogin: function(can, msg) { can.run({}, [], function(msg) { can.onimport._init(can, msg, [], null, can._output) }) }, ncmd: function(can) {
ontoast: function(can, msg) { can.core.CallFunc(can.onimport.toast, {can: can, msg: msg}) }, return can.onexport.float(can, can._cmds, function(value, key, index, line, list) {
onremote: function(can, msg) { can.core.CallFunc(can.onimport.ncmd, {can: can, msg: msg}) },
oncommandfocus: function(can) {
can.page.Select(can, can._output, "div.cmd input", function(target) { target.focus() })
},
onaction_cmd: function(can, msg) { can.onmotion.hidden(can) },
_cmd: function(can) {
return can.onimport.float(can, can._cmds, function(value, key, index, line, list) {
var cmds = can.base.Obj(line.cmds); switch (line.follow) { var cmds = can.base.Obj(line.cmds); switch (line.follow) {
case "chat.Action": cmds = cmds.slice(2); break case "chat.Action": cmds = cmds.slice(2); break
case "chat.Footer": cmds = cmds.slice(2); break case "chat.Footer": cmds = cmds.slice(2); break
@ -133,15 +132,12 @@ Volcanos(chat.ONACTION, {help: "交互数据", list: [], _init: function(can, cb
can.run(event, can.misc.concat(can, [ctx.ACTION, ice.RUN, cmds[0]], cmd), cb) can.run(event, can.misc.concat(can, [ctx.ACTION, ice.RUN, cmds[0]], cmd), cb)
} }
can.page.Modify(can, sub._target, {style: {top: top+100, left: left}}) can.page.style(can, sub._target, {top: top+100, left: left})
can.page.Modify(can, sub._legend, {style: {display: html.BLOCK}}) can.page.style(can, sub._legend, {display: html.BLOCK})
can.page.Modify(can, sub._output, {style: {"max-width": width}}) can.page.style(can, sub._output, {"max-width": width})
can.page.ClassList.add(can, sub._target, chat.FLOAT) can.page.ClassList.add(can, sub._target, chat.FLOAT)
}, document.body) }, can._root._target)
}) })
}).first }).first
}, },
}) })
Volcanos(chat.ONEXPORT, {help: "导出数据", list: [],
height: function(can) { return can._target.offsetHeight },
})

View File

@ -13,7 +13,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, ms
can.onlayout.topic(can, can.Conf("topic")) can.onlayout.topic(can, can.Conf("topic"))
if (can.user.mod.isCmd) { if (can.user.mod.isCmd) {
can.onmotion.hidden(can, can._fields) can.onmotion.hidden(can, can._fields)
can.page.ClassList.add(can, document.body, "simple") can.page.ClassList.add(can, can._root._target, "simple")
} }
can.onmotion.clear(can) can.onmotion.clear(can)
@ -85,7 +85,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, ms
_background: function(can, msg) { _background: function(can, msg) {
if (can.Conf("background") == "_") { return } if (can.Conf("background") == "_") { return }
if (can.user.isExtension || can.user.isLocalFile) { return } if (can.user.isExtension || can.user.isLocalFile) { return }
msg.Option(aaa.BACKGROUND) && can.onlayout.background(can, "/share/local/background", document.body) msg.Option(aaa.BACKGROUND) && can.onlayout.background(can, "/share/local/background", can._root._target)
}, },
_avatar: function(can, msg) { if (can.user.isExtension || can.user.isLocalFile) { return } if (!msg.Option(aaa.AVATAR)) { return } _avatar: function(can, msg) { if (can.user.isExtension || can.user.isLocalFile) { return } if (!msg.Option(aaa.AVATAR)) { return }
if (msg.Option(aaa.AVATAR).indexOf("http") == 0) { if (msg.Option(aaa.AVATAR).indexOf("http") == 0) {
@ -221,7 +221,7 @@ Volcanos(chat.ONACTION, {help: "交互数据", list: [], _init: function(can, cb
}) })
}) })
}, },
toimage: function(event, can, button) { can.onmotion.toimage(event, can, document.title, document.body) }, toimage: function(event, can, button) { can.onmotion.toimage(event, can, document.title, can._root._target) },
carte: function(event, can, list, cb, trans) { can.user.carte(event, can, can.onaction, list, cb) }, carte: function(event, can, list, cb, trans) { can.user.carte(event, can, can.onaction, list, cb) },
share: function(event, can, args) { share: function(event, can, args) {

View File

@ -544,7 +544,7 @@ Volcanos(chat.ONACTION, {help: "控件交互", list: ["搜索", "打开", "添
}, true) }, true)
}, },
"清屏": function(event, can) { "清屏": function(event, can) {
if (can.page.Select(can, document.body, ".input.float", function(item) { if (can.page.Select(can, can._root._target, ".input.float", function(item) {
return can.page.Remove(can, item) return can.page.Remove(can, item)
}).length > 0) { return } }).length > 0) { return }

View File

@ -98,7 +98,7 @@ Volcanos(chat.ONDETAIL, {help: "组件菜单", list: ["关闭", "下载", "删
sub.Status("begin", order+1+ice.PS+can.list.length), sub.Status("file", path) sub.Status("begin", order+1+ice.PS+can.list.length), sub.Status("file", path)
}, can.show(can.order) }, can.show(can.order)
}) })
}, document.body) }, can._root._target)
}, },
"关闭": function(event, can) { can.page.Remove(can, can.sub._target) }, "关闭": function(event, can) { can.page.Remove(can, can.sub._target) },
"下载": function(event, can) { can.user.download(can, path = can.onimport._file(can, can.list[can.order].path)) }, "下载": function(event, can) { can.user.download(can, path = can.onimport._file(can, can.list[can.order].path)) },

View File

@ -182,7 +182,7 @@ Volcanos(chat.ONACTION, {help: "控件交互", list: [],
can.keylist = can.onkeymap._parse(event, can, "normal", can.keylist) can.keylist = can.onkeymap._parse(event, can, "normal", can.keylist)
}})), can.onkeymap._build(can) }})), can.onkeymap._build(can)
sub.page.style(sub, sub._target, html.BACKGROUND, document.body.style.background) sub.page.style(sub, sub._target, html.BACKGROUND, can._root._target.style.background)
sub.page.style(sub, sub._output, html.HEIGHT, can._root._height-4*html.PLUGIN_MARGIN-2*html.ACTION_HEIGHT) sub.page.style(sub, sub._output, html.HEIGHT, can._root._height-4*html.PLUGIN_MARGIN-2*html.ACTION_HEIGHT)
sub.page.style(sub, sub._output, html.WIDTH, can._root._width-4*html.PLUGIN_MARGIN) sub.page.style(sub, sub._output, html.WIDTH, can._root._width-4*html.PLUGIN_MARGIN)
@ -206,7 +206,7 @@ Volcanos(chat.ONACTION, {help: "控件交互", list: [],
var from = new Date(); can.core.Timer({interval: 100}, function() { var now = new Date() var from = new Date(); can.core.Timer({interval: 100}, function() { var now = new Date()
sub.Status(cli.COST, can.base.Duration(now-from)) sub.Status(cli.COST, can.base.Duration(now-from))
}) })
}, document.body) }, can._root._target)
}, },
view: function(event, can) { view: function(event, can) {
if (can._height) { if (can._height) {

View File

@ -86,7 +86,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, me
}) })
Volcanos(chat.ONACTION, {help: "交互操作", list: [ Volcanos(chat.ONACTION, {help: "交互操作", list: [
"刷新数据", "切换全屏", "共享工具", "打开链接", "生成链接", "生成脚本", "生成图片", [ "刷新数据", "切换全屏", "共享工具", "打开链接", "生成链接", "生成脚本", "生成图片", [
"其它", "刷新页面", "清空参数", "扩展参数", "复制数据", "下载数据", "清空数据", "删除工具", "其它", "刷新页面", "清空参数", "扩展参数", "复制数据", "下载数据", "清空数据", "删除工具","摄像头",
], ],
], _init: function(can, msg, list, cb, target) {}, ], _init: function(can, msg, list, cb, target) {},
_engine: function(event, can, button) { can.Update(event, [ctx.ACTION, button].concat(can.Input([], true))) }, _engine: function(event, can, button) { can.Update(event, [ctx.ACTION, button].concat(can.Input([], true))) },

View File

@ -8,7 +8,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, ms
}) })
}, },
select: function(can, msg) { select: function(can, msg) {
msg.Clear(), can.page.Select(can, document.body, can.Option("tags"), function(a, index) { msg.Clear(), can.page.Select(can, can._root._target, can.Option("tags"), function(a, index) {
msg.Push(mdb.INDEX, index) msg.Push(mdb.INDEX, index)
msg.Push(mdb.NAME, a.innerText) msg.Push(mdb.NAME, a.innerText)
msg.Push(mdb.LINK, a.href) msg.Push(mdb.LINK, a.href)
@ -33,7 +33,7 @@ Volcanos(chat.ONACTION, {help: "控件交互", list: [],
}) })
}, },
play: function(event, can) { play: function(event, can) {
can.page.SelectAll(can, document.body, html.VIDEO, function(video) { can.page.SelectAll(can, can._root._target, html.VIDEO, function(video) {
video.playbackRate = parseFloat(can.Option("rate")) video.playbackRate = parseFloat(can.Option("rate"))
video.currentTime = parseInt(can.Option("skip")) video.currentTime = parseInt(can.Option("skip"))
video.ontimeupdate = function(event) { video.ontimeupdate = function(event) {

View File

@ -155,7 +155,7 @@ var chat = {
{name: "River", help: "群聊组", pos: "left", action: ["create", "refresh"]}, {name: "River", help: "群聊组", pos: "left", action: ["create", "refresh"]},
{name: "Action", help: "工作台", pos: "main"}, {name: "Action", help: "工作台", pos: "main"},
{name: "Search", help: "搜索框", pos: "auto"}, {name: "Search", help: "搜索框", pos: "auto"},
{name: "Footer", help: "状态条", pos: "foot", state: ["ncmd"]}, {name: "Footer", help: "状态条", pos: "foot", state: ["ncmd", "ntip"]},
], ],
plugin_list: [ plugin_list: [
"/plugin/state.js", "/plugin/state.js",

View File

@ -6,7 +6,7 @@ setTimeout(function() { Volcanos({Option: function() { return [] },
msg.Push(mdb.LINK, location.href) msg.Push(mdb.LINK, location.href)
} }
var has = {}; _target = _target||document.body var has = {}; _target = _target||can._root._target
can.page.Select(can, _target, html.IFRAME, function(item) { can.page.Select(can, _target, html.IFRAME, function(item) {
if (!item.src || has[item.src]) { return } has[item.src] = true if (!item.src || has[item.src]) { return } has[item.src] = true
@ -41,7 +41,7 @@ setTimeout(function() { Volcanos({Option: function() { return [] },
}, },
change: function(can, msg, arg) { change: function(can, msg, arg) {
arg.length > 1 && can.page.Modify(can, arg[0], can.base.Obj(arg[1])) arg.length > 1 && can.page.Modify(can, arg[0], can.base.Obj(arg[1]))
arg.length > 0 && can.page.Select(can, document.body, arg[0], function(item) { arg.length > 0 && can.page.Select(can, can._root._target, arg[0], function(item) {
msg.Push(mdb.TEXT, item.outerHTML) msg.Push(mdb.TEXT, item.outerHTML)
}) })
}, },
@ -87,11 +87,11 @@ setTimeout(function() { Volcanos({Option: function() { return [] },
can.run(event, [chat.FIELD, mdb.MODIFY, ctx.ARGS, JSON.stringify(sub.Input([], true))]) can.run(event, [chat.FIELD, mdb.MODIFY, ctx.ARGS, JSON.stringify(sub.Input([], true))])
can.user.toastSuccess(can) can.user.toastSuccess(can)
} }
}, document.body) }, can._root._target)
}, },
style: function(can, msg, arg) { style: function(can, msg, arg) {
can.core.List(arg[0].split(ice.FS), function(item) { can.core.List(arg[0].split(ice.FS), function(item) {
can.page.Select(can, document.body, item, function(target) { can.page.Select(can, can._root._target, item, function(target) {
can.page.Modify(can, target, can.base.Obj(arg[1])) can.page.Modify(can, target, can.base.Obj(arg[1]))
}) })
}) })
@ -104,7 +104,7 @@ setTimeout(function() { Volcanos({Option: function() { return [] },
}}) }})
}) })
}, },
_motion: function(can) { can.onmotion.float.auto(can, document.body) _motion: function(can) { can.onmotion.float.auto(can, can._root._target)
document.body.ondblclick = function(event) { can.onengine.signal(can, "onselection") } document.body.ondblclick = function(event) { can.onengine.signal(can, "onselection") }
can.run({}, [ctx.ACTION, ctx.COMMAND], function(msg) { can.run({}, [ctx.ACTION, ctx.COMMAND], function(msg) {