mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 16:58:06 +08:00
opt share
This commit is contained in:
parent
6a76d45482
commit
00848267cf
30
frame.js
30
frame.js
@ -213,7 +213,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
})
|
||||
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.base.isFunc(cb) && cb(sub)
|
||||
}, target)
|
||||
},
|
||||
Pack: function(cmds, slient) {
|
||||
@ -231,7 +231,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
sub.page.ClassList.add(sub, field, meta.style||meta.feature.style||"")
|
||||
sub.page.ClassList.add(sub, field, meta.index? meta.index.split(".").pop(): meta.name)
|
||||
|
||||
typeof cb == "function" && cb(sub)
|
||||
can.base.isFunc(cb) && cb(sub)
|
||||
meta.option = can.base.Obj(meta.option||"{}", {})
|
||||
meta.inputs && sub.onappend._option(sub, meta, sub._option)
|
||||
}); return sub
|
||||
@ -308,7 +308,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
can.run(event, cmds, function(msg) { var sub = can.core.Value(can, "_outputs.-1")
|
||||
if (can.core.CallFunc([sub, "onimport._process"], [sub, msg, cmds, cb])) { return }
|
||||
if (can.core.CallFunc([can, "onimport._process"], [can, msg, cmds, cb])) { return }
|
||||
typeof cb == "function" && cb(msg)
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
})
|
||||
})
|
||||
return
|
||||
@ -317,7 +317,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
return can.run(event, cmds, function(msg) { var sub = can.core.Value(can, "_outputs.-1")
|
||||
if (can.core.CallFunc([sub, "onimport._process"], [sub, msg, cmds, cb])) { return }
|
||||
if (can.core.CallFunc([can, "onimport._process"], [can, msg, cmds, cb])) { return }
|
||||
typeof cb == "function" && cb(msg)
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
if (silent) { return }
|
||||
|
||||
var display = msg.Option("_display") || meta.display || meta.feature.display || "/plugin/table.js"
|
||||
@ -380,7 +380,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
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], [{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)
|
||||
index < array.length - 1? can.onmotion.toggle(can, node[name]): can.base.isFunc(cb) && cb(event, item)
|
||||
}}, {view: "list", style: {display: "none"}}]).last)
|
||||
})
|
||||
}); return node
|
||||
@ -506,7 +506,13 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
|
||||
can.onappend._init(can, meta, ["/plugin/state.js"], function(sub) {
|
||||
meta.type == "story" && sub.page.Remove(sub, sub._legend)
|
||||
typeof cb == "function" && cb(sub, meta)
|
||||
can.base.isFunc(cb) && cb(sub, meta)
|
||||
sub._legend.onclick = function(event) {
|
||||
var list = can.page.Select(can, sub._option, '.args', function(item) { return item.value||"" })
|
||||
can.user.share(can, can.request(event), ["action", "share", "type", "field",
|
||||
"text", JSON.stringify(list),
|
||||
"river", meta.ctx||meta.key||"", "storm", meta.index||meta.cmd||meta.name])
|
||||
}
|
||||
}, target||can._output)
|
||||
},
|
||||
plugin: function(can, meta, cb, target) { meta = meta || {}
|
||||
@ -521,7 +527,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
sub.onmotion.hidden(sub, sub._option)
|
||||
sub.onmotion.hidden(sub, sub._action)
|
||||
sub.onmotion.hidden(sub, sub._status)
|
||||
typeof cb == "function" && cb(sub)
|
||||
can.base.isFunc(cb) && cb(sub)
|
||||
}, target)
|
||||
},
|
||||
}, [], function(can) {})
|
||||
@ -577,7 +583,7 @@ Volcanos("onlayout", {help: "页面布局", list: [], _init: function(can) {
|
||||
resize: function(can, name, cb) {
|
||||
var list = []; can.onengine.listen(can, name, function(width, height) {
|
||||
can.Conf({width: width, height: height}), can.core.Delay(list, 100, function() {
|
||||
typeof cb == "function" && cb(event)
|
||||
can.base.isFunc(cb) && cb(event)
|
||||
})
|
||||
})
|
||||
},
|
||||
@ -649,10 +655,10 @@ Volcanos("onkeypop", {help: "键盘交互", list: [], _init: function(can, targe
|
||||
}
|
||||
|
||||
var map = can.onkeypop._mode[mode]
|
||||
var cb = map && map[event.key]; if (typeof cb == "function" && event.key.length > 1) {
|
||||
var cb = map && map[event.key]; if (can.base.isFunc(cb) && event.key.length > 1) {
|
||||
repeat(cb, count); return list
|
||||
}
|
||||
var cb = map && map[event.key.toLowerCase()]; if (typeof cb == "function" && event.key.length > 1) {
|
||||
var cb = map && map[event.key.toLowerCase()]; if (can.base.isFunc(cb) && event.key.length > 1) {
|
||||
repeat(cb, count); return list
|
||||
}
|
||||
|
||||
@ -797,7 +803,7 @@ Volcanos("onmotion", {help: "动态交互", list: [], _init: function(can, targe
|
||||
can.page.Modify(can, target, {style: {opacity: 1-(index+1)/time.length}})
|
||||
}, function() {
|
||||
can.page.Modify(can, target, {style: {display: "none"}})
|
||||
typeof cb == "function" && cb
|
||||
can.base.isFunc(cb) && cb()
|
||||
})
|
||||
},
|
||||
|
||||
@ -883,7 +889,7 @@ Volcanos("onmotion", {help: "动态交互", list: [], _init: function(can, targe
|
||||
can.page.Select(can, target, "div.output", function(item, index) {
|
||||
index == 0 && (item.style.height = "")
|
||||
}), target.style.height = ""
|
||||
typeof cb == "function" && cb(msg)
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
},
|
||||
|
||||
move: function(can, target, layout) { var begin
|
||||
|
@ -1,4 +1,5 @@
|
||||
Volcanos("base", {help: "数据类型",
|
||||
isFunc: function(cb) { return typeof cb == "function" },
|
||||
Int: function(value, def) { return parseInt(value)||def||0 },
|
||||
Obj: function(value, def) {
|
||||
try {
|
||||
|
14
lib/user.js
14
lib/user.js
@ -94,12 +94,10 @@ Volcanos("user", {help: "用户模块", agent: {
|
||||
},
|
||||
share: function(can, msg, cmd) {
|
||||
can.run(msg._event, cmd||["action", "share"], function(msg) {
|
||||
var src = can.user.MergeURL(can, {_path: "/share/"+msg.Result()}, true)
|
||||
var ui = can.user.toast(can, {
|
||||
title: can.page.Format("a", "/share/"+msg.Result()+"?share="+msg.Result()),
|
||||
content: can.page.Format("img", src+"/share"),
|
||||
title: msg.Append("name"), content: msg.Append("text"),
|
||||
button: ["close"], duration: 100000,
|
||||
width: 300, height: 300,
|
||||
height: 300,
|
||||
})
|
||||
})
|
||||
},
|
||||
@ -122,7 +120,6 @@ Volcanos("user", {help: "用户模块", agent: {
|
||||
can.misc.WSS(can, {type: "chrome"}, function(event, msg, cmd, arg) { if (!msg) { return }
|
||||
if (cmd == "pwd") {
|
||||
can.user.toast(can, arg[2], arg[1], 1000000)
|
||||
// can.user.share(can, can.request(event, {name: arg[0]}), ["action", "apply"])
|
||||
msg.Reply()
|
||||
return
|
||||
}
|
||||
@ -279,9 +276,16 @@ Volcanos("user", {help: "用户模块", agent: {
|
||||
},
|
||||
logout: function(can) {
|
||||
if (can.user.confirm("logout?")) {
|
||||
can.run({}, ["action", "logout"], function(msg) {
|
||||
can.user.Cookie(can, "sessid", "")
|
||||
|
||||
if (can.user.Search(can, "share")) {
|
||||
can.user.Search(can, "share", "")
|
||||
} else {
|
||||
can.user.reload(true)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
MergeURL: shy("地址链接", function(can, objs, clear) { var obj = objs || {}; var path = location.pathname;
|
||||
|
@ -266,7 +266,7 @@ div.story[data-type=spark] span:hover {
|
||||
|
||||
fieldset>form.option>div.item {
|
||||
float:left; margin-right:3px;
|
||||
min-height:26px; vertical-align:middle;
|
||||
min-height:25px; vertical-align:middle;
|
||||
}
|
||||
fieldset>form.option>div.item label {
|
||||
display:none;
|
||||
|
@ -1,25 +1,26 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg) {
|
||||
var river = can.Conf("river"), storm = can.Conf("storm")
|
||||
var river = can.Conf(can._RIVER), storm = can.Conf(can._STORM)
|
||||
can.onmotion.clear(can), can.core.Next(msg.Table(), function(item, next) {
|
||||
item.width = parseInt(can.Conf("width")), item.height = parseInt(can.Conf("height"))
|
||||
item.width = parseInt(can.Conf(can._WIDTH)), item.height = parseInt(can.Conf(can._HEIGHT))
|
||||
item.feature = can.base.Obj(item.feature||item.meta)
|
||||
item.inputs = can.base.Obj(item.inputs||item.list)
|
||||
item.type = "plugin"
|
||||
item.type = can._PLUGIN
|
||||
|
||||
can.onappend.plugin(can, item, function(sub, meta) {
|
||||
can.onimport._plugin(can, river, storm, sub, meta), next()
|
||||
sub._option.dataset = sub._option.dataset || {}
|
||||
item.id && (sub._option.dataset.id = item.id)
|
||||
sub._target.Meta = item
|
||||
})
|
||||
}, function() {
|
||||
can.onaction._layout(can, can.Conf("layout")||can.user.Search(can, "layout"))
|
||||
can.onaction._layout(can, can.Conf(can._LAYOUT)||can.user.Search(can, can._LAYOUT))
|
||||
})
|
||||
},
|
||||
_plugin: function(can, river, storm, sub, item) {
|
||||
sub.run = function(event, cmds, cb) { var msg = sub.request(event)
|
||||
var toast = msg.Option("_toast") && can.user.toast(can, msg.Option("_toast"), "", 1000000)
|
||||
return can.run(event, (can.onengine[cmds[0]]? []: [river, storm, item.id||item.index||item.key+"."+item.name]).concat(cmds), function(msg) {
|
||||
toast && toast.Close(), typeof cb == "function" && cb(msg)
|
||||
toast && toast.Close(), can.base.isFunc(cb) && cb(msg)
|
||||
})
|
||||
}, can._plugins = (can._plugins||[]).concat([sub])
|
||||
|
||||
@ -35,20 +36,27 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg)
|
||||
}}])
|
||||
},
|
||||
_share: function(can, msg, share) {
|
||||
can.user.topic(can, can.user.Search(can, "topic")||msg.Option("topic")||"white")
|
||||
can.user.title(can.user.Search(can, "title")||msg.Option("title"))
|
||||
can.Conf("river", "_share"), can.Conf("storm", share)
|
||||
can.Conf(can._WIDTH, window.innerWidth)
|
||||
can.Conf(can._HEIGHT, window.innerHeight)
|
||||
can.user.topic(can, can.user.Search(can, can._TOPIC)||msg.Option(can._TOPIC)||"white")
|
||||
can.user.title(can.user.Search(can, can._TITLE)||msg.Option(can._TITLE))
|
||||
can.Conf(can._RIVER, "_share"), can.Conf(can._STORM, share)
|
||||
can.onimport._init(can, msg)
|
||||
},
|
||||
_menu: function(can) {
|
||||
!can.user.isMobile && can.run({}, [can._SEARCH, "Header.onimport.menu", can._ACTION,
|
||||
["布局", "默认布局", "流动布局", "网格布局", "标签布局", "自由布局"],
|
||||
], function(event, key) { can.onaction._layout(can, key) })
|
||||
},
|
||||
})
|
||||
Volcanos("onengine", {help: "解析引擎", list: [],
|
||||
engine: function(event, can, msg, panel, cmds, cb) {
|
||||
engine: function(event, page, msg, can, cmds, cb) {
|
||||
var river = can.onengine.river[cmds[0]]
|
||||
var storm = river && river.storm[cmds[1]]
|
||||
if (!storm || cmds.length != 2) { return false }
|
||||
|
||||
if (storm.index) { cmds = ["action", "command"].concat(storm.index)
|
||||
can.misc.Runs(event, can, {names: panel._name}, cmds, cb)
|
||||
if (storm.index) { cmds = [can._ACTION, "command"].concat(storm.index)
|
||||
can.misc.Runs(event, can, {names: can._name}, cmds, cb)
|
||||
} else {
|
||||
can.core.List(storm.action, function(value) {
|
||||
msg.Push("name", value.name||"")
|
||||
@ -57,13 +65,20 @@ Volcanos("onengine", {help: "解析引擎", list: [],
|
||||
msg.Push("feature", JSON.stringify(value.feature||{}))
|
||||
msg.Push("index", value.index||"")
|
||||
msg.Push("args", value.args||"[]")
|
||||
}), typeof cb == "function" && cb(msg)
|
||||
}), can.base.isFunc(cb) && cb(msg)
|
||||
}
|
||||
return true
|
||||
},
|
||||
})
|
||||
Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, msg, list, cb, target) {
|
||||
var share = can.user.Search(can, "share"); if (share) {
|
||||
can.const(
|
||||
"output", "fields",
|
||||
"search", "action", "share", "river", "storm",
|
||||
"title", "topic", "layout", "width", "height",
|
||||
"plugin",
|
||||
)
|
||||
|
||||
var share = can.user.Search(can, can._SHARE); if (share) {
|
||||
can.run({}, ["_share", share], function(msg) { msg.Length()>0? can.onimport._share(can, msg, share):
|
||||
can.onengine.engine({}, can, msg, can, [msg.Option("sess.river"), msg.Option("sess.storm")], function(msg) {
|
||||
can.onimport._share(can, msg, share)
|
||||
@ -75,8 +90,8 @@ Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, msg,
|
||||
can.onaction._select(can, msg, river, storm)
|
||||
})
|
||||
|
||||
can.onengine.listen(can, "search", function(msg, word) {
|
||||
if (word[0] == "*" || word[0] == "plugin") { can.onexport.plugin(can, msg, word) }
|
||||
can.onengine.listen(can, can._SEARCH, function(msg, word) {
|
||||
if (word[0] == "*" || word[0] == can._PLUGIN) { can.onexport.plugin(can, msg, word) }
|
||||
})
|
||||
|
||||
can._target.ontouchstart = function(event) {
|
||||
@ -86,13 +101,11 @@ Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, msg,
|
||||
var list = []; can.onengine.listen(can, "resize", function(width, height) {
|
||||
can.Conf({width: width, height: height}), can.core.Delay(list, 1000, function() {
|
||||
can.onengine.signal(can, "action.resize", can.request({}, {
|
||||
width: can.Conf("width"), height: can.Conf("height"),
|
||||
width: can.Conf(can._WIDTH), height: can.Conf(can._HEIGHT),
|
||||
}))
|
||||
})
|
||||
})
|
||||
!can.user.isMobile && can.run({}, ["search", "Header.onimport.menu", "action",
|
||||
["布局", "默认布局", "流动布局", "网格布局", "标签布局", "自由布局"],
|
||||
], function(event, key) { can.onaction._layout(can, key) })
|
||||
can.onimport._menu(can)
|
||||
},
|
||||
_layout: function(can, key) { if (!key) { return }
|
||||
var trans = {
|
||||
@ -103,7 +116,7 @@ Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, msg,
|
||||
"自由布局": "free",
|
||||
}
|
||||
|
||||
key = trans[key]||key, can.Conf("layout", key)
|
||||
key = trans[key]||key, can.Conf(LAYOUT, key)
|
||||
can.page.Modify(can, can._action, {className: "action "+key})
|
||||
can.page.Modify(can, can._output, {className: "output "+key})
|
||||
|
||||
@ -113,13 +126,13 @@ Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, msg,
|
||||
}
|
||||
},
|
||||
_select: function(can, msg, river, storm) {
|
||||
function key(name) { return can.Conf("river")+"."+can.Conf("storm")+"."+name}
|
||||
can.page.Cache(key("action"), can._action, can._output.scrollTop+1)
|
||||
can.page.Cache(key("output"), can._output, can._output.scrollTop+1)
|
||||
function key(name) { return can.Conf(can._RIVER)+"."+can.Conf(can._STORM)+"."+name}
|
||||
can.page.Cache(key(can._ACTION), can._action, can._output.scrollTop+1)
|
||||
can.page.Cache(key(can._OUTPUT), can._output, can._output.scrollTop+1)
|
||||
|
||||
can.Conf("river", river), can.Conf("storm", storm) // 转场
|
||||
var position = can.page.Cache(key("output"), can._output)
|
||||
var position = can.page.Cache(key("action"), can._action)
|
||||
can.Conf(can._RIVER, river), can.Conf(can._STORM, storm) // 转场
|
||||
var position = can.page.Cache(key(can._OUTPUT), can._output)
|
||||
var position = can.page.Cache(key(can._ACTION), can._action)
|
||||
if (position) { can._output.scrollTo(0, position-1); return }
|
||||
|
||||
can.run({}, [river, storm], function(msg) {
|
||||
@ -127,7 +140,7 @@ Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, msg,
|
||||
can.onimport._init(can, msg)
|
||||
} else {
|
||||
var msg = can.request({}, {river: river, storm: storm})
|
||||
can.run(msg._event, ["search", "River.ondetail.添加工具"])
|
||||
can.run(msg._event, [can._SEARCH, "River.ondetail.添加工具"])
|
||||
}
|
||||
})
|
||||
},
|
||||
@ -142,20 +155,31 @@ Volcanos("onexport", {help: "导出数据", list: [],
|
||||
size: function(can, msg) {
|
||||
msg.Option("top", can._target.offsetTop)
|
||||
msg.Option("left", can._target.offsetLeft)
|
||||
msg.Option("width", can._target.offsetWidth)
|
||||
msg.Option("height", can._target.offsetHeight)
|
||||
msg.Option(can._WIDTH, can._target.offsetWidth)
|
||||
msg.Option(can._HEIGHT, can._target.offsetHeight)
|
||||
},
|
||||
layout: function(can, msg) { return can.Conf("layout") },
|
||||
layout: function(can, msg) { return can.Conf(LAYOUT) },
|
||||
plugin: function(can, msg, word) {
|
||||
var fields = (msg.Option("fields")||"ctx,cmd,type,name,text").split(",")
|
||||
var fields = (msg.Option(can._FIELDS)||"ctx,cmd,type,name,text").split(",")
|
||||
can.page.Select(can, can._output, "fieldset.plugin>legend", function(item) {
|
||||
if (item.innerHTML.indexOf(word[1]) == -1) { return }
|
||||
|
||||
var meta = item.parentNode.Meta
|
||||
can.core.List(fields, function(key) {
|
||||
switch (key) {
|
||||
case "context":
|
||||
msg.Push(key, meta.ctx||meta.key||"")
|
||||
break
|
||||
case "command":
|
||||
msg.Push(key, meta.index||meta.cmd||meta.name)
|
||||
break
|
||||
case "argument":
|
||||
var list = can.page.Select(can, item.nextSibling, '.args', function(item) { return item.value||"" })
|
||||
msg.Push(key, JSON.stringify(list))
|
||||
break
|
||||
case "ctx": msg.Push(key, "web.chat"); break
|
||||
case "cmd": msg.Push(key, "action"); break
|
||||
case "type": msg.Push(key, "plugin"); break
|
||||
case "cmd": msg.Push(key, can._ACTION); break
|
||||
case "type": msg.Push(key, can._PLUGIN); break
|
||||
case "name": msg.Push(key, item.innerHTML); break
|
||||
case "text":
|
||||
msg.Push(key, shy("跳转", function() {
|
||||
|
@ -3,7 +3,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
can.onimport._title(can, msg, target)
|
||||
can.onimport._toast(can, msg, target)
|
||||
can.onimport._state(can, msg, target)
|
||||
typeof cb == "function" && cb(msg)
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
},
|
||||
_title: function(can, msg, target) {
|
||||
can.user.isMobile || can.core.List(msg.result, function(title) {
|
||||
|
@ -1,9 +1,9 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
|
||||
if (can.user.Search(can, "grant")) {
|
||||
if (can.user.confirm("grant "+can.user.Search(can, "grant"))) {
|
||||
can.run(event, ["action", "grant", "space", can.user.Search(can, "grant")])
|
||||
const GRANT = "grant"; if (can.user.Search(can, GRANT)) {
|
||||
if (can.user.confirm(GRANT+" "+can.user.Search(can, GRANT))) {
|
||||
can.run(event, [can._ACTION, GRANT, "space", can.user.Search(can, GRANT)])
|
||||
}
|
||||
can.user.Search(can, "grant", "")
|
||||
can.user.Search(can, GRANT, "")
|
||||
return
|
||||
}
|
||||
|
||||
@ -32,22 +32,22 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
can.onimport._agent(can, msg, target)
|
||||
can.onimport._menu(can, msg, target)
|
||||
|
||||
typeof cb == "function" && cb(msg)
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
can.page.Modify(can, can._output, {onmouseover: function(event) {
|
||||
can.menu && can.page.Remove(can, can.menu.first)
|
||||
}})
|
||||
},
|
||||
_title: function(can, msg, target) {
|
||||
can.user.title(can.user.Search(can, "title")||can.user.Search(can, "pod"))
|
||||
can.user.title(can.user.Search(can, can._TITLE)||can.user.Search(can, "pod"))
|
||||
!can.user.isMobile && can.core.List(msg.result||["github.com/shylinux/contexts"], function(item) {
|
||||
can.page.Append(can, target, [{view: ["title", "div", item], onclick: function(event) {
|
||||
can.page.Append(can, target, [{view: [can._TITLE, "div", item], onclick: function(event) {
|
||||
can.onaction.title(event, can)
|
||||
}}])
|
||||
})
|
||||
},
|
||||
_state: function(can, msg, target) {
|
||||
can.core.List(can.base.Obj(msg.Option("state"), can.Conf("state")||["time", "username"]), function(item) {
|
||||
if (item == "avatar") {
|
||||
can.core.List(can.base.Obj(msg.Option("state"), can.Conf("state")||["time", can._USERNAME]), function(item) {
|
||||
if (item == can._AVATAR) {
|
||||
can.page.Append(can, target, [{view: ["state "+item], list: [{img: can.Conf(item), onmouseenter: function(event) {
|
||||
can.onaction.carte(event, can, [can.page.Format("img", can.Conf(item), 160)])
|
||||
}}]}])
|
||||
@ -62,22 +62,22 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
})
|
||||
},
|
||||
_search: function(can, msg, target) {
|
||||
var ui = can.page.Append(can, target, [{view: "search", list: [{type: "input", data: {placeholder: "search"}, onkeydown: function(event) {
|
||||
var ui = can.page.Append(can, target, [{view: can._SEARCH, list: [{type: "input", data: {placeholder: can._SEARCH}, onkeydown: function(event) {
|
||||
can.onkeypop.input(event, can); switch (event.key) {
|
||||
case "Enter": can.run(event, ["search", "Search.onimport.select", "*", event.target.value]); break
|
||||
case "Enter": can.run(event, [can._SEARCH, "Search.onimport.select", "*", event.target.value]); break
|
||||
}
|
||||
}}] }]); can.onmotion.autosize(can, ui.input, 240, 120)
|
||||
can.user.isMobile && can.page.Modify(can, ui.first, {style: {float: "right"}})
|
||||
},
|
||||
_avatar: function(can, msg) {
|
||||
!can.user.isLocalFile && can.page.Modify(can, "div.output div.state.avatar>img", {src: can.Conf("avatar", msg.Option("avatar"))})
|
||||
!can.user.isLocalFile && can.page.Modify(can, "div.output div.state.avatar>img", {src: can.Conf(can._AVATAR, msg.Option(can._AVATAR))})
|
||||
},
|
||||
_background: function(can, msg) {
|
||||
!can.user.isLocalFile && can.onlayout.background(can, msg.Option("background"), document.body)
|
||||
!can.user.isLocalFile && can.onlayout.background(can, msg.Option(can._BACKGROUND), document.body)
|
||||
},
|
||||
_daemon: function(can, msg, target) {
|
||||
can.misc.WSS(can, {type: "chrome", name: can.user.Search(can, "daemon")||""}, function(event, msg, cmd, arg) { if (!msg) { return }
|
||||
can.run(event, ["search"].concat(msg["detail"]||[]), function(msg) {
|
||||
can.run(event, [can._SEARCH].concat(msg["detail"]||[]), function(msg) {
|
||||
msg.Reply()
|
||||
})
|
||||
})
|
||||
@ -95,13 +95,13 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
can.user.isWeiXin && can.onimport._weixin(can)
|
||||
},
|
||||
_menu: function(can, msg, target) {
|
||||
can.onimport.menu(can, can.user.isMobile||can.user.isExtension||can.user.Search(can, "pod")? ["header", "river"]:
|
||||
can.onimport.menu(can, can.user.isMobile||can.user.isExtension||can.user.Search(can, "pod")? ["header", can._RIVER]:
|
||||
["header", ["setting", "black", "white", "print", "pack"]], function(event, item) {
|
||||
can.core.CallFunc([can.onaction, item], [event, can, item])
|
||||
})
|
||||
},
|
||||
|
||||
_weixin: function(can, msg) { can.run({}, ["action", "agent"], function(msg) {
|
||||
_weixin: function(can, msg) { can.run({}, [can._ACTION, "agent"], function(msg) {
|
||||
can.require(can.base.Obj(msg.Option("script")), function(can) {
|
||||
wx.config({debug: msg.Option("debug") == "true",
|
||||
appId: msg.Option("appid"), signature: msg.Option("signature"),
|
||||
@ -109,10 +109,10 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
|
||||
jsApiList: can.core.Item({
|
||||
scanQRCode: function(cb) { wx.scanQRCode({needResult: cb? 1: 0, scanType: ["qrCode","barCode"], success: function (res) {
|
||||
typeof cb == "function" && cb(res.resultStr)
|
||||
can.base.isFunc(cb) && cb(res.resultStr)
|
||||
} }) },
|
||||
getLocation: function(cb) { wx.getLocation({type: "gcj02", success: function (res) {
|
||||
typeof cb == "function" && cb({type: "gcj02", name: "当前位置", text: "当前位置", latitude: parseInt(res.latitude*100000), longitude: parseInt(res.longitude*100000) })
|
||||
can.base.isFunc(cb) && cb({type: "gcj02", name: "当前位置", text: "当前位置", latitude: parseInt(res.latitude*100000), longitude: parseInt(res.longitude*100000) })
|
||||
} }) },
|
||||
openLocation: function(msg) { wx.openLocation({
|
||||
latitude: parseInt(msg.Option("latitude"))/100000,
|
||||
@ -121,7 +121,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
scale: msg.Option("scale")||14, infoUrl: msg.Option("link"),
|
||||
}) },
|
||||
chooseImage: function(cb, count) { wx.chooseImage({count: count||9, sizeType: ['original', 'compressed'], sourceType: ['album', 'camera'], success: function (res) {
|
||||
typeof cb == "function" && cb(res.localIds)
|
||||
can.base.isFunc(cb) && cb(res.localIds)
|
||||
} }) },
|
||||
}, function(key, value) { return can.user.agent[key] = value, key }),
|
||||
})
|
||||
@ -139,7 +139,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
return can.page.Append(can, can._output, [{type: cmds[0], list: can.core.List(cmds.slice(1), function(item) {
|
||||
if (typeof item == "string") {
|
||||
return {view: ["menu", "div", item], onclick: function(event) {
|
||||
typeof cb == "function" && cb(event, item)
|
||||
can.base.isFunc(cb) && cb(event, item)
|
||||
}}
|
||||
|
||||
} else if (item.length > 0) {
|
||||
@ -153,32 +153,38 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
}) }]).first
|
||||
},
|
||||
avatar: function(event, can, url) {
|
||||
can.run(event, ["action", "avatar", url], function(msg) {
|
||||
can.run(event, [can._ACTION, can._AVATAR, url], function(msg) {
|
||||
can.onimport._avatar(can, msg)
|
||||
})
|
||||
},
|
||||
background: function(event, can, url) {
|
||||
can.run(event, ["action", "background", url], function(msg) {
|
||||
can.run(event, [can._ACTION, can._BACKGROUND, url], function(msg) {
|
||||
can.onimport._background(can, msg)
|
||||
})
|
||||
},
|
||||
})
|
||||
Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg, list, cb, target) {
|
||||
can.const(
|
||||
"search", "action", "share", "title", "river", "storm",
|
||||
"grant",
|
||||
"username", "background", "avatar",
|
||||
)
|
||||
|
||||
function init() { can.run({}, [], function(msg) {
|
||||
can.Conf("username", msg.Option("user.nick")||msg.Option("user.name"))
|
||||
can.Conf("background", msg.Option("background"))
|
||||
can.Conf("avatar", msg.Option("avatar"))
|
||||
can.Conf(can._USERNAME, msg.Option("user.nick")||msg.Option("user.name")||can.Conf(can._USERNAME))
|
||||
can.Conf(can._BACKGROUND, msg.Option(can._BACKGROUND))
|
||||
can.Conf(can._AVATAR, msg.Option(can._AVATAR))
|
||||
|
||||
can.onimport._init(can, msg, list, function(msg) {
|
||||
can.onengine.listen(can, "storm.select", function(msg, river, storm) {
|
||||
can.Conf("river", river), can.Conf("storm", storm)
|
||||
can.Conf(can._RIVER, river), can.Conf(can._STORM, storm)
|
||||
})
|
||||
|
||||
can.run(msg._event, ["search", "Footer.onaction._init"])
|
||||
can.run(msg._event, ["search", "Action.onaction._init"])
|
||||
can.run(msg._event, ["search", "River.onaction._init"])
|
||||
can.run(msg._event, ["search", "Search.onaction._init"])
|
||||
typeof cb == "function" && cb(msg)
|
||||
can.run(msg._event, [can._SEARCH, "Footer.onaction._init"])
|
||||
can.run(msg._event, [can._SEARCH, "Action.onaction._init"])
|
||||
can.run(msg._event, [can._SEARCH, "River.onaction._init"])
|
||||
can.run(msg._event, [can._SEARCH, "Search.onaction._init"])
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
}, can._output)
|
||||
|
||||
can.page.Select(can, document.body, "fieldset.River", function(item) {
|
||||
@ -191,12 +197,13 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg,
|
||||
|
||||
can.onlayout.topic(can)
|
||||
can.user.isLocalFile? init(): can.run({}, ["check"], function(msg) {
|
||||
msg.Result()? init(): msg.Option("sso")? can.user.jumps(msg.Option("sso")): can.user.login(can, init)
|
||||
can.Conf(can._USERNAME, msg.Result())? init():
|
||||
msg.Option("sso")? can.user.jumps(msg.Option("sso")): can.user.login(can, init)
|
||||
})
|
||||
},
|
||||
|
||||
title: function(event, can) {
|
||||
var args = {}; can.core.List(["pod", "title", "topic", "layout"], function(key) {
|
||||
var args = {}; can.core.List(["pod", can._TITLE, "topic", "layout"], function(key) {
|
||||
var value = can.user.Search(can, key); value && (args[key] = value)
|
||||
})
|
||||
can.user.jumps(can.user.MergeURL(can, args, true))
|
||||
@ -220,7 +227,7 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg,
|
||||
})
|
||||
var msg = can.request(event, {
|
||||
name: meta.name, content: JSON.stringify(Volcanos.meta.pack),
|
||||
river: can.Conf("river"), storm: can.Conf("storm"),
|
||||
river: can.Conf(can._RIVER), storm: can.Conf(can._STORM),
|
||||
})
|
||||
|
||||
var toast = can.user.toast(can, "打包中...", "webpack", 1000000)
|
||||
@ -235,13 +242,13 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg,
|
||||
can.onlayout.figure(event, can, can.menu.first)
|
||||
},
|
||||
shareuser: function(event, can) {
|
||||
can.user.share(can, can.request(event), ["action", "share", "type", "login"])
|
||||
can.user.share(can, can.request(event), [can._ACTION, can._SHARE, "type", "login"])
|
||||
},
|
||||
usernick: function(event, can) {
|
||||
can.user.input(event, can, [{_input: "text", name: "usernick", value: can.Conf("username")}], function(ev, button, data, list, args) {
|
||||
can.user.input(event, can, [{_input: "text", name: "usernick", value: can.Conf(can._USERNAME)}], function(ev, button, data, list, args) {
|
||||
can.run(event, ["usernick", list[0]], function(msg) {
|
||||
can.page.Select(can, can._output, "div.username", function(item) {
|
||||
can.page.Modify(can, item, can.Conf("username", list[0]))
|
||||
can.page.Modify(can, item, can.Conf(can._USERNAME, list[0]))
|
||||
}), can.user.toast(can, "修改成功")
|
||||
}, true)
|
||||
})
|
||||
@ -249,8 +256,8 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg,
|
||||
clear: function(event, can, button) { can.onimport.background(event, can, "") },
|
||||
logout: function(event, can) { can.user.logout(can) },
|
||||
|
||||
River: function(can) { can.run({}, ["search", "River.onmotion.toggle"]) },
|
||||
Footer: function(can) { can.run({}, ["search", "River.onmotion.autosize"]) },
|
||||
River: function(can) { can.run({}, [can._SEARCH, "River.onmotion.toggle"]) },
|
||||
Footer: function(can) { can.run({}, [can._SEARCH, "River.onmotion.autosize"]) },
|
||||
})
|
||||
Volcanos("onexport", {help: "导出数据", list: [],
|
||||
height: function(can) { return can._target.offsetHeight },
|
||||
|
@ -1,12 +1,17 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
|
||||
can._main_river = can.user.Search(can, "river") || Volcanos.meta.args.river || "project"
|
||||
can._main_storm = can.user.Search(can, "storm") || Volcanos.meta.args.storm || "studio"
|
||||
|
||||
can._main_river = "project", can._main_storm = "studio"
|
||||
if (can.user.isExtension) { can._main_river = "product", can._main_storm = "chrome" }
|
||||
if (can.user.isMobile) { can._main_river = "product", can._main_storm = "office" }
|
||||
if (can.user.isWeiXin) { can._main_river = "service", can._main_storm = "wx" }
|
||||
|
||||
can._main_river = can.user.Search(can, can._RIVER) || msg.Option("sess.river") || Volcanos.meta.args.river || can._main_river
|
||||
can._main_storm = can.user.Search(can, can._STORM) || msg.Option("sess.storm") || Volcanos.meta.args.storm || can._main_storm
|
||||
can._main_title = can.user.Search(can, can._TITLE) || msg.Option("sess.title") || Volcanos.meta.args.title || can.user.Search(can, "pod") || can._main_title
|
||||
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
can.onmotion.clear(can), can.sublist = {}
|
||||
if (msg.Option("sess.river") == "_share") { return can.onmotion.hide(can) }
|
||||
can.onimport._menu(can)
|
||||
var select; msg.Table(function(value, index, array) {
|
||||
var view = can.onappend.item(can, "item", value, function(event, item) {
|
||||
// 左键选中
|
||||
@ -19,7 +24,16 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
}, target)
|
||||
|
||||
if (index == 0 || [value.hash, value.name].indexOf(can._main_river) > -1) { select = view }
|
||||
}), select && select.click(), typeof cb == "function" && cb(msg)
|
||||
}), select && select.click()
|
||||
},
|
||||
_menu: function(can) {
|
||||
can.run({}, [can._SEARCH, "Header.onimport.menu", can._RIVER,
|
||||
["添加", "创建群组", "添加应用", "添加工具", "添加用户", "添加设备", "创建空间"],
|
||||
!can.user.isMobile && ["访问", "内部系统", "访问应用", "访问工具", "访问用户", "访问设备", "工作任务"],
|
||||
["共享", "共享群组", "共享应用", "共享工具", "共享主机"],
|
||||
], function(event, item) {
|
||||
can.core.CallFunc([can.ondetail, item], [event, can, item, can.Conf(can._RIVER), can.Conf(can._STORM)])
|
||||
})
|
||||
},
|
||||
})
|
||||
Volcanos("onengine", {help: "解析引擎", list: [], engine: function(event, can, msg, panel, cmds, cb) {
|
||||
@ -30,14 +44,17 @@ Volcanos("onengine", {help: "解析引擎", list: [], engine: function(event, ca
|
||||
var river = can.onengine.river[cmds[0]]; if (!river) { return false }
|
||||
can.core.Item(river.storm, function(key, value) {
|
||||
msg.Push({hash: key, name: value.name})
|
||||
}), typeof cb == "function" && cb(msg); return true
|
||||
}), can.base.isFunc(cb) && cb(msg); return true
|
||||
},
|
||||
})
|
||||
Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, msg, list, cb, target) {
|
||||
can.const(
|
||||
"search", "title", "river", "storm",
|
||||
)
|
||||
can.run({}, [], function(msg) { can.onimport._init(can, msg, list, cb, can._output) })
|
||||
|
||||
can.onengine.listen(can, "search", function(msg, word) {
|
||||
if (word[0] == "*" || word[0] == "storm") { can.onexport.storm(can, msg, word) }
|
||||
can.onengine.listen(can, can._SEARCH, function(msg, word) {
|
||||
if (word[0] == "*" || word[0] == can._STORM) { can.onexport.storm(can, msg, word) }
|
||||
})
|
||||
|
||||
can.onengine.listen(can, "action.touch", function() {
|
||||
@ -46,14 +63,6 @@ Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, msg,
|
||||
can.page.Remove(can, item)
|
||||
})
|
||||
})
|
||||
|
||||
can.run({}, ["search", "Header.onimport.menu", "river",
|
||||
["添加", "创建群组", "添加应用", "添加工具", "添加用户", "添加设备", "创建空间"],
|
||||
!can.user.isMobile && ["访问", "内部系统", "访问应用", "访问工具", "访问用户", "访问设备", "工作任务"],
|
||||
["共享", "共享群组", "共享应用", "共享工具", "共享设备"],
|
||||
], function(event, item) {
|
||||
can.core.CallFunc([can.ondetail, item], [event, can, item, can.Conf("river"), can.Conf("storm")])
|
||||
})
|
||||
},
|
||||
storm: function(event, can, river) {
|
||||
var list = can.sublist[river]; if (list) { return can.page.Toggle(can, list) }
|
||||
@ -65,10 +74,10 @@ Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, msg,
|
||||
return {text: [storm.name, "div", "item"], onclick: function(event) {
|
||||
// 左键点击
|
||||
can.onaction.action(event, can, river, storm.hash)
|
||||
can.user.title(can.user.Search(can, "pod") || storm.name)
|
||||
can.user.title(can._main_title || storm.name)
|
||||
}, oncontextmenu: function(event) {
|
||||
can.onaction.action(event, can, river, storm.hash)
|
||||
can.user.title(can.user.Search(can, "pod") || storm.name)
|
||||
can.user.title(can._main_title || storm.name)
|
||||
|
||||
// 右键点击
|
||||
can.user.carte(event, can, can.ondetail, ["共享应用", "添加工具", "保存参数", "重命名应用", "删除应用"], function(ev, item, meta) {
|
||||
@ -83,7 +92,7 @@ Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, msg,
|
||||
},
|
||||
action: function(event, can, river, storm) { can.onlayout._init(can)
|
||||
can.onengine.signal(can, "storm.select", can.request(event, {
|
||||
river: can.Conf("river", river), storm: can.Conf("storm", storm),
|
||||
river: can.Conf(can._RIVER, river), storm: can.Conf(can._STORM, storm),
|
||||
}))
|
||||
|
||||
can.page.Select(can, can._output, "div.item.select", function(item) {
|
||||
@ -110,9 +119,9 @@ Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, msg,
|
||||
"创建": function(event, can) { can.onaction.create(event, can) },
|
||||
"刷新": function(event, can) {
|
||||
can.user.Search(can, {
|
||||
river: can.Conf("river"), storm: can.Conf("storm"),
|
||||
topic: can.run(event, ["search", "Header.onexport.topic"]),
|
||||
layout: can.run(event, ["search", "Action.onexport.layout"]),
|
||||
river: can.Conf(can._RIVER), storm: can.Conf(can._STORM),
|
||||
topic: can.run(event, [can._SEARCH, "Header.onexport.topic"]),
|
||||
layout: can.run(event, [can._SEARCH, "Action.onexport.layout"]),
|
||||
})
|
||||
},
|
||||
})
|
||||
@ -124,7 +133,7 @@ Volcanos("ondetail", {help: "菜单交互", list: ["共享群组", "添加用户
|
||||
{_input: "text", name: "name", value: river},
|
||||
], function(event, button, meta, list) {
|
||||
var msg = can.request(event)
|
||||
can.user.share(can, msg, [river, "action", "share", "type", "river", "name", meta.name])
|
||||
can.user.share(can, msg, [river, "action", "share", "type", can._RIVER, "name", meta.name])
|
||||
})
|
||||
},
|
||||
"添加用户": function(event, can, button, river) {
|
||||
@ -171,8 +180,8 @@ Volcanos("ondetail", {help: "菜单交互", list: ["共享群组", "添加用户
|
||||
{_input: "text", name: "name", value: storm},
|
||||
], function(event, button, meta, list) {
|
||||
var msg = can.request(event)
|
||||
can.user.share(can, msg, [river, "action", "share", "type", "storm", "name", meta.name,
|
||||
"storm", storm,
|
||||
can.user.share(can, msg, [river, "action", "share", "type", can._STORM, "name", meta.name,
|
||||
can._STORM, storm, can._RIVER, river,
|
||||
])
|
||||
})
|
||||
},
|
||||
@ -186,7 +195,7 @@ Volcanos("ondetail", {help: "菜单交互", list: ["共享群组", "添加用户
|
||||
})
|
||||
},
|
||||
"保存参数": function(event, can, button, river, storm) {
|
||||
can.run(event, ["search", "Action.onexport.args"], function(item, next, index, array) {
|
||||
can.run(event, [can._SEARCH, "Action.onexport.args"], function(item, next, index, array) {
|
||||
var msg = can.request({}, {hash: storm, id: item.dataset.id})
|
||||
can.run(msg._event, [river, "tool", "action", "modify", "arg", item.dataset.args], function(msg) {
|
||||
can.user.toast(can, "保存"+(index+1)+"/"+array.length)
|
||||
@ -214,7 +223,7 @@ Volcanos("ondetail", {help: "菜单交互", list: ["共享群组", "添加用户
|
||||
},
|
||||
"访问应用": function(event, can, button, river, storm) {
|
||||
var msg = can.request(event, {sort: ","})
|
||||
can.user.select(event, can, "storm", "type,name,text")
|
||||
can.user.select(event, can, can._STORM, "type,name,text")
|
||||
},
|
||||
"访问工具": function(event, can, button, river, storm) {
|
||||
var msg = can.request(event, {sort: ","})
|
||||
@ -231,14 +240,22 @@ Volcanos("ondetail", {help: "菜单交互", list: ["共享群组", "添加用户
|
||||
can.user.select(event, can, "task", "time,zone,id,type,name,text")
|
||||
},
|
||||
|
||||
"共享设备": function(event, can, button, river, storm) {
|
||||
"共享主机": function(event, can, button, river, storm) {
|
||||
can.run(event, ["action", "invite"], function(msg) {
|
||||
var toast = can.user.toast(can, {
|
||||
title: "共享设备", content: msg.Result(),
|
||||
title: "共享主机", content: msg.Result(),
|
||||
button: ["close"], duration: -1, width: -100,
|
||||
})
|
||||
})
|
||||
},
|
||||
"共享工具": function(event, can, button, river, storm) {
|
||||
can.user.select(event, can, "plugin", "name,context,command,argument", function(item, next) {
|
||||
can.user.share(can, can.request(event), [river, "action", "share", "type", "field",
|
||||
can._RIVER, item[1], can._STORM, item[2],
|
||||
"name", item[0], "text", item[3],
|
||||
])
|
||||
})
|
||||
},
|
||||
|
||||
"创建空间": function(event, can, button, river, storm) {
|
||||
can.user.input(event, {__proto__: can, run: function(event, cmds, cb, silent) {
|
||||
@ -268,7 +285,7 @@ Volcanos("onexport", {help: "导出数据", list: [],
|
||||
can.core.List(fields, function(key) {
|
||||
switch (key) {
|
||||
case "ctx": msg.Push(key, "web.chat"); break
|
||||
case "cmd": msg.Push(key, "storm"); break
|
||||
case "cmd": msg.Push(key, can._STORM); break
|
||||
case "type": msg.Push(key, river); break
|
||||
case "name": msg.Push(key, storm); break
|
||||
case "text":
|
||||
|
@ -9,17 +9,17 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
}
|
||||
}]},
|
||||
{view: "content"}, {view: ["display", "table"]}, {view: "preview"},
|
||||
]), typeof cb == "function" && cb(msg)
|
||||
]), can.base.isFunc(cb) && cb(msg)
|
||||
can.page.ClassList.add(can, can.ui.display, "content")
|
||||
},
|
||||
_table: function(can, msg, fields) { can.onmotion.clear(can, can.ui.content)
|
||||
var table = can.onappend.table(can, 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) {
|
||||
return {text: [key == "text" && can.base.isFunc(line.text) && line.text.help || value, "td"], onclick: function(event) {
|
||||
if (event.shiftKey) { event.stopPropagation(), event.preventDefault()
|
||||
return can.onappend.plugin(can, {index: line.ctx? line.ctx+"."+line.cmd: msg.Option("index"), option: line}, function(sub, meta) {
|
||||
sub.run = function(event, cmds, cb) { var msg = can.request(event, line)
|
||||
can.run(event, ["action", "command", "run", meta.index].concat(cmds), function(msg) {
|
||||
typeof cb == "function" && cb(msg)
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
})
|
||||
}
|
||||
}, can.ui.preview)
|
||||
@ -48,7 +48,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
select: function(can, msg, cmds, cb) { can.ui.word.value = cmds[1]
|
||||
var fields = (cmds[2]||msg.Option("fields")||"ctx,cmd,type,name,text").split(",")
|
||||
can.page.Appends(can, can.ui.display, [{th: fields}]), can.cb = function() {
|
||||
typeof cb == "function" && cb(can.onexport.select(can)), can.onmotion.hide(can)
|
||||
can.base.isFunc(cb) && cb(can.onexport.select(can)), can.onmotion.hide(can)
|
||||
}
|
||||
|
||||
can.input = function(event, word) { cmds[1] = word
|
||||
@ -69,12 +69,12 @@ Volcanos("onaction", {help: "交互操作", list: ["关闭", "清空", "完成"]
|
||||
},
|
||||
"关闭": function(event, can) { can.onmotion.hide(can) },
|
||||
"清空": function(event, can) { can.onmotion.clear(can, can.ui.display), can.onmotion.clear(can, can.ui.preview) },
|
||||
"完成": function(event, can) { typeof can.cb == "function" && can.cb() },
|
||||
"完成": function(event, can) { can.base.isFunc(can.cb) && can.cb() },
|
||||
|
||||
select: function(event, can, index) {
|
||||
if (can.list && can.list[index]) {
|
||||
var text = can.list[index].text || ""
|
||||
if (typeof text == "function") {
|
||||
if (can.base.isFunc(text)) {
|
||||
can.list[index].text(event)
|
||||
} else { var line = can.list[index]
|
||||
var fields = can.page.Select(can, can.ui.display, "th", function(item) { return item.innerText })
|
||||
|
@ -2,7 +2,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, meta,
|
||||
},
|
||||
})
|
||||
Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, meta, list, cb, target) {
|
||||
typeof cb == "function" && cb(); switch (meta.type) {
|
||||
can.base.isFunc(cb) && cb(); switch (meta.type) {
|
||||
case "textarea":
|
||||
case "text":
|
||||
!target.placeholder && (target.placeholder = can.user.trans(can, meta.name) || "")
|
||||
|
@ -11,7 +11,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
}, can.ui.content)
|
||||
|
||||
can.onappend.board(can, msg.Result(), can.ui.display)
|
||||
typeof cb == "function" && cb(msg)
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
},
|
||||
})
|
||||
Volcanos("onaction", {help: "操作数据", list: [], _init: function(can, msg, list, cb, target) {
|
||||
|
@ -11,7 +11,7 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, list, cb,
|
||||
|
||||
can.onimport.tabview(can, msg.Option("path"), msg.Option("file"), msg.Option("line")||1)
|
||||
can.onimport.project(can, msg.Option("path"))
|
||||
typeof cb == "function" && cb(msg)
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
},
|
||||
_content: function(can, target) {
|
||||
var height = can.Conf("height")-320; height < 240 && (height = 240)
|
||||
@ -54,7 +54,7 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, list, cb,
|
||||
} }
|
||||
|
||||
can.run(event, ["action", "favor"].concat(cmds), function(msg) {
|
||||
typeof cb == "function" && cb(msg)
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
can.core.Timer(10, function() {
|
||||
can.onappend._action(sub, ["关闭"], sub._action, {
|
||||
"关闭": function(event) { can.onmotion.hidden(sub, sub._target) },
|
||||
@ -83,7 +83,7 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, list, cb,
|
||||
|
||||
can.Option({path: path, file: file, line: line||parseInt(can._msg.Option("line"))||1})
|
||||
can._msg.Option("line", can.Option("line"))
|
||||
return can.onsyntax._init(can, can._msg), typeof cb == "function" && cb()
|
||||
return can.onsyntax._init(can, can._msg), can.base.isFunc(cb) && cb()
|
||||
}
|
||||
|
||||
can.run({}, [path, file], function(msg) {
|
||||
|
@ -3,7 +3,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
can.onimport.inner_init(can, msg, list, function() {
|
||||
can.onimport._input(can), can.onimport._output(can)
|
||||
can.keylist = [], can.onkeymap._init(can, "insert")
|
||||
typeof cb == "function" && cb(msg)
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
}, target)
|
||||
}, function(can, name, sub) {
|
||||
sub._name == "onimport" && (can.onimport.inner_init = sub._init)
|
||||
@ -116,12 +116,12 @@ Volcanos("onkeymap", {help: "键盘交互", list: ["command", "normal", "insert"
|
||||
}
|
||||
|
||||
var p = can.onsyntax[can.parse]
|
||||
var cb = (p && p.keymap || can.onkeymap[can.mode])[event.key]; if (typeof cb == "function") {
|
||||
var cb = (p && p.keymap || can.onkeymap[can.mode])[event.key]; if (can.base.isFunc(cb)) {
|
||||
return repeat(cb, can.count)
|
||||
}
|
||||
|
||||
var map = can.onkeymap[can.mode]._engine; for (var i = can.keylist.length-1; i > pre-1; i--) {
|
||||
var cb = map[can.keylist[i]]; if (typeof cb == "function") {
|
||||
var cb = map[can.keylist[i]]; if (can.base.isFunc(cb)) {
|
||||
return repeat(cb, can.count)
|
||||
}; if (typeof cb == "object") { map = cb; continue }; break
|
||||
}
|
||||
@ -137,7 +137,7 @@ Volcanos("onkeymap", {help: "键盘交互", list: ["command", "normal", "insert"
|
||||
|
||||
can.onmotion.clear(can, can.ui.output)
|
||||
var ls = can.core.Split(line, " ", ",")
|
||||
var cb = can.onkeymap._engine[ls[0]]; if (typeof cb == "function") {
|
||||
var cb = can.onkeymap._engine[ls[0]]; if (can.base.isFunc(cb)) {
|
||||
can.onmotion.hidden(can, can.ui.display)
|
||||
can.onkeymap._normal(can)
|
||||
cb(event, can, line, ls)
|
||||
|
@ -1,7 +1,7 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
|
||||
can.onmotion.clear(can, target)
|
||||
can.ui = can.onlayout.profile(can)
|
||||
typeof cb == "function" && cb(msg)
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
can.onmotion.hidden(can, can._action)
|
||||
can.onimport[can.Option("scale")||"week"](can, msg)
|
||||
can.page.Modify(can, can.ui.profile, {style: {display: "block"}})
|
||||
@ -88,7 +88,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
sub.run = function(event, cmds, cb) {
|
||||
var msg = can.request(event, {"task.zone": task.zone, "task.id": task.id})
|
||||
can.run(event, ["action", "command", "run", meta.index].concat(cmds), function(msg) {
|
||||
typeof cb == "function" && cb(msg)
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
}, true)
|
||||
}
|
||||
}, can.ui.display)
|
||||
|
@ -1,6 +1,6 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb) {
|
||||
can.ui = can.onlayout.display(can)
|
||||
typeof cb == "function" && cb(msg)
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
|
||||
can.table = can.onappend.table(can, msg, function(value, key, index, line) {
|
||||
return {text: [value, "td"], oncontextmenu: function(event) {
|
||||
|
@ -3,7 +3,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
can.onkeypop._build(can)
|
||||
can.onmotion.hidden(can, can._action)
|
||||
can.ui = can.onlayout.profile(can)
|
||||
typeof cb == "function" && cb(msg)
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
|
||||
// 交互数据
|
||||
can.svg = null, can.group = null
|
||||
@ -50,7 +50,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
|
||||
var figure = can.onfigure._get(can, target)
|
||||
key = figure && figure.data && figure.data.size && figure.data.size[key] || key
|
||||
if (figure && figure.data && typeof figure.data[key] == "function") {
|
||||
if (figure && figure.data && can.base.isFunc(figure.data[key])) {
|
||||
return figure.data[key](can, value, key, target)
|
||||
}
|
||||
|
||||
|
@ -14,7 +14,7 @@ Volcanos("onimport", {help: "导入数据", list: [],
|
||||
case "TR":
|
||||
case "TABLE":
|
||||
}}
|
||||
return typeof cb == "function" && cb(msg), table;
|
||||
return can.base.isFunc(cb) && cb(msg), table;
|
||||
}
|
||||
|
||||
// can.page.Append(can, action, [{type: "script", src: "https://cdn.bootcss.com/echarts/4.2.0-rc.2/echarts.js"}]);
|
||||
|
@ -7,7 +7,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
can.onmotion.hidden(can, can._action)
|
||||
can.ui = can.onlayout.display(can, target)
|
||||
can.onappend.table(can, can.path, null, can.ui.content)
|
||||
typeof cb == "function" && cb(msg)
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
|
||||
var feature = can.Conf("feature") || {}
|
||||
can.Action("倍速", can.rate = parseInt(msg.Option("rate"))||feature["rate"]||1)
|
||||
@ -25,7 +25,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
},
|
||||
file: function(can, path, index) { path = can.onimport._file(can, path, index)
|
||||
var cb = can.onfigure[can.base.Ext(path)]; can.Status("file", path)
|
||||
typeof cb == "function" && can.page.Append(can, can.ui.content, [cb(can, path, index)])
|
||||
can.base.isFunc(cb) && can.page.Append(can, can.ui.content, [cb(can, path, index)])
|
||||
},
|
||||
}, ["/plugin/local/wiki/feel.css"])
|
||||
Volcanos("onfigure", {help: "组件菜单", list: [],
|
||||
|
@ -1,6 +1,6 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
|
||||
can.onmotion.clear(can)
|
||||
typeof cb == "function" && cb(msg)
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
if (msg.Length() > 0) { return can.onappend.table(can, msg) }
|
||||
|
||||
can.page.Modify(can, target, msg.Result())
|
||||
|
@ -1,16 +1,17 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
|
||||
can.onmotion.clear(can)
|
||||
typeof cb == "function" && cb(msg)
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
if (msg.Option("branch")) { return can.onappend.table(can, msg) }
|
||||
|
||||
can.dir_root = msg.Option("dir_root")
|
||||
can._tree = can.onimport._tree(can, msg.Table(), "path", "/")
|
||||
if (!can._tree[""]) { return }
|
||||
can._tree[""].name = can.dir_root.split("/").pop()
|
||||
|
||||
can.size = 30, can.margin = 30
|
||||
can.onappend.plugins(can, {index: "web.wiki.draw"}, function(sub) {
|
||||
sub.run = function(event, cmds, cb) { sub.Action("go", "run")
|
||||
typeof cb == "function" && cb(sub.request())
|
||||
can.base.isFunc(cb) && cb(sub.request())
|
||||
|
||||
can.core.Timer(100, function() { can.draw = sub._outputs[0]
|
||||
can.draw.onmotion.hidden(can.draw, can.draw.ui.project)
|
||||
@ -82,7 +83,7 @@ Volcanos("onaction", {help: "用户操作", list: ["编辑", ["view", "横向",
|
||||
if (x+tree.width > can.width) { can.width = x+tree.width }
|
||||
|
||||
can.core.Item(can.ondetail, function(key, value) {
|
||||
if (key.indexOf("on") == 0 && typeof value == "function") {
|
||||
if (key.indexOf("on") == 0 && can.base.isFunc(value)) {
|
||||
tree.view[key] = function(event) { value(event, can, tree) }
|
||||
}
|
||||
})
|
||||
|
@ -1,6 +1,6 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
|
||||
can.onmotion.clear(can)
|
||||
typeof cb == "function" && cb(msg)
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
if (msg.Option("branch")) { return can.onappend.table(can, msg) }
|
||||
|
||||
can.msg = msg, can.data = msg.Table(), can.onimport._sum(can)
|
||||
@ -9,7 +9,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
|
||||
can.onappend.plugins(can, {index: "web.wiki.draw"}, function(sub) {
|
||||
sub.run = function(event, cmds, cb) { sub.Action("go", "run")
|
||||
typeof cb == "function" && cb(sub.request())
|
||||
can.base.isFunc(cb) && cb(sub.request())
|
||||
|
||||
can.core.Timer(100, function() { can.draw = sub._outputs[0]
|
||||
can.draw.onmotion.hidden(can.draw, can.draw.ui.project)
|
||||
@ -90,7 +90,7 @@ Volcanos("onaction", {help: "组件菜单", list: ["编辑", ["view", "趋势图
|
||||
})
|
||||
|
||||
can.core.Item(can.ondetail, function(key, value) {
|
||||
if (key.indexOf("on") == 0 && typeof value == "function") {
|
||||
if (key.indexOf("on") == 0 && can.base.isFunc(value)) {
|
||||
line.view[key] = function(event) { value(event, can, line) }
|
||||
}
|
||||
})
|
||||
@ -140,7 +140,7 @@ Volcanos("onaction", {help: "组件菜单", list: ["编辑", ["view", "趋势图
|
||||
})
|
||||
|
||||
can.core.Item(can.ondetail, function(key, value) {
|
||||
if (key.indexOf("on") == 0 && typeof value == "function") {
|
||||
if (key.indexOf("on") == 0 && can.base.isFunc(value)) {
|
||||
line.view[key] = function(event) { value(event, can, line) }
|
||||
}
|
||||
})
|
||||
|
@ -1,9 +1,9 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
|
||||
if (can.sup.onimport._process(can.sup, msg)) { return typeof cb == "function" && cb(can, msg) }
|
||||
if (can.onimport._process(can, msg)) { return typeof cb == "function" && cb(can, msg) }
|
||||
if (can.sup.onimport._process(can.sup, msg)) { return can.base.isFunc(cb) && cb(can, msg) }
|
||||
if (can.onimport._process(can, msg)) { return can.base.isFunc(cb) && cb(can, msg) }
|
||||
|
||||
can.onmotion.clear(can)
|
||||
typeof cb == "function" && cb(msg)
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
|
||||
can.page.Append(can, target, [can.onimport._control(can, msg)])
|
||||
can.onappend.table(can, msg, function(value, key, index, line, array) {
|
||||
@ -32,7 +32,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
|
||||
_process: function(can, msg) {
|
||||
var cb = can.onimport[msg.Option("_process")]
|
||||
return typeof cb == "function" && cb(can, msg)
|
||||
return can.base.isFunc(cb) && cb(can, msg)
|
||||
},
|
||||
_follow: function(can, msg) {
|
||||
if (msg.Option("cache.status") == "stop") { return can.user.toast(can, msg.Option("cache.action")+" done!")}
|
||||
@ -64,7 +64,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
|
||||
_control: function(can, msg) {
|
||||
var cb = can.onimport[msg.Option("_control")]
|
||||
return typeof cb == "function" && cb(can, msg)
|
||||
return can.base.isFunc(cb) && cb(can, msg)
|
||||
},
|
||||
_page: function(can, msg) { var ui = {}
|
||||
return {view: ["control", "div"], list: [
|
||||
|
7
proto.js
7
proto.js
@ -64,9 +64,14 @@ var Volcanos = shy("火山架", {args: {}, pack: {}, libs: [], cache: {}}, [], f
|
||||
event._msg = event._msg || can.misc.Message(event, can)
|
||||
|
||||
can.core.List(arguments, function(option, index) {
|
||||
index > 0 && can.core.Item(typeof option == "function"? option(): option, event._msg.Option)
|
||||
index > 0 && can.core.Item(can.base.isFunc(option)? option(): option, event._msg.Option)
|
||||
}); return event._msg
|
||||
},
|
||||
const: function() {
|
||||
can.core.List(arguments, function(v) {
|
||||
can["_"+v.toUpperCase()] = v
|
||||
})
|
||||
},
|
||||
Conf: function(key, value) { return can.core.Value(can._conf, key, value) }, _conf: {},
|
||||
}; can = can || {}; for (var k in proto) { can.hasOwnProperty(k) || (can[k] = proto[k]) }
|
||||
|
||||
|
@ -5,7 +5,7 @@ Volcanos("chrome", {
|
||||
can.core.List(wins, function(win) { win.wid = win.id
|
||||
msg.Push(win, ["wid", "state", "left", "top", "width", "height"])
|
||||
})
|
||||
typeof cb == "function" && cb(msg)
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
})
|
||||
return
|
||||
}
|
||||
@ -14,7 +14,7 @@ Volcanos("chrome", {
|
||||
can.core.List(tabs, function(tab) { tab.tid = tab.id
|
||||
msg.Push(tab, ["tid", "active", "width", "height", "index", "title", "url"])
|
||||
})
|
||||
typeof cb == "function" && cb(msg)
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
})
|
||||
return
|
||||
}
|
||||
@ -22,12 +22,12 @@ Volcanos("chrome", {
|
||||
if (cmds[1] == "") { // 当前标签
|
||||
chrome.tabs.query({currentWindow: true, active: true}, function(tabs) { cmds[1] = tabs[0].id
|
||||
chrome.tabs.sendMessage(parseInt(cmds[1]), msg, function(res) {
|
||||
msg.Copy(res), typeof cb == "function" && cb(msg)
|
||||
msg.Copy(res), can.base.isFunc(cb) && cb(msg)
|
||||
})
|
||||
})
|
||||
} else {
|
||||
chrome.tabs.sendMessage(parseInt(cmds[1]), msg, function(res) {
|
||||
msg.Copy(res), typeof cb == "function" && cb(msg)
|
||||
msg.Copy(res), can.base.isFunc(cb) && cb(msg)
|
||||
})
|
||||
}
|
||||
},
|
||||
@ -38,7 +38,7 @@ Volcanos("chrome", {
|
||||
msg.Push(labs[i], ["pid", "id", "index", "title", "url"])
|
||||
labs = labs.concat(labs[i].children||[])
|
||||
}
|
||||
typeof cb == "function" && cb(msg)
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
})
|
||||
},
|
||||
}, ["/lib/base.js", "/lib/core.js", "/lib/misc.js", "/lib/page.js", "/lib/user.js"], function(can) {
|
||||
|
@ -3,7 +3,7 @@ const kit = require("utils/kit.js")
|
||||
App({
|
||||
data: {}, conf: {serve: "https://shylinux.com/chat", space: ""},
|
||||
requests: function(cmd, data, cb) { wx.showLoading()
|
||||
this.request(cmd, data, function(msg) { wx.hideLoading(), typeof cb == "function" && cb(msg) })
|
||||
this.request(cmd, data, function(msg) { wx.hideLoading(), can.base.isFunc(cb) && cb(msg) })
|
||||
},
|
||||
request: function(cmd, data, cb) { var app = this; data.sessid = app.conf.sessid, data.pod = app.conf.space
|
||||
wx.request({method: "POST", url: app.conf.serve+"/"+cmd, data: data, success: function(res) { var msg = res.data
|
||||
@ -22,7 +22,7 @@ App({
|
||||
var line = {}; kit.List(msg.key, function(key, index) {
|
||||
line[key] = msg.value[index]
|
||||
})
|
||||
typeof cb == "function" && cb(line, 0, 1)
|
||||
can.base.isFunc(cb) && cb(line, 0, 1)
|
||||
return res.push(line), res
|
||||
}
|
||||
|
||||
|
@ -74,7 +74,7 @@ Page({
|
||||
var option = event._option||{}; option.cmds = cmds
|
||||
app.requests("action?="+field.name, option, function(msg) {
|
||||
field.msg = msg, page.setData({list: page.data.list})
|
||||
typeof cb == "function" && cb(msg)
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
})
|
||||
},
|
||||
onInput: function(event) { var page = this, data = event.target.dataset
|
||||
@ -106,7 +106,7 @@ Page({
|
||||
case "刷新": // 执行命令
|
||||
case "查看": page.run(event, data.order); break
|
||||
default:
|
||||
var cb = page.plugin[input.name]; typeof cb == "function"? cb(event, page, data.order, input.name):
|
||||
var cb = page.plugin[input.name]; can.base.isFunc(cb)? cb(event, page, data.order, input.name):
|
||||
page.run(event, data.order, ["action", input.name].concat(kit.List(field.inputs, function(input) {
|
||||
if (input._input != "button") { return input.value }
|
||||
})))
|
||||
@ -124,7 +124,7 @@ Page({
|
||||
}
|
||||
event._option = option
|
||||
|
||||
var cb = page.plugin[input.name]; typeof cb == "function"? cb(event, page, data.order, input.name):
|
||||
var cb = page.plugin[input.name]; can.base.isFunc(cb)? cb(event, page, data.order, input.name):
|
||||
page.run(event, data.order, ["action", input.name])
|
||||
return
|
||||
}
|
||||
|
@ -51,9 +51,9 @@ module.exports = {
|
||||
},
|
||||
List: function(list, cb, cbs) {var res = [], val;
|
||||
for (var i = 0; i < list.length; i++) {
|
||||
typeof cb == "function"? (val = cb(list[i], i, list)) != undefined && res.push(val): res.push(list[i])
|
||||
can.base.isFunc(cb)? (val = cb(list[i], i, list)) != undefined && res.push(val): res.push(list[i])
|
||||
}
|
||||
return typeof cbs == "function" && cbs(res), res
|
||||
return can.base.isFunc(cbs) && cbs(res), res
|
||||
},
|
||||
Item: function(list, cb, cbs) {
|
||||
for (var k in list) { cb(k, list[k]) }
|
||||
@ -93,10 +93,10 @@ module.exports = {
|
||||
interval = typeof interval == "object"? interval || []: [interval]
|
||||
var timer = {stop: false}; function loop(timer, i) {
|
||||
if (timer.stop || i >= interval.length && interval.length >= 0) {
|
||||
return typeof cbs == "function" && cbs(timer, interval)
|
||||
return can.base.isFunc(cbs) && cbs(timer, interval)
|
||||
}
|
||||
return typeof cb == "function" && cb(timer, interval.interval||interval[i], i, interval)?
|
||||
typeof cbs == "function" && cbs(timer, interval): setTimeout(function() { loop(timer, i+1) }, interval.interval||interval[i+1])
|
||||
return can.base.isFunc(cb) && cb(timer, interval.interval||interval[i], i, interval)?
|
||||
can.base.isFunc(cbs) && cbs(timer, interval): setTimeout(function() { loop(timer, i+1) }, interval.interval||interval[i+1])
|
||||
}
|
||||
setTimeout(function() { loop(timer, 0) }, interval.interval||interval[0])
|
||||
return timer
|
||||
|
Loading…
x
Reference in New Issue
Block a user