1
0
forked from x/volcanos

add share

This commit is contained in:
shaoying 2020-05-14 22:57:36 +08:00
parent 96224b7862
commit bbdaa41dfa
11 changed files with 110 additions and 104 deletions

View File

@ -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) {

View File

@ -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)

View File

@ -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("=")

View File

@ -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);
}) })
},
})

View File

@ -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;
}

View File

@ -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) },
}])
})
})
},
})

View File

@ -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;
}

View File

@ -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]
},
})

View File

@ -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); })
},
})

View File

@ -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(); })
},
})

View File

@ -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)