forked from x/volcanos
opt some
This commit is contained in:
parent
691e582959
commit
66e4f86fe0
@ -51,11 +51,13 @@ var base = Volcanos("base", {help: "基础模块",
|
||||
}
|
||||
return size + "B"
|
||||
},
|
||||
Time: shy("时间格式化", function(t, fmt) {var now = t? new Date(t): new Date();
|
||||
fmt = fmt || "%y-%m-%d %H:%M:%S";
|
||||
Time: shy("时间格式化", function(t, fmt) { var now = t? new Date(t): new Date()
|
||||
var list = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"]
|
||||
fmt = fmt || "%y-%m-%d %H:%M:%S"
|
||||
fmt = fmt.replace("%y", now.getFullYear())
|
||||
fmt = fmt.replace("%m", this.Number(now.getMonth()+1, 2))
|
||||
fmt = fmt.replace("%d", this.Number(now.getDate(), 2))
|
||||
fmt = fmt.replace("%w", list[now.getDay()])
|
||||
fmt = fmt.replace("%H", this.Number(now.getHours(), 2))
|
||||
fmt = fmt.replace("%M", this.Number(now.getMinutes(), 2))
|
||||
fmt = fmt.replace("%S", this.Number(now.getSeconds(), 2))
|
||||
|
@ -193,6 +193,8 @@ var page = Volcanos("page", {help: "网页模块",
|
||||
var table = can.page.Append(can, target, "table");
|
||||
var tr = can.page.Append(can, table, "tr", {dataset: {index: -1}});
|
||||
can.core.List(list, function(key, index) {if (key.indexOf("_") == 0) {return}
|
||||
key = can.Conf("feature.table.trans."+key) || {}[key] || key
|
||||
|
||||
can.page.Append(can, tr, "th", key.trim()).onclick = function(event) {
|
||||
var dataset = event.target.dataset;
|
||||
dataset["sort_asc"] = (dataset["sort_asc"] == "1") ? 0: 1;
|
||||
|
@ -97,6 +97,7 @@ var user = Volcanos("user", {help: "用户模块",
|
||||
}
|
||||
}
|
||||
|
||||
var msg = can.request(event)
|
||||
var x = event.clientX, y = event.clientY; y += 10; if (x > 600) { x -= 160 }
|
||||
var button; var ui = can.page.Append(can, document.body, [{view: ["input", "fieldset"], style: {left: x+"px", top: y+"px"}, list: [
|
||||
{view: ["option", "table"], list: can.core.List(form, function(item) {
|
||||
@ -111,7 +112,7 @@ var user = Volcanos("user", {help: "用户模块",
|
||||
var pval = item.value.slice(1).split("=")[1]
|
||||
}
|
||||
|
||||
target.type != "button" && (target.value = pval)
|
||||
target.type != "button" && (target.value = pval || msg.Option(item.name))
|
||||
can.page.Modify(can, target, {autocomplete: "off"})
|
||||
can.require(["/plugin/input/"+pkey], function(can) {
|
||||
can.onfigure._init(can, item, target, function(event) {
|
||||
|
142
pane/Header.js
142
pane/Header.js
@ -2,25 +2,29 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, meta,
|
||||
},
|
||||
})
|
||||
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"])
|
||||
function init() { can.run({}, [], function(msg) {
|
||||
can.onexport._init(can, msg, msg.append, function() {
|
||||
can.run({}, ["search", "River.onaction._init"])
|
||||
can.run({}, ["search", "Footer.onaction._init"])
|
||||
}, target)
|
||||
}
|
||||
if (location.protocol == "file:") { return init() }
|
||||
can.run({}, ["check"], function(msg) { if (msg.Result()) { return init() }
|
||||
can.user.login(can, init)
|
||||
}) }
|
||||
|
||||
location.protocol == "file:"? init(): can.run({}, ["check"], function(msg) {
|
||||
msg.Result()? init(): can.user.login(can, init)
|
||||
})
|
||||
},
|
||||
title: function(event, can, key) { var msg = can.request(event)
|
||||
can.core.List(["pod"], function(key) { var value = can.user.Search(can, key)
|
||||
value != undefined && msg.Option(key, can.user.Search(can, key))
|
||||
title: function(event, can, key) {
|
||||
var args = {}; can.core.List(["pod", "topic"], function(key) {
|
||||
var value = can.user.Search(can, key); value && (args[key] = value)
|
||||
})
|
||||
var args = {}; can.core.List(msg.option, function(key) { args[key] = msg.Option(key) })
|
||||
location.href = can.user.Share(can, args, true)
|
||||
},
|
||||
white: function(event, can, key) {
|
||||
can.page.Modify(can, document.body, {className: key})
|
||||
},
|
||||
black: function(event, can, key) {
|
||||
can.page.Modify(can, document.body, {className: key})
|
||||
},
|
||||
username: function(event, can, key) {
|
||||
if (can.user.confirm("logout?")) {
|
||||
can.user.Cookie(can, "sessid", "")
|
||||
@ -28,23 +32,19 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg,
|
||||
}
|
||||
},
|
||||
pack: function(event, can, key) {
|
||||
var msg = can.request(event)
|
||||
can.core.Item(Volcanos.meta.pack, function(key, msg) {
|
||||
delete(msg._event), delete(msg._can)
|
||||
})
|
||||
|
||||
var toast = can.user.toast(can, "打包中...", "webpack", 1000000)
|
||||
var msg = can.request(event)
|
||||
msg.Option("name", "demo")
|
||||
msg.Option("content", JSON.stringify(Volcanos.meta.pack))
|
||||
can.run(event, ["pack"], function(msg) {
|
||||
toast.Close(), can.user.toast(can, "打包成功", "webpack")
|
||||
})
|
||||
},
|
||||
white: function(event, can, key) {
|
||||
can.page.Modify(can, document.body, {className: key})
|
||||
},
|
||||
black: function(event, can, key) {
|
||||
can.page.Modify(can, document.body, {className: key})
|
||||
},
|
||||
|
||||
River: function(event, can, key) {
|
||||
can.page.Select(can, document.body, "fieldset.River", function(item) {
|
||||
can.page.Modify(can, item, {style: {display: item.style.display == "none"? "block": "none"}})
|
||||
@ -67,63 +67,59 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg,
|
||||
},
|
||||
})
|
||||
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"))
|
||||
if (can.Conf("username").length > 10) {
|
||||
can.Conf("username", can.Conf("username").slice(0, 10))
|
||||
}
|
||||
const USERNAME = "username"
|
||||
can.Conf(USERNAME, msg.Option("user.nick")||msg.Option("user.name"))
|
||||
can.Conf(USERNAME).length > 10 && can.Conf(USERNAME, can.Conf(USERNAME).slice(0, 10))
|
||||
can._output.innerHTML = ""
|
||||
|
||||
can.user.isMobile || 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") },
|
||||
}])
|
||||
})
|
||||
|
||||
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)
|
||||
})
|
||||
})
|
||||
|
||||
can.user.isMobile || (can.search = can.page.Append(can, can._output, [{view: "search", list: [{type: "input", data: {placeholder: "search"}, onkeydown: function(event) {
|
||||
switch (event.key) {
|
||||
case "Enter": can.run(event, ["search", "Search.onimport.input", "*", event.target.value]); break
|
||||
}
|
||||
}, }], }]).input)
|
||||
|
||||
var height = document.body.offsetHeight
|
||||
var ui = can.page.Append(can, can._output, can.core.List(can.user.isMobile || can.user.isExtension || can.user.Search(can, "pod")? ["River"]: ["pack"], function(item) {
|
||||
return {view: "item", list: [{type: "input", data: {name: item, type: "button", value: item.toLowerCase()},
|
||||
onclick: function(event) {
|
||||
var cb = can.onaction[item]; if (typeof cb == "function") {
|
||||
return cb(event, can, item)
|
||||
}
|
||||
},
|
||||
}]}
|
||||
}));
|
||||
|
||||
if (can.user.isExtension) {
|
||||
can.onaction.River({}, can)
|
||||
} else if (can.user.isMobile) {
|
||||
can.onaction.River({}, can)
|
||||
can.onaction.Footer({}, can)
|
||||
} else if (can.user.Search(can, "topic") == "white") {
|
||||
} else if (can.user.Search(can, "pod")) {
|
||||
can.onaction.River({}, can)
|
||||
can.onaction.Footer({}, can)
|
||||
}
|
||||
|
||||
typeof cb == "function" && cb()
|
||||
// 标题
|
||||
can.user.title(can.user.Search(can, "pod"))
|
||||
can.user.isMobile || 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") },
|
||||
}])
|
||||
})
|
||||
|
||||
// 状态
|
||||
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)
|
||||
})
|
||||
})
|
||||
|
||||
// 搜索
|
||||
can.user.isMobile || (can.search = can.page.Append(can, can._output, [{view: "search", list: [{type: "input", data: {placeholder: "search"}, onkeydown: function(event) {
|
||||
switch (event.key) {
|
||||
case "Enter": can.run(event, ["search", "Search.onimport.input", "*", event.target.value]); break
|
||||
}
|
||||
}, }], }]).input)
|
||||
|
||||
var ui = can.page.Append(can, can._output, can.core.List(can.user.isMobile || can.user.isExtension || can.user.Search(can, "pod")? ["River"]: ["pack"], function(item) {
|
||||
return {view: "item", list: [{type: "input", data: {type: "button", name: item, value: item.toLowerCase()}, onclick: function(event) {
|
||||
var cb = can.onaction[item]; typeof cb == "function" && cb(event, can, item)
|
||||
}, }]}
|
||||
}))
|
||||
|
||||
// 场景
|
||||
if (can.user.isExtension) {
|
||||
can.onaction.River({}, can)
|
||||
} else if (can.user.isMobile) {
|
||||
can.onaction.River({}, can)
|
||||
can.onaction.Footer({}, can)
|
||||
} else if (can.user.Search(can, "pod")) {
|
||||
can.onaction.River({}, can)
|
||||
can.onaction.Footer({}, can)
|
||||
}
|
||||
|
||||
typeof cb == "function" && cb()
|
||||
},
|
||||
time: function(event, can, key, target) {
|
||||
var list = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"]
|
||||
target.innerHTML = list[(new Date()).getDay()]+" "+can.base.Time().split(" ")[1]
|
||||
target.innerHTML = can.base.Time(null, "%w %H:%M:%S")
|
||||
},
|
||||
})
|
||||
|
||||
|
@ -59,11 +59,19 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
]}
|
||||
},
|
||||
_table: function(can, value, key, index, line, array) {
|
||||
return {type: "td", inner: value, click: function(event) {
|
||||
var target = event.target; if (target.tagName == "INPUT" && target.type == "button") {
|
||||
var msg = can.sup.request(event); msg.Option(can.Option()), msg.Option(line)
|
||||
var cb = can.onaction[target.value]; return typeof cb == "function"? cb(event, can, target.value):
|
||||
can.sup.onaction.input(event, can.sup, target.value, function(msg) {
|
||||
return {type: "td", inner: value, click: function(event) { var target = event.target
|
||||
if (target.tagName == "INPUT" && target.type == "button") { var msg = can.sup.request(event)
|
||||
msg.Option(can.Option()); if (key == "value") {
|
||||
can.core.List(array, function(item, index) {
|
||||
msg.Option(item.key, item.value)
|
||||
})
|
||||
} else {
|
||||
msg.Option(line)
|
||||
}
|
||||
|
||||
var cb = can.onaction[target.name]; return typeof cb == "function"? cb(event, can, target.name):
|
||||
can.sup.onaction.input(event, can.sup, target.name, function(msg) {
|
||||
can.user.toast(can, msg.Result())
|
||||
if (can.onimport._process(can, msg)) {
|
||||
return typeof cb == "function" && cb(msg)
|
||||
}
|
||||
@ -94,6 +102,11 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
var process = msg.Option("_process") || can.Conf("feature")["_process"]
|
||||
var cb = can.onimport[process]; return typeof cb == "function" && cb(can, msg)
|
||||
},
|
||||
_inner: function(can, msg) {
|
||||
can.onappend.board(can, can.ui.display, "board", msg)
|
||||
can.onimport._board(can, msg)
|
||||
return true
|
||||
},
|
||||
_field: function(can, msg) {
|
||||
msg.Table(function(value) {
|
||||
value.inputs = can.base.Obj(msg.list&&msg.list[0]||"[]", [])
|
||||
|
7
proto.js
7
proto.js
@ -167,6 +167,13 @@ var Volcanos = shy("火山架", {cache: {}, index: 1, order: 1, pack: {}, libs:
|
||||
if (value != undefined) {var old = conf[key], res;
|
||||
conf[key] = conf_cb[key] && (res = conf_cb[key](value, old, key)) != undefined && res || value
|
||||
}
|
||||
if (conf[key] == undefined && key.indexOf(".") > 0) {
|
||||
var p = conf, ls = key.split(".")
|
||||
while (p && ls.length > 0) {
|
||||
p = p[ls[0]], ls = ls.slice(1)
|
||||
}
|
||||
return p
|
||||
}
|
||||
return conf[key] || ""
|
||||
}),
|
||||
Cache: shy("缓存器", function(name, output, data) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user