forked from x/volcanos
add share
This commit is contained in:
parent
96224b7862
commit
bbdaa41dfa
22
frame.js
22
frame.js
@ -24,7 +24,8 @@ Volcanos("onaction", { _init: function(can, meta, list, cb, target) {
|
||||
}) }
|
||||
can.onengine && getRiver(can.onengine.river)
|
||||
|
||||
var pane = can[meta.main.name], msg = can.request(can._event);
|
||||
// 应用入口
|
||||
var pane = can[meta.main.name], msg = can.request({});
|
||||
pane.onaction._init(pane, msg, msg.option||[], cb, target);
|
||||
})
|
||||
}, target) });
|
||||
@ -316,14 +317,14 @@ Volcanos("onappend", { _init: function(can, meta, list, cb, target, field) {
|
||||
var ui = can.page.Appends(can, can._toast, [
|
||||
{text: [meta.title||"", "div", "title"]},
|
||||
{text: [meta.text||"执行成功", "div", "content"]},
|
||||
meta.button,
|
||||
{view: ["button"], list: meta.button},
|
||||
{text: ["", "div", "duration"]},
|
||||
])
|
||||
|
||||
var width = meta.width||200, height = meta.height||100
|
||||
var pos = {position: "absolute", display: "block",
|
||||
width: width+"px",
|
||||
top: document.body.clientHeight/2,
|
||||
top: document.body.clientHeight/2-height/2,
|
||||
left: document.body.clientWidth/2-width/2,
|
||||
}; pos.left += "px"; pos.top += "px";
|
||||
can.page.Modify(can, can._toast, {style: pos})
|
||||
@ -337,13 +338,14 @@ Volcanos("onappend", { _init: function(can, meta, list, cb, target, field) {
|
||||
})
|
||||
return ui
|
||||
},
|
||||
share: function(can, meta) {
|
||||
return
|
||||
can._share = can._share || can.page.Append(can, can._target, [{view: "share", onmouseleave: function(event) {
|
||||
can.page.Modify(can, can._carte, {style: {display: "none"}})
|
||||
}}]).last
|
||||
|
||||
can.page.Appends(can, can._share, [{view: ["title", "div", ]},])
|
||||
share: function(can, msg) {
|
||||
can.run(msg._event, ["share"], function(msg) {
|
||||
var src = can.user.Share(can, {path: "/share/"+msg.Result()}, true);
|
||||
var ui = can.onappend.toast(can, {title: can.page.Format("a", src, msg.Result()), text: can.page.Format("img", src+"/share"),
|
||||
width: 300, height: 300, duration: 100000, button: [{button: ["确定", function(event) {
|
||||
can.page.Modify(can, can._toast, {style: {display: "none"}})
|
||||
}]}] });
|
||||
})
|
||||
}
|
||||
}, [], function(can) {})
|
||||
Volcanos("onlayout", { _init: function(can, meta, list, cb, target) {
|
||||
|
@ -346,6 +346,14 @@ Volcanos("page", {help: "网页模块",
|
||||
},
|
||||
Upload: function(can, file, cb, cbs) {
|
||||
},
|
||||
Format: function(type) {
|
||||
switch (type) {
|
||||
case "a":
|
||||
return "<a href='"+arguments[1]+"' target='_blank'>"+(arguments[2]||arguments[1])+"</a>"
|
||||
case "img":
|
||||
return "<img src='"+arguments[1]+"'>"
|
||||
}
|
||||
},
|
||||
|
||||
DelText: function(target, start, count) {
|
||||
target.value = target.value.substring(0, start)+target.value.substring(start+(count||target.value.length), target.value.length)
|
||||
|
@ -44,9 +44,9 @@ Volcanos("user", {help: "用户模块",
|
||||
Share: shy("共享链接", function(can, objs, clear) {var obj = objs || {}; var path = location.pathname;
|
||||
obj.path && (path = obj.path, delete(obj.path))
|
||||
!clear && can.core.Item(can.user.Search(), function(key, value) {obj[key] || (obj[key] = value)});
|
||||
return location.origin+path+(objs? "?"+can.core.Item(obj, function(key, value) {
|
||||
return can.core.List([location.origin+path, can.core.Item(obj, function(key, value) {
|
||||
return can.core.List(value, function(value) {return key+"="+encodeURIComponent(value)}).join("&");
|
||||
}).join("&"): "");
|
||||
}).join("&")], function(item) { return item? item: undefined }).join("?")
|
||||
}),
|
||||
Search: shy("请求参数", function(can, key, value) {var args = {}
|
||||
location.search && location.search.slice(1).split("&").forEach(function(item) {var x = item.split("=")
|
||||
|
@ -1,5 +1,5 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [],
|
||||
_init: function(can, meta, list, cb, target) {},
|
||||
_init: function(can, meta, list, cb, target) { },
|
||||
})
|
||||
Volcanos("onaction", {help: "交互操作", list: [],
|
||||
_init: function(can, msg, list, cb, target) {
|
||||
@ -8,28 +8,25 @@ Volcanos("onaction", {help: "交互操作", list: [],
|
||||
})
|
||||
Volcanos("onexport", {help: "导出数据", list: [],
|
||||
_init: function(can, msg, list, cb, target) { var key = "action";
|
||||
can.run(msg._event, ["search", "Storm.onaction._init"], function(msg) {
|
||||
can.Cache(can.Conf("river")+"."+can.Conf("storm"), can._output, can._output.scrollTop+1);
|
||||
var river = can.Conf("river", msg.Option("river")), storm = can.Conf("storm", msg.Option("storm"));
|
||||
var position = can.Conf(key, msg.Option(key, can.Cache(river+"."+storm, can._output)));
|
||||
if (position) { can._output.scrollTo(0, position-1); typeof cb == "function" && cb(msg); return }
|
||||
can.Cache(can.Conf("river")+"."+can.Conf("storm"), can._output, can._output.scrollTop+1);
|
||||
var river = can.Conf("river", msg.Option("river")), storm = can.Conf("storm", msg.Option("storm"));
|
||||
var position = can.Conf(key, msg.Option(key, can.Cache(river+"."+storm, can._output)));
|
||||
if (position) { can._output.scrollTo(0, position-1); return }
|
||||
|
||||
var pod = can.user.Search(can, "pod"); msg = can.request({}, {});
|
||||
can.run(msg._event, [river, storm], function(msg) { can._output.innerHTML = ""; msg.Table(function(value, index, array) {
|
||||
// 添加插件
|
||||
can.onappend._init(can, value, Config.libs.concat(["plugin/state.js"]), function(sub) {
|
||||
sub.run = function(event, cmds, cb, silent) {
|
||||
// 插件回调
|
||||
var msg = can.request(event); pod && msg.Option("pod", pod);
|
||||
can.run(event, [river, storm, index].concat(cmds), function(msg) {
|
||||
can.onappend.toast(can, "执行成功", value.name, 2000);
|
||||
typeof cb == "function" && cb(msg)
|
||||
}, silent);
|
||||
can.run(msg._event, ["search", "Footer.onaction.cmd"])
|
||||
}
|
||||
}, can._output);
|
||||
}); typeof cb == "function" && cb(msg); })
|
||||
});
|
||||
msg.Clear("option"), can.run(msg._event, [river, storm], function(sup) { can._output.innerHTML = ""; sup.Table(function(value, index, array) {
|
||||
value.inputs = can.base.Obj(value.inputs, [])
|
||||
value.inputs.length == 0 && (value.inputs = [{type: "text"}, {type: "button", name: "查看"}])
|
||||
can.onappend._init(can, value, Config.libs.concat(["plugin/state.js"]), function(sub) {
|
||||
sub.run = function(event, cmds, cb, silent) { var msg = can.request(event, {_msg: sup});
|
||||
// 插件回调
|
||||
can.run(event, [river, storm, index].concat(cmds), function(msg) {
|
||||
can.run(msg._event, ["search", "Footer.onaction.ncmd"]);
|
||||
can.onappend.toast(can, "执行成功", value.name, 2000);
|
||||
typeof cb == "function" && cb(msg)
|
||||
}, silent);
|
||||
}
|
||||
}, can._output);
|
||||
}) })
|
||||
},
|
||||
})
|
||||
|
||||
|
@ -10,10 +10,6 @@ fieldset.Footer>div.output div.title {
|
||||
float:left;
|
||||
}
|
||||
fieldset.Footer>div.output div.state {
|
||||
float:right;
|
||||
}
|
||||
fieldset.Footer>div.output div.state>div {
|
||||
margin-right:5px;
|
||||
float:right;
|
||||
}
|
||||
|
||||
|
@ -1,12 +1,11 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [],
|
||||
_init: function(can, meta, list, cb, target) {
|
||||
},
|
||||
_init: function(can, meta, list, cb, target) { },
|
||||
})
|
||||
Volcanos("onaction", {help: "交互数据", list: [],
|
||||
_init: function(can, msg, list, cb, target) {
|
||||
can.onexport._init(can, msg, list, cb, target)
|
||||
},
|
||||
cmd: function(can, msg, list, cb, target) {
|
||||
ncmd: function(can, msg, list, cb, target) {
|
||||
can.page.Select(can, can._target, "span.ncmd", function(item) {
|
||||
item.innerHTML = can.Conf("ncmd", parseInt(can.Conf("ncmd")||"0")+1+"")+""
|
||||
})
|
||||
@ -14,16 +13,17 @@ Volcanos("onaction", {help: "交互数据", list: [],
|
||||
})
|
||||
Volcanos("onexport", {help: "导出数据", list: [],
|
||||
_init: function(can, msg, list, cb, target) {
|
||||
msg = can.request({}, {}), can.run(msg._event, [], function(msg) { can._output.innerHTML = "";
|
||||
can.run({}, [], function(msg) { can._output.innerHTML = "";
|
||||
can.core.List(msg.result, function(title) {
|
||||
can.page.Append(can, can._output, [{view: ["title", "div", title]}])
|
||||
})
|
||||
|
||||
can.ui = can.page.Append(can, can._output, [{view: "state", list: can.core.List(can.Conf("state"), function(item) {
|
||||
return {view: "item", list: [{text: item}, {text: ": "}, {text: [can.Conf(item)||"", "span", item]}], click: function(event) {
|
||||
can.onaction[item](event, can, item);
|
||||
}};
|
||||
}) }])
|
||||
can.core.List(can.Conf("state"), function(item) {
|
||||
can.page.Append(can, can._output, [{view: ["state "+item, "div", can.Conf(item)],
|
||||
list: [{text: item}, {text: ": "}, {text: [can.Conf(item)||"", "span", item]}],
|
||||
click: function(event) { can.onaction[item](event, can, item) },
|
||||
}])
|
||||
})
|
||||
})
|
||||
},
|
||||
})
|
||||
|
@ -16,14 +16,11 @@ fieldset.Header>div.output>div.title:hover {
|
||||
}
|
||||
|
||||
fieldset.Header>div.output>div.state {
|
||||
float:right;
|
||||
}
|
||||
fieldset.Header>div.output>div.state>div {
|
||||
cursor:pointer;
|
||||
margin-right:5px;
|
||||
float:right;
|
||||
}
|
||||
fieldset.Header>div.output>div.state>div:hover {
|
||||
fieldset.Header>div.output>div.state:hover {
|
||||
background-color:red;
|
||||
}
|
||||
|
||||
|
@ -1,14 +1,13 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [],
|
||||
_init: function(can, meta, list, cb, target) {
|
||||
},
|
||||
_init: function(can, meta, list, cb, target) { },
|
||||
})
|
||||
Volcanos("onaction", {help: "交互数据", list: [],
|
||||
_init: function(can, msg, list, cb, target) {
|
||||
can.onexport._init(can, msg, list, cb, target)
|
||||
can.run(msg._event, ["search", "River.onaction._init"], function(msg) {
|
||||
})
|
||||
can.run(msg._event, ["search", "Footer.onaction._init"], function(msg) {
|
||||
})
|
||||
can.onexport._init(can, msg, list, function(msg) {
|
||||
can.user.title(can.user.Search(can, "pod"));
|
||||
can.run(msg._event, ["search", "River.onaction._init"]);
|
||||
can.run(msg._event, ["search", "Footer.onaction._init"]);
|
||||
}, target)
|
||||
},
|
||||
title: function(event, can, key) {
|
||||
can.run(event, ["search", "Action.onaction._init"], function(msg) {
|
||||
@ -20,29 +19,32 @@ Volcanos("onaction", {help: "交互数据", list: [],
|
||||
},
|
||||
})
|
||||
Volcanos("onexport", {help: "导出数据", list: [],
|
||||
_init: function(can, msg, list, cb, target) { can._output.innerHTML = "";
|
||||
msg = can.request({}, {})
|
||||
can.run(msg._event, [], function(msg) {
|
||||
// if (Volcanos.meta.follow["debug"]) { debugger }
|
||||
_init: function(can, msg, list, cb, target) {
|
||||
can.run(msg._event, [], function(msg) { can._output.innerHTML = "";
|
||||
can.Conf("username", msg.Option("user.nick")||msg.Option("user.name"))
|
||||
|
||||
can.core.List(msg.result||["github.com/shylinux/contexts"], function(title) {
|
||||
can.page.Append(can, can._output, [{view: ["title", "div", title],
|
||||
click: function(event) {can.onaction["title"](event, can, "title")},
|
||||
click: function(event) { can.onaction["title"](event, can, "title") },
|
||||
}])
|
||||
})
|
||||
|
||||
console.log(can._root, can._name, "show", can.Conf("state"))
|
||||
can.ui = can.page.Append(can, can._output, [{view: "state", list: can.core.List(can.Conf("state"), function(item) {
|
||||
return {name: item, view: ["item", "div", can.Conf(item)||""], click: function(event) {can.onaction[item](event, can, item)}};
|
||||
})}])
|
||||
|
||||
can.timer = can.Timer({interval: 1000, length: -1}, function(event) {
|
||||
can.onexport.time(event, can, "time")
|
||||
can.core.List(can.Conf("state")||["time", "username"], function(item) {
|
||||
can.page.Append(can, can._output, [{view: ["state "+item, "div", can.Conf(item)],
|
||||
click: function(event) { can.onaction[item](event, can, item) },
|
||||
}])
|
||||
})
|
||||
|
||||
can.page.Select(can, can._output, "div.state.time", function(item) {
|
||||
can.timer = can.Timer({interval: 1000, length: -1}, function(event) {
|
||||
can.onexport.time(event, can, "time", item)
|
||||
})
|
||||
})
|
||||
|
||||
typeof cb == "function" && cb(can.request({}, {_msg: msg}))
|
||||
})
|
||||
},
|
||||
time: function(event, can, key) {
|
||||
can.ui[key].innerHTML = can.base.Time().split(" ")[1]
|
||||
time: function(event, can, key, target) {
|
||||
target.innerHTML = can.base.Time().split(" ")[1]
|
||||
},
|
||||
})
|
||||
|
@ -1,5 +1,5 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [],
|
||||
_init: function(can, meta, list, cb, target) {},
|
||||
_init: function(can, meta, list, cb, target) { },
|
||||
})
|
||||
Volcanos("onaction", {help: "交互数据", list: [],
|
||||
_init: function(can, msg, list, cb, target) {
|
||||
@ -8,19 +8,18 @@ Volcanos("onaction", {help: "交互数据", list: [],
|
||||
})
|
||||
Volcanos("onexport", {help: "导出数据", list: [],
|
||||
_init: function(can, msg, list, cb, target) { var key = "river";
|
||||
if (msg.Option(key, can.Conf(key))) { typeof cb == "function" && cb (msg); return }
|
||||
|
||||
msg = can.request({}, {}), can.run(msg._event, [], function(msg) { can._output.innerHTML = ""; var select; msg.Table(function(value, index, array) {
|
||||
var view = can.onappend.item(can, can._output, "item", value, function(event, item) {
|
||||
can.run(msg._event, [], function(sup) { can._output.innerHTML = ""; var select; sup.Table(function(value, index, array) {
|
||||
var view = can.onappend.item(can, can._output, "item", value, function(event, item) { var msg = can.request(event, {_msg: sup});
|
||||
// 左键点击
|
||||
can.Conf(key, value.key); can.run(event, ["search", "Storm.onaction._init"], function(action) { });
|
||||
msg.Option(key, can.Conf(key, value.key)), can.run(event, ["search", "Storm.onaction._init"]);
|
||||
}, function(event) {
|
||||
// 右键点击
|
||||
});
|
||||
|
||||
if (index == 0 || [value.key, value.name].indexOf(can.user.Search(can, key)) > -1) {
|
||||
msg.Option(key, value.key), select = view
|
||||
select = view
|
||||
}
|
||||
}); select && select.click(); typeof cb == "function" && cb(msg); })
|
||||
}); select && select.click(); typeof cb == "function" && cb(sup); })
|
||||
},
|
||||
})
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [],
|
||||
_init: function(can, meta, list, cb, target) {},
|
||||
_init: function(can, meta, list, cb, target) { },
|
||||
})
|
||||
Volcanos("onaction", {help: "交互操作", list: [],
|
||||
_init: function(can, msg, list, cb, target) {
|
||||
@ -11,33 +11,38 @@ Volcanos("ondetail", {help: "交互菜单", list: ["共享", "更名", "删除"]
|
||||
can.onexport._init(can, msg, list, cb, target)
|
||||
},
|
||||
"共享": function(event, can, value) {
|
||||
can.onappend.share(can, {river: can.Conf("river"), storm: can.Conf("storm")})
|
||||
var msg = can.request(event)
|
||||
msg.Option("name", "storm")
|
||||
msg.Option("storm", can.Conf("storm"))
|
||||
msg.Option("river", can.Conf("river"))
|
||||
can.onappend.share(can, msg)
|
||||
},
|
||||
})
|
||||
Volcanos("onexport", {help: "导出数据", list: [],
|
||||
_init: function(can, msg, list, cb, target) { var key = "storm";
|
||||
can.run(msg._event, ["search", "River.onaction._init"], function(msg) {
|
||||
can.Cache(can.Conf("river"), can._output, can.Conf(key));
|
||||
var river = can.Conf("river", msg.Option("river"));
|
||||
if (can.Conf(key, msg.Option(key, can.Cache(river, can._output)))) { typeof cb == "function" && cb (msg); return }
|
||||
can.Cache(can.Conf("river"), can._output, can.Conf(key));
|
||||
var river = can.Conf("river", msg.Option("river"));
|
||||
if (msg.Option(key, can.Conf(key, can.Cache(river, can._output)||""))) {
|
||||
return can.run(msg._event, ["search", "Action.onaction._init"]);
|
||||
}
|
||||
|
||||
msg = can.request({}, {}), can.run(msg._event, [river], function(msg) { can._output.innerHTML = ""; var select; msg.Table(function(value, index, array) {
|
||||
var view = can.onappend.item(can, can._output, "item", value, function(event, item) {
|
||||
// 左键点击
|
||||
can.Conf(key, value.key); can.run(event, ["search", "Action.onaction._init"], function(msg) {})
|
||||
}, function(event, item) {
|
||||
// 右键点击
|
||||
can.onappend.carte(can, can.ondetail, can.ondetail.list, function(event, item, meta) {
|
||||
meta[item] && meta[item](event, can, value)
|
||||
console.log(item)
|
||||
})
|
||||
});
|
||||
can.run(msg._event, [river], function(sup) { can._output.innerHTML = ""; var select; sup.Table(function(value, index, array) {
|
||||
var view = can.onappend.item(can, can._output, "item", value, function(event, item) { var msg = can.request(event, {_msg: sup});
|
||||
// 左键点击
|
||||
msg.Option("river", river)
|
||||
msg.Option(key, can.Conf(key, value.key)), can.run(event, ["search", "Action.onaction._init"]);
|
||||
}, function(event, item) {
|
||||
// 右键点击
|
||||
can.onappend.carte(can, can.ondetail, can.ondetail.list, function(event, item, meta) {
|
||||
meta[item] && meta[item](event, can, value)
|
||||
console.log(item)
|
||||
})
|
||||
});
|
||||
|
||||
if (index == 0 || [value.key, value.name].indexOf(can.user.Search(can, key)) > -1) {
|
||||
msg.Option(key, value.key), select = view
|
||||
}
|
||||
}); select && select.click(); typeof cb == "function" && cb(msg); })
|
||||
})
|
||||
if (index == 0 || [value.key, value.name].indexOf(can.user.Search(can, key)) > -1) {
|
||||
select = view
|
||||
}
|
||||
}); select && select.click(); })
|
||||
},
|
||||
})
|
||||
|
||||
|
4
proto.js
4
proto.js
@ -78,10 +78,10 @@ var Volcanos = shy("火山架", {cache: {}, index: 1, order: 1, debug: {
|
||||
request: function(event, msg, proto) { event = event || {};
|
||||
if (!msg && event._msg) { return event._msg }
|
||||
|
||||
event._msg = msg = msg || {}, msg._event = event;
|
||||
event._msg = msg = msg || {}, msg._event = event, msg._can = can;
|
||||
msg.__proto__ = proto || { _name: meta.order++, _create_time: new Date(),
|
||||
Option: function(key, val) {
|
||||
if (val == undefined) { return msg && msg[key] && msg[key][0] || "" }
|
||||
if (val == undefined) { return msg && msg[key] && msg[key][0] || msg._msg && msg._msg.Option(key) || "" }
|
||||
msg.option = msg.option || [], can.core.List(msg.option, function(k) {
|
||||
if (k == key) {return k}
|
||||
}).length > 0 || msg.option.push(key)
|
||||
|
Loading…
x
Reference in New Issue
Block a user