mirror of
https://shylinux.com/x/volcanos
synced 2025-04-26 01:04:06 +08:00
add login
This commit is contained in:
parent
934af0b873
commit
da98116f48
4
frame.js
4
frame.js
@ -146,8 +146,8 @@ Volcanos("onappend", { _init: function(can, meta, list, cb, target, field) {
|
|||||||
}, Volcanos.meta.libs.concat([item.display||"/plugin/input.js"]), function(input) {
|
}, Volcanos.meta.libs.concat([item.display||"/plugin/input.js"]), function(input) {
|
||||||
input.onimport._init(input, input.Conf(item), item.list||[], function() {}, input._target);
|
input.onimport._init(input, input.Conf(item), item.list||[], function() {}, input._target);
|
||||||
if (can.user.Search(can, "active") == meta.name || can.user.Search(can, "title") == meta.name) {
|
if (can.user.Search(can, "active") == meta.name || can.user.Search(can, "title") == meta.name) {
|
||||||
var p = sub.user.Search(can, item.name) || ""
|
var p = sub.user.Search(can, item.name)
|
||||||
p && (input._target.value = p)
|
p != undefined && (input._target.value = p)
|
||||||
}
|
}
|
||||||
|
|
||||||
input.run = function(event, cmds, cb, silent) {
|
input.run = function(event, cmds, cb, silent) {
|
||||||
|
@ -217,3 +217,8 @@ div.upload {
|
|||||||
div.upload div.item {
|
div.upload div.item {
|
||||||
float:left;
|
float:left;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fieldset.input {
|
||||||
|
position:absolute;
|
||||||
|
left:0; top:0;
|
||||||
|
}
|
||||||
|
28
lib/user.js
28
lib/user.js
@ -5,9 +5,21 @@ Volcanos("user", {help: "用户模块",
|
|||||||
reload: function(force) {(force || confirm("重新加载页面?")) && location.reload()},
|
reload: function(force) {(force || confirm("重新加载页面?")) && location.reload()},
|
||||||
title: function(text) {return text && (document.title = text), document.title},
|
title: function(text) {return text && (document.title = text), document.title},
|
||||||
|
|
||||||
input: function(event, can, form, cb) {
|
input: function(event, can, form, cb) { var button
|
||||||
|
function cbs(event, button) { var data = {}
|
||||||
|
var list = can.page.Select(can, view.table, "select,input,textarea", function(item) {
|
||||||
|
return data[item.name] = item.value
|
||||||
|
})
|
||||||
|
if (typeof cb == "function" && cb(event, button, data, list)) {
|
||||||
|
can.page.Remove(can, view.first)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var view = can.page.Append(can, document.body, [{view: ["input", "fieldset"], style: {left: event.clientX+"px", top: event.clientY+"px"}, list: [
|
var view = can.page.Append(can, document.body, [{view: ["input", "fieldset"], style: {left: event.clientX+"px", top: event.clientY+"px"}, list: [
|
||||||
{view: ["option", "table"], list: can.core.List(form, function(item) {
|
{view: ["option", "table"], list: can.core.List(form, function(item) {
|
||||||
|
if (item.button) { button = can.core.List(item.button, function(item) { return {button: typeof item == "object"? item: [item, function(event) {
|
||||||
|
cbs(event, item)
|
||||||
|
} ]} } ); return }
|
||||||
return {type: ["tr"], list: [
|
return {type: ["tr"], list: [
|
||||||
{type: "td", list: [{text: typeof item == "string"?
|
{type: "td", list: [{text: typeof item == "string"?
|
||||||
item: item.length > 0? item[0]: item.name || "",
|
item: item.length > 0? item[0]: item.name || "",
|
||||||
@ -19,15 +31,9 @@ Volcanos("user", {help: "用户模块",
|
|||||||
]},
|
]},
|
||||||
]}
|
]}
|
||||||
})},
|
})},
|
||||||
{view: "action", list: [{button: ["提交", function(event, value) {
|
{view: "action", list: button||[{button: ["提交", function(event) {
|
||||||
var data = {}
|
cbs(event, "提交")
|
||||||
var list = can.page.Select(can, view.table, "select,input,textarea", function(item) {
|
}]}, {button: ["关闭", function(event, button) {
|
||||||
return data[item.name] = item.value
|
|
||||||
})
|
|
||||||
if (typeof cb == "function" && cb(event, value, data, list)) {
|
|
||||||
can.page.Remove(can, view.first)
|
|
||||||
}
|
|
||||||
}]}, {button: ["关闭", function(event, value) {
|
|
||||||
can.page.Remove(can, view.first)
|
can.page.Remove(can, view.first)
|
||||||
}]}]},
|
}]}]},
|
||||||
]}])
|
]}])
|
||||||
@ -42,7 +48,7 @@ Volcanos("user", {help: "用户模块",
|
|||||||
login: function(cb) {},
|
login: function(cb) {},
|
||||||
|
|
||||||
Share: shy("共享链接", function(can, objs, clear) {var obj = objs || {}; var path = location.pathname;
|
Share: shy("共享链接", function(can, objs, clear) {var obj = objs || {}; var path = location.pathname;
|
||||||
obj.path && (path = obj.path, delete(obj.path))
|
obj._path && (path = obj._path, delete(obj._path))
|
||||||
!clear && can.core.Item(can.user.Search(), function(key, value) {obj[key] || (obj[key] = value)});
|
!clear && can.core.Item(can.user.Search(), function(key, value) {obj[key] || (obj[key] = value)});
|
||||||
return can.core.List([location.origin+path, 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("&");
|
return can.core.List(value, function(value) {return key+"="+encodeURIComponent(value)}).join("&");
|
||||||
|
@ -21,11 +21,10 @@ Volcanos("ondetail", {help: "交互菜单", list: ["共享", "更名", "删除"]
|
|||||||
can.onappend.share(can, msg)
|
can.onappend.share(can, msg)
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
Volcanos("onexport", {help: "导出数据", list: [],
|
Volcanos("onexport", {help: "导出数据", list: [], _init: function(can, msg, list, cb, target) { var key = "action";
|
||||||
_init: function(can, msg, list, cb, target) { var key = "action";
|
|
||||||
can.Cache(can.Conf("river")+"."+can.Conf("storm"), can._output, can._output.scrollTop+1);
|
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 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)));
|
var position = can.Conf(key, msg.Option(key, can.Cache(river+"."+storm, can._output)||""));
|
||||||
if (position) { can._output.scrollTo(0, position-1); return }
|
if (position) { can._output.scrollTo(0, position-1); return }
|
||||||
|
|
||||||
msg.Clear("option"), can.run(msg._event, [river, storm], function(sup) { can._output.innerHTML = ""; sup.Table(function(value, index, array) {
|
msg.Clear("option"), can.run(msg._event, [river, storm], function(sup) { can._output.innerHTML = ""; sup.Table(function(value, index, array) {
|
||||||
@ -38,6 +37,8 @@ Volcanos("onexport", {help: "导出数据", list: [],
|
|||||||
value.height = can._target.offsetHeight
|
value.height = can._target.offsetHeight
|
||||||
can.onappend._init(can, value, Volcanos.meta.libs.concat(["/plugin/state.js"]), function(sub) {
|
can.onappend._init(can, value, Volcanos.meta.libs.concat(["/plugin/state.js"]), function(sub) {
|
||||||
sub.run = function(event, cmds, cb, silent) { var msg = can.request(event, event._msg||{_msg: sup});
|
sub.run = function(event, cmds, cb, silent) { var msg = can.request(event, event._msg||{_msg: sup});
|
||||||
|
can.Conf("active", sub.Option())
|
||||||
|
can.Conf("action", value.name)
|
||||||
// 插件回调
|
// 插件回调
|
||||||
can.run(event, [river, storm, index].concat(cmds), function(msg) {
|
can.run(event, [river, storm, index].concat(cmds), function(msg) {
|
||||||
can.run(msg._event, ["search", "Footer.onaction.ncmd"]);
|
can.run(msg._event, ["search", "Footer.onaction.ncmd"]);
|
||||||
@ -47,11 +48,15 @@ Volcanos("onexport", {help: "导出数据", list: [],
|
|||||||
}
|
}
|
||||||
sub._target.oncontextmenu = function(event) {
|
sub._target.oncontextmenu = function(event) {
|
||||||
can.onappend.carte(can, can.ondetail, can.ondetail.list, function(event, item, meta) {
|
can.onappend.carte(can, can.ondetail, can.ondetail.list, function(event, item, meta) {
|
||||||
|
// 菜单命令
|
||||||
meta[item] && meta[item](event, can, value, sub)
|
meta[item] && meta[item](event, can, value, sub)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}, can._output);
|
}, can._output);
|
||||||
}) })
|
}) })
|
||||||
},
|
},
|
||||||
|
key: function(can, msg) { msg.Option("active", can.Conf("action"))
|
||||||
|
can.core.Item(can.Conf("active"), msg.Option)
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -1,25 +1,50 @@
|
|||||||
Volcanos("onimport", {help: "导入数据", list: [],
|
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, 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) {
|
Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg, list, cb, target) {
|
||||||
console.log(msg)
|
function init() {
|
||||||
|
can.onexport._init(can, msg, list, function() {
|
||||||
|
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)
|
||||||
|
}
|
||||||
|
can.run({}, ["check"], function(msg) {
|
||||||
|
if (msg.Result()) { return init() }
|
||||||
|
|
||||||
|
var ui = can.user.input({}, can, [
|
||||||
|
{username: "username", name: "用户"},
|
||||||
|
{password: "password", name: "密码"},
|
||||||
|
{button: [["登录", function(event) {
|
||||||
|
var username = ui["用户"].value
|
||||||
|
var password = ui["密码"].value
|
||||||
|
can.run({}, ["login", username, password], function(msg) {
|
||||||
|
if (msg.Result()) {
|
||||||
|
can.page.Remove(can, ui.first)
|
||||||
|
return init()
|
||||||
|
}
|
||||||
|
can.user.alert("用户或密码错误")
|
||||||
|
})
|
||||||
|
}], "扫码"]},
|
||||||
|
], function(event, button, data, list) {
|
||||||
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
title: function(event, can, key) { var msg = can.request(event)
|
||||||
|
can.core.List(["River", "Storm", "Action"], function(item) {
|
||||||
|
can.run(event, ["search", item+".onexport.key"])
|
||||||
|
})
|
||||||
|
var args = {}; can.core.List(msg.option, function(key) { args[key] = msg.Option(key) })
|
||||||
|
location.href = can.user.Share(can, args)
|
||||||
|
},
|
||||||
username: function(event, can, key) {
|
username: function(event, can, key) {
|
||||||
// can.ui[key].innerHTML = can.base.Time().split(" ")[1]
|
if (can.user.confirm("logout?")) {
|
||||||
|
can.user.Cookie(can, "sessid", "")
|
||||||
|
can.user.reload(true)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
Volcanos("onexport", {help: "导出数据", list: [],
|
Volcanos("onexport", {help: "导出数据", list: [], _init: function(can, msg, list, cb, target) {
|
||||||
_init: function(can, msg, list, cb, target) {
|
|
||||||
can.run(msg._event, [], function(msg) { can._output.innerHTML = "";
|
can.run(msg._event, [], function(msg) { can._output.innerHTML = "";
|
||||||
can.Conf("username", msg.Option("user.nick")||msg.Option("user.name"))
|
can.Conf("username", msg.Option("user.nick")||msg.Option("user.name"))
|
||||||
|
|
||||||
@ -28,23 +53,18 @@ Volcanos("onexport", {help: "导出数据", list: [],
|
|||||||
click: function(event) { can.onaction["title"](event, can, "title") },
|
click: function(event) { can.onaction["title"](event, can, "title") },
|
||||||
}])
|
}])
|
||||||
})
|
})
|
||||||
|
|
||||||
can.core.List(can.Conf("state")||["time", "username"], function(item) {
|
can.core.List(can.Conf("state")||["time", "username"], function(item) {
|
||||||
can.page.Append(can, can._output, [{view: ["state "+item, "div", can.Conf(item)],
|
can.page.Append(can, can._output, [{view: ["state "+item, "div", can.Conf(item)],
|
||||||
click: function(event) { can.onaction[item](event, can, item) },
|
click: function(event) { can.onaction[item](event, can, item) },
|
||||||
}])
|
}])
|
||||||
})
|
})
|
||||||
|
|
||||||
can.page.Select(can, can._output, "div.state.time", function(item) {
|
can.page.Select(can, can._output, "div.state.time", function(item) {
|
||||||
can.timer = can.Timer({interval: 1000, length: -1}, function(event) {
|
can.timer = can.Timer({interval: 1000, length: -1}, function(event) {
|
||||||
can.onexport.time(event, can, "time", item)
|
can.onexport.time(event, can, "time", item)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
typeof cb == "function" && cb()
|
||||||
typeof cb == "function" && cb(can.request({}, {_msg: msg}))
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
time: function(event, can, key, target) {
|
time: function(event, can, key, target) { target.innerHTML = can.base.Time().split(" ")[1] },
|
||||||
target.innerHTML = can.base.Time().split(" ")[1]
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
|
@ -1,13 +1,11 @@
|
|||||||
Volcanos("onimport", {help: "导入数据", list: [],
|
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, meta, list, cb, target) {
|
||||||
_init: function(can, meta, list, cb, target) { },
|
},
|
||||||
})
|
})
|
||||||
Volcanos("onaction", {help: "交互数据", list: [],
|
Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg, list, cb, target) {
|
||||||
_init: function(can, msg, list, cb, target) {
|
|
||||||
can.onexport._init(can, msg, list, cb, target)
|
can.onexport._init(can, msg, list, cb, target)
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
Volcanos("onexport", {help: "导出数据", list: [],
|
Volcanos("onexport", {help: "导出数据", list: [], _init: function(can, msg, list, cb, target) { var key = "river";
|
||||||
_init: function(can, msg, list, cb, target) { var key = "river";
|
|
||||||
can.run(msg._event, [], function(sup) { can._output.innerHTML = ""; var select; sup.Table(function(value, index, array) {
|
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});
|
var view = can.onappend.item(can, can._output, "item", value, function(event, item) { var msg = can.request(event, {_msg: sup});
|
||||||
// 左键点击
|
// 左键点击
|
||||||
@ -21,5 +19,6 @@ Volcanos("onexport", {help: "导出数据", list: [],
|
|||||||
}
|
}
|
||||||
}); select && select.click(); typeof cb == "function" && cb(sup); })
|
}); select && select.click(); typeof cb == "function" && cb(sup); })
|
||||||
},
|
},
|
||||||
|
key: function(can, msg) { msg.Option("river", can.Conf("river")) },
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -15,8 +15,7 @@ Volcanos("ondetail", {help: "交互菜单", list: ["共享", "更名", "删除"]
|
|||||||
can.onappend.share(can, msg)
|
can.onappend.share(can, msg)
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
Volcanos("onexport", {help: "导出数据", list: [],
|
Volcanos("onexport", {help: "导出数据", list: [], _init: function(can, msg, list, cb, target) { var key = "storm";
|
||||||
_init: function(can, msg, list, cb, target) { var key = "storm";
|
|
||||||
can.Cache(can.Conf("river"), can._output, can.Conf(key));
|
can.Cache(can.Conf("river"), can._output, can.Conf(key));
|
||||||
var river = can.Conf("river", msg.Option("river"));
|
var river = can.Conf("river", msg.Option("river"));
|
||||||
if (msg.Option(key, can.Conf(key, can.Cache(river, can._output)||""))) {
|
if (msg.Option(key, can.Conf(key, can.Cache(river, can._output)||""))) {
|
||||||
@ -40,5 +39,6 @@ Volcanos("onexport", {help: "导出数据", list: [],
|
|||||||
}
|
}
|
||||||
}); select && select.click(); })
|
}); select && select.click(); })
|
||||||
},
|
},
|
||||||
|
key: function(can, msg) { msg.Option("storm", can.Conf("storm")) },
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user