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

opt layout

This commit is contained in:
shaoying 2020-06-01 08:37:59 +08:00
parent 440a3b3a94
commit f85c5e3ccd
6 changed files with 49 additions and 28 deletions

View File

@ -104,6 +104,12 @@ Volcanos("onappend", { _init: function(can, meta, list, cb, target, field) {
_option: option, _action: action, _output: output,
_follow: can._follow+"."+meta.name, _history: [],
Option: function(key, value) {
if (key == undefined) { value = {}
sub.page.Select(sub, option, "select.args,input.args", function(item) {
value[item.name] = item.value
})
return value
}
sub.page.Select(sub, option, "select[name="+key+"],input[name="+key+"]", function(item) {
value == undefined? (value = item.value): (item.value = value)
})
@ -125,6 +131,10 @@ Volcanos("onappend", { _init: function(can, meta, list, cb, target, field) {
meta.feature = can.base.Obj(meta.feature, {})
meta.detail = meta.feature["detail"] || {}
sub.onimport._init(sub, sub.Conf(meta), list, function() {}, field);
if (can.user.Search(can, "share") && can.user.Search(can, "river") && can.user.Search(can, "storm")) {
can.page.Select(can, field, "legend", function(item) { can.page.Remove(can, item) })
}
// 添加控件
var args = can.base.Obj(meta.args, [])
@ -135,7 +145,7 @@ Volcanos("onappend", { _init: function(can, meta, list, cb, target, field) {
_follow: can._follow+"."+meta.name+"."+item.name,
}, Volcanos.meta.libs.concat([item.display||"/plugin/input.js"]), function(input) {
input.onimport._init(input, input.Conf(item), item.list||[], function() {}, input._target);
if (can.user.Search(can, "active") == meta.name) {
if (can.user.Search(can, "active") == meta.name || can.user.Search(can, "title") == meta.name) {
var p = sub.user.Search(can, item.name) || ""
p && (input._target.value = p)
}

View File

@ -76,6 +76,11 @@ fieldset>div.action {
}
fieldset>div.action>div.item {
float:left;
margin:2px 0;
}
fieldset>div.action>div.item>select {
color:cyan;
background:black;
}
fieldset>div.action>div.item>input {
color:cyan;
@ -84,10 +89,6 @@ fieldset>div.action>div.item>input {
fieldset>div.action>div.item>input:hover {
background:gray;
}
fieldset>div.action>div.item>select {
color:cyan;
background:black;
}
fieldset>div.status>div.item {
float:left;
padding:4px;

View File

@ -7,13 +7,15 @@ Volcanos("onaction", {help: "交互操作", list: [],
},
})
Volcanos("ondetail", {help: "交互菜单", list: ["共享", "更名", "删除"],
"共享": function(event, can, value) {
var msg = can.request(event)
msg.Option("name", "storm")
"共享": function(event, can, value, sub) {
console.log(sub.Option())
var msg = sub.request(event)
msg.Option("name", value.name)
msg.Option("node", value.pod)
msg.Option("group", value.group)
msg.Option("index", value.index)
msg.Option("args", value.args)
msg.Option("value", JSON.stringify(sub.Option()))
msg.Option("storm", can.Conf("storm"))
msg.Option("river", can.Conf("river"))
can.onappend.share(can, msg)
@ -45,7 +47,7 @@ Volcanos("onexport", {help: "导出数据", list: [],
}
sub._target.oncontextmenu = function(event) {
can.onappend.carte(can, can.ondetail, can.ondetail.list, function(event, item, meta) {
meta[item] && meta[item](event, can, value)
meta[item] && meta[item](event, can, value, sub)
})
}
}, can._output);

View File

@ -2,6 +2,7 @@ fieldset.editor>div.action>div.file {
border:solid 2px red;
padding:2px;
float:left;
margin:2px 0;
}
fieldset.editor>div.action>div.file:hover {
background-color:green;
@ -22,7 +23,6 @@ fieldset.editor>div.output>div.profile {
width:80px; overflow:auto;
}
fieldset.editor>div.output>div.profile:hover {
position:absolute; right:0;
width:480px;
}

View File

@ -1,10 +1,18 @@
Volcanos("onimport", {help: "导入数据", _init: function(can, msg, list, cb, target) { target.innerHTML = ""
if (can.user.Search(can, "share") && can.user.Search(can, "river") && can.user.Search(can, "storm")) {
can.onaction.list = ["项目", "运行"]
can.page.Modify(can, can._action, {style: {clear: "none"}})
can.page.Select(can, can._option, "input[type=button]", function(item) {
can.page.Remove(can, item)
})
can.Conf("height", can.Conf("height") + 64)
}
var width = can.Conf("width"), height = can.Conf("height")
can.page.Modify(can, target, {style: {"max-height": height-160+"px"}})
msg.Option("_action") != "查看" && can.onappend.table(can, target, "table", msg)
msg.Option("_action") != "查看" && msg.Option("_action") != "打开" && can.onappend.table(can, target, "table", msg)
can.ui = can.page.Append(can, target, [
{view: ["project", "div"], style: {width: "80px"}},
{view: ["project", "div"], style: {width: "80px", "max-height": height-160+"px"}},
{view: ["profile", "div"]},
{view: "preview", style: {width: "30px"}},
@ -37,11 +45,6 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, list, cb,
can.Option("name", name)
if (can.tabview[path+name]) { return can.onsyntax._init(can, can.tabview[path+name]) }
var p = can.onsyntax[can.parse]
!p && can.run({}, ["action", "plug", can.Option("path"), can.Option("name")], function(msg) {
can.onsyntax[can.parse] = p
}, true)
can.run({}, [path, name], function(msg) {
msg.Option("path", can.Option("path"))
msg.Option("name", can.Option("name"))
@ -53,18 +56,22 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, list, cb,
},
project: function(can, path) { can.ui.project.innerHTML = ""
can.Option("path", path)
can.run({}, ["action", "project", path], function(res) {
res.Table(function(value) { can.page.Append(can, can.ui.project, [{text: [value.file, "div", "item"], onclick: function(event) {
can.run({}, ["action", "project", path], function(res) { res.Table(function(value) {
var title = can.core.List(["time", "size"], function(item) {
return item + ": " + value[item]
}).join("\n")
can.page.Append(can, can.ui.project, [{text: [value.file, "div", "item"], title: title, onclick: function(event) {
if (value.file.endsWith("/")) {
can.onimport.project(can, can.Option("path", can.base.Path(can.Option("path"), value.file)))
} else {
can.onimport.tabview(can, can.Option("path"), can.Option("name", value.file))
}
}} ]) })
}, true)
}} ])
}) }, true)
},
}, ["/plugin/inner.css"])
Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"], _init: function(can, msg) {
Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"], _init: function(can, msg) { can._msg = msg
var file = can.base.Path(msg.Option("path"), msg.Option("name"))
// option
@ -86,8 +93,6 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"],
}); if (cache) { return }
// remote
can.ui.preview.innerHTML = ""
can.ui.content.innerHTML = ""
can.parse = file.split(".").pop()||"txt"
can.max = 0, can.core.List(can.ls = msg.Result().split("\n"), function(item) {
can.onaction.appendLine(can, item)
@ -296,15 +301,17 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"],
k: function(event, can) {
},
},
display: true,
line: function(can, line) { var auto = false, loop = true
line: function(can, line) { var auto = true, loop = true
var total = 0
function cb(event) { console.log(event) }
return {className: "preview", type: "video", style: {height: can.Conf("height")-160+"px", width: can.Conf("width")-160+"px"},
data: {src: "/share/local/"+line, controls: "controls", autoplay: auto, loop: loop},
oncontextmenu: cb, onplay: cb, onpause: cb, onended: cb,
onloadedmetadata: function(event) { total = event.timeStamp }, onloadeddata: cb, ontimeupdate: function(event) {
can.Status("当前行", can.onexport.position(can, event.target.currentTime-1, event.target.duration))
onloadedmetadata: function(event) {
total = event.timeStamp
event.target.currentTime = can._msg.currentTime || 0
}, onloadeddata: cb, ontimeupdate: function(event) {
can.Status("当前行", can.onexport.position(can, (can._msg.currentTime=event.target.currentTime)-1, event.target.duration))
},
}
},

View File

@ -182,6 +182,7 @@ var Volcanos = shy("火山架", {cache: {}, index: 1, order: 1, debug: {
return name
}
output.innerHTML = ""
var list = cache[name]; if (!list) {return}
console.log(can._root, can._name, "load", name, cache[name]);