mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 08:48: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) {
|
||||
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) {
|
||||
var p = sub.user.Search(can, item.name) || ""
|
||||
p && (input._target.value = p)
|
||||
var p = sub.user.Search(can, item.name)
|
||||
p != undefined && (input._target.value = p)
|
||||
}
|
||||
|
||||
input.run = function(event, cmds, cb, silent) {
|
||||
|
@ -217,3 +217,8 @@ div.upload {
|
||||
div.upload div.item {
|
||||
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()},
|
||||
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: [
|
||||
{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: [
|
||||
{type: "td", list: [{text: typeof item == "string"?
|
||||
item: item.length > 0? item[0]: item.name || "",
|
||||
@ -19,15 +31,9 @@ Volcanos("user", {help: "用户模块",
|
||||
]},
|
||||
]}
|
||||
})},
|
||||
{view: "action", list: [{button: ["提交", function(event, value) {
|
||||
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, value, data, list)) {
|
||||
can.page.Remove(can, view.first)
|
||||
}
|
||||
}]}, {button: ["关闭", function(event, value) {
|
||||
{view: "action", list: button||[{button: ["提交", function(event) {
|
||||
cbs(event, "提交")
|
||||
}]}, {button: ["关闭", function(event, button) {
|
||||
can.page.Remove(can, view.first)
|
||||
}]}]},
|
||||
]}])
|
||||
@ -42,7 +48,7 @@ Volcanos("user", {help: "用户模块",
|
||||
login: function(cb) {},
|
||||
|
||||
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)});
|
||||
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("&");
|
||||
|
@ -21,11 +21,10 @@ Volcanos("ondetail", {help: "交互菜单", list: ["共享", "更名", "删除"]
|
||||
can.onappend.share(can, msg)
|
||||
},
|
||||
})
|
||||
Volcanos("onexport", {help: "导出数据", list: [],
|
||||
_init: function(can, msg, list, cb, target) { var key = "action";
|
||||
Volcanos("onexport", {help: "导出数据", list: [], _init: function(can, msg, list, cb, target) { var key = "action";
|
||||
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)));
|
||||
var position = can.Conf(key, msg.Option(key, can.Cache(river+"."+storm, can._output)||""));
|
||||
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) {
|
||||
@ -38,6 +37,8 @@ Volcanos("onexport", {help: "导出数据", list: [],
|
||||
value.height = can._target.offsetHeight
|
||||
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});
|
||||
can.Conf("active", sub.Option())
|
||||
can.Conf("action", value.name)
|
||||
// 插件回调
|
||||
can.run(event, [river, storm, index].concat(cmds), function(msg) {
|
||||
can.run(msg._event, ["search", "Footer.onaction.ncmd"]);
|
||||
@ -47,11 +48,15 @@ Volcanos("onexport", {help: "导出数据", list: [],
|
||||
}
|
||||
sub._target.oncontextmenu = function(event) {
|
||||
can.onappend.carte(can, can.ondetail, can.ondetail.list, function(event, item, meta) {
|
||||
// 菜单命令
|
||||
meta[item] && meta[item](event, can, value, sub)
|
||||
})
|
||||
}
|
||||
}, 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: [],
|
||||
_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)
|
||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, meta, list, cb, target) {
|
||||
},
|
||||
title: function(event, can, key) {
|
||||
can.run(event, ["search", "Action.onaction._init"], function(msg) {
|
||||
console.log(msg)
|
||||
})
|
||||
Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg, list, cb, target) {
|
||||
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) {
|
||||
// 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: [],
|
||||
_init: function(can, msg, list, cb, target) {
|
||||
Volcanos("onexport", {help: "导出数据", list: [], _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"))
|
||||
|
||||
@ -28,23 +53,18 @@ Volcanos("onexport", {help: "导出数据", list: [],
|
||||
click: function(event) { can.onaction["title"](event, can, "title") },
|
||||
}])
|
||||
})
|
||||
|
||||
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}))
|
||||
typeof cb == "function" && cb()
|
||||
})
|
||||
},
|
||||
time: function(event, can, key, target) {
|
||||
target.innerHTML = can.base.Time().split(" ")[1]
|
||||
},
|
||||
time: function(event, can, key, target) { target.innerHTML = can.base.Time().split(" ")[1] },
|
||||
})
|
||||
|
@ -1,13 +1,11 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [],
|
||||
_init: function(can, meta, list, cb, target) { },
|
||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, meta, list, cb, target) {
|
||||
},
|
||||
})
|
||||
Volcanos("onaction", {help: "交互数据", list: [],
|
||||
_init: function(can, msg, list, cb, target) {
|
||||
Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg, list, cb, target) {
|
||||
can.onexport._init(can, msg, list, cb, target)
|
||||
},
|
||||
})
|
||||
Volcanos("onexport", {help: "导出数据", list: [],
|
||||
_init: function(can, msg, list, cb, target) { var key = "river";
|
||||
Volcanos("onexport", {help: "导出数据", list: [], _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) {
|
||||
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); })
|
||||
},
|
||||
key: function(can, msg) { msg.Option("river", can.Conf("river")) },
|
||||
})
|
||||
|
||||
|
@ -15,8 +15,7 @@ Volcanos("ondetail", {help: "交互菜单", list: ["共享", "更名", "删除"]
|
||||
can.onappend.share(can, msg)
|
||||
},
|
||||
})
|
||||
Volcanos("onexport", {help: "导出数据", list: [],
|
||||
_init: function(can, msg, list, cb, target) { var key = "storm";
|
||||
Volcanos("onexport", {help: "导出数据", list: [], _init: function(can, msg, list, cb, target) { var key = "storm";
|
||||
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)||""))) {
|
||||
@ -40,5 +39,6 @@ Volcanos("onexport", {help: "导出数据", list: [],
|
||||
}
|
||||
}); select && select.click(); })
|
||||
},
|
||||
key: function(can, msg) { msg.Option("storm", can.Conf("storm")) },
|
||||
})
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user