mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 16:58:06 +08:00
opt feel
This commit is contained in:
parent
22afd972d2
commit
53d933332a
54
frame.js
54
frame.js
@ -3,7 +3,7 @@ Volcanos("onengine", {help: "解析引擎", list: [], _init: function(can, meta,
|
||||
can.core.Next(list, function(item, next) { item.type = "pane"
|
||||
can.onappend._init(can, item, item.list, function(pane) {
|
||||
pane.Status = pane.Status || function(key, value) { pane.run({}, ["search", "Footer.onimport."+key, value]) }
|
||||
pane.onaction && pane.onappend._action(pane, pane._action, item.action||pane.onaction.list)
|
||||
pane.onaction && pane.onappend._action(pane, item.action||pane.onaction.list)
|
||||
|
||||
pane.run = function(event, cmds, cb, silent) { var msg = pane.request(event); cmds = cmds || []
|
||||
return (can.onengine[cmds[0]]||can.onengine[meta.main.engine]||can.onengine.remote)(event, can, msg, pane, cmds, cb)
|
||||
@ -162,7 +162,7 @@ Volcanos("onengine", {help: "解析引擎", list: [], _init: function(can, meta,
|
||||
},
|
||||
})
|
||||
Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, list, cb, target, field) {
|
||||
meta.name = meta.name.split(" ")[0]
|
||||
meta.name = meta.name || "", meta.name = meta.name.split(" ")[0]
|
||||
field = field || can.onappend.field(can, target, meta.type, meta).first
|
||||
var legend = can.page.Select(can, field, "legend")[0]
|
||||
var option = can.page.Select(can, field, "form.option")[0]
|
||||
@ -195,8 +195,10 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
Status: function(key, value) {
|
||||
if (typeof key == "object") { return sub.core.Item(key, sub.Status), key }
|
||||
sub.page.Select(sub, status, "div."+key+">span", function(item) {
|
||||
value == undefined? (value = item.innerHTML): (item.innerHTML = value)
|
||||
}); return value
|
||||
return value == undefined? (value = item.innerHTML): (item.innerHTML = value)
|
||||
}).length == 0 && value != undefined && sub.page.Append(sub, status, [{view: "item "+key, list: [
|
||||
{text: [key, "label"]}, {text: [": ", "label"]}, {text: [value+"", "span", key]},
|
||||
]}]); return value
|
||||
},
|
||||
Clone: function() {
|
||||
meta.args = sub.page.Select(sub, option, "textarea.args,input.args,select.args", function(item) {
|
||||
@ -246,17 +248,17 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
}); return can._inputs[item.name] = input
|
||||
}; can.core.Next(can.base.Obj(meta.inputs, []), add)
|
||||
},
|
||||
_action: function(can, action, list) {
|
||||
_action: function(can, list, action, meta) { action = action || can._action, meta = meta || can.onaction
|
||||
can.onmotion.clear(can, action), can.core.List(list, function(item) {
|
||||
item === ""? /*空白*/ can.page.Append(can, action, [{view: "item space"}]):
|
||||
typeof item == "string"? /*按键*/ can.onappend.input(can, action, "input", {type: "button", value: item, onclick: function(event) {
|
||||
var cb = can.onaction[item] || can.onaction["_engine"] || can.onkeymap && can.onkeymap._remote
|
||||
var cb = meta[item] || meta["_engine"] || can.onkeymap && can.onkeymap._remote
|
||||
typeof cb == "function"? cb(event, can, item): can.run(event, ["action", item], function(msg) {}, true)
|
||||
}}): item.length > 0? /*列表*/ can.onappend.input(can, action, "input", {type: "select", name: item[0], values: item.slice(1), title: item[0], onchange: function(event) {
|
||||
var which = item[event.target.selectedIndex+1]
|
||||
var cb = can.onaction[which]
|
||||
var cb = meta[which]
|
||||
typeof cb == "function" && cb(event, can, which)
|
||||
var cb = can.onaction[item[0]]
|
||||
var cb = meta[item[0]]
|
||||
typeof cb == "function" && cb(event, can, item[0], which)
|
||||
}}): item.input? /*文本*/ can.page.Append(can, action, [{view: "item", list: [{type: "input", name: item.input[0], onkeydown: function(event) {
|
||||
item.input[1](event, can)
|
||||
@ -269,7 +271,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
item.name && item.value && msg.Option(item.name, item.value)
|
||||
})
|
||||
|
||||
can.run(event, cmds||[], function(msg) {
|
||||
return can.run(event, cmds||[], function(msg) {
|
||||
if (can.onimport._process(can, msg, cmds, cb)) { return }
|
||||
typeof cb == "function" && cb(msg)
|
||||
if (silent) { return }
|
||||
@ -290,9 +292,9 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
}, table._msg = msg
|
||||
|
||||
msg && table.onimport && table.onimport._init && table.onimport._init(table, msg, msg.result||[], function(msg) {
|
||||
table.onaction && table.onappend._action(table, table._action, msg._action||meta._action||table.onaction.list)
|
||||
table.onaction && table.onappend._action(table, msg._action||meta._action||table.onaction.list, table._action)
|
||||
table.ondetail && table.onappend._detail(table, table._output, msg._detail||meta._detail||table.ondetail.list)
|
||||
table.onexport && table.onappend._status(table, table._status, msg._export||meta._export||table.onexport.list)
|
||||
table.onexport && table.onappend._status(table, msg._export||meta._export||table.onexport.list, table._status)
|
||||
}, can._output)
|
||||
}); can._outputs.push(output)
|
||||
}, silent)
|
||||
@ -304,7 +306,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
})
|
||||
})
|
||||
},
|
||||
_status: function(can, status, list) {
|
||||
_status: function(can, list, status) { status = status || can._status
|
||||
can.onmotion.clear(can, status), can.core.List(list, function(item) {
|
||||
can.page.Append(can, status, [{view: "item "+item, title: item, list: [
|
||||
{text: [item, "label"]}, {text: [": ", "label"]}, {text: ["", "span"]},
|
||||
@ -336,7 +338,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
})
|
||||
})
|
||||
},
|
||||
field: function(can, target, type, item) {
|
||||
field: function(can, target, type, item) { type = type || "input", item = item || {}
|
||||
return can.page.Append(can, target, [{view: [(type||"")+" "+(item.name||"")+" "+(item.pos||""), "fieldset"], list: [
|
||||
item.pos? undefined: {text: [(item.nick||item.name||"").split(" ")[0]+"("+(item.help||"").split(" ")[0]+")", "legend"]},
|
||||
{view: ["option", "form"]}, {view: ["action"]}, {view: ["output"]}, {view: ["status"]},
|
||||
@ -440,6 +442,32 @@ Volcanos("onlayout", {help: "页面布局", list: [], _init: function(can, targe
|
||||
topic: function(can, topic) { topic && (can._topic = topic)
|
||||
can.user.topic(can, can._topic || can.user.Search(can, "topic") || ((can.user.Search(can, "pod")||can.base.isNight())? "black": "white"))
|
||||
},
|
||||
|
||||
profile: function(can, target) {
|
||||
can.ui = can.page.Append(can, target, [{type: "table", list: [{type: "tr", list: [
|
||||
{type: "td", list: [{view: ["project", "div", "project"]}]},
|
||||
{type: "td", list: [{type: "tr", list: [{type: "table", list: [
|
||||
{type: "td", list: [{view: ["content", "div", "content"]}]},
|
||||
{type: "td", list: [{view: ["profile", "div", "profile"]}]},
|
||||
]}]}, {type: "tr", list: [
|
||||
{type: "td", list: [{view: ["display", "div", "display"]}]}
|
||||
]}]}
|
||||
]}] }])
|
||||
},
|
||||
project: function(can, target) {
|
||||
can.ui = can.page.Append(can, target, [{type: "table", list: [{type: "tr", list: [
|
||||
{type: "td", list: [{view: "project"}]}, {type: "td", list: [
|
||||
{type: "tr", list: [{view: "content"}]},
|
||||
{type: "tr", list: [{view: "display"}]},
|
||||
]}
|
||||
]}] }])
|
||||
},
|
||||
display: function(can, target) {
|
||||
can.ui = can.page.Appends(can, target, [{type: "table", list: [
|
||||
{type: "tr", list: [{view: "content"}]},
|
||||
{type: "tr", list: [{view: "display"}]},
|
||||
]}])
|
||||
},
|
||||
})
|
||||
Volcanos("onkeypop", {help: "键盘交互", list: [], _init: function(can, target) {
|
||||
can.core.Item(can.onkeypop._mode, function(item, value) { var engine = {}
|
||||
|
@ -74,7 +74,9 @@ Volcanos("user", {help: "用户模块", agent: {
|
||||
|
||||
var timer = can.core.Timer({value: 100, length: (meta.duration||1000)/100}, function(event, interval, index) {
|
||||
if (index > 20) { ui.duration.innerHTML = parseInt(index/10)+"."+(index%10)+"s..." }
|
||||
}, function() { can.page.Remove(can, ui.first), timer.stop = true })
|
||||
}, function() {
|
||||
can.page.Remove(can, ui.first), timer.stop = true
|
||||
})
|
||||
|
||||
ui.Close = function() { can.page.Remove(can, ui.first), timer.stop = true }
|
||||
return ui
|
||||
|
@ -43,6 +43,11 @@ body {
|
||||
fieldset {
|
||||
margin:0; border:0; padding:0;
|
||||
}
|
||||
fieldset.plugin {
|
||||
box-shadow:2px 2px 10px 4px #626bd0;
|
||||
background-color:#061c3c9e;
|
||||
margin:10px; padding:10px;
|
||||
}
|
||||
legend {
|
||||
box-shadow:4px 4px 20px 4px #626bd0;
|
||||
}
|
||||
@ -184,6 +189,9 @@ fieldset>div.output div.project div.list {
|
||||
margin-left:10px;
|
||||
}
|
||||
|
||||
body>fieldset.input {
|
||||
position:fixed; left:0; top:32px;
|
||||
}
|
||||
fieldset.input {
|
||||
background-color:#30a7a93d;
|
||||
position:fixed;
|
||||
@ -252,7 +260,7 @@ body.black a {
|
||||
color:yellow;
|
||||
}
|
||||
body.white {
|
||||
background-color:#2f3638;
|
||||
background-color:#052238bf;
|
||||
color:white;
|
||||
}
|
||||
body.white input[type=button] {
|
||||
@ -280,11 +288,11 @@ body.white select {
|
||||
}
|
||||
|
||||
body.white fieldset.Action {
|
||||
background-color:#81b3c1c9;
|
||||
background-color:#a2dceab3;
|
||||
color:black;
|
||||
}
|
||||
body.white fieldset.Action fieldset.plugin {
|
||||
background-color:#ffffff9c;
|
||||
color:black;
|
||||
}
|
||||
body.white fieldset.Action fieldset.plugin legend {
|
||||
background-color:#339999; color:white;
|
||||
@ -294,6 +302,9 @@ body.white fieldset.Action fieldset.plugin legend:hover {
|
||||
background-color:#6ee4e4;
|
||||
}
|
||||
|
||||
body.white fieldset.plugin {
|
||||
background-color:#d0dfe49e;
|
||||
}
|
||||
body.white fieldset.plugin table {
|
||||
color:black;
|
||||
}
|
||||
@ -314,6 +325,9 @@ body.white fieldset.plugin table td {
|
||||
body.white fieldset.plugin table td:hover {
|
||||
background-color:#98ecd4;
|
||||
}
|
||||
body.white fieldset.story {
|
||||
background-color:#7c8ea5ab;
|
||||
}
|
||||
|
||||
body.white table input[type=button][value=结束] {
|
||||
background:red;
|
||||
|
@ -1,6 +1,6 @@
|
||||
fieldset.Action {
|
||||
background-color:#051625; color:white;
|
||||
min-width:160px;
|
||||
background-color:#a2dceab3;
|
||||
}
|
||||
fieldset.Action div.action {
|
||||
display:none;
|
||||
@ -53,18 +53,13 @@ fieldset.Action div.output.free fieldset.plugin.select {
|
||||
display:block;
|
||||
}
|
||||
|
||||
fieldset.Action div.output fieldset.plugin {
|
||||
box-shadow:2px 2px 10px 4px #626bd0;
|
||||
background-color:#113c4a9e;
|
||||
margin:10px; padding:10px;
|
||||
}
|
||||
fieldset.Action div.output fieldset.plugin:hover {
|
||||
box-shadow:4px 4px 12px 6px #626bd0;
|
||||
}
|
||||
fieldset.Action div.output fieldset.plugin legend {
|
||||
background-color:#477182; color:white;
|
||||
font-size:16px; font-family:monospace;
|
||||
margin-top:4px 5px; padding:2px 20px;
|
||||
background-color:#0c739cd9;
|
||||
}
|
||||
fieldset.Action div.output fieldset.plugin legend:hover {
|
||||
background:red;
|
||||
|
@ -22,7 +22,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
can.onappend._init(can, value, ["/plugin/state.js"], function(plugin) {
|
||||
plugin._option.dataset.id = value.action, value.target = plugin._target
|
||||
plugin.run = function(event, cmds, cb, silent) { var msg = plugin.request(event); cmds = cmds || []
|
||||
can.run(event, can.onengine[cmds[0]]? cmds: [river, storm, value.action].concat(cmds), function(msg) {
|
||||
return can.run(event, can.onengine[cmds[0]]? cmds: [river, storm, value.action].concat(cmds), function(msg) {
|
||||
typeof cb == "function" && cb(msg)
|
||||
}, silent)
|
||||
}
|
||||
|
@ -2,6 +2,10 @@ fieldset.Footer {
|
||||
height:32px; padding:0 5px;
|
||||
clear:both;
|
||||
}
|
||||
fieldset.Footer div.toast {
|
||||
position:static;
|
||||
float:left;
|
||||
}
|
||||
fieldset.Footer>div.output>div {
|
||||
height:22px; padding:5px;
|
||||
cursor:pointer;
|
||||
|
@ -1,6 +1,7 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
|
||||
can.onmotion.clear(can)
|
||||
can.onimport._title(can, msg, target)
|
||||
can.onimport._toast(can, msg, target)
|
||||
can.onimport._state(can, msg, target)
|
||||
typeof cb == "function" && cb(msg)
|
||||
},
|
||||
@ -9,6 +10,9 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
can.page.Append(can, target, [{view: ["title", "div", title]}])
|
||||
})
|
||||
},
|
||||
_toast: function(can, msg, target) {
|
||||
can.toast = can.page.Append(can, target, [{view: ["toast", "div", ""]}]).first
|
||||
},
|
||||
_state: function(can, msg, target) {
|
||||
can.core.List(can.Conf("state"), function(item) {
|
||||
can.page.Append(can, target, [{view: ["state "+item, "div", can.Conf(item)],
|
||||
@ -17,6 +21,9 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
})
|
||||
},
|
||||
|
||||
toast: function(can, msg, text) {
|
||||
can.page.Modify(can, can.toast, {innerHTML: text})
|
||||
},
|
||||
keys: function(can, msg, list, cb, target) {
|
||||
can.page.Select(can, target, "span.keys", function(item) {
|
||||
item.innerHTML = list[0]||""
|
||||
@ -36,5 +43,7 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg,
|
||||
})
|
||||
},
|
||||
})
|
||||
Volcanos("onexport", {help: "导出数据", list: []})
|
||||
Volcanos("onexport", {help: "导出数据", list: [],
|
||||
height: function(can) { return can._target.offsetHeight },
|
||||
})
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
fieldset.Header {
|
||||
height:32px; padding:0 5px;
|
||||
z-index:1;
|
||||
}
|
||||
fieldset.Header>div.output>div {
|
||||
height:22px; padding:5px;
|
||||
|
@ -8,7 +8,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
"white": "白色主题",
|
||||
"black": "黑色主题",
|
||||
"print": "打印主题",
|
||||
"background": "背景图片",
|
||||
"background": "清除背景",
|
||||
"logout": "退出",
|
||||
}
|
||||
can.onmotion.clear(can)
|
||||
@ -21,10 +21,11 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
typeof cb == "function" && cb(msg)
|
||||
},
|
||||
_background: function(can, msg, target) { if (!msg.Option("background")) { return }
|
||||
if (msg.Option("background") == "void") {
|
||||
can.page.Modify(can, document.body, {style: {background: ''}})
|
||||
} else {
|
||||
can.page.Modify(can, document.body, {style: {background: 'url("'+msg.Option("background")+'")'}})
|
||||
can.page.Select(can, document.body, "fieldset.pane.Action", function(item) {
|
||||
can.page.Modify(can, item, {style: {background: 'url("'+msg.Option("background")+'")'}})
|
||||
})
|
||||
}
|
||||
},
|
||||
_title: function(can, msg, target) {
|
||||
can.user.title(can.user.Search(can, TITLE) || can.user.Search(can, POD))
|
||||
@ -104,6 +105,11 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
target.innerHTML = can.base.Time(null, "%w %H:%M:%S")
|
||||
can.onlayout.topic(can)
|
||||
},
|
||||
background: function(event, can, url) {
|
||||
can.run(event, ["action", "background", url], function(msg) {
|
||||
can.onimport._background(can, msg)
|
||||
})
|
||||
},
|
||||
|
||||
menu: function(can, cmds, cb) { // type item...
|
||||
can.page.Append(can, can._output, [{type: cmds[0], list: can.core.List(cmds.slice(1), function(item) {
|
||||
@ -178,14 +184,15 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg,
|
||||
black: function(event, can, button) { can.onlayout.topic(can, button) },
|
||||
white: function(event, can, button) { can.onlayout.topic(can, button) },
|
||||
print: function(event, can, button) { can.onlayout.topic(can, "white print") },
|
||||
background: function(event, can, button) { can.user.input(event, can, ["url"], function(ev, button, data, list) {
|
||||
can.run(event, ["action", "background", list[0]], function(msg) {
|
||||
can.onimport._background(can, msg)
|
||||
})
|
||||
}) },
|
||||
background: function(event, can, button) {
|
||||
can.onimport.background(event, can, "void")
|
||||
},
|
||||
|
||||
River: function(can) { can.run({}, ["search", "River.onmotion.toggle"]) },
|
||||
Footer: function(can) { can.run({}, ["search", "River.onmotion.autosize"]) },
|
||||
})
|
||||
Volcanos("onexport", {help: "导出数据", list: []})
|
||||
Volcanos("onexport", {help: "导出数据", list: [],
|
||||
height: function(can) { return can._target.offsetHeight },
|
||||
})
|
||||
|
||||
})()
|
||||
|
@ -237,5 +237,8 @@ Volcanos("ondetail", {help: "菜单交互", list: ["共享群组", "添加用户
|
||||
can.user.select(event, can, "github", "time,type,name,text")
|
||||
},
|
||||
})
|
||||
Volcanos("onexport", {help: "导出数据", list: []})
|
||||
Volcanos("onexport", {help: "导出数据", list: [],
|
||||
width: function(can) { return can._target.offsetWidth },
|
||||
height: function(can) { return can._target.offsetHeight },
|
||||
})
|
||||
})()
|
||||
|
@ -1,18 +1,13 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
|
||||
can.ui = can.page.Appends(can, can._target, [
|
||||
{view: "project"}, {view: "profile", style: {clear: "both"}},
|
||||
])
|
||||
|
||||
can.path = can.request({}), can.list = []
|
||||
msg.Table(function(value) { if (value.path.startsWith("/local")) { return }
|
||||
value.path.endsWith("/")? can.path.Push(value): can.list.push(value)
|
||||
})
|
||||
|
||||
can.onappend.table(can, can.path, can.ui.project, "table", function(value, key, index, line, array) {
|
||||
return {type: "td", inner: value, click: function(event) {
|
||||
can.sup.onaction.change(event, can.sup, key, value, function(msg) {
|
||||
can.run(event)
|
||||
})
|
||||
can.onlayout.display(can, target)
|
||||
can.onappend.table(can, can.path, can.ui.content, "table", function(value, key, index, line, array) {
|
||||
return {type: "td", inner: value, onclick: function(event) {
|
||||
can.sup.onaction.change(event, can.sup, key, value)
|
||||
}}
|
||||
})
|
||||
|
||||
@ -21,43 +16,65 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
typeof cb == "function" && cb(msg)
|
||||
|
||||
can.Action("倍速", can.rate = 1)
|
||||
can.Action("起始", can.begin = parseInt(msg.Option("begin"))||feature["begin"]||0)
|
||||
can.Action("数量", can.limit = parseInt(msg.Option("limit"))||feature["limit"]||6)
|
||||
can.Action("高度", can.height = parseInt(msg.Option("height"))||feature["height"]||100)
|
||||
can.Option("path") != "最近/" && can.onimport._page(can, can.list, can.begin = 0, can.limit)
|
||||
can.Option("path") != "最近/" && can.onimport._page(can, can.list, can.begin, can.limit)
|
||||
|
||||
},
|
||||
_page: function(can, list, begin, limit) { can.ui.profile.innerHTML = ""
|
||||
_page: function(can, list, begin, limit) { can.onmotion.clear(can, can.ui.display)
|
||||
if (!list || list.length == 0) { return }
|
||||
for (var i = begin; i < begin+limit; i++) { list && list[i] && can.onimport.file(can, list[i].path) }
|
||||
for (var i = begin; i < begin+limit; i++) { list && list[i] && can.onimport.file(can, list[i].path, i) }
|
||||
can.Status("begin", begin), can.Status("limit", limit), can.Status("total", can.list.length)
|
||||
},
|
||||
file: function(can, path) { can.Status("文件", path)
|
||||
_file: function(can, path, index) {
|
||||
var p = location.href.startsWith("http")? "": "http://localhost:9020"
|
||||
path = path.startsWith("http")? path: p+can.base.Path("/share/local", " "+(can._msg.Option("prefix")||""), path)
|
||||
|
||||
var ls = path.split("/")
|
||||
var ls = ls[ls.length-1].split(".")
|
||||
var ext = ls[ls.length-1].toLowerCase()
|
||||
ext && can.page.Append(can, can.ui.profile, [can.onfigure[ext](can, path)])
|
||||
return path
|
||||
},
|
||||
file: function(can, path, index) { path = can.onimport._file(can, path, index)
|
||||
var cb = can.onfigure[can.base.Ext(path)]; can.Status("文件", path)
|
||||
typeof cb == "function" && can.page.Append(can, can.ui.display, [cb(can, path, index)])
|
||||
},
|
||||
}, ["/plugin/local/wiki/feel.css"])
|
||||
Volcanos("onfigure", {help: "组件菜单", list: [],
|
||||
qrc: function(can, path) { return can.onfigure.image(can, path) },
|
||||
png: function(can, path) { return can.onfigure.image(can, path) },
|
||||
jpg: function(can, path) { return can.onfigure.image(can, path) },
|
||||
jpeg: function(can, path) { return can.onfigure.image(can, path) },
|
||||
image: function(can, path) { return {img: path, height: can.height, onclick: function(event) {
|
||||
can.Status("文件", path)
|
||||
can.page.Append(can, document.body, [{img: path, style: {
|
||||
position: "fixed", left: 0, top: 40,
|
||||
height: window.innerHeight-40,
|
||||
}, onclick: function(event) {
|
||||
can.page.Remove(can, event.target)
|
||||
}, }])
|
||||
}, onmouseover: function(event) {
|
||||
can.user.toast(can, path, "image")
|
||||
}, _init: function(target) {
|
||||
can.Status("文件", path)
|
||||
qrc: function(can, path, index) { return can.onfigure.image(can, path, index) },
|
||||
png: function(can, path, index) { return can.onfigure.image(can, path, index) },
|
||||
jpg: function(can, path, index) { return can.onfigure.image(can, path, index) },
|
||||
jpeg: function(can, path, index) { return can.onfigure.image(can, path, index) },
|
||||
image: function(can, path, index) { return {img: path, height: can.height, onclick: function(event) {
|
||||
can.onappend._init(can, {}, [], function(sub) {
|
||||
sub.run = function(event, cmds, cb, silent) {
|
||||
return can.run(event, cmds, cb, true)
|
||||
}
|
||||
|
||||
var header = sub.run({}, ["search", "Header.onexport.height"])
|
||||
var footer = sub.run({}, ["search", "Footer.onexport.height"])
|
||||
var river = sub.run({}, ["search", "River.onexport.width"])
|
||||
var height = window.innerHeight-header-footer
|
||||
|
||||
sub.page.Remove(sub, sub._legend), sub.page.Modify(sub, sub._target, {style: {
|
||||
left: river, top: header, height: height, background: "#4eaad0c2",
|
||||
margin: "0 10px", padding: "0 10px",
|
||||
}})
|
||||
|
||||
var order = index; function show(order) {
|
||||
path = can.onimport._file(can, can.list[order].path)
|
||||
sub.page.Appends(sub, sub._output, [{img: path, height: height-55}])
|
||||
sub.core.Timer(100, function() { sub.Status("位置", order+1+"/"+can.list.length), sub.Status("文件", path) })
|
||||
}; show(order)
|
||||
|
||||
sub.onappend._action(sub, ["关闭", "上一个", "设置背景", "下一个"], sub._action, {
|
||||
"关闭": function(event) { sub.page.Remove(sub, sub._target) },
|
||||
"上一个": function(event) { order > 0? show(--order): show(order = can.list.length-1) },
|
||||
"设置背景": function(event) { var msg = can.request(event, {url: can.onimport._file(can, can.list[order].path)})
|
||||
sub.run(event, ["search", "Header.onimport.background"])
|
||||
},
|
||||
"下一个": function(event) { order < can.list.length-1? show(++order): show(order = 0) },
|
||||
}), sub.onappend._status(can, ["文件"], sub._status)
|
||||
}, document.body)
|
||||
}, _init: function(target) { can.Status("文件", path) },
|
||||
onmouseover: function(event) { can.Status("文件", path) },
|
||||
} },
|
||||
|
||||
video: function(can, path) { var auto = true, loop = true, total = 0
|
||||
|
@ -70,11 +70,11 @@ Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, msg,
|
||||
}): can.run(event, ["action", name], function(msg) { typeof cb == "function" && cb(msg) }, true)
|
||||
},
|
||||
change: function(event, can, name, value, cb) {
|
||||
can.page.Select(can, can._option, "input.args", function(input) { if (input.name == name) { var data = input.dataset || {}
|
||||
if (value != input.value) { input.value = value;
|
||||
data.action == "auto" && typeof cb == "function" && cb()
|
||||
can.page.Select(can, can._option, "input.args", function(input) {
|
||||
if (input.name == name && value != input.value) { input.value = value;
|
||||
var data = input.dataset || {}; data.action == "auto" && can.run(event)
|
||||
}
|
||||
} })
|
||||
})
|
||||
},
|
||||
|
||||
getLocation: function(event, can, cmd) { var msg = can.request(can)
|
||||
|
@ -6,6 +6,7 @@
|
||||
</head>
|
||||
<body style="min-width:800px; min-height:600px; overflow:auto">
|
||||
<script src="/proto.js"></script>
|
||||
<script src="/frame.js"></script>
|
||||
<script src="/publish/chrome/popup.js"></script>
|
||||
</body>
|
||||
<html>
|
||||
|
Loading…
x
Reference in New Issue
Block a user