1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 16:58:06 +08:00
This commit is contained in:
IT 老营长 @云轩领航-创始人 2023-03-01 12:42:41 +08:00
parent 34e068893f
commit bc8bdb41c6
5 changed files with 13 additions and 5 deletions

View File

@ -603,7 +603,10 @@ Volcanos(chat.ONMOTION, {_init: function(can, target) {
focus: function(can, target, value) { if (!target) { return } if (!can.base.isUndefined(value)) { target.value = value } focus: function(can, target, value) { if (!target) { return } if (!can.base.isUndefined(value)) { target.value = value }
target.focus(), can.onmotion.selectRange(target) target.focus(), can.onmotion.selectRange(target)
}, selectRange: function(target) { target && target.setSelectionRange && target.setSelectionRange(0, target.value.length) }, }, selectRange: function(target) { target && target.setSelectionRange && target.setSelectionRange(0, target.value.length) },
copy: function(can, target, cb) { target.title = "点击复制", target.onclick = function(event) { can.user.copy(event, can, target.innerText), can.base.isFunc(cb) && cb(event) } }, copy: function(can, target, cb) { target.title = "点击复制", target.onclick = function(event) {
can.user.copy(event, can, target.innerText), can.base.isFunc(cb) && cb(event)
can.onkeymap.prevent(event)
} },
move: function(can, target, layout, cb) { var begin; layout = layout||{} move: function(can, target, layout, cb) { var begin; layout = layout||{}
can.page.style(can, target, layout), target.onmousedown = function(event) { can.page.style(can, target, layout), target.onmousedown = function(event) {
if (event.target != target && !event.ctrlKey) { return } can.onkeymap.prevent(event) if (event.target != target && !event.ctrlKey) { return } can.onkeymap.prevent(event)

View File

@ -42,6 +42,7 @@ table.content.action td:last-child { background-color:steelblue; position:sticky
table.content.full { width:100%; } table.content.full { width:100%; }
div.code { background-color:#343a3445; font-size:14px; padding:10px; border:green solid 1px; } div.code { background-color:#343a3445; font-size:14px; padding:10px; border:green solid 1px; }
div.story[data-type=spark] { background-color:#2169a9a6; color:white; padding:5px 10px; border-left:blue solid 5px; margin:10px; } div.story[data-type=spark] { background-color:#2169a9a6; color:white; padding:5px 10px; border-left:blue solid 5px; margin:10px; }
table.content div.story[data-type=spark] { margin:0; }
h1 { text-align:center; margin:20px 0; } h2 { margin:20px 0; } h3 { margin:20px 0; } ul { padding-left:40px; margin:20px 0; } h1 { text-align:center; margin:20px 0; } h2 { margin:20px 0; } h3 { margin:20px 0; } ul { padding-left:40px; margin:20px 0; }
hr, td.hr { border-bottom:gray dashed 1px; margin:5px; } hr, td.hr { border-bottom:gray dashed 1px; margin:5px; }
/* fieldset */ /* fieldset */
@ -269,7 +270,7 @@ body.mobile fieldset.input.date div.output td { padding:8px 20px; }
body.mobile fieldset.word.float>div.output>div.project { top:38px; } body.mobile fieldset.word.float>div.output>div.project { top:38px; }
/* misc */ /* misc */
fieldset.panel.Action.cmd>div.toggle.project { display:none; } fieldset.panel.Action.cmd>div.toggle.project { display:none; }
fieldset.panel.Search div.story[data-type=spark] { padding:0; margin:0; } fieldset.panel.Search div.story[data-type=spark] { margin:0; }
fieldset.plugin.location>div.action input[type=text] { width:40px; } fieldset.plugin.location>div.action input[type=text] { width:40px; }
fieldset.plugin.config form.option input[name=key] { width:240px; } fieldset.plugin.config form.option input[name=key] { width:240px; }
fieldset.plugin.parse.cmd>legend { display:none; } fieldset.plugin.parse.cmd>legend { display:none; }

View File

@ -194,6 +194,9 @@ Volcanos("page", {
} }, } },
Color: function(text) { if (typeof text != lang.STRING) { return "" } text = text.replace(/\\n/g, "<br>") Color: function(text) { if (typeof text != lang.STRING) { return "" } text = text.replace(/\\n/g, "<br>")
if (text.indexOf(ice.HTTP) == 0 && text.length > 10) { var ls = text.split(ice.SP); text = "<a href='"+ls[0]+"' target='_blank'>"+ls[0]+"</a>"+ls.slice(1).join(ice.SP) } if (text.indexOf(ice.HTTP) == 0 && text.length > 10) { var ls = text.split(ice.SP); text = "<a href='"+ls[0]+"' target='_blank'>"+ls[0]+"</a>"+ls.slice(1).join(ice.SP) }
if (text.indexOf("export ctx_dev=") == 0 && text.length > 10) {
return "<div class='story' data-type='spark' data-name='shell'><div>"+"<span>"+text+"</span>"+"</div></div>"
}
if (text.indexOf("\033\[") == -1) { return text } if (text.indexOf("\033\[") == -1) { return text }
text = text.replace(/\033\[31m/g, "<span style='color:#f00'>") text = text.replace(/\033\[31m/g, "<span style='color:#f00'>")
text = text.replace(/\033\[32m/g, "<span style='color:#0f0'>") text = text.replace(/\033\[32m/g, "<span style='color:#0f0'>")

View File

@ -57,7 +57,7 @@ Volcanos(chat.ONACTION, {_init: function(can, target) {
onaction_cmd: function(can, msg) { can.page.ClassList.add(can, can._target, can.Mode(chat.CMD)), can.Conf(html.MARGIN_Y, 0), can.Conf(html.MARGIN_X, 0) }, onaction_cmd: function(can, msg) { can.page.ClassList.add(can, can._target, can.Mode(chat.CMD)), can.Conf(html.MARGIN_Y, 0), can.Conf(html.MARGIN_X, 0) },
onsearch: function(can, msg, arg) { var fields = msg.Option(ice.MSG_FIELDS).split(ice.FS) onsearch: function(can, msg, arg) { var fields = msg.Option(ice.MSG_FIELDS).split(ice.FS)
if (arg[0] == mdb.FOREACH || arg[0] == mdb.PLUGIN) { can.onexport.plugin(can, msg, arg, fields) } if (arg[0] == mdb.FOREACH || arg[0] == mdb.PLUGIN) { can.onexport.plugin(can, msg, arg, fields) }
if (arg[0] == mdb.FOREACH || arg[0] == ctx.COMMAND) { can.onexport.command(can, msg, arg, fields) } if (arg[0] == ctx.COMMAND) { can.onexport.command(can, msg, arg, fields) }
}, },
onkeydown: function(can, msg, model) { if (can.isCmdMode() && !msg._event.metaKey) { return } onkeydown: function(can, msg, model) { if (can.isCmdMode() && !msg._event.metaKey) { return }
if (can.onkeymap.selectCtrlN(msg._event, can, can._action, html.DIV_TABS)) { return } if (can.onkeymap.selectCtrlN(msg._event, can, can._action, html.DIV_TABS)) { return }

View File

@ -24,7 +24,7 @@ Volcanos(chat.ONACTION, {list: [mdb.CREATE, web.SHARE, web.REFRESH], _init: func
}) }, }) },
onaction_touch: function(can, msg) { can.user.isMobile && can.onmotion.hidden(can) }, onaction_touch: function(can, msg) { can.user.isMobile && can.onmotion.hidden(can) },
onaction_notool: function(can, msg, river, storm) { can.ondetail["addcmd"](msg._event, can, "addcmd", river, storm) }, onaction_notool: function(can, msg, river, storm) { can.ondetail["addcmd"](msg._event, can, "addcmd", river, storm) },
onsearch: function(can, msg, arg) { if (arg[0] == mdb.FOREACH || arg[0] == chat.STORM) { can.onexport.storm(can, msg, arg) } }, onsearch: function(can, msg, arg) { if (arg[0] == chat.STORM) { can.onexport.storm(can, msg, arg) } },
onlayout: function(can, layout) { can.user.isMobile || can.onmotion.toggle(can, can._target, !layout || layout == "tabs") }, onlayout: function(can, layout) { can.user.isMobile || can.onmotion.toggle(can, can._target, !layout || layout == "tabs") },
ontitle: function(can, msg) { can.misc.sessionStorage(can, CAN_RIVER, ""), can.misc.sessionStorage(can, CAN_STORM, "") }, ontitle: function(can, msg) { can.misc.sessionStorage(can, CAN_RIVER, ""), can.misc.sessionStorage(can, CAN_STORM, "") },
@ -33,7 +33,8 @@ Volcanos(chat.ONACTION, {list: [mdb.CREATE, web.SHARE, web.REFRESH], _init: func
}) }, }) },
share: function(event, can) { can.core.CallFunc(can.ondetail.share, {event: event, can: can}) }, share: function(event, can) { can.core.CallFunc(can.ondetail.share, {event: event, can: can}) },
refresh: function(event, can) { can.misc.Search(can, { refresh: function(event, can) { can.misc.Search(can, {
river: can.Conf(chat.RIVER), storm: can.Conf(chat.STORM), theme: can.getHeaderTheme(), layout: can.getAction("layout"), river: can.Conf(chat.RIVER), storm: can.Conf(chat.STORM),
// theme: can.getHeaderTheme(), layout: can.getAction("layout"),
}) }, }) },
storm: function(event, can, river) { can.onmotion.select(can, can._output, html.DIV_ITEM, can.ui.river_list[river]) storm: function(event, can, river) { can.onmotion.select(can, can._output, html.DIV_ITEM, can.ui.river_list[river])