1
0
forked from x/volcanos

opt inner.js

This commit is contained in:
IT 老营长 @云轩领航-创始人 2022-01-18 00:31:08 +08:00
parent 04a094dbd8
commit f7090d6ba2
4 changed files with 51 additions and 35 deletions

View File

@ -516,8 +516,6 @@ Volcanos("onlayout", {help: "页面布局", list: [], _init: function(can, targe
var left = event.clientX-event.offsetX, top = event.clientY-event.offsetY+event.target.offsetHeight-5; if (right) {
var left = event.clientX-event.offsetX+event.target.offsetWidth, top = event.clientY-event.offsetY
}
if (!left) { left = window.innerWidth/2-target.offsetWidth/2 }
if (!top) { top = 32 }
layout = {left: left, top: top}
if (layout.top < 0) { layout.top = 0 }
@ -579,7 +577,7 @@ Volcanos("onlayout", {help: "页面布局", list: [], _init: function(can, targe
Volcanos("onmotion", {help: "动态特效", list: [], _init: function(can, target) {
},
focus: function(can, target) { if (!target) { return }
target.setSelectionRange(0, -1), target.focus()
target.setSelectionRange && target.setSelectionRange(0, -1), target.focus()
},
clear: function(can, target) {
return can.page.Modify(can, target||can._output, ""), true

View File

@ -253,7 +253,13 @@ Volcanos("user", {help: "用户操作", agent: {
return {type: html.TR, list: [{type: html.TD, list: [{text: item._trans||can.user.trans(can, item.name)||""}]}, {type: html.TD, list: [can.page.input(can, item)]} ]}
})}, {view: chat.ACTION},
]}]); can.onlayout.figure(event, can, ui._target)
]}]);
var layout = can.onlayout.figure(event, can, ui._target)
if (!layout.left) { if (!layout.top) { layout.top = 32 }
layout.left = window.innerWidth/2-ui._target.offsetWidth/2
can.page.style(can, ui._target, layout)
}
can.page.ClassList.add(can, ui._target, chat.FLOAT)
var action = can.onappend._action(can, button||[html.SUBMIT, html.CANCEL], ui.action, {

View File

@ -1,3 +1,15 @@
fieldset.inner.full>div.legend {
display:none;
}
fieldset.inner.full>div.action {
display:none;
}
fieldset.inner.full>form.option {
display:none;
}
fieldset.inner.full>div.status {
display:none;
}
fieldset.inner>div.action {
float:none; display:block;
height:26px; overflow:auto;

View File

@ -11,6 +11,10 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target
can.onimport.tabview(can, can.Option(nfs.PATH), can.Option(nfs.FILE), can.Option(nfs.LINE))
can.onimport.project(can, can.Option(nfs.PATH), function() {
can.onimport._toolkit(can, can.ui.toolkit), can.onimport._session(can, msg), can.onimport._keydown(can)
can.core.Timer(10, function() {
can.onmotion.toggle(can, can.ui.project), can.onimport.layout(can)
can.onmotion.toggle(can, can.ui.project), can.onimport.layout(can)
})
})
},
_project: function(can, target) {
@ -68,7 +72,7 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target
}, true)
},
tabview: function(can, path, file, line, cb) { var key = path+ice.DF+file
if (can.tabview[key]) { can.user.mod.isCmd && can.user.title(file)
if (can.tabview[key]) { can.user.mod.isCmd && can.user.title(path+file)
can._msg && can._msg.Option(nfs.LINE, can.Option(nfs.LINE)), can._msg = can.tabview[key]
can.Option({path: path, file: file, line: line||can._msg.Option(nfs.LINE)||1})
return can._msg.Option(can.Option()), can.onsyntax._init(can, can._msg, cb)
@ -153,14 +157,21 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target
}, [""])
Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"], _init: function(can, msg, cb) {
if (can.onmotion.cache(can, function(cache_data) {
can.file && (cache_data[can.file] = {current: can.current, max: can.max})
can.file && (cache_data[can.file] = {
current: can.current, max: can.max,
profile_display: can.ui.profile.style.display,
display_display: can.ui.display.style.display,
})
can.file = can.base.Path(msg.Option(nfs.PATH), msg.Option(nfs.FILE))
var p = cache_data[can.file]; p && (can.current = p.current, can.max = p.max)
can.page.Modify(can, can.ui.profile, {style: {display: p? p.profile_display: html.NONE}})
can.page.Modify(can, can.ui.display, {style: {display: p? p.display_display: html.NONE}})
can.parse = can.base.Ext(can.file), can.Status("模式", "normal")
can.onmotion.select(can, can._action, chat.DIV_TABS, msg._tab)
msg.Option(ctx.INDEX) && can.core.Timer(100, function() {
msg.Option(ctx.INDEX) && can.core.Timer(10, function() {
can.onmotion.focus(can, can.page.Select(can, can.ui.content, html.OPTION_ARGS)[0])
})
can.onimport.layout(can)
return can.file
}, can.ui.content, can.ui.profile_output, can.ui.display_output)) {
return can.onaction.selectLine(can, msg.Option(nfs.LINE)), can.base.isFunc(cb) && cb()
@ -168,7 +179,7 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"],
if (msg.Option(ctx.INDEX)) {
can.onimport.plugin(can, {index: msg.Option(ctx.INDEX)}, can.ui.content, function(sub) {
can.core.Timer(100, function() {
can.core.Timer(10, function() {
can.onmotion.focus(can, can.page.Select(can, can.ui.content, html.OPTION_ARGS)[0])
}), can.base.isFunc(cb) && cb()
})
@ -183,9 +194,10 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"],
init(p = can.onsyntax[can.parse] = can.base.Obj(msg.Result()))
}, true): init(p)
},
_parse: function(can, line) { line = can.page.replace(can, line||"")
function wrap(type, str) { return type? '<span class="'+type+'">'+str+'</span>': str }
_parse: function(can, line) { if (line.indexOf("<html") == 0) { return line }
line = can.page.replace(can, line||"")
function wrap(type, str) { return type? '<span class="'+type+'">'+str+'</span>': str }
var p = can.onsyntax[can.parse]; if (!p) { return line } p = can.onsyntax[p.link]||p, p.split = p.split||{}
p.keyword && (line = can.core.List(can.core.Split(line, p.split.space||ice.SP, p.split.operator||"{[(|)]}", {detail: true}), function(item, index, array) {
item = can.base.isObject(item)? item: {text: item}
@ -212,7 +224,6 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"],
return line
},
})
Volcanos("onkeypop", {help: "导入数据", _init: function(can, msg, cb, target) {
},
_mode: {
@ -238,7 +249,7 @@ Volcanos("onkeypop", {help: "导入数据", _init: function(can, msg, cb, target
})
Volcanos("onaction", {help: "控件交互", list: ["搜索", "打开", "添加", "插件", "扩展", "保存"],
"搜索": function(event, can) {
can.user.input(event, can, [[ctx.ACTION, nfs.TAGS, nfs.GREP, cli.MAKE], mdb.NAME], function(event, button, data, list, args) {
can.user.input(event, can, [mdb.NAME, [ctx.ACTION, nfs.TAGS, nfs.GREP, cli.MAKE]], function(event, button, data, list, args) {
can.ui.search.Update({}, [ctx.ACTION, data.action, data.name])
})
},
@ -289,32 +300,23 @@ Volcanos("onaction", {help: "控件交互", list: ["搜索", "打开", "添加",
return can.onmotion.hidden(can, item), item
}).length > 0) { return }
can.onmotion.hidden(can, can.ui.profile)
can.onmotion.hidden(can, can.ui.display)
if (can.ui.profile.style.display == "") {
can.onmotion.hidden(can, can.ui.profile)
} else if (can.ui.display.style.display == "") {
can.onmotion.hidden(can, can.ui.display)
} else {
can.onaction["全屏"](event, can)
}
can.onimport.layout(can)
},
"全屏": function(event, can) {
if (can._action.style.display == html.NONE) {
can.onmotion.hidden(can, can._legend, true)
can.onmotion.hidden(can, can._option, true)
can.onmotion.hidden(can, can._action, true)
can.onmotion.hidden(can, can._status, true)
if (can.page.ClassList.neg(can, can._fields, "full")) {
can.onmotion.hidden(can, can.ui.project)
can.ConfHeight(window.innerHeight)
} else {
can.onmotion.hidden(can, can.ui.project, true)
can.ConfHeight(window.innerHeight-2*html.ACTION_HEIGHT)
can.onimport.layout(can)
return
}
can.onaction["清屏"](event, can)
can.onaction["清屏"](event, can)
can.onaction["清屏"](event, can)
can.onaction["清屏"](event, can)
can.onmotion.hidden(can, can.ui.project)
can.onmotion.hidden(can, can._status)
can.onmotion.hidden(can, can._action)
can.onmotion.hidden(can, can._option)
can.onmotion.hidden(can, can._legend)
can.ConfHeight(window.innerHeight)
can.onimport.layout(can)
},
back: function(event, can) { can.history.pop(); var last = can.history.pop()
@ -322,9 +324,7 @@ Volcanos("onaction", {help: "控件交互", list: ["搜索", "打开", "添加",
can.Status("跳转数", can.history.length)
},
scrollLine: function(can, count) { var size = 20
can.current.scroll(0, count*size)
},
scrollLine: function(can, count) { var size = 20; can.current.scroll(0, count*size) },
appendLine: function(can, value) {
var ui = can.page.Append(can, can.ui.content, [{type: html.TR, list: [
{view: ["line unselectable", html.TD, ++can.max], onclick: function(event) {