mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 16:58:06 +08:00
add macosx
This commit is contained in:
parent
6e497a4e98
commit
0e50b34b2f
39
frame.js
39
frame.js
@ -145,7 +145,9 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
msg.RunAction(event, can.core.Value(sub, chat._OUTPUTS_CURRENT), [ctx.ACTION, button]) || msg.RunAction(event, sub, [ctx.ACTION, button]) || sub.runAction(event, button)
|
msg.RunAction(event, can.core.Value(sub, chat._OUTPUTS_CURRENT), [ctx.ACTION, button]) || msg.RunAction(event, sub, [ctx.ACTION, button]) || sub.runAction(event, button)
|
||||||
}) })
|
}) })
|
||||||
}), can.base.isFunc(cb) && cb(sub)
|
}), can.base.isFunc(cb) && cb(sub)
|
||||||
|
sub.isCmdMode() && can.onappend.style(sub, can.misc.Search(can, ctx.STYLE))
|
||||||
if (can.user.isMobile && !can.user.isLandscape()) { return }
|
if (can.user.isMobile && !can.user.isLandscape()) { return }
|
||||||
|
if (can.page.ClassList.has(can, sub._target, html.OUTPUT)) { return }
|
||||||
sub.isCmdMode() && !can.base.isIn(meta.index, web.CODE_VIMER, web.CODE_INNER, web.WIKI_WORD) && can.page.insertBefore(can, can.user.header(can), sub._output, sub._fields)
|
sub.isCmdMode() && !can.base.isIn(meta.index, web.CODE_VIMER, web.CODE_INNER, web.WIKI_WORD) && can.page.insertBefore(can, can.user.header(can), sub._output, sub._fields)
|
||||||
}); return sub
|
}); return sub
|
||||||
},
|
},
|
||||||
@ -211,7 +213,13 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
}), item), "", action)
|
}), item), "", action)
|
||||||
}), meta
|
}), meta
|
||||||
},
|
},
|
||||||
_output0: function(can, meta, event, cmds, cb, silent) { var msg = can.request(event); if (msg.RunAction(event, can, cmds)) { return }
|
_output0: function(can, meta, event, cmds, cb, silent) {
|
||||||
|
var msg = can.request(event)
|
||||||
|
if (msg.Option(ice.MSG_HANDLE) != ice.TRUE && cmds && cmds[0] == ctx.ACTION) {
|
||||||
|
var sub = can.core.Value(can, chat._OUTPUTS_CURRENT)
|
||||||
|
if (msg.RunAction(event, sub, cmds)) { return }
|
||||||
|
}
|
||||||
|
if (msg.RunAction(event, can, cmds)) { return }
|
||||||
if (msg.Option(ice.MSG_HANDLE) != ice.TRUE && cmds && cmds[0] == ctx.ACTION && meta.feature[cmds[1]]) { var msg = can.request(event, {action: cmds[1]})
|
if (msg.Option(ice.MSG_HANDLE) != ice.TRUE && cmds && cmds[0] == ctx.ACTION && meta.feature[cmds[1]]) { var msg = can.request(event, {action: cmds[1]})
|
||||||
var action = meta.feature[cmds[1]]; if (can.base.isFunc(action)) { cb = cb||function() { can.Update() }
|
var action = meta.feature[cmds[1]]; if (can.base.isFunc(action)) { cb = cb||function() { can.Update() }
|
||||||
return action.list && action.list.length > 0? can.user.input(event, can, action.list, function(data) {
|
return action.list && action.list.length > 0? can.user.input(event, can, action.list, function(data) {
|
||||||
@ -244,7 +252,6 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
can.core.CallFunc([sub, chat.ONIMPORT, chat._INIT], {can: sub, msg: msg, cb: function(msg) {
|
can.core.CallFunc([sub, chat.ONIMPORT, chat._INIT], {can: sub, msg: msg, cb: function(msg) {
|
||||||
action === false || can.onmotion.clear(can, can._action), sub.onappend._action(sub, can.Conf(ice.MSG_ACTION)||msg.Option(ice.MSG_ACTION), action||can._action)
|
action === false || can.onmotion.clear(can, can._action), sub.onappend._action(sub, can.Conf(ice.MSG_ACTION)||msg.Option(ice.MSG_ACTION), action||can._action)
|
||||||
action === false || sub.onappend._status(sub, sub.onexport&&sub.onexport.list||msg.Option(ice.MSG_STATUS)), can.user.isMobile || sub.onappend.tools(sub, msg)
|
action === false || sub.onappend._status(sub, sub.onexport&&sub.onexport.list||msg.Option(ice.MSG_STATUS)), can.user.isMobile || sub.onappend.tools(sub, msg)
|
||||||
// can.isCmdMode() && can.onappend.style(can, can.misc.Search(can, ctx.STYLE), can._target)
|
|
||||||
can.page.style(can, can._output, html.HEIGHT, "", html.WIDTH, ""), can.onappend.style(sub, sub.Conf(ctx.STYLE))
|
can.page.style(can, can._output, html.HEIGHT, "", html.WIDTH, ""), can.onappend.style(sub, sub.Conf(ctx.STYLE))
|
||||||
if (can.isFullMode() || can.isCmdMode()) { can.onimport.size(can, can.page.height(), can.page.width(), true) }
|
if (can.isFullMode() || can.isCmdMode()) { can.onimport.size(can, can.page.height(), can.page.width(), true) }
|
||||||
can.onmotion.story.auto(can, can._output), can.onexport.output(can, msg), can.base.isFunc(cb) && cb(msg)
|
can.onmotion.story.auto(can, can._output), can.onexport.output(can, msg), can.base.isFunc(cb) && cb(msg)
|
||||||
@ -359,6 +366,22 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
item.style && can.onappend.style(can, item.style, target)
|
item.style && can.onappend.style(can, item.style, target)
|
||||||
}}])[item.name]; return _input
|
}}])[item.name]; return _input
|
||||||
},
|
},
|
||||||
|
scroll: function(can, target, offset, length) { if (target.scrollHeight/target.offsetHeight == 1) { return }
|
||||||
|
if (offset) { var ui = can.page.Append(can, target, [{view: "scrollbar", style: {height: length*target.offsetHeight*2}}])
|
||||||
|
target.addEventListener("scroll", function(event) { can.page.style(can, ui.scrollbar, html.TOP, target.scrollTop+offset*target.offsetHeight, html.RIGHT, -target.scrollLeft) })
|
||||||
|
return ui.scrollbar
|
||||||
|
}
|
||||||
|
var ui = can.page.Append(can, target, [{view: "scrollbar", style: {height: target.offsetHeight*target.offsetHeight/target.scrollHeight},
|
||||||
|
onmousedown: function(event) { var begin = {top: target.scrollTop, y: event.y}
|
||||||
|
window._scroll = function(event) { target.scrollTop = begin.top+(event.y-begin.y)/target.offsetHeight*target.scrollHeight, can.onkeymap.prevent(event) }
|
||||||
|
},
|
||||||
|
}])
|
||||||
|
target.addEventListener("scroll", function(event) { can.onmotion.delayOnce(can, function() { can.page.style(can, ui.scrollbar, "visibility", "visible")
|
||||||
|
can.page.style(can, ui.scrollbar, html.TOP, target.scrollTop+target.scrollTop/target.scrollHeight*target.offsetHeight, html.RIGHT, -target.scrollLeft)
|
||||||
|
can.onmotion.delayOnce(can, function() { can.page.style(can, ui.scrollbar, "visibility", "hidden") }, 3000, target._delay_scroll = target._delay_scroll||[])
|
||||||
|
}, 0, target._delay_scroll = target._delay_scroll||[]) })
|
||||||
|
return ui.scrollbar
|
||||||
|
},
|
||||||
select: function(can, select, item) { var carte
|
select: function(can, select, item) { var carte
|
||||||
return can.page.Append(can, select.parentNode, [{type: html.INPUT, data: {className: html.SELECT, type: html.BUTTON, name: item.name, value: item.value||item.values[0], title: item.name}, onclick: function(event) { var target = event.target
|
return can.page.Append(can, select.parentNode, [{type: html.INPUT, data: {className: html.SELECT, type: html.BUTTON, name: item.name, value: item.value||item.values[0], title: item.name}, onclick: function(event) { var target = event.target
|
||||||
if (carte) { return carte.close(), carte = null } carte = can.user.carte(event, can, {}, item.values, function(event, button) { carte = null; if (target.value == button) { return }
|
if (carte) { return carte.close(), carte = null } carte = can.user.carte(event, can, {}, item.values, function(event, button) { carte = null; if (target.value == button) { return }
|
||||||
@ -467,7 +490,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
},
|
},
|
||||||
_float: function(can, index, args, cb) { can.onappend.plugin(can, {index: index, args: args, mode: chat.FLOAT}, function(sub) {
|
_float: function(can, index, args, cb) { can.onappend.plugin(can, {index: index, args: args, mode: chat.FLOAT}, function(sub) {
|
||||||
can.getActionSize(function(left, top, width, height) { var offset = can.user.isMobile? 0: height/4
|
can.getActionSize(function(left, top, width, height) { var offset = can.user.isMobile? 0: height/4
|
||||||
sub.onimport.size(sub, sub.ConfHeight(height-offset)-html.ACTION_HEIGHT, sub.ConfWidth(can.base.Max(width, 800)), true)
|
sub.onimport.size(sub, sub.ConfHeight(height-offset), sub.ConfWidth(width*3/4), true)
|
||||||
can.onmotion.move(can, sub._target, {left: left||0, top: (top||0)+offset}), can.base.isFunc(cb) && cb(sub)
|
can.onmotion.move(can, sub._target, {left: left||0, top: (top||0)+offset}), can.base.isFunc(cb) && cb(sub)
|
||||||
}), sub.onaction.close = function() { can.page.Remove(can, sub._target) }
|
}), sub.onaction.close = function() { can.page.Remove(can, sub._target) }
|
||||||
}, can._root._target) },
|
}, can._root._target) },
|
||||||
@ -609,11 +632,9 @@ Volcanos(chat.ONMOTION, {_init: function(can, target) {
|
|||||||
}) }) },
|
}) }) },
|
||||||
delayLong: function(can, cb, interval, key) { can.onmotion.delay(can, cb, interval||300, key) },
|
delayLong: function(can, cb, interval, key) { can.onmotion.delay(can, cb, interval||300, key) },
|
||||||
delayOnce: function(can, cb, interval, list) {
|
delayOnce: function(can, cb, interval, list) {
|
||||||
if (!list) {
|
if (!list) { var call = can.misc.fileLine(2), _call = "_delay_"+call.file+call.line; list = can[_call] = can[_call]||{} }
|
||||||
var call = can.misc.fileLine(2), _call = "_delay_"+call.file+call.line
|
can.core.Item(list, function(key) { clearTimeout(list[key]._timer), delete(list[key]) })
|
||||||
list = can[_call] = can[_call]||{}
|
var key = can.base.Time(null, "%H:%M:%S.%s"); list[key] = {}, list[key] = can.onmotion.delay(can, function() { list[key] && cb() }, interval)||{}
|
||||||
} can.core.Item(list, function(key) { delete(list[key]) })
|
|
||||||
var key = can.base.Time(null, "%H:%M:%S.%s"); can.onmotion.delay(can, list[key] = function() { list[key] && cb() }, interval)
|
|
||||||
},
|
},
|
||||||
delay: function(can, cb, interval, key) {
|
delay: function(can, cb, interval, key) {
|
||||||
if (!key) {
|
if (!key) {
|
||||||
@ -624,7 +645,7 @@ Volcanos(chat.ONMOTION, {_init: function(can, target) {
|
|||||||
}
|
}
|
||||||
can._delay_list = can._delay_list||shy({}, [])
|
can._delay_list = can._delay_list||shy({}, [])
|
||||||
var last = can._delay_list.meta[key]||0, self = can._delay_list.meta[key] = can._delay_list.list.push(cb)
|
var last = can._delay_list.meta[key]||0, self = can._delay_list.meta[key] = can._delay_list.list.push(cb)
|
||||||
can.core.Timer(interval||30, function() { cb(self, last, can._delay_list.meta[key]) })
|
return can.core.Timer(interval||30, function() { cb(self, last, can._delay_list.meta[key]) })
|
||||||
},
|
},
|
||||||
clear: function(can, target) { return can.page.Modify(can, target||can._output, ""), target },
|
clear: function(can, target) { return can.page.Modify(can, target||can._output, ""), target },
|
||||||
cache: function(can, next) { var list = can.base.getValid(can.base.Obj(can.core.List(arguments).slice(2)), [can._output])
|
cache: function(can, next) { var list = can.base.getValid(can.base.Obj(can.core.List(arguments).slice(2)), [can._output])
|
||||||
|
@ -231,7 +231,7 @@ div.layout.flex>* { float:left; clear:none; }
|
|||||||
div.output { position:relative; }
|
div.output { position:relative; }
|
||||||
fieldset.story { clear:both; }
|
fieldset.story { clear:both; }
|
||||||
div.tabs { position:relative; }
|
div.tabs { position:relative; }
|
||||||
div.tabs span.icon { visibility:hidden; }
|
div.tabs span.icon { margin-left:5px; visibility:hidden; }
|
||||||
div.tabs span.icon:hover { background-color:aliceblue; color:black; }
|
div.tabs span.icon:hover { background-color:aliceblue; color:black; }
|
||||||
div.tabs>div:hover span.icon { visibility:visible; }
|
div.tabs>div:hover span.icon { visibility:visible; }
|
||||||
div.action>div.tabs:hover span.icon { visibility:visible; }
|
div.action>div.tabs:hover span.icon { visibility:visible; }
|
||||||
@ -390,6 +390,7 @@ fieldset.plugin.parse.cmd>legend { display:none; }
|
|||||||
fieldset.plugin.parse.cmd>form.option { display:none; }
|
fieldset.plugin.parse.cmd>form.option { display:none; }
|
||||||
fieldset.plugin.parse.cmd>div.action { display:none; }
|
fieldset.plugin.parse.cmd>div.action { display:none; }
|
||||||
fieldset.plugin.parse.cmd>div.status { display:none; }
|
fieldset.plugin.parse.cmd>div.status { display:none; }
|
||||||
|
fieldset.inner.float>div.status { display:none; }
|
||||||
fieldset.plan div.output div.content>table.content { height:100%; width:100%; }
|
fieldset.plan div.output div.content>table.content { height:100%; width:100%; }
|
||||||
fieldset.xterm div.layout div.output { border-left:gray solid 1px; border-top:gray solid 1px; }
|
fieldset.xterm div.layout div.output { border-left:gray solid 1px; border-top:gray solid 1px; }
|
||||||
fieldset.xterm div.layout div.output.select { border:blue solid 1px; }
|
fieldset.xterm div.layout div.output.select { border:blue solid 1px; }
|
||||||
@ -404,6 +405,8 @@ fieldset.web.chat.iframe>div.output { overflow:hidden; }
|
|||||||
fieldset.qrcode>div.output div.code { padding:0; }
|
fieldset.qrcode>div.output div.code { padding:0; }
|
||||||
fieldset.can.view { font-size:14px; }
|
fieldset.can.view { font-size:14px; }
|
||||||
fieldset.can.data { font-size:14px; }
|
fieldset.can.data { font-size:14px; }
|
||||||
|
div.scrollbar { background-color:#0000ff66; width:10px; position:absolute; right:0; top:0; transition:width .3s 1s; visibility:hidden; }
|
||||||
|
div.scrollbar:hover { width:50px; transition:width .1s;}
|
||||||
body.en fieldset.input.date.float>div.action>div.item.select { margin:0 5px; }
|
body.en fieldset.input.date.float>div.action>div.item.select { margin:0 5px; }
|
||||||
body.en fieldset.input.date.float>div.action>div.item.select select { width:60px; }
|
body.en fieldset.input.date.float>div.action>div.item.select select { width:60px; }
|
||||||
body.en fieldset.input.date.float>div.action>div.item.select.year select { width:106px; }
|
body.en fieldset.input.date.float>div.action>div.item.select.year select { width:106px; }
|
||||||
|
@ -120,6 +120,6 @@ Volcanos("core", {
|
|||||||
typeof cbs == lang.FUNCTION && cbs(timer, interval): setTimeout(function() { loop(i+1) }, interval.interval||interval[i+1])
|
typeof cbs == lang.FUNCTION && cbs(timer, interval): setTimeout(function() { loop(i+1) }, interval.interval||interval[i+1])
|
||||||
} interval = typeof interval == lang.OBJECT? interval: [interval]; if (interval.interval == 0) { return cb(), timer }
|
} interval = typeof interval == lang.OBJECT? interval: [interval]; if (interval.interval == 0) { return cb(), timer }
|
||||||
var delay = interval.delay||interval.interval/2||interval[0]
|
var delay = interval.delay||interval.interval/2||interval[0]
|
||||||
return typeof cb == lang.FUNCTION && setTimeout(function() { loop(0) }, delay), timer
|
return typeof cb == lang.FUNCTION && (timer._timer = setTimeout(function() { loop(0) }, delay)), timer
|
||||||
}),
|
}),
|
||||||
})
|
})
|
||||||
|
@ -120,7 +120,7 @@ Volcanos("user", {
|
|||||||
can.onaction && can.onaction[button] && can.core.CallFunc([can.onaction, button], [event, can, button])
|
can.onaction && can.onaction[button] && can.core.CallFunc([can.onaction, button], [event, can, button])
|
||||||
meta._style == nfs.PATH || can.onmotion.clearCarte(can)
|
meta._style == nfs.PATH || can.onmotion.clearCarte(can)
|
||||||
}) } function remove_sub(carte) { carte._sub && can.page.Remove(can, carte._sub._target), delete(carte._sub) }
|
}) } function remove_sub(carte) { carte._sub && can.page.Remove(can, carte._sub._target), delete(carte._sub) }
|
||||||
var ui = can.page.Append(can, document.body, [{view: [[chat.CARTE, meta._style||"", chat.FLOAT]], list: can.core.List(list, function(item, index) {
|
var ui = can.page.Append(can, document.body, [{view: [[chat.CARTE, meta._style||can.base.replaceAll(can._index||"", nfs.PT, lex.SP)||"", chat.FLOAT]], list: can.core.List(list, function(item, index) {
|
||||||
if (item == web.FILTER) {
|
if (item == web.FILTER) {
|
||||||
return {input: [html.FILTER, function(event) { if (event.key == lang.ESCAPE) { return carte.close() } can.onkeymap.selectItems(event, can, carte._target) }],
|
return {input: [html.FILTER, function(event) { if (event.key == lang.ESCAPE) { return carte.close() } can.onkeymap.selectItems(event, can, carte._target) }],
|
||||||
_init: function(target) { can.onmotion.delay(can, function() { target.placeholder = "search in "+(can.core.List(list, function(item) { if (item) { return item } }).length-1)+" items", target.focus() }) }
|
_init: function(target) { can.onmotion.delay(can, function() { target.placeholder = "search in "+(can.core.List(list, function(item) { if (item) { return item } }).length-1)+" items", target.focus() }) }
|
||||||
|
@ -68,17 +68,14 @@ body.black fieldset.inner>div.output div.content td.text span.string { color:mag
|
|||||||
body.black fieldset.inner>div.output div.content td.text span.object { color:cyan; }
|
body.black fieldset.inner>div.output div.content td.text span.object { color:cyan; }
|
||||||
body.white fieldset.inner.cmd>div.output { background-color:aliceblue; }
|
body.white fieldset.inner.cmd>div.output { background-color:aliceblue; }
|
||||||
body.white fieldset.inner.cmd>div.output div.content { background-color:white; }
|
body.white fieldset.inner.cmd>div.output div.content { background-color:white; }
|
||||||
body.white fieldset.inner.cmd>div.output>div.layout>div.tabs div.select { background-color:white; }
|
body.white fieldset.inner.cmd>div.output>div.layout>div.tabs div:not(.select):not(:hover) { background-color:white; }
|
||||||
body.white fieldset.inner.cmd>div.output>div.layout>div.tabs div:hover { background-color:white; }
|
|
||||||
body.white fieldset.inner.cmd>div.output>div.layout>div.path { background-color:white; }
|
body.white fieldset.inner.cmd>div.output>div.layout>div.path { background-color:white; }
|
||||||
body.white fieldset.inner>div.output div.content tr:hover { background-color:aliceblue; }
|
body.white fieldset.inner>div.output div.content tr:hover { background-color:aliceblue; }
|
||||||
body.white fieldset.inner>div.output div.content tr.select { background-color:aliceblue; }
|
body.white fieldset.inner>div.output div.content tr.select { background-color:aliceblue; }
|
||||||
body.white fieldset.inner>div.output div.content tr.select td.line { background-color:steelblue; color:white; }
|
body.white fieldset.inner>div.output div.content tr.select td.line { background-color:steelblue; color:white; }
|
||||||
|
|
||||||
body.white fieldset.inner.cmd>div.output { background-color:transparent; }
|
body.white fieldset.inner.cmd>div.output { background-color:transparent; }
|
||||||
body.white fieldset.inner.cmd>div.output div.content { background-color:transparent; }
|
body.white fieldset.inner.cmd>div.output div.content { background-color:transparent; }
|
||||||
body.white fieldset.inner.cmd>div.output>div.layout>div.path { background-color:transparent; }
|
body.white fieldset.inner.cmd>div.output>div.layout>div.path { background-color:transparent; }
|
||||||
|
|
||||||
body.mobile fieldset.inner>form.option input[name=file] { width:90px; }
|
body.mobile fieldset.inner>form.option input[name=file] { width:90px; }
|
||||||
body.mobile fieldset.word fieldset.inner>form.option input[type=text] { display:none; }
|
body.mobile fieldset.word fieldset.inner>form.option input[type=text] { display:none; }
|
||||||
body.windows fieldset.inner>div.output { overflow:hidden; }
|
body.windows fieldset.inner>div.output { overflow:hidden; }
|
||||||
@ -94,4 +91,6 @@ tr.line>td.line { text-align:right; padding:0 10px; position:sticky; left:0; }
|
|||||||
tr.line>td.text { line-height:20px; white-space:pre; padding-left:10px; width:100%; cursor:text; }
|
tr.line>td.text { line-height:20px; white-space:pre; padding-left:10px; width:100%; cursor:text; }
|
||||||
tr.line.delete { background-color:#ff000036; color:gray; }
|
tr.line.delete { background-color:#ff000036; color:gray; }
|
||||||
tr.line.insert { background-color:#00800036; }
|
tr.line.insert { background-color:#00800036; }
|
||||||
|
div.scrollbar.insert { background-color:#00800036; width:30px; visibility:visible; }
|
||||||
|
div.scrollbar.delete { background-color:#ff000036; width:30px; visibility:visible; }
|
||||||
fieldset.inner>div.output>div.project div.item.modify { background-color:#00800036; }
|
fieldset.inner>div.output>div.project div.item.modify { background-color:#00800036; }
|
@ -289,6 +289,7 @@ Volcanos(chat.ONSYNTAX, {_init: function(can, msg, cb) { var key = can.onexport.
|
|||||||
if (msg.Length() > 0) { can.onsyntax._change(can, msg), can.onaction.rerankLine(can, "tr.line:not(.delete)>td.line")
|
if (msg.Length() > 0) { can.onsyntax._change(can, msg), can.onaction.rerankLine(can, "tr.line:not(.delete)>td.line")
|
||||||
can.page.Select(can, content, "tr.line.delete>td.line", function(target) { target.innerHTML = "" })
|
can.page.Select(can, content, "tr.line.delete>td.line", function(target) { target.innerHTML = "" })
|
||||||
} else { can.core.List(msg.Result().split(lex.NL), function(item) { can.onaction.appendLine(can, item) }) }
|
} else { can.core.List(msg.Result().split(lex.NL), function(item) { can.onaction.appendLine(can, item) }) }
|
||||||
|
can.onmotion.delay(can, function() { can.onappend.scroll(can, can.ui.content) })
|
||||||
can.onengine.signal(can, VIEW_CREATE, msg), can.base.isFunc(cb) && cb(msg._content = content._root? content._root: content)
|
can.onengine.signal(can, VIEW_CREATE, msg), can.base.isFunc(cb) && cb(msg._content = content._root? content._root: content)
|
||||||
} can.require(["inner/syntax.js"], function() { var parse = can.onexport.parse(can); can.Conf(chat.PLUG) && (can.onsyntax[parse] = can.Conf(chat.PLUG))
|
} can.require(["inner/syntax.js"], function() { var parse = can.onexport.parse(can); can.Conf(chat.PLUG) && (can.onsyntax[parse] = can.Conf(chat.PLUG))
|
||||||
var p = can.onsyntax[parse]; !p? can.runAction({}, mdb.PLUGIN, [parse, file, path], function(msg) { show(p = can.onsyntax[parse] = can.base.Obj(msg.Result()||"{}")) }): show(p)
|
var p = can.onsyntax[parse]; !p? can.runAction({}, mdb.PLUGIN, [parse, file, path], function(msg) { show(p = can.onsyntax[parse] = can.base.Obj(msg.Result()||"{}")) }): show(p)
|
||||||
@ -335,18 +336,22 @@ Volcanos(chat.ONSYNTAX, {_init: function(can, msg, cb) { var key = can.onexport.
|
|||||||
}).join("")); return line
|
}).join("")); return line
|
||||||
},
|
},
|
||||||
_change: function(can, msg) { var _delete = [], _insert = [], deletes = [], inserts = []
|
_change: function(can, msg) { var _delete = [], _insert = [], deletes = [], inserts = []
|
||||||
|
function scroll(item, type, length, index) {
|
||||||
|
var tr = can.onaction.appendLine(can, item); can.onappend.style(can, type, tr)
|
||||||
|
if (index > 0) { return }
|
||||||
|
|
||||||
|
var line = can.onexport.line(can, tr)||can.onexport.line(can, tr.previousSibling)
|
||||||
|
can.onmotion.delay(can, function() {
|
||||||
|
var bar = can.onappend.scroll(can, can.ui.content, line/can.ui.content._max, length/can.ui.content._max); can.onappend.style(can, type, bar)
|
||||||
|
bar.onclick = function() { can.onimport.tabview(can, "", can.Option(nfs.FILE), line) }
|
||||||
|
})
|
||||||
|
}
|
||||||
function append() { var rest = []
|
function append() { var rest = []
|
||||||
while (deletes.length > 0 && inserts.length > 0 && deletes[0] == inserts[0]) {
|
while (deletes.length > 0 && inserts.length > 0 && deletes[0] == inserts[0]) { can.onaction.appendLine(can, deletes[0]), deletes = deletes.slice(1), inserts = inserts.slice(1) }
|
||||||
can.onaction.appendLine(can, deletes[0]), deletes = deletes.slice(1), inserts = inserts.slice(1)
|
while (deletes.length > 0 && inserts.length > 0 && deletes[deletes.length-1] == inserts[inserts.length-1]) { can.onaction.appendLine(can, deletes[deletes.length-1]), deletes.pop(), inserts.pop() }
|
||||||
}
|
while (deletes.length > 0 && inserts.length > 0 && deletes[0] == inserts[inserts.length-1]) { rest.push(deletes[0]), deletes = deletes.slice(1), inserts.pop() }
|
||||||
while (deletes.length > 0 && inserts.length > 0 && deletes[deletes.length-1] == inserts[inserts.length-1]) {
|
can.core.List(deletes, function(item, index, list) { scroll(item, mdb.DELETE, list.length, index) }), deletes = []
|
||||||
can.onaction.appendLine(can, deletes[deletes.length-1]), deletes.pop(), inserts.pop()
|
can.core.List(inserts, function(item, index, list) { scroll(item, mdb.INSERT, list.length, index) }), inserts = []
|
||||||
}
|
|
||||||
while (deletes.length > 0 && inserts.length > 0 && deletes[0] == inserts[inserts.length-1]) {
|
|
||||||
rest.push(deletes[0]), deletes = deletes.slice(1), inserts.pop()
|
|
||||||
}
|
|
||||||
can.core.List(deletes, function(item) { can.onappend.style(can, mdb.DELETE, can.onaction.appendLine(can, item)) }), deletes = []
|
|
||||||
can.core.List(inserts, function(item) { can.onappend.style(can, mdb.INSERT, can.onaction.appendLine(can, item)) }), inserts = []
|
|
||||||
can.core.List(rest, function(item) { can.onaction.appendLine(can, item) })
|
can.core.List(rest, function(item) { can.onaction.appendLine(can, item) })
|
||||||
}
|
}
|
||||||
msg.Table(function(value) { can.core.List(value.text.split(lex.NL), function(item, index, list) {
|
msg.Table(function(value) { can.core.List(value.text.split(lex.NL), function(item, index, list) {
|
||||||
@ -360,6 +365,10 @@ Volcanos(chat.ONSYNTAX, {_init: function(can, msg, cb) { var key = can.onexport.
|
|||||||
_delete.push(item), _insert.push(item), deletes.push(_delete.join("")), _delete = [], inserts.push(_insert.join("")), _insert = []
|
_delete.push(item), _insert.push(item), deletes.push(_delete.join("")), _delete = [], inserts.push(_insert.join("")), _insert = []
|
||||||
} else { append(), can.onaction.appendLine(can, item) }
|
} else { append(), can.onaction.appendLine(can, item) }
|
||||||
}) }), _delete.length > 0 && deletes.push(_delete.join("")), _insert.length > 0 && inserts.push(_insert.join("")), append()
|
}) }), _delete.length > 0 && deletes.push(_delete.join("")), _insert.length > 0 && inserts.push(_insert.join("")), append()
|
||||||
|
var list = can.page.Select(can, can.ui.content, "tr.insert,tr.delete")
|
||||||
|
list && list[0] && can.onmotion.delay(can, function() {
|
||||||
|
can.onimport.tabview(can, "", can.Option(nfs.FILE), can.onexport.line(can, list[0].previousSibling))
|
||||||
|
})
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
Volcanos(chat.ONACTION, {
|
Volcanos(chat.ONACTION, {
|
||||||
|
@ -6,6 +6,7 @@ fieldset.plan>div.output table.content.plan td.select { background-color:#5066b9
|
|||||||
fieldset.plan>div.output table.content.plan td:hover { background-color:#5066b945; }
|
fieldset.plan>div.output table.content.plan td:hover { background-color:#5066b945; }
|
||||||
fieldset.plan>div.output table.content.plan td.over { background-color:#5066b945; }
|
fieldset.plan>div.output table.content.plan td.over { background-color:#5066b945; }
|
||||||
fieldset.plan>div.output table.content.plan td div { color:white; }
|
fieldset.plan>div.output table.content.plan td div { color:white; }
|
||||||
|
// fieldset.plan>div.output table.content.plan td div:not(.date) { height:100%; text-align:center; }
|
||||||
fieldset.plan>div.output table.content.plan td div.date { color:gray; }
|
fieldset.plan>div.output table.content.plan td div.date { color:gray; }
|
||||||
fieldset.plan>div.output table.content.plan td div.date span.lunar { font-size:12px; }
|
fieldset.plan>div.output table.content.plan td div.date span.lunar { font-size:12px; }
|
||||||
fieldset.plan>div.output table.content.plan td div.date span.lunar.fest { color:red; }
|
fieldset.plan>div.output table.content.plan td div.date span.lunar.fest { color:red; }
|
||||||
|
@ -138,9 +138,18 @@ Volcanos(chat.ONDETAIL, {list: ["删除"],
|
|||||||
}) },
|
}) },
|
||||||
grid: function(sub) { sub.page.styleClass(sub, sub.ui.content, "content grid") },
|
grid: function(sub) { sub.page.styleClass(sub, sub.ui.content, "content grid") },
|
||||||
|
|
||||||
"开讲": function(event, can) { can.sup.ondetail.show(can, 0) },
|
"开讲": function(event, can) {
|
||||||
"网格": function(event, can) { can.sup.ondetail.grid(can) },
|
can.page.SelectChild(can, can.ui.content, "*", function(target) { can.page.styleWidth(can, target, "") })
|
||||||
"快闪": function(event, can) { can.sup.ondetail.flash(can) },
|
can.sup.ondetail.show(can, 0)
|
||||||
|
},
|
||||||
|
"网格": function(event, can) {
|
||||||
|
can.onlayout.expand(can, can.ui.content, 320)
|
||||||
|
can.sup.ondetail.grid(can)
|
||||||
|
},
|
||||||
|
"快闪": function(event, can) {
|
||||||
|
can.page.SelectChild(can, can.ui.content, "*", function(target) { can.page.styleWidth(can, target, "") })
|
||||||
|
can.sup.ondetail.flash(can)
|
||||||
|
},
|
||||||
|
|
||||||
"大纲": function(event, can) { can.onmotion.toggle(can, can.ui.project) },
|
"大纲": function(event, can) { can.onmotion.toggle(can, can.ui.project) },
|
||||||
"首页": function(event, can) { can.sup.ondetail.show(can, 0) },
|
"首页": function(event, can) { can.sup.ondetail.show(can, 0) },
|
||||||
|
@ -22,6 +22,14 @@ Volcanos(chat.ONIMPORT, {
|
|||||||
can.page.SelectChild(can, can._output, html.TABLE, function(target) { can.page.style(can, target, html.MAX_HEIGHT, height, html.DISPLAY, html.BLOCK) })
|
can.page.SelectChild(can, can._output, html.TABLE, function(target) { can.page.style(can, target, html.MAX_HEIGHT, height, html.DISPLAY, html.BLOCK) })
|
||||||
}, can.run(event, (!msg.Option("_index") || msg.Option("_index") == can._index || can._index.indexOf("can.") == 0? msg[ice.MSG_PREFIX]||[]: [ice.RUN, msg.Option("_index")]).concat(cmds), cb, true)
|
}, can.run(event, (!msg.Option("_index") || msg.Option("_index") == can._index || can._index.indexOf("can.") == 0? msg[ice.MSG_PREFIX]||[]: [ice.RUN, msg.Option("_index")]).concat(cmds), cb, true)
|
||||||
}
|
}
|
||||||
|
sub._target.onclick = function() {
|
||||||
|
can.page.SelectChild(can, can._output, "fieldset", function(target) {
|
||||||
|
can.page.style(can, target, "z-index", "9")
|
||||||
|
})
|
||||||
|
can.page.style(can, sub._target, "z-index", "10")
|
||||||
|
}
|
||||||
|
can.page.style(can, sub._target, "z-index", "10")
|
||||||
|
can.onappend.style(can, "move", sub._target)
|
||||||
can.base.isFunc(cb) && cb(sub)
|
can.base.isFunc(cb) && cb(sub)
|
||||||
}) })
|
}) })
|
||||||
},
|
},
|
||||||
@ -189,7 +197,7 @@ Volcanos(chat.ONEXPORT, {
|
|||||||
action: function(can, button, line) {},
|
action: function(can, button, line) {},
|
||||||
record: function(can, value, key, line) {},
|
record: function(can, value, key, line) {},
|
||||||
actionHeight: function(can) { return can.page.ClassList.has(can, can._target, html.OUTPUT)? 0: html.ACTION_HEIGHT },
|
actionHeight: function(can) { return can.page.ClassList.has(can, can._target, html.OUTPUT)? 0: html.ACTION_HEIGHT },
|
||||||
statusHeight: function(can) { return !can.page.isDisplay(can._status) || can._status.innerHTML == "" || (can._target.offsetHeight > 0 && can._status.offsetHeight == 0)? 0: html.ACTION_HEIGHT },
|
statusHeight: function(can) { return can.page.ClassList.has(can, can._target, html.OUTPUT) || !can.page.isDisplay(can._status) || can._status.innerHTML == "" || (can._target.offsetHeight > 0 && can._status.offsetHeight == 0)? 0: html.ACTION_HEIGHT },
|
||||||
title: function(can, title) { can.isCmdMode() && can.user.title(title) },
|
title: function(can, title) { can.isCmdMode() && can.user.title(title) },
|
||||||
link: function(can) { var meta = can.Conf(), args = can.Option(); can.misc.Search(can, log.DEBUG) == ice.TRUE && (args[log.DEBUG] = ice.TRUE)
|
link: function(can) { var meta = can.Conf(), args = can.Option(); can.misc.Search(can, log.DEBUG) == ice.TRUE && (args[log.DEBUG] = ice.TRUE)
|
||||||
args.pod = meta.pod, args.cmd = meta.index||can.core.Keys(meta.ctx, meta.cmd), args.cmd == web.WIKI_WORD && (args.cmd = args.path)
|
args.pod = meta.pod, args.cmd = meta.index||can.core.Keys(meta.ctx, meta.cmd), args.cmd == web.WIKI_WORD && (args.cmd = args.path)
|
||||||
|
@ -72,16 +72,11 @@ Volcanos(chat.ONACTION, {list: [[ice.VIEW, "趋势图", "柱状图", "折线图"
|
|||||||
})
|
})
|
||||||
Volcanos(chat.ONDETAIL, {
|
Volcanos(chat.ONDETAIL, {
|
||||||
onmouseenter: function(event, can, item) { can.Status(item) },
|
onmouseenter: function(event, can, item) { can.Status(item) },
|
||||||
onclick: function(event, can, item) {
|
onclick: function(event, can, item) { can.run(can.request(event, item, can.Option()), [mdb.DETAIL], function(msg) {
|
||||||
can.run(can.request(event, item, can.Option()), [mdb.DETAIL], function(msg) {
|
can.getActionSize(function(left, top, width, height) { msg.Option(html.HEIGHT, height*3/4), msg.Option(html.WIDTH, width*3/4)
|
||||||
can.getActionSize(function(left, top, width, height) { msg.Option(html.HEIGHT, height*3/4), msg.Option(html.WIDTH, width)
|
can.sup.onimport._field(can.sup, msg, function(sub) { can.onmotion.move(can, sub._target, {left: left||0, top: (top||0)+height/4}) })
|
||||||
can.sup.onimport._field(can.sup, msg, function(sub) {
|
|
||||||
sub.onimport.size(sub, sub.ConfHeight(height/2), sub.ConfWidth(width), true)
|
|
||||||
can.onmotion.move(can, sub._target, {left: left||0, top: (top||0)+height/4})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
},
|
}) },
|
||||||
})
|
})
|
||||||
Volcanos(chat.ONEXPORT, {list: ["from", "commit", "total", "max", "date", "text", "add", "del"],
|
Volcanos(chat.ONEXPORT, {list: ["from", "commit", "total", "max", "date", "text", "add", "del"],
|
||||||
height: function(can) { var height = can.Action(html.HEIGHT)
|
height: function(can) { var height = can.Action(html.HEIGHT)
|
||||||
|
8
proto.js
8
proto.js
@ -378,16 +378,16 @@ try { if (typeof(window) == lang.OBJECT) { var meta = Volcanos.meta
|
|||||||
var target, begin
|
var target, begin
|
||||||
window.onmousedown = function(event) {
|
window.onmousedown = function(event) {
|
||||||
for (target = event.target; target; target = target.parentNode) { if (target == document.body) { target = null; return }
|
for (target = event.target; target; target = target.parentNode) { if (target == document.body) { target = null; return }
|
||||||
if (can.page.tagis(target, html.DIV) && can.page.ClassList.has(can, target, html.OUTPUT)) { target = null; return }
|
// if (can.page.tagis(target, html.DIV) && can.page.ClassList.has(can, target, html.OUTPUT)) { target = null; return }
|
||||||
if (can.page.tagis(event.target, html.INPUT, html.TEXTAREA)) { target = null; return }
|
if (can.page.tagis(event.target, html.INPUT, html.TEXTAREA)) { target = null; return }
|
||||||
if (can.page.ClassList.has(can, target, "move")) { break }
|
if (can.page.ClassList.has(can, target, "move")) { break }
|
||||||
} begin = {left: target.offsetLeft, top: target.offsetTop, x: event.x, y: event.y}
|
} begin = {left: target.offsetLeft, top: target.offsetTop, x: event.x, y: event.y}
|
||||||
can.page.SelectChild(can, document.body, ".float", function(target) { can.page.style(can, target, "z-index") && can.page.style(can, target, "z-index", 10) }), can.page.style(can, target, "z-index", 11)
|
can.page.SelectChild(can, target.parentNode, "*", function(target) { can.page.style(can, target, "z-index") && can.page.style(can, target, "z-index", 9) }), can.page.style(can, target, "z-index", 10)
|
||||||
}, window.onmouseup = function(event) { target = null, begin = {} }
|
}, window.onmouseup = function(event) { target = null, begin = {}, delete(window._scroll) }
|
||||||
window.onmousemove = function(event) { target && can.page.style(can, target,
|
window.onmousemove = function(event) { target && can.page.style(can, target,
|
||||||
html.LEFT, can.base.Min(begin.left + event.x - begin.x, 0, window.innerWidth-target.offsetWidth),
|
html.LEFT, can.base.Min(begin.left + event.x - begin.x, 0, window.innerWidth-target.offsetWidth),
|
||||||
html.TOP, can.base.Min(begin.top + event.y - begin.y, 0, window.innerHeight-html.ACTION_HEIGHT)
|
html.TOP, can.base.Min(begin.top + event.y - begin.y, 0, window.innerHeight-html.ACTION_HEIGHT)
|
||||||
) && can.onkeymap.prevent(event) }
|
) && can.onkeymap.prevent(event), window._scroll && (window._scroll(event)) }
|
||||||
|
|
||||||
window.ondblclick = function(event) { can.onkeymap.prevent(event) }
|
window.ondblclick = function(event) { can.onkeymap.prevent(event) }
|
||||||
window.onerror = function(message, source, lineno, colno, error) {
|
window.onerror = function(message, source, lineno, colno, error) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user