1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 16:58:06 +08:00
This commit is contained in:
IT 老营长 @云轩领航-创始人 2024-05-08 00:14:21 +08:00
parent ffac2c4016
commit b808b4a9ce
8 changed files with 32 additions and 24 deletions

View File

@ -197,19 +197,17 @@ div.project div.action div.item.icons input { display:none; }
div.project div.action div.item.icons { background-color:var(--plugin-bg-color); padding:0; } div.project div.action div.item.icons { background-color:var(--plugin-bg-color); padding:0; }
div.project div.list { margin-left:var(--button-margin); clear:both; } div.project div.list { margin-left:var(--button-margin); clear:both; }
body.width6 fieldset.plugin>div.output>div.project div.list { margin-left:var(--legend-margin); } body.width6 fieldset.plugin>div.output>div.project div.list { margin-left:var(--legend-margin); }
// div.project div.list { border-left:var(--disable-fg-color) dashed 1px; } div.project div.list { border-left:var(--disable-fg-color) dashed 1px; }
fieldset.inner>div.output>div.project div.list { border-left:none; }
div.project div.list fieldset { position:static; } div.project div.list fieldset { position:static; }
div.project div.item.select { div.project div.item.select { border-right:var(--box-notice3); }
border-right:var(--box-notice3); fieldset.vimer>div.output>div.project div.item.select { border-right:var(--box-border3); }
} fieldset.vimer.normal>div.output>div.project div.item.select { border-right:var(--box-notice3); }
div.project div.item:not(.hide) i:first-child { fieldset.vimer.insert>div.output>div.project div.item.select { border-right:var(--box-danger3); }
margin-right:var(--input-margin); div.project div.item:not(.hide) i:first-child { margin-right:var(--input-margin); }
}
div.project div.item:not(.hide) { div.project div.item:not(.hide) {
white-space:pre; white-space:pre; line-height:24px; cursor:pointer;
line-height:24px;
padding:0 var(--button-margin); display:flex; align-items:center; padding:0 var(--button-margin); display:flex; align-items:center;
cursor:pointer;
} }
div.project div.item img { height:var(--action-height); width:var(--action-height); } div.project div.item img { height:var(--action-height); width:var(--action-height); }
div.project div.item img { margin:0; } div.project div.item img { margin:0; }

View File

@ -30,7 +30,7 @@ Volcanos("misc", {
return res return res
}, },
Option: function(key, val) { if (key == undefined) { return msg.option || [] } Option: function(key, val) { if (key == undefined) { return msg.option || [] }
if (can.base.isObject(key)) { return can.core.Item(key, msg.Option) } if (can.base.isObject(key)) { return can.core.Item(key, function(key, value) { msg.Option(key, value) }) }
if (val == undefined) { return can.base.isIn(key, msg.option) && msg[key] && msg[key][0] || "" } if (val == undefined) { return can.base.isIn(key, msg.option) && msg[key] && msg[key][0] || "" }
return msg.option = can.base.AddUniq(msg.option, key), msg[key] = can.core.List(arguments).slice(1), val return msg.option = can.base.AddUniq(msg.option, key), msg[key] = can.core.List(arguments).slice(1), val
}, },

View File

@ -186,7 +186,8 @@ Volcanos("user", {
}, },
carteItem: function(event, can, item) { if (!item.action) { return } carteItem: function(event, can, item) { if (!item.action) { return }
var trans = {}, list = can.page.Select(can, can.page.Create(can, html.DIV, item.action), "", function(target) { trans[target.name] = can.user.trans(can, target.value); return target.name }) var trans = {}, list = can.page.Select(can, can.page.Create(can, html.DIV, item.action), "", function(target) { trans[target.name] = can.user.trans(can, target.value); return target.name })
can.user.carteRight(event, can, {_trans: trans}, list, function(event, button) { can.Update(can.request(event, item), [ctx.ACTION, button]) }) can.user.carteRight(event, can, {_trans: trans}, list, function(_event, button) {
can.Update(can.request(_event, event._msg, item), [ctx.ACTION, button]) })
}, },
input: function(event, can, form, cb, button) { if (!form || form.length == 0) { return cb() } input: function(event, can, form, cb, button) { if (!form || form.length == 0) { return cb() }
event = event||{}; var msg = can.request(event); event = event._event||event; var need = {} event = event||{}; var msg = can.request(event); event = event._event||event; var need = {}

View File

@ -139,9 +139,8 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { var paths = can.core.Sp
function isIndex() { return line == ctx.INDEX } function isSpace() { return line == web.SPACE } function isIndex() { return line == ctx.INDEX } function isSpace() { return line == web.SPACE }
function show(skip) { can._msg && can._msg.Option && can._msg.Option(nfs.LINE, can.Option(nfs.LINE)), can._msg = can.db.tabview[key] function show(skip) { can._msg && can._msg.Option && can._msg.Option(nfs.LINE, can.Option(nfs.LINE)), can._msg = can.db.tabview[key]
can.Option(can.onimport.history(can, {path: path, file: file, line: line||can.onexport.session(can, SELECT_LINE+nfs.DF+path+file)||can._msg.Option(nfs.LINE)||1})) can.Option(can.onimport.history(can, {path: path, file: file, line: line||can.onexport.session(can, SELECT_LINE+nfs.DF+path+file)||can._msg.Option(nfs.LINE)||1}))
can.onsyntax._init(can, can._msg, function(content) { var msg = can._msg; can.onexport.hash(can) can.onsyntax._init(can, can._msg, function(content) { var msg = can._msg; can.onexport.hash(can), can.onmotion.toggle(can, can.ui.path, true)
can.isCmdMode() && can.onexport.title(can, (isIndex()||isSpace()? "": path)+file), can.onmotion.select(can, can.ui._tabs, html.DIV_TABS, msg._tab), can.isCmdMode() && msg._tab.scrollIntoView() can.isCmdMode() && can.onexport.title(can, (isIndex()||isSpace()? "": path)+file), can.onmotion.select(can, can.ui._tabs, html.DIV_TABS, msg._tab), can.isCmdMode() && msg._tab.scrollIntoView()
can.onmotion.toggle(can, can.ui.path, true)
if (isSpace()) { if (isSpace()) {
can.ui.path.innerHTML = can.page.Format(html.A, can.base.trimPrefix(can.misc.MergePodCmd(can, {pod: can.Option(nfs.FILE)}), location.origin)) can.ui.path.innerHTML = can.page.Format(html.A, can.base.trimPrefix(can.misc.MergePodCmd(can, {pod: can.Option(nfs.FILE)}), location.origin))
} else if (isIndex()) { can.onmotion.hidden(can, can.ui.path) } else if (isIndex()) { can.onmotion.hidden(can, can.ui.path)
@ -169,9 +168,11 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { var paths = can.core.Sp
name = file.split(mdb.FS)[0].split(isIndex()? nfs.PT: nfs.PS).pop() name = file.split(mdb.FS)[0].split(isIndex()? nfs.PT: nfs.PS).pop()
} }
var tabs = can.onimport.tabs(can, [{name: name, text: file, _menu: shy([nfs.SAVE, nfs.TRASH, web.REFRESH], function(event, button, meta) { var tabs = can.onimport.tabs(can, [{name: name, text: file, _menu: shy([nfs.SAVE, nfs.TRASH, web.REFRESH], function(event, button, meta) {
can.request(event, msg) can.request(event, msg), can.onaction[button](event, can, button)
can.onaction[button](event, can, button) })}], function(event, tabs) { })}], function(event, tabs) { can._tab = msg._tab = tabs._target, show(skip), skip = true
can._tab = msg._tab = tabs._target, show(skip), skip = true can.onmotion.delay(can, function() {
var item = can.ui.zone && can.ui.zone.source && can.ui.zone.source[path+file]; if (!item) { return }
item._tabs = tabs._target, can.page.ClassList.has(can, item, html.SELECT) || can.ui.zone.source[path+file].click() })
}, function(tabs) { can.onengine.signal(can, VIEW_REMOVE, msg) // , can.ui.zone.source.refresh() }, function(tabs) { can.onengine.signal(can, VIEW_REMOVE, msg) // , can.ui.zone.source.refresh()
msg.__content || can.page.Remove(can, msg._content), msg._profile != can.ui._profile && can.page.Remove(can, msg._profile) msg.__content || can.page.Remove(can, msg._content), msg._profile != can.ui._profile && can.page.Remove(can, msg._profile)
can.ui._profile._cache && delete(can.ui._profile._cache[key]), can.ui._display._cache && delete(can.ui._display._cache[key]) can.ui._profile._cache && delete(can.ui._profile._cache[key]), can.ui._display._cache && delete(can.ui._display._cache[key])

View File

@ -200,6 +200,7 @@ Volcanos(chat.ONSYNTAX, {
} }
}, },
}, mod: {prefix: {"//": code.COMMENT}, split: {operator: "(=>)"}, keyword: {"go": code.KEYWORD, "module": code.KEYWORD, "require": code.KEYWORD, "replace": code.KEYWORD}}, sum: {}, }, mod: {prefix: {"//": code.COMMENT}, split: {operator: "(=>)"}, keyword: {"go": code.KEYWORD, "module": code.KEYWORD, "require": code.KEYWORD, "replace": code.KEYWORD}}, sum: {},
work: {keyword: {go: code.KEYWORD, use: code.KEYWORD}},
js: {prefix: {"// ": code.COMMENT}, regexp: {"[A-Z_0-9]+": code.CONSTANT}, js: {prefix: {"// ": code.COMMENT}, regexp: {"[A-Z_0-9]+": code.CONSTANT},
keyword: { keyword: {
"let": code.KEYWORD, "const": code.KEYWORD, "var": code.KEYWORD, "let": code.KEYWORD, "const": code.KEYWORD, "var": code.KEYWORD,

View File

@ -1,6 +1,6 @@
fieldset.vimer>div.output>div.layout>div.layout>div.layout div.content { border-left:var(--box-border); border-top:var(--box-border); } fieldset.vimer>div.output>div.layout>div.layout>div.layout div.content { border-left:var(--box-border); border-top:var(--box-border); }
fieldset.vimer>div.output>div.layout>div.layout input.current { background-color:transparent; color:transparent; padding-left:var(--input-padding); height:var(--code-line-height); position:absolute; } fieldset.vimer>div.output>div.layout>div.layout input.current { background-color:transparent; color:transparent; padding-left:var(--input-padding); height:var(--code-line-height); position:absolute; }
fieldset.vimer>div.output.plugin>div.layout>div.layout input.current { display:none; } // fieldset.vimer>div.output.plugin>div.layout>div.layout input.current { display:none; }
fieldset.vimer>div.output>div.layout>div.layout div.content div.complete { background-color:unset; padding-top:0; display:none; position:absolute; height:1px; overflow:visible; } fieldset.vimer>div.output>div.layout>div.layout div.content div.complete { background-color:unset; padding-top:0; display:none; position:absolute; height:1px; overflow:visible; }
fieldset.vimer>div.output>div.layout>div.layout div.content div.complete div.prefix { color:transparent; white-space:pre; float:left; } fieldset.vimer>div.output>div.layout>div.layout div.content div.complete div.prefix { color:transparent; white-space:pre; float:left; }
fieldset.vimer>div.output>div.layout>div.layout div.content div.complete table.content thead { display:none; } fieldset.vimer>div.output>div.layout>div.layout div.content div.complete table.content thead { display:none; }

View File

@ -46,7 +46,9 @@ Volcanos(chat.ONFIGURE, {
can.onaction.script(can.request(event, {path: path, file: item.path+(can.base.endWith(item.path, "/")? "client.go": "")}), can, nfs.SCRIPT) }, can.onaction.script(can.request(event, {path: path, file: item.path+(can.base.endWith(item.path, "/")? "client.go": "")}), can, nfs.SCRIPT) },
nfs.TRASH, function(event, button) { can.runAction(event, nfs.TRASH, [path+item.path], function(msg) { show(target, zone, path) }) }, nfs.TRASH, function(event, button) { can.runAction(event, nfs.TRASH, [path+item.path], function(msg) { show(target, zone, path) }) },
)}; return item )}; return item
}); cache = can.onimport.tree(can, list, function(event, item) { can.base.endWith(item.path, nfs.PS) || can.onimport.tabview(can, path, item.path) }, function() {}, target, cache) }); cache = can.onimport.tree(can, list, function(event, item) { can.base.endWith(item.path, nfs.PS) || can.onimport.tabview(can, path, item.path) }, function(event, target, item) {
var msg = can.request(event); msg.Option(nfs.PATH, path), msg.Option(nfs.FILE, item.path)
}, target, cache)
can.onmotion.orderShow(can, target) can.onmotion.orderShow(can, target)
}, true) } if (path.length == 1) { return show(target, zone, path[0]) } can.page.Remove(can, zone._action) }, true) } if (path.length == 1) { return show(target, zone, path[0]) } can.page.Remove(can, zone._action)
can.onimport.zone(can, can.core.List(path, function(path) { return kit.Dict(mdb.NAME, path, path == args[0]? chat._INIT: chat._DELAY_INIT, function(target, zone) { can.onimport.zone(can, can.core.List(path, function(path) { return kit.Dict(mdb.NAME, path, path == args[0]? chat._INIT: chat._DELAY_INIT, function(target, zone) {
@ -68,10 +70,11 @@ Volcanos(chat.ONACTION, {list: [
"后台", "桌面", "官网"], _trans: {show: "预览", exec: "展示"}, "后台", "桌面", "官网"], _trans: {show: "预览", exec: "展示"},
_run: function(event, can, button, args, cb) { can.runAction(event, button, args, cb||function(msg) { _run: function(event, can, button, args, cb) { can.runAction(event, button, args, cb||function(msg) {
if (msg.IsErr()) { return can.user.toastFailure(can, msg.Result()) } if (msg.IsErr()) { return can.user.toastFailure(can, msg.Result()) }
can.onimport.tabview(can, msg.Option(nfs.PATH), msg.Option(nfs.FILE)), can.ui.zone.source.refresh() can.onmotion.delay(can, function() { can.onimport.tabview(can, msg.Option(nfs.PATH), msg.Option(nfs.FILE)) }, 300)
can.ui.zone.source.refresh()
}) }, }) },
_runs: function(event, can, button, cb) { var meta = can.Conf(), msg = can.request(event); msg.Option(ctx.ACTION, button) _runs: function(event, can, button, cb) { var meta = can.Conf(), msg = can.request(event); msg.Option(ctx.ACTION, button)
can.user.input(event, can, meta.feature[button], function(args) { can.onaction._run(event, can, button, args, cb) }) }, can.user.input(event, can, meta.feature[button], function(data, args) { var msg = can.request(event); msg.Option(data), can.onaction._run(event, can, button, args, cb) }) },
save: function(event, can, button) { can.request(event, {file: can.Option(nfs.FILE), content: can.onexport.content(can)}) save: function(event, can, button) { can.request(event, {file: can.Option(nfs.FILE), content: can.onexport.content(can)})
function imports(str) { var block = "", count = 0; can.core.List(str.split(lex.NL), function(item) { function imports(str) { var block = "", count = 0; can.core.List(str.split(lex.NL), function(item) {
if (can.base.beginWith(item, "import (")) { block = can.core.Split(item)[0]; return } if (can.base.beginWith(item, "import (")) { block = can.core.Split(item)[0]; return }
@ -87,7 +90,11 @@ Volcanos(chat.ONACTION, {list: [
} can.user.toastSuccess(can, p, button) } can.user.toastSuccess(can, p, button)
}) })
}, },
trash: function(event, can, button) { can.onaction._run(event, can, button, [can.Option(nfs.PATH)+can.Option(nfs.FILE)], function() { can._msg._tab._close() }) }, trash: function(event, can, button) { var msg = can.request(event), p = msg.Option(nfs.PATH)+msg.Option(nfs.FILE)
can.onaction._run(event, can, button, [p], function() {
var target = can.ui.zone.source[p]; if (target._tabs) { target._tabs._close() } can.page.Remove(can, target)
})
},
script: function(event, can, button) { can.onaction._runs(event, can, button) }, script: function(event, can, button) { can.onaction._runs(event, can, button) },
module: function(event, can, button) { can.onaction._runs(can.request(event, {title: "创建模块"}), can, button) }, module: function(event, can, button) { can.onaction._runs(can.request(event, {title: "创建模块"}), can, button) },
compile: function(event, can, button) { var msg = can.request(event); msg.Option(chat._TOAST, "") compile: function(event, can, button) { var msg = can.request(event); msg.Option(chat._TOAST, "")

View File

@ -104,7 +104,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) {
return {text: item.nick||item.name||item.zone||item.sess} return {text: item.nick||item.name||item.zone||item.sess}
}, },
_menu: function(event, can, item, cbs, target) { target = target||event.currentTarget _menu: function(event, can, item, cbs, target) { target = target||event.currentTarget
if (can.base.isFunc(cbs)) { var menu = cbs(event, target); if (menu) { return can.user.carteRight(event, can, menu.meta, menu.list, menu) } } if (can.base.isFunc(cbs)) { var menu = cbs(event, target, item); if (menu) { return can.user.carteRight(event, can, menu.meta, menu.list, menu) } }
can.user.carteItem(event, can, item) can.user.carteItem(event, can, item)
}, },
_item: function(can, item, cb, cbs) { _item: function(can, item, cb, cbs) {
@ -158,7 +158,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) {
if (node[name].childElementCount == 2) { can.onmotion.delay(can, function() { node[name].firstChild.click() }) } if (node[name].childElementCount == 2) { can.onmotion.delay(can, function() { node[name].firstChild.click() }) }
}, oncontextmenu: function(event) { }, oncontextmenu: function(event) {
can.onimport._menu(event, can, item, cbs) can.onimport._menu(event, can, item, cbs)
}}, {view: [[html.LIST, item.expand? "": html.HIDE]]}]) }}, {view: [[html.LIST, html.HIDE]]}])
node[name] = ui.list, (item._select || can.db.hash && (can.db.hash[0]||"").indexOf(key) == 0) && can.onmotion.delay(can, function() { ui.item.click() }) node[name] = ui.list, (item._select || can.db.hash && (can.db.hash[0]||"").indexOf(key) == 0) && can.onmotion.delay(can, function() { ui.item.click() })
}) }); return node }) }); return node
}, },