1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 16:58:06 +08:00
This commit is contained in:
harveyshao 2022-04-02 15:20:57 +08:00
parent 50ff4779e9
commit 6685ff8486
10 changed files with 46 additions and 34 deletions

View File

@ -102,19 +102,17 @@ Volcanos("ondaemon", {help: "推荐引擎", list: [], _init: function(can, name)
can: can, sub: sub, msg: msg, cmd: cmd, arg: arg, cb: function() { msg.Reply() },
}): can.onengine._search({}, can, msg, can, ["_search", cmd].concat(arg), function() { msg.Reply() })
})
can.onengine.listen(can, chat.ONSEARCH, function(msg, word) { var meta = can.onengine.plugin.meta
if (word[0] != mdb.FOREACH && word[0] != ctx.COMMAND) { return }
can.onengine.listen(can, chat.ONSEARCH, function(msg, word) { if (word[0] == ctx.COMMAND || word[1] != "") { var meta = can.onengine.plugin.meta
var list = word[1] == ""? meta: meta[word[1]]? kit.Dict(word[1], meta[word[1]]): {}
can.core.Item(list, function(name, command) { name = can.base.trimPrefix(name, "can.")
can.core.List(msg.Option(ice.MSG_FIELDS).split(ice.FS), function(item) {
msg.Push(item, kit.Dict(
ice.CTX, "onengine", ice.CMD, "command",
msg.Push(item, kit.Dict(ice.CTX, "onengine", ice.CMD, "command",
mdb.TYPE, "can", mdb.NAME, name, mdb.TEXT, command.help,
ctx.CONTEXT, "can", ctx.COMMAND, name
)[item]||"")
})
})
})
} })
}, _list: [""],
pwd: function(can, msg, arg) { can.ondaemon._list[0] = arg[0] },
refresh: function(can, msg, sub) { sub.Update() },
@ -166,7 +164,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
if (meta.msg) { var msg = sub.request(); msg.Copy(can.base.Obj(meta.msg)), sub.onappend._output(sub, msg, msg.Option(ice.MSG_DISPLAY)||meta.feature.display) }
can.page.Modify(can, sub._legend, kit.Dict(can.Conf("legend_event")||"onmouseenter", function(event) {
can.user.carte(event, sub, sub.onaction, sub.onaction.list.concat([["所有"].concat(can.core.Item(meta.feature._trans))], [cli.CLOSE]))
can.user.carte(event, sub, sub.onaction, sub.onaction.list.concat([["所有"].concat(can.core.Item(meta.feature._trans))]))
})), can.base.isFunc(cb) && cb(sub)
}); return sub
},
@ -747,9 +745,10 @@ Volcanos("onmotion", {help: "动态特效", list: [], _init: function(can, targe
if (target.innerText == "") { target.innerText = target.href }
can.page.Modify(can, target, {target: "_blank"})
},
copy: function(can, target, text) {
copy: function(can, target, text, cb) {
target.title = "点击复制", target.onclick = function(event) {
can.user.copy(event, can, text||target.innerText)
can.base.isFunc(cb) && cb(event)
}
},
move: function(can, target, layout, cb) { var begin; layout = layout||{}

View File

@ -49,6 +49,7 @@ div.code { background-color:#343a3445; color:white; padding:10px; border:solid 3
div.story[data-type=spark] { background-color:#2169a9a6; color:white; padding:4px 10px; border-left:solid 4px blue; margin:10px; }
body.mobile form.option>div.item { margin-right:0px; }
form.option>div.item { margin-right:0px; margin-right:5px; }
form.option>div.item.select { background-color:#0000; }
form.option>div.item input.args.char { width:20px; }
form.option>div.item input.args.tiny { width:40px; }
@ -99,13 +100,13 @@ body>div.toast div.progress div.current { background-color:red; height:10px; }
body>div.carte { background-color:#295b61; color:white; padding:4px; min-width:80px; }
body>div.carte div.item { padding:3px 12px; }
body>div.input { background-color:#0d4142a6; }
body>div.input { background-color:#0d4142a6; padding:5px; }
body>div.input div.item { float:left; }
body>div.input select { width:183px; }
body>div.input input[type=text] { width:171px; }
body>div.input select { width:183px; margin:5px; }
body>div.input input[type=text] { width:171px; margin:5px; }
body>div.input input[name=username] { width:171px; }
body>div.input input[name=password] { width:171px; }
body>div.input textarea { background-color:cyan; padding:4px; border:2px inset #14a58e; height:60px; width:171px; }
body>div.input textarea { background-color:cyan; padding:4px; margin:5px; border:2px inset #14a58e; height:120px; width:171px; }
body>div.input.login { padding:10px; }
body>div.upload { background-color:black; color:yellow; padding:5px; }

View File

@ -91,10 +91,12 @@ Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, cb, t
can.Conf(html.MARGIN_Y, 4*html.PLUGIN_MARGIN+2*html.ACTION_HEIGHT+html.ACTION_MARGIN)
can.Conf(html.MARGIN_X, 4*html.PLUGIN_MARGIN)
var gt = "❯", lt = "❮"; function toggle(view) { return !can.setRiver("display") }
can.page.Append(can, target, [{view: [[html.TOGGLE, chat.PROJECT]], list: [{text: [gt, html.DIV]}], onclick: function(event) {
event.target.innerHTML = toggle()? gt: lt
}}])
if (can.user.mod.isPod && !can.user.isMobile) {
var gt = "❯", lt = "❮"; function toggle(view) { return !can.setRiver("display") }
can.page.Append(can, target, [{view: [[html.TOGGLE, chat.PROJECT]], list: [{text: [gt, html.DIV]}], onclick: function(event) {
event.target.innerHTML = toggle()? gt: lt
}}])
}
can.onengine.plugin(can, "info", shy("信息", {}, ["text", "list", "back"], function(msg, cmds) {
msg.Echo(JSON.stringify(can))
@ -168,7 +170,7 @@ Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, cb, t
})
},
onsearch: function(can, msg, word) {
if (word[0] == mdb.FOREACH || word[0] == mdb.PLUGIN) { can.onexport.plugin(can, msg, word) }
if (word[0] == mdb.PLUGIN || word[1] != "") { can.onexport.plugin(can, msg, word) }
},
onsize: function(can, msg, height, width) { can.Conf({height: height, width: width}) },

View File

@ -56,6 +56,9 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
case lang.ENTER: can.onengine.signal(can, "onopensearch", can.request(event, {type: "*", word: event.target.value}))
}
}}, "", target, "title search").parentNode
can.page.Append(can, target, [{type: "search", list: [{view: ["menu", "div", can.user.trans(can, "search")], onclick: function() {
can.onengine.signal(can, "onopensearch", can.request(event, {type: "*", word: ""}))
}}] }])
can.user.isMobile && can.page.Modify(can, ui, {style: {float: html.RIGHT}})
},
_background: function(can, msg) { if (can.user.isExtension || can.user.isLocalFile) { return }
@ -66,7 +69,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
msg.Option(aaa.AVATAR) && can.page.Modify(can, "div.state.avatar>img", {src: "/share/local/avatar"})
},
_menus: function(can, msg, target) {
can.setHeaderMenu(can.user.mod.isPod||can.user.isMobile||can.user.isExtension? []:
can.setHeaderMenu(can.user.mod.isPod||can.user.isExtension||can.user.isMobile? []:
can.base.Obj(msg.Option(chat.MENUS)||can.Conf(chat.MENUS), can.onaction._menus), function(event, button) {
can.core.CallFunc(can.onaction[button]||function(event, can) {
can.run(event, [button], function(msg) { can.user.toast(can, "执行成功", can.user.trans(can, button)) })
@ -194,7 +197,7 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, cb, t
},
usernick: function(event, can) {
can.onaction.carte(event, can, ["shareuser", "setnick", "password", [aaa.LANGUAGE, aaa.CHINESE, aaa.ENGLISH], cli.CLEAR, aaa.LOGOUT])
can.user.mod.isPod || can.user.isExtension || can.user.isLocalFile || can.onaction.carte(event, can, ["shareuser", "setnick", "password", [aaa.LANGUAGE, aaa.CHINESE, aaa.ENGLISH], cli.CLEAR, aaa.LOGOUT])
},
shareuser: function(event, can) { can.user.share(can, can.request(event), [ctx.ACTION, chat.SHARE, mdb.TYPE, aaa.LOGIN]) },
setnick: function(event, can) {

View File

@ -21,12 +21,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
can._main_storm = can.misc.Search(can, chat.STORM)||msg.Option(ice.MSG_STORM)||Volcanos.meta.args.storm||can._main_storm
},
_menu: function(can, msg) {
if (can.user.mod.isPod) {
can.setHeaderMenu(["river"], function(event, button) {
can.core.CallFunc([can.ondetail, button], [event, can, button, can.Conf(chat.RIVER), can.Conf(chat.STORM)])
})
return
}
if (can.user.mod.isPod) { return }
var list = []; if (can.user.isMobile) { list.push("river") }
can.setHeaderMenu(list.concat(can.base.Obj(msg.Option(chat.MENUS), can.Conf(chat.MENUS)||can.ondetail._menus)), function(event, button) {
can.core.CallFunc([can.ondetail, button], [event, can, button, can.Conf(chat.RIVER), can.Conf(chat.STORM)])
@ -92,13 +87,12 @@ Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, cb, t
can.base.isFunc(cb) && cb()
},
_trans: {"river": "菜单"},
onlogin: function(can, msg) {
can.onappend._action(can, can.Conf(ctx.ACTION)||can.onaction.list)
can.run({}, [], function(msg) { can.onimport._init(can, msg, [], null, can._output) })
},
onsearch: function(can, msg, word) {
if (word[0] == "*" || word[0] == chat.STORM) { can.onexport.storm(can, msg, word) }
if (word[0] == chat.STORM || word[1] != "") { can.onexport.storm(can, msg, word) }
},
onstorm_select: function(can, msg, river, storm) { var args = {river: river, storm: storm}
if (can.user.isExtension) { localStorage.setItem(ctx.ARGS, JSON.stringify(args)) }
@ -165,7 +159,6 @@ Volcanos("ondetail", {help: "菜单交互",
["share", "共享群组", "共享应用", "共享工具", "下载应用", "访问空间"],
],
"river": function(event, can) { can.onmotion.toggle(can, can._target), can.onlayout._init(can) },
"创建群组": function(event, can) { can.onaction.create(event, can) },
"共享群组": function(event, can, button, river) {
can.onmotion.share(event, can, [{name: chat.TITLE, value: river}], [mdb.TYPE, chat.RIVER])

View File

@ -7,6 +7,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
}, can.ui.content, can.core.List((msg.Option("sort")||"ctx,cmd,type,name,text").split(ice.FS), function(item) {
return list.indexOf(item)
})); table && can.page.Modify(can, can.ui.display, {style: {width: table.offsetWidth}})
can.onmotion.story.auto(can)
can.onappend._status(can, can.base.Obj(msg.Option("_status"), []).concat({name: "selected", value: "0"}))
can.getActionSize(function(msg, height) {
@ -93,6 +94,7 @@ Volcanos("onaction", {help: "交互操作", list: [cli.CLEAR, cli.CLOSE, cli.DON
},
plugin: function(event, can, index) { var line = can.list[index]
if (line.ctx == "web.wiki" && line.cmd == "word") { return }
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)

View File

@ -1,3 +1,4 @@
fieldset.story.inner>div.action { display:none; }
fieldset.inner>form.option input[name=path] { width:80px; }
fieldset.inner>form.option input[name=file] { width:160px; }
fieldset.inner>div.action>div.tabs { background-color:#5c809c5c; height:18px; }

View File

@ -159,7 +159,7 @@ Volcanos("onkeymap", {help: "键盘交互", list: [],
},
}, _engine: {},
})
Volcanos("onaction", {help: "控件交互", list: [nfs.SAVE, code.AUTOGEN, code.COMPILE, "script", chat.WEBSITE],
Volcanos("onaction", {help: "控件交互", list: [nfs.SAVE, "dream", code.AUTOGEN, code.COMPILE, "script", chat.WEBSITE],
save: function(event, can) { var msg = can.request(event, {content: can.onexport.content(can)})
can.run(event, [ctx.ACTION, nfs.SAVE, can.parse, can.Option(nfs.FILE), can.Option(nfs.PATH)], function(msg) {
can.onimport.project(can, can.Option(nfs.PATH))
@ -184,7 +184,7 @@ Volcanos("onaction", {help: "控件交互", list: [nfs.SAVE, code.AUTOGEN, code.
}, true)
},
script: function(event, can, button) { var meta = can.Conf()
can.request(event, {_handle: ice.TRUE, text: `Volcanos("onimport", {help: "导入数据", list:[], _init: function(can, msg, cb, target) {
can.request(event, {_handle: ice.TRUE, file: "hi/hi.js", text: `Volcanos("onimport", {help: "导入数据", list:[], _init: function(can, msg, cb, target) {
msg.Echo("hello world")
can.onappend.table(can, msg)
can.onappend.board(can, msg)
@ -197,7 +197,7 @@ Volcanos("onaction", {help: "控件交互", list: [nfs.SAVE, code.AUTOGEN, code.
})
},
website: function(event, can, button) { var meta = can.Conf()
can.request(event, {_handle: ice.TRUE, text: `
can.request(event, {_handle: ice.TRUE, file: "hi.iml", text: `
hi
he
cli.runtime
@ -205,7 +205,7 @@ hi
hi/hi.sh
hi/hi.go
hi/hi.js
`}, can.Option())
`.trim()}, can.Option())
can.user.input(event, can, meta.feature[button], function(ev, btn, data, list, args) {
can.run(event, [ctx.ACTION, button].concat(args), function(msg) {
can.onimport.tabview(can, can.Option(nfs.PATH), msg.Option(nfs.FILE))

View File

@ -41,6 +41,13 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target
title: function(can, data, target) {
can.user.mod.isCmd && target.tagName == "H1" && can.user.title(data.text)
},
refer: function(can, data, target) {
can.page.Select(can, target, html.A, function(item) {
item.onclick = function(event) {
can.run(event, [ctx.ACTION, mdb.CREATE, mdb.TYPE, "refer", mdb.NAME, item.dataset.name, mdb.TEXT, item.href], null, true)
}
})
},
spark: function(can, data, target) {
if (data[mdb.NAME] == chat.FIELD) {
function deep(text) { var d = 0
@ -85,7 +92,11 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target
}
if (data[mdb.NAME] == html.INNER) { return can.onmotion.copy(can, target) }
can.page.Select(can, target, html.A, function(item) { can.onmotion.link(can, item) })
can.page.Select(can, target, html.SPAN, function(item) { can.onmotion.copy(can, item) })
can.page.Select(can, target, html.SPAN, function(item) {
can.onmotion.copy(can, item, "", function(event) {
can.run(event, [ctx.ACTION, mdb.CREATE, mdb.TYPE, "spark", mdb.NAME, "shell", mdb.TEXT, item.innerText], null, true)
})
})
},
chart: function(can, data, target) {
target.oncontextmenu = function(event) {

View File

@ -75,8 +75,8 @@ 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))) },