mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 08:48:06 +08:00
opt frame
This commit is contained in:
parent
2d5b4b20e9
commit
fdab93a60d
152
frame.js
152
frame.js
@ -10,7 +10,7 @@ Volcanos("onengine", {help: "解析引擎", list: [], _init: function(can, meta,
|
||||
}, can[item.name] = pane, next()
|
||||
}, target)
|
||||
}, function() {
|
||||
var pane = can[meta.main.name], msg = can.request({})
|
||||
var pane = can[meta.main.name], msg = can.request()
|
||||
pane.onmotion._init(pane, target), pane.onkeypop._init(pane, target)
|
||||
pane.onaction._init(pane, msg, [], cb, pane._target)
|
||||
})
|
||||
@ -37,17 +37,17 @@ Volcanos("onengine", {help: "解析引擎", list: [], _init: function(can, meta,
|
||||
remote: function(event, can, msg, pane, cmds, cb) {
|
||||
if (pane.onengine.engine(event, can, msg, pane, cmds, cb)) { return }
|
||||
can.misc.Run(event, can, {names: pane._name}, cmds, cb)
|
||||
// pane.run(event, ["search", "Footer.onimport.ncmd"])
|
||||
pane.run(event, ["search", "Footer.onimport.ncmd"])
|
||||
}, engine: function(event, can, msg, pane, cmds, cb) { return false },
|
||||
|
||||
listen: shy("", {}, [], function(can, name, cb) {
|
||||
listen: shy("事件回调", {}, [], function(can, name, cb) {
|
||||
arguments.callee.meta[name] = (arguments.callee.meta[name]||[]).concat(cb)
|
||||
}),
|
||||
trigger: function(can, name, msg) {
|
||||
signal: shy("事件触发", function(can, name, msg) {
|
||||
can.core.List(can.onengine.listen.meta[name], function(cb) {
|
||||
can.core.CallFunc(cb, {msg: msg})
|
||||
})
|
||||
},
|
||||
}),
|
||||
|
||||
river: {
|
||||
"serivce": {name: "运营群", storm: {
|
||||
@ -161,13 +161,13 @@ Volcanos("onengine", {help: "解析引擎", list: [], _init: function(can, meta,
|
||||
})
|
||||
Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, list, cb, target, field) {
|
||||
meta.name = meta.name || "", meta.name = meta.name.split(" ")[0]
|
||||
field = field || can.onappend.field(can, target, meta.type, meta).first
|
||||
field = field || can.onappend.field(can, meta.type, meta, target).first
|
||||
var legend = can.page.Select(can, field, "legend")[0]
|
||||
var option = can.page.Select(can, field, "form.option")[0]
|
||||
var action = can.page.Select(can, field, "div.action")[0]
|
||||
var output = can.page.Select(can, field, "div.output")[0]
|
||||
var status = can.page.Select(can, field, "div.status")[0]
|
||||
can.core.Value(meta, {"width": can._width, "height": can._height})
|
||||
can.core.Value(meta, {width: can._width, height: can._height})
|
||||
|
||||
var sub = Volcanos(meta.name, {_follow: can._follow+"."+meta.name,
|
||||
_legend: legend, _option: option, _action: action, _output: output, _status: status,
|
||||
@ -203,10 +203,8 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
return item.name && item.value || ""
|
||||
})
|
||||
can.onappend._init(can, meta, list, function(sub) {
|
||||
can.core.Timer(10, function() { for (var k in sub._inputs) { sub._inputs[k]._target.focus(); break } })
|
||||
typeof cb == "function" && cb(sub)
|
||||
can.core.Timer(10, function() {
|
||||
for (var k in sub._inputs) { sub._inputs[k]._target.focus(); break }
|
||||
})
|
||||
}, target)
|
||||
},
|
||||
Pack: function(cmds, slient) {
|
||||
@ -230,15 +228,13 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
_option: function(can, meta, list, cb) { var index = -1, args = can.base.Obj(meta.args||meta.arg, [])
|
||||
function add(item, next) { item._input != "button" && index++
|
||||
var input = Volcanos(item.name, {_follow: can._follow+"."+item.name,
|
||||
_target: can.onappend.input(can, can._option, item.type, item, args[index]),
|
||||
_option: can._option, _action: can._action, _output: can._output,
|
||||
_option: can._option, _action: can._action, _output: can._output, _status: can._status,
|
||||
_target: can.onappend.input(can, item.type, item, args[index], can._option),
|
||||
CloneInput: function() { add(item)._target.focus() },
|
||||
CloneField: function() { can.Clone() },
|
||||
Option: can.Option,
|
||||
Option: can.Option, Action: can.Action, Status: can.Status,
|
||||
}, [item.display||"/plugin/input.js"].concat(Volcanos.meta.volcano).concat(Volcanos.meta.libs), function(input) {
|
||||
input.Conf(item), input.sup = can
|
||||
input.run = function(event, cmds, cb, silent) {
|
||||
var msg = can.request(event, can.Conf("option"))
|
||||
input.Conf(item), input.sup = can, input.run = function(event, cmds, cb, silent) {
|
||||
return can.onappend._output(can, meta, event, can.Pack(cmds), cb, silent)
|
||||
}
|
||||
|
||||
@ -249,23 +245,22 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
_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) {
|
||||
typeof item == "string"? /*按键*/ can.onappend.input(can, "input", {type: "button", value: item, onclick: function(event) {
|
||||
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) {
|
||||
}}, action): item.length > 0? /*列表*/ can.onappend.input(can, "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 = meta[which]
|
||||
typeof cb == "function" && cb(event, can, which)
|
||||
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) {
|
||||
}}, action): item.input? /*文本*/ can.page.Append(can, action, [{view: "item", list: [{type: "input", name: item.input[0], onkeydown: function(event) {
|
||||
item.input[1](event, can)
|
||||
}}] }]): typeof item == "object" && /*其它*/ can.page.Append(can, action, [item])
|
||||
})
|
||||
},
|
||||
_output: function(can, meta, event, cmds, cb, silent) {
|
||||
var msg = can.request(event)
|
||||
can.page.Select(can, can._output, "div.control .args", function(item) {
|
||||
var msg = can.request(event); can.page.Select(can, can._output, "div.control .args", function(item) {
|
||||
item.name && item.value && msg.Option(item.name, item.value)
|
||||
})
|
||||
|
||||
@ -274,33 +269,29 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
typeof cb == "function" && cb(msg)
|
||||
if (silent) { return }
|
||||
|
||||
var display = meta.feature.display || "table"
|
||||
display.indexOf("/") == 0 || (display = "/plugin/"+display)
|
||||
display.endsWith(".js") || (display += ".js")
|
||||
var display = msg.Option("_display") || meta.display || meta.feature.display || "/plugin/table.js"
|
||||
|
||||
var output = Volcanos(display, {_follow: can._follow+"."+display,
|
||||
_target: can._output, _fields: can._target,
|
||||
_option: can._option, _action: can._action, _output: can._output, _status: can._status,
|
||||
_target: can._output, _fields: can._target,
|
||||
Option: can.Option, Action: can.Action, Status: can.Status,
|
||||
}, [display].concat(Volcanos.meta.volcano).concat(Volcanos.meta.libs), function(table) {
|
||||
table.Conf(can.Conf()), table.sup = can
|
||||
table.run = function(event, cmds, cb, silent) {
|
||||
var msg = can.request(event, can.Conf("option"))
|
||||
table.Conf(can.Conf()), table.sup = can, table.run = function(event, cmds, cb, silent) {
|
||||
return can.onappend._output(can, meta, event, can.Pack(cmds, silent), cb, silent)
|
||||
}, table._msg = msg
|
||||
|
||||
msg && table.onimport && table.onimport._init && table.onimport._init(table, msg, msg.result||[], function(msg) {
|
||||
table.onimport && table.onimport._init && table.onimport._init(table, msg, msg.result||[], function(msg) {
|
||||
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.ondetail && table.onappend._detail(table, msg._detail||meta._detail||table.ondetail.list, table._output)
|
||||
table.onexport && table.onappend._status(table, msg._export||meta._export||table.onexport.list, table._status)
|
||||
}, can._output)
|
||||
}); can._outputs.push(output)
|
||||
}, silent)
|
||||
},
|
||||
_detail: function(can, target, list, cb) {
|
||||
_detail: function(can, list, target) {
|
||||
list.length > 0 && (target.oncontextmenu = function(event) {
|
||||
can.user.carte(event, can, can.ondetail||{}, list, function(ev, item, meta) {
|
||||
(cb||can.ondetail[item]||can.onaction[item])(event, can, item)
|
||||
can.user.carte(event, can, can.ondetail||can.onaction||{}, list, function(ev, item, meta) {
|
||||
(can.ondetail[item]||can.onaction[item])(event, can, item)
|
||||
})
|
||||
})
|
||||
},
|
||||
@ -312,89 +303,71 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
})
|
||||
},
|
||||
|
||||
item: function(can, target, type, item, cb, cbs) {
|
||||
item: function(can, type, item, cb, cbs, target) {
|
||||
var ui = can.page.Append(can, target, [{view: [type, "div", item.nick||item.name],
|
||||
onclick: function(event) {
|
||||
can.page.Select(can, target, "div."+type, function(item) {
|
||||
can.page.ClassList.del(can, item, "select")
|
||||
}), can.page.ClassList.add(can, ui.item, "select")
|
||||
cb(event, ui.item)
|
||||
}, oncontextmenu: function(event) { cbs(event, ui.item) },
|
||||
onclick: function(event) { cb(event, ui.first)
|
||||
can.onmotion.select(can, target, "div."+type, ui.first)
|
||||
}, oncontextmenu: function(event) { cbs(event, ui.first) },
|
||||
}])
|
||||
return ui.item
|
||||
return ui.first
|
||||
},
|
||||
tree: function(can, msg, field, split, target, cb) {
|
||||
var list = {}; msg.Table(function(value) {
|
||||
value[field] && can.core.List(value[field].split(split), function(item, index, array) {
|
||||
var last = array.slice(0, index).join(split)
|
||||
var name = array.slice(0, index+1).join(split)
|
||||
list[name] || (list[name] = can.page.Append(can, list[last]||target, [{view: ["item", "div", item+(index==array.length-1?"":split)], onclick: function(event) {
|
||||
can.page.Toggle(can, list[name])
|
||||
|
||||
index == array.length - 1 && typeof cb == "function" && cb(event, value)
|
||||
tree: function(can, list, field, split, cb, target) {
|
||||
var node = {}; can.core.List(list, function(item) {
|
||||
item[field] && can.core.List(item[field].split(split), function(value, index, array) {
|
||||
var last = array.slice(0, index).join(split), name = array.slice(0, index+1).join(split)
|
||||
node[name] || (node[name] = can.page.Append(can, node[last]||target, [{view: ["item", "div", value+(index==array.length-1?"":split)], onclick: function(event) {
|
||||
index < array.length - 1? can.onmotion.toggle(can, node[name]): typeof cb == "function" && cb(event, item)
|
||||
}}, {view: "list", style: {display: "none"}}]).last)
|
||||
})
|
||||
})
|
||||
},
|
||||
field: function(can, target, type, item) { type = type || "input", item = item || {}
|
||||
field: function(can, type, item, target) { 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"]},
|
||||
]}])
|
||||
},
|
||||
input: function(can, option, type, item, value) {
|
||||
item.name && item.name.indexOf("@") == 0 && (item.name = item.name.slice(1)) && (item.position = item.position || "opts")
|
||||
item.figure = item.figure || item.value || ""
|
||||
item.action = item.action || item.value || ""
|
||||
item.cb = item.cb || item.value || ""
|
||||
|
||||
input: function(can, type, item, value, target) {
|
||||
var input = {type: "input", name: item.name, data: item, dataset: {}}
|
||||
item.value == "auto" && (item.value = "", item.action = "auto")
|
||||
item.action == "auto" && (input.dataset.action = "auto")
|
||||
|
||||
switch (item.type = item.type || item._type || item._input || "text") {
|
||||
switch (item.type = item.type||item._input||"text") {
|
||||
case "upfile": item.type = "file"; break
|
||||
case "button": item.value = item.value || can.Conf("feature.trans."+item.name) || item.name || "查看"; break
|
||||
case "select":
|
||||
case "button":
|
||||
item.value = item.value||item.name||"查看";
|
||||
break
|
||||
case "select": input.type = "select"
|
||||
item.values = typeof item.values == "string"? item.values.split(" "): item.values
|
||||
if (!item.values && item.value) {
|
||||
item.values = item.value.split("|")
|
||||
item.value = item.values[0]
|
||||
if (item.values[0] == "day") {
|
||||
item.value = item.values[1]
|
||||
}
|
||||
item.values = item.value.split("|") , item.value = item.values[0]
|
||||
if (item.values[0] == "day") { item.value = item.values[1] }
|
||||
}
|
||||
item.value = value || item.value
|
||||
input.type = "select", input.list = item.values.map(function(value) {
|
||||
|
||||
item.value = value || item.value, input.list = item.values.map(function(value) {
|
||||
return {type: "option", value: value, inner: value}
|
||||
})
|
||||
item.className || can.page.ClassList.add(can, item, item.position||"args")
|
||||
}), item.className || can.page.ClassList.add(can, item, "args")
|
||||
break
|
||||
case "textarea":
|
||||
input.type = "textarea"
|
||||
item.style.width = can.Conf(["feature", "textarea", item.name, "width"].join(".")) || can.Conf(["feature", "textarea", "width"].join(".")) || item.style.width
|
||||
item.style.height = can.Conf(["feature", "textarea", item.name, "height"].join(".")) || can.Conf(["feature", "textarea", "height"].join(".")) || item.style.height
|
||||
item.value = can.Conf("content") || item.value
|
||||
case "textarea": input.type = "textarea"
|
||||
item.style.width = item.style.width || can.Conf(["feature", "textarea", item.name, "width"].join(".")) || can.Conf(["feature", "textarea", "width"].join(".")) || 400
|
||||
item.style.height = item.style.height || can.Conf(["feature", "textarea", item.name, "height"].join(".")) || can.Conf(["feature", "textarea", "height"].join(".")) || 30
|
||||
// no break
|
||||
case "password":
|
||||
// no break
|
||||
case "text":
|
||||
item.value = value || item.value || ""
|
||||
item.className || can.page.ClassList.add(can, item, item.position||"args")
|
||||
item.autocomplete = "off"
|
||||
item.className || can.page.ClassList.add(can, item, "args")
|
||||
break
|
||||
}
|
||||
|
||||
var target = can.page.Append(can, option, [{view: ["item "+item.type], list: [item.position && {text: item.name+": "}, input]}])[item.name]
|
||||
item.type == "textarea" && can.page.Append(can, option, [{type: "br"}])
|
||||
return target
|
||||
return can.page.Append(can, target, [{view: ["item "+item.type], list: [{text: [name, "label"]}, {text: [": ", "label"]}, input]}])[item.name]
|
||||
},
|
||||
table: function(can, msg, target, type, cb) {
|
||||
table: function(can, type, msg, cb, target) {
|
||||
var table = can.page.AppendTable(can, msg, target, msg.append, cb)
|
||||
table && can.page.Modify(can, table, {className: type||"content"})
|
||||
return table
|
||||
},
|
||||
board: function(can, msg, target, type, text) { text = text || can.page.Display(msg.Result())
|
||||
board: function(can, type, text, target) { text = can.page.Display(text || "")
|
||||
return text && can.page.Append(can, target, [{view: ["code "+(type||""), "div", text]}]).code
|
||||
},
|
||||
|
||||
@ -403,7 +376,6 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
var list = can.core.Split(key, "@=", "@=", {simple: true})
|
||||
var pkey = list[0], pval = list[1]||""
|
||||
|
||||
can.page.Modify(can, target, {autocomplete: "off"})
|
||||
target.type != "button" && target.value.startsWith("@") && (target.value = pval||"")
|
||||
pkey && can.require(["/plugin/input/"+pkey+".js"], function(can) {
|
||||
can.onfigure && can.core.Item(can.onfigure[pkey], function(key, cb) { if (key.startsWith("on")) {
|
||||
@ -444,16 +416,14 @@ Volcanos("onlayout", {help: "页面布局", list: [], _init: function(can, targe
|
||||
})
|
||||
|
||||
if (can.user.isMobile) { return }
|
||||
can.onengine.trigger(can, "resize", can.request(event, {width: width, height: height}))
|
||||
|
||||
can.page.Select(can, target, ["fieldset.main"], function(field, index) {
|
||||
can.page.Modify(can, field, {style: {height: height}})
|
||||
})
|
||||
can.page.Select(can, target, ["fieldset.main>div.output"], function(output) {
|
||||
can.page.Modify(can, output, {style: {height: height}})
|
||||
})
|
||||
can.onengine.signal(can, "resize", can.request(event, {width: width, height: height}))
|
||||
},
|
||||
resize: shy("", {}, [], function(cb) { arguments.callee.list.push(cb) }),
|
||||
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"))
|
||||
},
|
||||
@ -510,15 +480,13 @@ Volcanos("onkeypop", {help: "键盘交互", list: [], _init: function(can, targe
|
||||
|
||||
target.onkeydown = function(event) { if (event.target != target) { return }
|
||||
can.page.Select(can, target, "fieldset.Action>div.output", function(item) {
|
||||
target._keys = can.onkeypop._parse(event, can, item, "normal", target._keys||[])
|
||||
target._keys = can.onkeypop._parse(event, can, "normal", target._keys||[], item)
|
||||
})
|
||||
}
|
||||
target.onkeyup = function(event) {
|
||||
}
|
||||
},
|
||||
_parse: function(event, can, target, mode, list) {
|
||||
// event.key.length == 1 &&
|
||||
list.push(event.key)
|
||||
_parse: function(event, can, mode, list, target) { list.push(event.key)
|
||||
can.Status && can.Status("keys", list.join(""))
|
||||
|
||||
for (var pre = 0; pre < list.length; pre++) {
|
||||
@ -638,7 +606,7 @@ Volcanos("onkeypop", {help: "键盘交互", list: [], _init: function(can, targe
|
||||
}, _engine: {},
|
||||
|
||||
input: function(event, can) { var target = event.target
|
||||
target._keys = can.onkeypop._parse(event, can, target, event.ctrlKey? "insert_ctrl": "insert", target._keys||[])
|
||||
target._keys = can.onkeypop._parse(event, can, event.ctrlKey? "insert_ctrl": "insert", target._keys||[], target)
|
||||
if (target._keys.length == 0) { event.stopPropagation(), event.preventDefault() }
|
||||
},
|
||||
})
|
||||
@ -651,7 +619,7 @@ Volcanos("onmotion", {help: "动态交互", list: [], _init: function(can, targe
|
||||
|
||||
add? count++: count--
|
||||
count < 0 && (add = true)
|
||||
count > 100 && (add = false)
|
||||
count > 50 && (add = false)
|
||||
|
||||
can.page.Select(can, target, "fieldset.story", function(item) {
|
||||
can.page.Modify(can, item, {style: {
|
||||
@ -663,7 +631,7 @@ Volcanos("onmotion", {help: "动态交互", list: [], _init: function(can, targe
|
||||
show: function(can, time, cb, target) { target = target || can._target
|
||||
time = typeof time == "object"? time: {value: 10, length: time||20}
|
||||
|
||||
can.page.Modify(can, target, {style: {opacity: 0, display: "block"}})
|
||||
can.page.Modify(can, target, {style: {opacity: 0, display: ""}})
|
||||
can.core.Timer(time, function(event, value, index) {
|
||||
can.page.Modify(can, target, {style: {opacity: (index+1)/time.length}})
|
||||
}, cb)
|
||||
|
@ -92,7 +92,6 @@ Volcanos("page", {help: "网页模块",
|
||||
|
||||
} else if (item.button) { var list = can.core.List(item.button)
|
||||
type = "button", name = name || list[0]
|
||||
data.value = data.value || name
|
||||
data.innerText = can.user.trans(can, list[0]), data.onclick = function(event) {
|
||||
typeof list[1] == "function" && list[1](event, name)
|
||||
event.stopPropagation()
|
||||
@ -164,6 +163,7 @@ Volcanos("page", {help: "网页模块",
|
||||
data.onload = list[1]
|
||||
}
|
||||
|
||||
item.type == "input" && data.type == "button" && (data.value = can.user.trans(can, data.value))
|
||||
data.placeholder && (data.placeholder = can.user.trans(can, data.placeholder))
|
||||
data.title && (data.title = can.user.trans(can, data.title))
|
||||
|
||||
|
@ -56,7 +56,9 @@ Volcanos("user", {help: "用户模块", agent: {
|
||||
if (typeof text == "function") {
|
||||
text = text.name || ""
|
||||
}
|
||||
return can._trans && can._trans[text] || text
|
||||
return can._trans && can._trans[text] || can.Conf("trans."+text) || can.Conf("feature.trans."+text) || {
|
||||
|
||||
}[text] || text
|
||||
},
|
||||
topic: function(can, name) {
|
||||
can.page.Modify(can, document.body, {className: name})
|
||||
|
@ -151,6 +151,9 @@ div.hidden {
|
||||
fieldset>form.option>div.item {
|
||||
float:left; margin-right:3px;
|
||||
}
|
||||
fieldset>form.option>div.item label {
|
||||
display:none;
|
||||
}
|
||||
fieldset>form.option>div.item input.args.char {
|
||||
width:20px;
|
||||
}
|
||||
|
@ -100,10 +100,10 @@ Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, msg,
|
||||
can.core.CallFunc(can.onaction[key], {event: event, can: can, key: key})
|
||||
})
|
||||
|
||||
can._target.ontouchstart = function(event) { can.onengine.trigger(can, "action.touch", {}) }
|
||||
can._target.ontouchstart = function(event) { can.onengine.signal(can, "action.touch", {}) }
|
||||
can.Conf({width: can._output.offsetWidth-33, height: window.innerHeight})
|
||||
can.onengine.listen(can, "resize", function(width, height) { can.Conf({width: width, height: height})
|
||||
can.onengine.trigger(can, "action.resize", can.request({}, {width: width, height: height}))
|
||||
can.onengine.signal(can, "action.resize", can.request({}, {width: width, height: height}))
|
||||
})
|
||||
|
||||
can.onengine.listen(can, "search", function(msg, word) {
|
||||
|
@ -13,7 +13,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
|
||||
can.onmotion.clear(can), can.sublist = {}
|
||||
var select; msg.Table(function(value, index, array) {
|
||||
var view = can.onappend.item(can, target, "item", value, function(event, item) {
|
||||
var view = can.onappend.item(can, "item", value, function(event, item) {
|
||||
// 左键点击
|
||||
can.onaction.storm(event, can, value.hash)
|
||||
}, function(event) {
|
||||
@ -21,7 +21,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
var ui = can.user.carte(event, can, can.ondetail, can.ondetail.list, function(ev, item, meta) {
|
||||
can.ondetail[item](event, can, item, value.hash)
|
||||
}); can.page.Modify(can, ui.first, {style: {left: can._target.offsetWidth}})
|
||||
})
|
||||
}, target)
|
||||
|
||||
if (index == 0 || [value.hash, value.name].indexOf(can._main_river) > -1) { select = view }
|
||||
}), select && select.click()
|
||||
@ -106,7 +106,7 @@ Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, msg,
|
||||
},
|
||||
action: function(event, can, river, storm) {
|
||||
var msg = can.request(event, {river: can.Conf(RIVER, river), storm: can.Conf(STORM, storm)})
|
||||
can.onengine.trigger(can, "storm.select", msg)
|
||||
can.onengine.signal(can, "storm.select", msg)
|
||||
|
||||
can.page.Select(can, can._output, "div.item.select", function(item) {
|
||||
can.page.ClassList.del(can, item, "select")
|
||||
|
@ -13,7 +13,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
typeof cb == "function" && cb(msg)
|
||||
},
|
||||
_table: function(can, msg, fields) { can.onmotion.clear(can, can.ui.content)
|
||||
var table = can.onappend.table(can, msg, can.ui.content, "content", function(value, key, index, line) {
|
||||
var table = can.onappend.table(can, "content", msg, function(value, key, index, line) {
|
||||
can.Status("count", index+1)
|
||||
return {text: [key == "text" && typeof line.text == "function" && line.text.help || value, "td"], onclick: function(event) {
|
||||
if (event.shiftKey) { var msg = can.request(event, line)
|
||||
@ -42,7 +42,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
}}])
|
||||
can.Status("selected", can.page.Select(can, can.ui.table, "tr").length-1)
|
||||
}}
|
||||
})
|
||||
}, can.ui.content)
|
||||
|
||||
fields.indexOf("ctx") > -1 && can.page.RangeTable(can, table, [fields.indexOf("ctx"),
|
||||
fields.indexOf("cmd"), fields.indexOf("type"), fields.indexOf("name")])
|
||||
@ -51,7 +51,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
},
|
||||
_word: function(can, msg, cmds, fields) {
|
||||
var msg = can.request({}, {fields: fields.join(","), word: cmds})
|
||||
can.onengine.trigger(can, "search", msg)
|
||||
can.onengine.signal(can, "search", msg)
|
||||
|
||||
can.onmotion.clear(can, can.ui.content)
|
||||
can.run(msg._event, cmds, function(msg) { can.list = msg.Table()
|
||||
|
@ -18,7 +18,7 @@ Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, meta,
|
||||
case "select": meta.value && (target.value = meta.value); break
|
||||
}
|
||||
|
||||
can.onappend.figure(can, meta, meta.figure, target)
|
||||
can.onappend.figure(can, meta, meta.value, target)
|
||||
},
|
||||
|
||||
"upload": function(event, can) { can.user.upload(event, can) },
|
||||
|
@ -8,7 +8,7 @@ Volcanos("onfigure", {help: "控件详情", list: [], date: {onclick: function(e
|
||||
|
||||
// 添加插件
|
||||
can._figure && can.page.Remove(can, can._figure.fieldset)
|
||||
var figure = can.onappend.field(can, document.body, "input date", {})
|
||||
var figure = can.onappend.field(can, "input date", {}, document.body)
|
||||
can._figure = figure; can.onlayout.figure(can, figure, event)
|
||||
figure.table = can.page.Append(can, figure.output, [{type: "table"}]).first
|
||||
|
||||
|
@ -4,7 +4,7 @@ Volcanos("onfigure", {help: "控件详情", list: [], key: {onclick: function(ev
|
||||
if (!msg.append) { return }
|
||||
|
||||
can._figure && can.page.Remove(can, can._figure.fieldset)
|
||||
var figure = can.onappend.field(can, document.body, "input key", {})
|
||||
var figure = can.onappend.field(can, "input key", {}, document.body)
|
||||
can._figure = figure; can.onlayout.figure(can, figure, event)
|
||||
|
||||
can.onappend._action(can, [
|
||||
@ -12,12 +12,12 @@ Volcanos("onfigure", {help: "控件详情", list: [], key: {onclick: function(ev
|
||||
{button: ["关闭", function(event) { can.page.Remove(can, can._figure.fieldset) }]},
|
||||
], can._figure.action)
|
||||
|
||||
can.onappend.table(can, msg, can._figure.output, "content", function(value, key, index, line) {
|
||||
can.onappend.table(can, "content", msg, function(value, key, index, line) {
|
||||
return {type: "td", inner: value, onclick: function() {
|
||||
target.value = value; msg.Option("_refresh") && run()
|
||||
can.page.Remove(can, can._figure.fieldset)
|
||||
}}
|
||||
})
|
||||
}, can._figure.output)
|
||||
}, true)
|
||||
}; run() }}, }, ["/plugin/input/key.css"])
|
||||
|
||||
|
@ -2,15 +2,15 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
can.ui = can.onlayout.display(can, target)
|
||||
can.ui.canvas = can.page.Append(can, can.ui.display, [{type: "canvas", width: 320, height: 240, style: {display: "none"}}]).first
|
||||
|
||||
can.onappend.table(can, msg, can.ui.content, "content", function(value, key, index, line, array) {
|
||||
can.onappend.table(can, "content", msg, function(value, key, index, line, array) {
|
||||
return {text: [value, "td"], onclick: function(event) {
|
||||
can.sup.onaction.change(event, can.sup, key, value, function(msg) {
|
||||
can.run(event)
|
||||
})
|
||||
}}
|
||||
})
|
||||
}, can.ui.content)
|
||||
|
||||
can.onappend.board(can, msg, can.ui.display, "content")
|
||||
can.onappend.board(can, "content", msg.Result(), can.ui.display)
|
||||
typeof cb == "function" && cb(msg)
|
||||
},
|
||||
})
|
||||
|
@ -1,5 +1,5 @@
|
||||
Volcanos("onimport", {help: "导入数据", _init: function(can, msg, list, cb, target) {
|
||||
var list = []; can.onengine.listen(can, "resize", function(width, height) {
|
||||
var list = []; can.onengine.listen(can, "action.resize", function(width, height) {
|
||||
can.Conf({width: width, height: height}), can.core.Delay(list, 100, function() {
|
||||
can.onimport._init(can, msg, list, cb, target)
|
||||
})
|
||||
@ -71,9 +71,9 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, list, cb,
|
||||
var msg = can.request({}, {dir_root: path, dir_deep: true})
|
||||
can.run(msg._event, ["action", "dir", "./"], function(msg) { can.ui.project.innerHTML = ""
|
||||
msg.path && can.Status("文件数", msg.path.length)
|
||||
can.onappend.tree(can, msg, "path", "/", can.ui.project, function(event, value) {
|
||||
can.onappend.tree(can, msg.Table(), "path", "/", function(event, value) {
|
||||
can.onimport.tabview(can, can.Option("path"), value.path)
|
||||
}), typeof cb == "function" && cb()
|
||||
}, can.ui.project), typeof cb == "function" && cb()
|
||||
}, true)
|
||||
},
|
||||
}, ["/plugin/local/code/inner.css"])
|
||||
@ -269,7 +269,7 @@ Volcanos("onaction", {help: "控件交互", list: [],
|
||||
toast.Close()
|
||||
|
||||
can.ui.tags.innerHTML = ""
|
||||
can.onappend.table(can, msg, can.ui.tags, "content", function(value, key, index, line) { can.Status("标签数", index+1)
|
||||
can.onappend.table(can, "content", msg, function(value, key, index, line) { can.Status("标签数", index+1)
|
||||
value = value.replace("<", "<").replace(">", ">"), value = value.replace("./", "")
|
||||
return {text: ["", "td"], list: [{text: [value, "div"]}], onclick: function(event) {
|
||||
line.line && can.onimport.tabview(can, can.Option("path"), line.file.replace("./", ""), parseInt(line.line), function() {
|
||||
@ -277,7 +277,7 @@ Volcanos("onaction", {help: "控件交互", list: [],
|
||||
can.current.scroll(0, -pos)
|
||||
})
|
||||
}}
|
||||
})
|
||||
}, can.ui.tags)
|
||||
}, true)
|
||||
},
|
||||
})
|
||||
|
@ -98,10 +98,10 @@ Volcanos("onkeymap", {help: "键盘交互", list: ["command", "normal", "insert"
|
||||
toast.Close()
|
||||
|
||||
can.ui.output.innerHTML = ""
|
||||
can.onappend.table(can, msg, can.ui.output, "content", function(value, key, index) {
|
||||
can.onappend.table(can, "content", msg, function(value, key, index) {
|
||||
return {text: [value, "td"]}
|
||||
})
|
||||
can.onappend.board(can, msg, can.ui.output, "content")
|
||||
}, can.ui.output)
|
||||
can.onappend.board(can, "content", msg.Result(), can.ui.output)
|
||||
}, true)
|
||||
},
|
||||
_engine: {
|
||||
|
@ -1,7 +1,7 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb) {
|
||||
can.ui = can.page.Appends(can, can._target, [{view: "content"}, {view: "display"}])
|
||||
|
||||
can.table = can.onappend.table(can, msg, can.ui.content, "content", function(value, key, index, line) {
|
||||
can.table = can.onappend.table(can, "content", msg, function(value, key, index, line) {
|
||||
return {text: [value, "td"], oncontextmenu: function(event) {
|
||||
can.user.carte(event, can, can.ondetail, can.ondetail.list, function(ev, cmd, meta) {
|
||||
var cb = meta[cmd]; cb && cb(event, can, cmd, value, key, index, line)
|
||||
@ -11,7 +11,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
}, onclick: function(event) {
|
||||
if (key == "path") { can.run(event, [can.Option("path", value)]) }
|
||||
}}
|
||||
})
|
||||
}, can.ui.content)
|
||||
|
||||
can.onexport.list = msg.append
|
||||
typeof cb == "function" && cb(msg)
|
||||
|
@ -1,5 +1,5 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) { can._output.innerHTML = ""
|
||||
can.onappend.table(can, msg, target, "content"), can.ui = can.page.Append(can, target, [
|
||||
can.onappend.table(can, "content", msg, null, target), can.ui = can.page.Append(can, target, [
|
||||
{view: "project", style: {display: "none"}},
|
||||
{view: "content", onmouseenter: function(event) {
|
||||
can.onkeypop.action = can
|
||||
@ -14,7 +14,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
can.current = null
|
||||
|
||||
// 加载绘图
|
||||
var code = can.onappend.board(can, msg, can.ui.content, "content", msg.Result()||can.onexport.content(can))
|
||||
var code = can.onappend.board(can, "content", msg.Result()||can.onexport.content(can), can.ui.content)
|
||||
can.page.Select(can, can.ui.content, "svg", function(svg) { can.svg = can.group = svg
|
||||
can.onimport.block(can, svg), can.onimport.group(can, svg).click()
|
||||
can.page.Select(can, svg, "*", function(item, index) {
|
||||
@ -49,7 +49,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
return typeof cb == "function" && cb(msg)
|
||||
},
|
||||
group: function(can, target) { var name = target.Groups() || "svg"
|
||||
return can.onappend.item(can, can.ui.project, "item", {name: name}, function(event) {
|
||||
return can.onappend.item(can, "item", {name: name}, function(event) {
|
||||
can.group = target, can.core.List(["font-size", "storke-width", "stroke", "fill"], function(key) {
|
||||
can.Action(key, target.Value(key)||can.Action(key))
|
||||
}), can.onmotion.show(can, 10, null, target)
|
||||
@ -68,7 +68,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
can.onaction[item](event, can, item)
|
||||
}
|
||||
})
|
||||
})
|
||||
}, can.ui.project)
|
||||
},
|
||||
block: function(can, target) {
|
||||
target.Val = function(key, value) {
|
||||
@ -603,8 +603,8 @@ Volcanos("onaction", {help: "组件菜单", list: [
|
||||
_mode: {
|
||||
run: function(event, can) { var target = event.target
|
||||
event.type == "click" && target.Value("type") && can.run(event, ["action", "run", target.Value("zone"), target.Value("type"), target.Value("name"), target.Value("text")], function(msg) {
|
||||
can.onappend.table(can, msg, can.ui.display, "content")
|
||||
can.onappend.board(can, msg, can.ui.display, "content")
|
||||
can.onappend.table(can, "content", msg, function() {}, can.ui.display)
|
||||
can.onappend.board(can, "content", msg.Result(), can.ui.display)
|
||||
}, true)
|
||||
},
|
||||
translate: function(event, can, point) {
|
||||
|
@ -5,13 +5,13 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
})
|
||||
|
||||
can.ui = can.onlayout.display(can, target)
|
||||
can.onappend.table(can, can.path, can.ui.content, "content", function(value, key) {
|
||||
can.onappend.table(can, "content", can.path, function(value, key) {
|
||||
return {type: "td", inner: value, onclick: function(event) {
|
||||
can.sup.onaction.change(event, can.sup, key, value, function(msg) {
|
||||
can.onimport._init(can, msg, list, cb, target)
|
||||
})
|
||||
}}
|
||||
})
|
||||
}, can.ui.content)
|
||||
|
||||
var feature = can.Conf("feature") || {}
|
||||
can.page.Modify(can, can._action, {style: {display: "none"}})
|
||||
|
@ -1,5 +1,5 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) { target.innerHTML = ""
|
||||
var list = []; can.onengine.listen(can, "resize", function(width, height) {
|
||||
var list = []; can.onengine.listen(can, "action.resize", function(width, height) {
|
||||
can.Conf({width: width, height: height}), can.core.Delay(list, 100, function() {
|
||||
can.onimport._init(can, msg, list, cb, target)
|
||||
})
|
||||
@ -7,13 +7,13 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
can.page.Modify(can, can._target, {style: {"max-width": can.Conf("width")}})
|
||||
|
||||
if (msg.Option("_display") == "table") {
|
||||
return can.onappend.table(can, msg, target, "content", function(value, key) {
|
||||
return can.onappend.table(can, "content", msg, function(value, key) {
|
||||
return {text: [value, "td"], onclick: function(event) {
|
||||
can.sup.onaction.change(event, can.sup, key, value, function(msg) {
|
||||
can.run(event)
|
||||
})
|
||||
}}
|
||||
})
|
||||
}, target)
|
||||
} target.innerHTML = msg.Result()
|
||||
|
||||
can.page.Select(can, target, ".story", function(item) { var data = item.dataset
|
||||
|
@ -2,8 +2,8 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
can.ui = can.page.Append(can, can._target, [
|
||||
{view: ["content", "div"]}, {view: ["display", "pre"]},
|
||||
])
|
||||
can.onappend.table(can, msg, can.ui.content, "content")
|
||||
can.onappend.board(can, msg, can.ui.display, "content")
|
||||
can.onappend.table(can, "content", msg, null, can.ui.content)
|
||||
can.onappend.board(can, "content", msg.Result(), can.ui.display)
|
||||
return typeof cb == "function" && cb(msg)
|
||||
},
|
||||
})
|
||||
|
@ -1,13 +1,13 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [],
|
||||
_init: function(can, msg, list, cb, target) { can._output.innerHTML = ""
|
||||
if (msg.Option("_display") == "table") {
|
||||
can.onappend.table(can, msg, can._target, "content", function(value, key) {
|
||||
can.onappend.table(can, "content", msg, function(value, key) {
|
||||
return {text: [value, "td"], click: function(event) {
|
||||
can.sup.onaction.change(event, can.sup, key, value, function(msg) {
|
||||
can.run(event)
|
||||
})
|
||||
}}
|
||||
})
|
||||
}, can._target)
|
||||
return typeof cb == "function" && cb(msg)
|
||||
}
|
||||
can.ui = can.page.Append(can, can._output, [{view: "content"}, {view: "display"}])
|
||||
|
@ -1,18 +1,18 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) { can._output.innerHTML = ""
|
||||
var list = []; can.onengine.listen(can, "resize", function(width, height) {
|
||||
var list = []; can.onengine.listen(can, "action.resize", function(width, height) {
|
||||
can.Conf({width: width, height: height}), can.core.Delay(list, 100, function() {
|
||||
can.onimport._init(can, msg, list, cb, target)
|
||||
})
|
||||
})
|
||||
|
||||
if (msg.Option("_display") == "table") {
|
||||
can.onappend.table(can, msg, can._target, "content", function(value, key) {
|
||||
can.onappend.table(can, "content", msg, function(value, key) {
|
||||
return {text: [value, "td"], click: function(event) {
|
||||
can.sup.onaction.change(event, can.sup, key, value, function(msg) {
|
||||
can.run(event)
|
||||
})
|
||||
}}
|
||||
})
|
||||
}, can._target)
|
||||
return typeof cb == "function" && cb(msg)
|
||||
}
|
||||
can.ui = can.page.Append(can, can._output, [{view: "content"}, {view: "display"}])
|
||||
@ -194,7 +194,7 @@ Volcanos("onaction", {help: "组件菜单", list: ["编辑", "清空", ["view",
|
||||
},
|
||||
"数据源": function(event, can) {
|
||||
can.ui.display.innerHTML = ""
|
||||
can.onappend.table(can, can._msg, can.ui.display, "content")
|
||||
can.onappend.table(can, "content", can._msg, null, can.ui.display)
|
||||
},
|
||||
})
|
||||
Volcanos("onexport", {help: "导出数据", list: ["from", "commit", "total", "date", "begin", "add", "del", "close", "note"]})
|
||||
|
@ -6,11 +6,11 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
// {view: ["content", "div"]}, {view: ["display", "pre"]},
|
||||
// ]))
|
||||
|
||||
can.onappend.table(can, msg, can.ui.content, "content", function(value, key, index, line, array) {
|
||||
can.onappend.table(can, "content", msg, function(value, key, index, line, array) {
|
||||
return can.onimport._table(can, value, key, index, line, array)
|
||||
})
|
||||
}, can.ui.content)
|
||||
|
||||
can.onappend.board(can, msg, can.ui.display, "content")
|
||||
can.onappend.board(can, "content", msg.Result(), can.ui.display)
|
||||
can.onimport._board(can, msg)
|
||||
|
||||
typeof cb == "function" && cb(msg)
|
||||
@ -137,11 +137,11 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
return true
|
||||
},
|
||||
_inner: function(can, msg) {
|
||||
can.onappend.table(can, msg, can._output, "content", function(value, key, index, line, array) {
|
||||
can.onappend.table(can, "content", msg, function(value, key, index, line, array) {
|
||||
return can.onimport._table(can, value, key, index, line, array)
|
||||
})
|
||||
}, can._output)
|
||||
|
||||
can.onappend.board(can, msg, can._output, "content")
|
||||
can.onappend.board(can, "content", msg.Result(), can._output)
|
||||
// can.onimport._board(can, msg)
|
||||
return true
|
||||
},
|
||||
|
3
proto.js
3
proto.js
@ -24,8 +24,7 @@ var Volcanos = shy("火山架", {libs: [], cache: {}}, [], function(name, can, l
|
||||
// 根模块
|
||||
name = Config.name, can = {_follow: Config.name, _target: document.body}
|
||||
libs = Preload.concat(Config.main.list, Config.libs), cb = function(can) {
|
||||
can.onengine._init(can, can.Conf(Config), Config.panes, function(msg) {
|
||||
can.base.Log(name, "run", window.can = can)
|
||||
can.onengine._init(can, can.Conf(Config), Config.panes, function(msg) { can.base.Log(name, "run", can)
|
||||
var list = []; document.body.onresize = function() { can.core.Delay(list, 100, function() {
|
||||
can.onlayout._init(can, can._target, can._width = window.innerWidth, can._height = window.innerHeight)
|
||||
}) }, document.body.onresize()
|
||||
|
@ -2,8 +2,8 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
can.ui = can.page.Append(can, can._target, [
|
||||
{view: ["content", "div"]}, {view: ["display", "pre"]},
|
||||
])
|
||||
can.onappend.table(can, msg, can.ui.content, "content")
|
||||
can.onappend.board(can, msg, can.ui.display, "content")
|
||||
can.onappend.table(can, "content", msg, null, can.ui.content)
|
||||
can.onappend.board(can, "content", msg.Result(), can.ui.display)
|
||||
var refresh = msg.Option("_refresh") || can.Conf("feature")["_refresh"]
|
||||
refresh && can.core.Timer(refresh, function() {
|
||||
can.run({})
|
||||
|
Loading…
x
Reference in New Issue
Block a user