1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 16:58:06 +08:00
This commit is contained in:
harveyshao 2022-10-21 22:17:02 +08:00
parent 636f535588
commit b4fd344163
8 changed files with 40 additions and 69 deletions

View File

@ -12,8 +12,8 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg) {
meta.id && (sub._option.dataset = sub._option.dataset||{}, sub._option.dataset.id = meta.id)
sub.Mode(can.Mode()), can.page.style(can, sub._output, html.MAX_WIDTH, can.ConfWidth())
sub.run = function(event, cmds, cb) {
return can.run(sub.request(event, {width: sub.ConfWidth(), height: sub.ConfHeight()}), can.misc.concat(can, [river, storm, meta.id||meta.index], cmds), cb)
sub.run = function(event, cmds, cb) { (!cmds || cmds[0] != ctx.ACTION) && sub.request(event, {width: sub.ConfWidth(), height: sub.ConfHeight()})
return can.run(event, can.misc.concat(can, [river, storm, meta.id||meta.index], cmds), cb)
}, can._plugins = can.misc.concat(can, can._plugins, [sub])
var tabs = [{view: [html.TABS, html.DIV, meta.name], onclick: function(event) {
@ -37,7 +37,8 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg) {
}) },
_cmd: function(can, item, next) { can.onengine.signal(can, chat.ONACTION_CMD)
can.onappend.plugin(can, can.base.Copy(item, {mode: "cmd", opts: can.misc.Search(can)}), function(sub, meta, skip) {
sub.run = function(event, cmds, cb) { can.runActionCommand(can.request(event, {width: can.ConfWidth(), height: can.ConfHeight()}), sub._index, cmds, cb) }
sub.run = function(event, cmds, cb) { (!cmds || cmds[0] != ctx.ACTION) && can.request(event, {width: can.ConfWidth(), height: can.ConfHeight()})
can.runActionCommand(event, sub._index, cmds, cb) }
can._plugins = can.misc.concat(can, can._plugins, [sub])
can.user.title(meta.name), skip || next()
})

View File

@ -7,7 +7,7 @@ fieldset.inner>div.action>div.tabs { padding:5px; margin:0 1px; }
fieldset.inner>div.action>div.tabs:hover { background-color:steelblue; }
fieldset.inner>div.action>div.tabs.select { background-color:steelblue; }
fieldset.inner>div.output div.project { width:240px; }
// fieldset.inner>div.output div.project { width:240px; }
fieldset.inner>div.output td.content { position:relative; }
fieldset.inner>div.output div.content { color:white; font-size:16px; font-family:monospace; position:relative; }
fieldset.inner>div.output div.content td.line { position:sticky; left:0; text-align:right; padding:0 6px; border-right:solid 2px red; }

View File

@ -360,6 +360,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
can.onmotion.clear(can), can.page.ClassList.add(can, can._fields, code.INNER), can.onlayout.profile(can)
can.onimport._profile(can, can.ui.profile), can.onimport._display(can, can.ui.display)
if (msg.Result() == "" && can.Option(nfs.LINE) == "1") { return }
can.page.styleWidth(can, can.ui.project, 240)
can.isCmdMode() && can.ConfHeight(can.ConfHeight()+2*html.ACTION_HEIGHT)
if (msg.Option(nfs.FILE)) {

View File

@ -283,6 +283,7 @@ Volcanos(chat.ONSYNTAX, {help: "语法高亮",
"case": code.KEYWORD,
"default": code.KEYWORD,
"return": code.KEYWORD,
"debugger": code.KEYWORD,
"can": code.KEYWORD,
"sub": code.KEYWORD,

View File

@ -1,6 +1,6 @@
Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(can, target), can._display_heights = {}
can.ui = can.onlayout.profile(can), can.onmotion.hidden(can, can.ui.project), can.onmotion.hidden(can, can.ui.profile)
can.onimport.layout(can), can.onimport[can.Option("scale")||"week"](can, msg), can.Status(mdb.COUNT, msg.Length())
can.onimport.layout(can), can.onimport[can.Option("scale")||"week"](can, msg)
},
_content: function(can, msg, head, list, key, get, set) { var begin_time = can.base.Date(can.Option("begin_time"))
var hash = {}; msg.Table(function(value, index) { var k = key(can.base.Date(value.begin_time)); hash[k] = (hash[k]||[]).concat([value]) })
@ -12,7 +12,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(
return can.onimport._task(can, msg, get(begin_time, col, row, hash), set(begin_time, col, row))
})}
}) }]); if (!can.sup.task) { return }
can.onmotion.delay(can, function() { var target = can.sup.task._target; target && target.click() })
can.onmotion.delay(can, function() { var target = can.sup.task._target; target && target.click(), can.Status(mdb.COUNT, msg.Length()) })
},
_task: function(can, msg, list, time) { return {text: ["", html.TD],
ondblclick: function(event) { can.onaction.insertTask(event, can, time+can.base.Time(null, "%y-%m-%d %H:%M:%S").slice(time.length)) },
@ -23,7 +23,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(
ondragstart: function(event) { var target = event.target; can.drop = function(event, td, time) { td.append(target)
can.onaction.modifyTask(event, can, task, "begin_time", time+task.begin_time.slice(time.length), task.begin_time)
} }, draggable: time != undefined, title: can.onexport.title(can, task), _init: function(target) {
var item = can.onimport.item(can, {nick: task.name+":"+task.text}, function() { can.onmotion.delay(can, function() {
var item = can.onimport.item(can, {nick: task.name+ice.DF+task.text}, function() { can.onmotion.delay(can, function() {
can.onmotion.select(can, can.ui.content, html.TD, target.parentNode), can.onimport._profile(can, task)
}) }, null, can.ui.project); task._target = target, target.onclick = function(event) { item.click() }
can.sup.task = can.sup.task||task, can.sup.task.zone == task.zone && can.sup.task.id == task.id && (can.sup.task._target = target)
@ -47,17 +47,16 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(
can.onaction.modifyTask(event, can, task, key, value)
}, {name: key, action: key.indexOf(mdb.TIME) > 0? "date": "key", mode: "simple"})
},
}]) }), can.onimport.layout(can), can.onimport._display(can, task)
}]) }), can.onimport.layout(can)
task["extra.index"] && can.onimport._display(can, task)
},
_display: function(can, task) { if (!task["extra.index"]) { return }
_display: function(can, task) { can.onmotion.toggle(can, can.ui.display, true)
can.onappend.plugin(can, {type: "plug", index: task["extra.index"], args: task["extra.args"], height: can.ConfHeight()/2-2*html.ACTION_HEIGHT}, function(sub, meta) {
sub.run = function(event, cmds, cb) {
can.runAction(can.request(event, kit.Dict("task.pod", task.pod, "task.zone", task.zone, "task.id", task.id)), ice.RUN, [task[mdb.ZONE], task[mdb.ID]].concat(cmds), cb)
sub.run = function(event, cmds, cb) { can.request(event, kit.Dict("task.pod", task.pod, "task.zone", task.zone, "task.id", task.id))
can.runAction(event, ice.RUN, [task[mdb.ZONE], task[mdb.ID]].concat(cmds), cb)
}, can._plugins_display = (can._plugins_display||[]).concat([sub])
sub.onaction._output = function() {
can._display_heights[[task.zone, task.id].join(ice.FS)] = can.base.Max(sub._output.offsetHeight+html.ACTION_HEIGHT+sub.onexport.statusHeight(sub), can.ConfHeight()/2)
can.onmotion.toggle(can, can.ui.display, true)
can.onimport.layout(can)
can._display_heights[[task.zone, task.id].join(ice.FS)] = can.base.Max(sub._output.offsetHeight+html.ACTION_HEIGHT+sub.onexport.statusHeight(sub), can.ConfHeight()/2), can.onimport.layout(can)
}, sub.onaction.close = function() { can.onmotion.toggle(can, can.ui.display), can.onimport.layout(can) }
}, can.ui.display)
},
@ -113,7 +112,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(
},
layout: function(can) {
if (can.isCmdMode()) { can.page.styleHeight(can, can._output, can.ConfHeight())
var height = can._display_heights[can.sup.task? [can.sup.task.zone, can.sup.task.id].join(ice.FS): ""]||html.ACTION_HEIGHT
var height = can._display_heights[can.sup.task? [can.sup.task.zone, can.sup.task.id].join(ice.FS): ""]||200
if (can.ui.display.innerHTML && can.ui.display.style.display != html.NONE) {
can.page.style(can, can.ui.content, html.HEIGHT, can.ConfHeight()-height)
} else {
@ -146,50 +145,25 @@ Volcanos(chat.ONACTION, {list: [mdb.PREV, mdb.NEXT, mdb.INSERT, mdb.EXPORT, mdb.
can.runAction(event, mdb.INSERT, [mdb.ZONE, args[1], "begin_time", time].concat(args))
})
},
modifyTask: function(event, can, task, key, value) {
can.runAction(can.request(event, task, can.Option()), mdb.MODIFY, [key, value], function() { can.Update() })
},
modifyTask: function(event, can, task, key, value) { can.runAction(can.request(event, task, can.Option()), mdb.MODIFY, [key, value], function() { can.Update() }) },
_filter: function(event, can, key, value) { var count = 0
if (value == "all") {
can.page.Select(can, can.ui.content, html.DIV_ITEM, function(item) {
can.page.ClassList.del(can, item, html.HIDE), count++
})
can.page.Select(can, can.ui.content, html.DIV_ITEM, function(item) { can.page.ClassList.del(can, item, html.HIDE), count++ })
} else {
can.page.Select(can, can.ui.content, html.DIV_ITEM, function(item) {
can.page.ClassList.add(can, item, html.HIDE)
})
can.page.Select(can, can.ui.content, can.core.Keys(html.DIV, value), function(item) {
can.page.ClassList.del(can, item, html.HIDE), count++
})
}
can.Action(key, value), can.Status(mdb.COUNT, count)
can.page.Select(can, can.ui.content, html.DIV_ITEM, function(item) { can.page.ClassList.add(can, item, html.HIDE) })
can.page.Select(can, can.ui.content, can.core.Keys(html.DIV, value), function(item) { can.page.ClassList.del(can, item, html.HIDE), count++ })
} can.Action(key, value), can.Status(mdb.COUNT, count)
},
status: function(event, can, key, value) { can.onaction._filter(event, can, key, value) },
level: function(event, can, key, value) { can.onaction._filter(event, can, key, value) },
score: function(event, can, key, value) { can.onaction._filter(event, can, key, value) },
view: function(event, can, key, value) { can.Action(key, value)
can.onmotion.clear(can, can.ui.project), can.onmotion.clear(can, can.ui.content)
can.onimport[can.Option("scale")](can, can._msg)
},
level: function(event, can, key, value) { value && can.onaction._filter(event, can, key, value) },
score: function(event, can, key, value) { value && can.onaction._filter(event, can, key, value) },
view: function(event, can, key, value) { can.Action(key, value), can.onmotion.clear(can, can.ui.project), can.onmotion.clear(can, can.ui.content), can.onimport[can.Option("scale")](can, can._msg) },
})
Volcanos(chat.ONEXPORT, {list: [mdb.COUNT, "begin_time", mdb.ZONE, mdb.ID, mdb.TYPE, mdb.NAME, mdb.TEXT],
span: function(can) {
switch (can.Option("scale")) {
case "day": return 24*3600*1000
case "week": return 7*24*3600*1000
case "month": return 30*24*3600*1000
case "year": return 365*24*3600*1000
case "long": return 365*24*3600*1000
default: return 0
}
},
hash: function(can, task) { if (!can.isCmdMode()) { return }
location.hash = [task.zone, task.id].join(ice.FS)
},
head: function(can, scale) { if (["year", "long"].indexOf(scale) > -1) { return }
return [scale].concat(can.user.info.language == "en"? ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"]);
},
span: function(can) { return {"day": 24*3600*1000, "week": 7*24*3600*1000, "month": 30*24*3600*1000, "year": 365*24*3600*1000, "long": 365*24*3600*1000}[can.Option("scale")]||0 },
hash: function(can, task) { if (!can.isCmdMode()) { return } location.hash = [task.zone, task.id].join(ice.FS) },
head: function(can, scale) { if (["year", "long"].indexOf(scale) > -1) { return } return [scale].concat(can.user.info.language == "en"? ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"]); },
name: function(can, task) { return task.name },
text: function(can, task) { return task.name+": "+(task.text||"") },
level: function(can, task) { return "l-"+(task.level||3)+": "+(task.name||"") },

View File

@ -1,5 +1,6 @@
fieldset.word form.option input[name=path] { width:127px; }
fieldset.word>form.option>div.item>input[name=path] { width:320px; }
body.webview fieldset.word>form.option>div.item>input[name=path] { width:160px; }
fieldset.word>div.navmenu { background-color:inherit; overflow:auto; min-width:120px; clear:both; float:left; }
fieldset.word>div.navmenu div.list { margin-left:20px; }

View File

@ -1,23 +1,19 @@
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
can.onmotion.clear(can), can.base.isFunc(cb) && cb(msg)
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) { can.onmotion.clear(can)
var color = [cli.RED, cli.YELLOW, cli.GREEN, cli.CYAN, cli.BLUE, cli.PURPLE]
var color = ["#3300FF", "#2196F3", "#4CAF50", "#CDDC39", "#FFEB3B", "#9C27B0", "#795548", "#607D8B", "#CC33FF"]
var height = msg.Option(html.HEIGHT)||can.ConfHeight()
can.page.ClassList.add(can, can._fields, "draw")
can.require(["/plugin/local/wiki/draw.js", "/plugin/local/wiki/draw/path.js"], function() {
can.onimport._show(can, msg), can.onappend._status(can, [].concat(msg.append, ["weight"]))
can.page.ClassList.add(can, can._fields, "draw"), can.onmotion.hidden(can, can._action)
can.require(["/plugin/local/wiki/draw.js", "/plugin/local/wiki/draw/path.js"], function() { can.onimport._show(can, msg)
var margin = height/8, r = height/2-margin; can.svg.Val(html.WIDTH, 2*(r+margin)), can.svg.Val(html.HEIGHT, 2*(r+margin))
can.onimport._draw(can, msg, can.Conf(mdb.FIELD), color, r+margin, r+margin, r, margin, 0)
can.page.style(can, can.ui.project, html.MAX_WIDTH, can.ConfWidth()-height)
can.onmotion.clear(can, can.ui.project), can.onmotion.toggle(can, can.ui.project, true)
can.onappend.table(can, msg, null, can.ui.project), can.page.Select(can, can.ui.project, html.TR, function(tr, index) {
can.page.Modify(can, tr, {onmouseenter: function(event) {
can.onimport._draw(can, msg, can.Conf(mdb.FIELD), color, r+margin, r+margin, r, margin, index-1)
}})
can.page.Modify(can, tr, {onmouseenter: function(event) { can.onimport._draw(can, msg, can.Conf(mdb.FIELD), color, r+margin, r+margin, r, margin, index-1) }})
})
can.base.isFunc(cb) && cb(msg), can.onappend._status(can, [].concat(msg.append, ["weight"]))
})
},
_draw: function(can, msg, field, color, x, y, r, margin, which) { field = field||mdb.VALUE

View File

@ -1,12 +1,9 @@
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) { can.onmotion.clear(can)
can.data = msg.Table(), can.onimport._sum(can)
can.Action(html.HEIGHT, msg.Option(html.HEIGHT)||ice.AUTO)
can.Action(html.SPEED, parseInt(msg.Option(html.SPEED)||"100"))
can.page.ClassList.add(can, can._fields, "draw")
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
can.onmotion.clear(can), can.page.ClassList.add(can, can._fields, "draw")
can.require(["/plugin/local/wiki/draw.js", "/plugin/local/wiki/draw/path.js"], function() {
can.base.isFunc(cb) && cb(msg)
can.onimport.layout(can)
can.base.isFunc(cb) && cb(msg)
can.data = msg.Table(), can.onimport._sum(can)
can.base.isFunc(cb) && cb(msg), can.onimport.layout(can), can.base.isFunc(cb) && cb(msg)
can.data = msg.Table(), can.onimport._sum(can)
})
},
_sum: function(can) {