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"
|
return size + "B"
|
||||||
},
|
},
|
||||||
Time: shy("时间格式化", function(t, fmt) {var now = t? new Date(t): new Date();
|
Time: shy("时间格式化", function(t, fmt) { var now = t? new Date(t): new Date()
|
||||||
fmt = fmt || "%y-%m-%d %H:%M:%S";
|
var list = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"]
|
||||||
|
fmt = fmt || "%y-%m-%d %H:%M:%S"
|
||||||
fmt = fmt.replace("%y", now.getFullYear())
|
fmt = fmt.replace("%y", now.getFullYear())
|
||||||
fmt = fmt.replace("%m", this.Number(now.getMonth()+1, 2))
|
fmt = fmt.replace("%m", this.Number(now.getMonth()+1, 2))
|
||||||
fmt = fmt.replace("%d", this.Number(now.getDate(), 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("%H", this.Number(now.getHours(), 2))
|
||||||
fmt = fmt.replace("%M", this.Number(now.getMinutes(), 2))
|
fmt = fmt.replace("%M", this.Number(now.getMinutes(), 2))
|
||||||
fmt = fmt.replace("%S", this.Number(now.getSeconds(), 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 table = can.page.Append(can, target, "table");
|
||||||
var tr = can.page.Append(can, table, "tr", {dataset: {index: -1}});
|
var tr = can.page.Append(can, table, "tr", {dataset: {index: -1}});
|
||||||
can.core.List(list, function(key, index) {if (key.indexOf("_") == 0) {return}
|
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) {
|
can.page.Append(can, tr, "th", key.trim()).onclick = function(event) {
|
||||||
var dataset = event.target.dataset;
|
var dataset = event.target.dataset;
|
||||||
dataset["sort_asc"] = (dataset["sort_asc"] == "1") ? 0: 1;
|
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 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: [
|
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) {
|
{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]
|
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.page.Modify(can, target, {autocomplete: "off"})
|
||||||
can.require(["/plugin/input/"+pkey], function(can) {
|
can.require(["/plugin/input/"+pkey], function(can) {
|
||||||
can.onfigure._init(can, item, target, function(event) {
|
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) {
|
Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg, list, cb, target) {
|
||||||
function init() {
|
function init() { can.run({}, [], function(msg) {
|
||||||
can.onexport._init(can, msg, list, function() {
|
can.onexport._init(can, msg, msg.append, function() {
|
||||||
can.user.title(can.user.Search(can, "pod"))
|
can.run({}, ["search", "River.onaction._init"])
|
||||||
can.run(msg._event, ["search", "River.onaction._init"])
|
can.run({}, ["search", "Footer.onaction._init"])
|
||||||
can.run(msg._event, ["search", "Footer.onaction._init"])
|
|
||||||
}, target)
|
}, target)
|
||||||
}
|
}) }
|
||||||
if (location.protocol == "file:") { return init() }
|
|
||||||
can.run({}, ["check"], function(msg) { if (msg.Result()) { return init() }
|
location.protocol == "file:"? init(): can.run({}, ["check"], function(msg) {
|
||||||
can.user.login(can, init)
|
msg.Result()? init(): can.user.login(can, init)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
title: function(event, can, key) { var msg = can.request(event)
|
title: function(event, can, key) {
|
||||||
can.core.List(["pod"], function(key) { var value = can.user.Search(can, key)
|
var args = {}; can.core.List(["pod", "topic"], function(key) {
|
||||||
value != undefined && msg.Option(key, can.user.Search(can, 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)
|
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) {
|
username: function(event, can, key) {
|
||||||
if (can.user.confirm("logout?")) {
|
if (can.user.confirm("logout?")) {
|
||||||
can.user.Cookie(can, "sessid", "")
|
can.user.Cookie(can, "sessid", "")
|
||||||
@ -28,23 +32,19 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg,
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
pack: function(event, can, key) {
|
pack: function(event, can, key) {
|
||||||
var msg = can.request(event)
|
|
||||||
can.core.Item(Volcanos.meta.pack, function(key, msg) {
|
can.core.Item(Volcanos.meta.pack, function(key, msg) {
|
||||||
delete(msg._event), delete(msg._can)
|
delete(msg._event), delete(msg._can)
|
||||||
})
|
})
|
||||||
|
|
||||||
var toast = can.user.toast(can, "打包中...", "webpack", 1000000)
|
var toast = can.user.toast(can, "打包中...", "webpack", 1000000)
|
||||||
|
var msg = can.request(event)
|
||||||
msg.Option("name", "demo")
|
msg.Option("name", "demo")
|
||||||
msg.Option("content", JSON.stringify(Volcanos.meta.pack))
|
msg.Option("content", JSON.stringify(Volcanos.meta.pack))
|
||||||
can.run(event, ["pack"], function(msg) {
|
can.run(event, ["pack"], function(msg) {
|
||||||
toast.Close(), can.user.toast(can, "打包成功", "webpack")
|
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) {
|
River: function(event, can, key) {
|
||||||
can.page.Select(can, document.body, "fieldset.River", function(item) {
|
can.page.Select(can, document.body, "fieldset.River", function(item) {
|
||||||
can.page.Modify(can, item, {style: {display: item.style.display == "none"? "block": "none"}})
|
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) {
|
Volcanos("onexport", {help: "导出数据", list: [], _init: function(can, msg, list, cb, target) {
|
||||||
can.run(msg._event, [], function(msg) { can._output.innerHTML = ""
|
const USERNAME = "username"
|
||||||
can.Conf("username", msg.Option("user.nick")||msg.Option("user.name"))
|
can.Conf(USERNAME, msg.Option("user.nick")||msg.Option("user.name"))
|
||||||
if (can.Conf("username").length > 10) {
|
can.Conf(USERNAME).length > 10 && can.Conf(USERNAME, can.Conf(USERNAME).slice(0, 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],
|
can.user.title(can.user.Search(can, "pod"))
|
||||||
click: function(event) { can.onaction["title"](event, can, "title") },
|
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.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) {
|
time: function(event, can, key, target) {
|
||||||
var list = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"]
|
target.innerHTML = can.base.Time(null, "%w %H:%M:%S")
|
||||||
target.innerHTML = list[(new Date()).getDay()]+" "+can.base.Time().split(" ")[1]
|
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -59,11 +59,19 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
]}
|
]}
|
||||||
},
|
},
|
||||||
_table: function(can, value, key, index, line, array) {
|
_table: function(can, value, key, index, line, array) {
|
||||||
return {type: "td", inner: value, click: function(event) {
|
return {type: "td", inner: value, click: function(event) { var target = event.target
|
||||||
var target = event.target; if (target.tagName == "INPUT" && target.type == "button") {
|
if (target.tagName == "INPUT" && target.type == "button") { var msg = can.sup.request(event)
|
||||||
var msg = can.sup.request(event); msg.Option(can.Option()), msg.Option(line)
|
msg.Option(can.Option()); if (key == "value") {
|
||||||
var cb = can.onaction[target.value]; return typeof cb == "function"? cb(event, can, target.value):
|
can.core.List(array, function(item, index) {
|
||||||
can.sup.onaction.input(event, can.sup, target.value, function(msg) {
|
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)) {
|
if (can.onimport._process(can, msg)) {
|
||||||
return typeof cb == "function" && cb(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 process = msg.Option("_process") || can.Conf("feature")["_process"]
|
||||||
var cb = can.onimport[process]; return typeof cb == "function" && cb(can, msg)
|
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) {
|
_field: function(can, msg) {
|
||||||
msg.Table(function(value) {
|
msg.Table(function(value) {
|
||||||
value.inputs = can.base.Obj(msg.list&&msg.list[0]||"[]", [])
|
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;
|
if (value != undefined) {var old = conf[key], res;
|
||||||
conf[key] = conf_cb[key] && (res = conf_cb[key](value, old, key)) != undefined && res || value
|
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] || ""
|
return conf[key] || ""
|
||||||
}),
|
}),
|
||||||
Cache: shy("缓存器", function(name, output, data) {
|
Cache: shy("缓存器", function(name, output, data) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user