1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-26 01:04:06 +08:00

add login

This commit is contained in:
shylinux 2020-06-02 02:20:08 +08:00
parent 934af0b873
commit da98116f48
7 changed files with 82 additions and 47 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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