mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 08:48:06 +08:00
opt const
This commit is contained in:
parent
c12d47c82d
commit
942aac2df3
42
frame.js
42
frame.js
@ -14,7 +14,7 @@ Volcanos(chat.ONENGINE, {_init: function(can, meta, list, cb, target) { can.requ
|
|||||||
}), can._path = location.href
|
}), can._path = location.href
|
||||||
},
|
},
|
||||||
_search: function(event, can, msg, panel, cmds, cb) {
|
_search: function(event, can, msg, panel, cmds, cb) {
|
||||||
var sub, mod = can, fun = can, key = ""; can.core.List(cmds[1].split(ice.PT), function(value) { fun && (sub = mod, mod = fun, fun = mod[value], key = value) })
|
var sub, mod = can, fun = can, key = ""; can.core.List(cmds[1].split(nfs.PT), function(value) { fun && (sub = mod, mod = fun, fun = mod[value], key = value) })
|
||||||
if (!sub || !mod || !fun) { can.misc.Warn(ice.ErrNotFound, cmds); return can.base.isFunc(cb) && cb(msg.Echo(ice.ErrWarn, ice.ErrNotFound, cmds)) }
|
if (!sub || !mod || !fun) { can.misc.Warn(ice.ErrNotFound, cmds); return can.base.isFunc(cb) && cb(msg.Echo(ice.ErrWarn, ice.ErrNotFound, cmds)) }
|
||||||
return can.core.CallFunc(fun, {event: event, can: sub, msg: msg, cmds: cmds.slice(2), cb: cb, target: sub._target, button: key, cmd: key, arg: cmds.slice(2), list: cmds.slice(2)}, mod)
|
return can.core.CallFunc(fun, {event: event, can: sub, msg: msg, cmds: cmds.slice(2), cb: cb, target: sub._target, button: key, cmd: key, arg: cmds.slice(2), list: cmds.slice(2)}, mod)
|
||||||
},
|
},
|
||||||
@ -32,11 +32,11 @@ Volcanos(chat.ONENGINE, {_init: function(can, meta, list, cb, target) { can.requ
|
|||||||
if (msg.Option("log.trace") == ice.TRUE) { debugger }
|
if (msg.Option("log.trace") == ice.TRUE) { debugger }
|
||||||
can.misc.Run(event, can, {names: names, daemon: msg[ice.MSG_DAEMON]}, cmds, function(msg) { toast && toast.close(), toast = true
|
can.misc.Run(event, can, {names: names, daemon: msg[ice.MSG_DAEMON]}, cmds, function(msg) { toast && toast.close(), toast = true
|
||||||
if (msg.Option("log.trace") == ice.TRUE) { debugger }
|
if (msg.Option("log.trace") == ice.TRUE) { debugger }
|
||||||
can.base.isFunc(cb) && cb(msg), Volcanos.meta.pack[can.core.Keys(panel._name, cmds.join(ice.FS))] = msg
|
can.base.isFunc(cb) && cb(msg), Volcanos.meta.pack[can.core.Keys(panel._name, cmds.join(mdb.FS))] = msg
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
_static: function(event, can, msg, panel, cmds, cb) { if (!can.user.isLocalFile) { return false }
|
_static: function(event, can, msg, panel, cmds, cb) { if (!can.user.isLocalFile) { return false }
|
||||||
var res = Volcanos.meta.pack[can.core.Keys(panel._name, cmds.join(ice.FS))], msg = can.request(event); msg.Clear(ice.MSG_APPEND)
|
var res = Volcanos.meta.pack[can.core.Keys(panel._name, cmds.join(mdb.FS))], msg = can.request(event); msg.Clear(ice.MSG_APPEND)
|
||||||
return res? msg.Copy(res): can.user.toast(can, "miss data"), can.base.isFunc(cb) && cb(msg), true
|
return res? msg.Copy(res): can.user.toast(can, "miss data"), can.base.isFunc(cb) && cb(msg), true
|
||||||
},
|
},
|
||||||
_engine: function(event, can, msg, panel, cmds, cb) { return false },
|
_engine: function(event, can, msg, panel, cmds, cb) { return false },
|
||||||
@ -69,8 +69,8 @@ Volcanos(chat.ONENGINE, {_init: function(can, meta, list, cb, target) { can.requ
|
|||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
signal: function(can, name, msg) { msg = msg||can.request(); var _msg = name == chat.ONREMOTE? msg.Option("_msg"): msg
|
signal: function(can, name, msg) { msg = msg||can.request(); var _msg = name == chat.ONREMOTE? msg.Option("_msg"): msg
|
||||||
_msg.Option(ice.LOG_DISABLE) == ice.TRUE || can.misc.Log(name, can._name, (msg._cmds||[]).join(ice.SP), name == chat.ONMAIN? can: _msg)
|
_msg.Option(ice.LOG_DISABLE) == ice.TRUE || can.misc.Log(name, can._name, (msg._cmds||[]).join(lex.SP), name == chat.ONMAIN? can: _msg)
|
||||||
// _msg.Option(ice.LOG_DISABLE) == ice.TRUE || can.misc.Log(name, can._name, (msg._cmds||[]).join(ice.SP), name == chat.ONMAIN? can: _msg, _msg._can._target)
|
// _msg.Option(ice.LOG_DISABLE) == ice.TRUE || can.misc.Log(name, can._name, (msg._cmds||[]).join(lex.SP), name == chat.ONMAIN? can: _msg, _msg._can._target)
|
||||||
return can.core.List(can.onengine.listen.meta[name], function(cb) { can.core.CallFunc(cb, {event: msg._event, msg: msg}) }).length, msg
|
return can.core.List(can.onengine.listen.meta[name], function(cb) { can.core.CallFunc(cb, {event: msg._event, msg: msg}) }).length, msg
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
@ -96,7 +96,7 @@ Volcanos(chat.ONDAEMON, {_init: function(can, name) { if (can.user.isLocalFile)
|
|||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (arg[0].indexOf(ice.PT) == -1 && can.page.SelectInput(can, sub._option, arg[0], function(target) { target.type == html.BUTTON? target.click(): (target.value = arg[1]||"", target.focus()); return target })) { return }
|
if (arg[0].indexOf(nfs.PT) == -1 && can.page.SelectInput(can, sub._option, arg[0], function(target) { target.type == html.BUTTON? target.click(): (target.value = arg[1]||"", target.focus()); return target })) { return }
|
||||||
var _sub = can.core.Value(sub, chat._OUTPUTS_CURRENT); if (_sub && _sub.onaction && _sub.onaction[arg[0]]) { return _sub.onaction[arg[0]]({}, _sub, arg[0]) }
|
var _sub = can.core.Value(sub, chat._OUTPUTS_CURRENT); if (_sub && _sub.onaction && _sub.onaction[arg[0]]) { return _sub.onaction[arg[0]]({}, _sub, arg[0]) }
|
||||||
if (sub && sub.onaction && sub.onaction[arg[0]]) { return sub.onaction[arg[0]]({}, sub, arg[0], _sub) }
|
if (sub && sub.onaction && sub.onaction[arg[0]]) { return sub.onaction[arg[0]]({}, sub, arg[0], _sub) }
|
||||||
can.core.CallFunc(can.core.Value(can, arg[0]), kit.Dict({can: can}, arg.slice(1)))
|
can.core.CallFunc(can.core.Value(can, arg[0]), kit.Dict({can: can}, arg.slice(1)))
|
||||||
@ -120,7 +120,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
_legend: legend, _option: option, _action: action, _output: output, _status: status, _history: [],
|
_legend: legend, _option: option, _action: action, _output: output, _status: status, _history: [],
|
||||||
Status: function(key, value) { if (can.base.isObject(key)) { return can.core.Item(key, sub.Status), key }
|
Status: function(key, value) { if (can.base.isObject(key)) { return can.core.Item(key, sub.Status), key }
|
||||||
can.page.Select(can, status, [[[html.SPAN, key]]], function(target) {
|
can.page.Select(can, status, [[[html.SPAN, key]]], function(target) {
|
||||||
if (can.base.beginWith(value, ice.PS, ice.HTTP)) { value = can.page.Format(html.A, value) }
|
if (can.base.beginWith(value, nfs.PS, ice.HTTP)) { value = can.page.Format(html.A, value) }
|
||||||
return can.base.isUndefined(value)? (value = target.innerHTML): (target.innerHTML = value.trim? value.trim(): value||"")
|
return can.base.isUndefined(value)? (value = target.innerHTML): (target.innerHTML = value.trim? value.trim(): value||"")
|
||||||
}); return value
|
}); return value
|
||||||
},
|
},
|
||||||
@ -135,7 +135,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
can.onappend._init(can, meta, list, function(sub) { can.base.isFunc(cb) && cb(sub, true), can.onmotion.delay(can, sub.Focus) }, target)
|
can.onappend._init(can, meta, list, function(sub) { can.base.isFunc(cb) && cb(sub, true), can.onmotion.delay(can, sub.Focus) }, target)
|
||||||
},
|
},
|
||||||
}, list, function(sub) { meta.feature = can.base.Obj(meta.feature, {}), sub.Conf(meta)
|
}, list, function(sub) { meta.feature = can.base.Obj(meta.feature, {}), sub.Conf(meta)
|
||||||
can.onappend.style(sub, meta.index? meta.index.split(ice.PT): meta.name), can.onappend.style(sub, sub.Conf(ctx.STYLE)), can.onappend.style(sub, sub.Mode())
|
can.onappend.style(sub, meta.index? meta.index.split(nfs.PT): meta.name), can.onappend.style(sub, sub.Conf(ctx.STYLE)), can.onappend.style(sub, sub.Mode())
|
||||||
sub._trans = can.base.Copy(sub._trans||{}, can.core.Value(sub, [chat.ONACTION, chat._TRANS]))
|
sub._trans = can.base.Copy(sub._trans||{}, can.core.Value(sub, [chat.ONACTION, chat._TRANS]))
|
||||||
can.core.Item(meta.feature, function(key, cb) { cb.help && sub.user.trans(sub, kit.Dict(key, cb.help)) })
|
can.core.Item(meta.feature, function(key, cb) { cb.help && sub.user.trans(sub, kit.Dict(key, cb.help)) })
|
||||||
meta.msg && can.onmotion.delay(can, function() { var msg = sub.request(); msg.Copy(can.base.Obj(meta.msg))
|
meta.msg && can.onmotion.delay(can, function() { var msg = sub.request(); msg.Copy(can.base.Obj(meta.msg))
|
||||||
@ -253,7 +253,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
},
|
},
|
||||||
_status: function(can, list, status) { status = status||can._status, can.onmotion.clear(can, status)
|
_status: function(can, list, status) { status = status||can._status, can.onmotion.clear(can, status)
|
||||||
can.core.List(can.base.Obj(list, can.core.Value(can, [chat.ONEXPORT, mdb.LIST])), function(item) { item = can.base.isString(item)? {name: item}: item
|
can.core.List(can.base.Obj(list, can.core.Value(can, [chat.ONEXPORT, mdb.LIST])), function(item) { item = can.base.isString(item)? {name: item}: item
|
||||||
if (can.base.beginWith(item.value, ice.PS, ice.HTTP)) { item.value = can.page.Format(html.A, item.value, item.value.split("?")[0]) }
|
if (can.base.beginWith(item.value, nfs.PS, ice.HTTP)) { item.value = can.page.Format(html.A, item.value, item.value.split("?")[0]) }
|
||||||
can.page.Append(can, status, [{view: html.ITEM, list: [
|
can.page.Append(can, status, [{view: html.ITEM, list: [
|
||||||
{text: [item.name, html.LABEL]}, {text: [": ", html.LABEL]}, {text: [(item.value == undefined? "": item.value.trim())+"", html.SPAN, item.name]},
|
{text: [item.name, html.LABEL]}, {text: [": ", html.LABEL]}, {text: [(item.value == undefined? "": item.value.trim())+"", html.SPAN, item.name]},
|
||||||
], onclick: function(event) { can.user.copy(event, can, item.value) }}])
|
], onclick: function(event) { can.user.copy(event, can, item.value) }}])
|
||||||
@ -325,14 +325,14 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
{type: html.FIELDSET_FLOAT, style: [PLUGIN_STYLE]}, {type: html.DIV_FLOAT, style: [PLUGIN_STYLE]},
|
{type: html.FIELDSET_FLOAT, style: [PLUGIN_STYLE]}, {type: html.DIV_FLOAT, style: [PLUGIN_STYLE]},
|
||||||
{type: html.DIV_CARTE, list: [{type: html.DIV_ITEM, style: [TABLE_HEAD_STYLE, CARTE_ITEM_STYLE]}]},
|
{type: html.DIV_CARTE, list: [{type: html.DIV_ITEM, style: [TABLE_HEAD_STYLE, CARTE_ITEM_STYLE]}]},
|
||||||
{type: html.DIV_CARTE, list: [{type: html.DIV_ITEM, style: [CARTE_ITEM_HOVER_STYLE]}]},
|
{type: html.DIV_CARTE, list: [{type: html.DIV_ITEM, style: [CARTE_ITEM_HOVER_STYLE]}]},
|
||||||
].concat(list); const DF = ice.DF, FS = ";"
|
].concat(list); const DF = nfs.DF, FS = ";"
|
||||||
function render(pre, list) { return can.core.List(list, function(item) { if (!item) { return } var type = item.type+can.core.List(item.name, function(name) { return (name==html.HOVER? ice.DF: ice.PT)+name }).join("")
|
function render(pre, list) { return can.core.List(list, function(item) { if (!item) { return } var type = item.type+can.core.List(item.name, function(name) { return (name==html.HOVER? nfs.DF: nfs.PT)+name }).join("")
|
||||||
if (!item.name && type.indexOf(ice.PT+html.SELECT) == -1 && type.indexOf(ice.DF+html.HOVER) == -1 && can.base.isArray(item.style) && item.style.join(ice.FS).indexOf("-hover-") > -1) { type += ice.DF+html.HOVER }
|
if (!item.name && type.indexOf(nfs.PT+html.SELECT) == -1 && type.indexOf(nfs.DF+html.HOVER) == -1 && can.base.isArray(item.style) && item.style.join(mdb.FS).indexOf("-hover-") > -1) { type += nfs.DF+html.HOVER }
|
||||||
return (item.style? (pre+ice.SP+type+" { "+(can.base.isArray(item.style)? can.core.List(item.style, function(item) {
|
return (item.style? (pre+lex.SP+type+" { "+(can.base.isArray(item.style)? can.core.List(item.style, function(item) {
|
||||||
return can.core.Item(style[item], function(key, value) { return key&&value? key+DF+value: undefined }).join(FS)
|
return can.core.Item(style[item], function(key, value) { return key&&value? key+DF+value: undefined }).join(FS)
|
||||||
}).join(FS): can.core.Item(can.base.Obj(item.style), function(key, value) { return key+DF+value }).join(FS))+" }"): "")+(item.list? render(pre+ice.SP+type, item.list): "")
|
}).join(FS): can.core.Item(can.base.Obj(item.style), function(key, value) { return key+DF+value }).join(FS))+" }"): "")+(item.list? render(pre+lex.SP+type, item.list): "")
|
||||||
}).join(ice.NL) }
|
}).join(lex.NL) }
|
||||||
var text = render(html.BODY+ice.PT+theme, list)
|
var text = render(html.BODY+nfs.PT+theme, list)
|
||||||
can.page.Append(can, document.head, ctx.STYLE, {"innerText": text})
|
can.page.Append(can, document.head, ctx.STYLE, {"innerText": text})
|
||||||
return text
|
return text
|
||||||
},
|
},
|
||||||
@ -389,7 +389,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
if (text.indexOf("<fieldset") > 0) {
|
if (text.indexOf("<fieldset") > 0) {
|
||||||
can.page.Select(can, target, html.FIELDSET, function(target) { var data = target.dataset
|
can.page.Select(can, target, html.FIELDSET, function(target) { var data = target.dataset
|
||||||
data.index && can.onappend.plugin(can, {index: data.index}, function(sub) {
|
data.index && can.onappend.plugin(can, {index: data.index}, function(sub) {
|
||||||
can.page.Modify(can, sub._legend, data.index.split(ice.PT).pop())
|
can.page.Modify(can, sub._legend, data.index.split(nfs.PT).pop())
|
||||||
}, can._output, target)
|
}, can._output, target)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -409,7 +409,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
if (item.index) { item._index = count++, ui.size[item._index] = item.height||item.width
|
if (item.index) { item._index = count++, ui.size[item._index] = item.height||item.width
|
||||||
can.onappend.plugin(can, item, function(sub) { can._plugins = (can._plugins||[]).concat([sub])
|
can.onappend.plugin(can, item, function(sub) { can._plugins = (can._plugins||[]).concat([sub])
|
||||||
item.layout = function(height, width) { sub.onimport.size(sub, height, width) }
|
item.layout = function(height, width) { sub.onimport.size(sub, height, width) }
|
||||||
}, target, ui[item._index] = can.onappend.field(can, item.type, {name: item.index.split(ice.PT).pop(), help: item.help}, target)._target)
|
}, target, ui[item._index] = can.onappend.field(can, item.type, {name: item.index.split(nfs.PT).pop(), help: item.help}, target)._target)
|
||||||
} else { can.page.Append(can, target, [item]) }
|
} else { can.page.Append(can, target, [item]) }
|
||||||
}
|
}
|
||||||
}); return list } ui.list = append(target, type, list||[html.PROJECT, [[html.CONTENT, html.PROFILE], html.DISPLAY]])
|
}); return list } ui.list = append(target, type, list||[html.PROJECT, [[html.CONTENT, html.PROFILE], html.DISPLAY]])
|
||||||
@ -564,7 +564,7 @@ Volcanos(chat.ONMOTION, {_init: function(can, target) {
|
|||||||
}); return old
|
}); return old
|
||||||
},
|
},
|
||||||
modify: function(can, target, cb, item) { var back = target.innerHTML, _target = target
|
modify: function(can, target, cb, item) { var back = target.innerHTML, _target = target
|
||||||
if (back.length > 120 || back.indexOf(ice.NL) > -1) { return can.onmotion.modifys(can, target, cb) }
|
if (back.length > 120 || back.indexOf(lex.NL) > -1) { return can.onmotion.modifys(can, target, cb) }
|
||||||
var ui = can.page.Appends(can, target, [{type: html.INPUT, value: target.innerText, style: {width: can.base.Max(target.offsetWidth-20, 400)}, onkeydown: function(event) { switch (event.key) {
|
var ui = can.page.Appends(can, target, [{type: html.INPUT, value: target.innerText, style: {width: can.base.Max(target.offsetWidth-20, 400)}, onkeydown: function(event) { switch (event.key) {
|
||||||
case lang.ENTER: target.innerHTML = event.target.value, event.target.value == back || cb(event, event.target.value, back); break
|
case lang.ENTER: target.innerHTML = event.target.value, event.target.value == back || cb(event, event.target.value, back); break
|
||||||
case lang.ESCAPE: target.innerHTML = back; break
|
case lang.ESCAPE: target.innerHTML = back; break
|
||||||
@ -702,8 +702,8 @@ Volcanos(chat.ONKEYMAP, {_init: function(can, target) { target = target||documen
|
|||||||
d: function(event, can, target) { can.onkeymap.deleteText(target, 0, target.selectionStart) },
|
d: function(event, can, target) { can.onkeymap.deleteText(target, 0, target.selectionStart) },
|
||||||
w: function(event, can, target) { var start = target.selectionStart-2, end = target.selectionEnd-1
|
w: function(event, can, target) { var start = target.selectionStart-2, end = target.selectionEnd-1
|
||||||
for (var i = start; i >= 0; i--) {
|
for (var i = start; i >= 0; i--) {
|
||||||
if (target.value[end] == ice.SP && target.value[i] != ice.SP) { break }
|
if (target.value[end] == lex.SP && target.value[i] != lex.SP) { break }
|
||||||
if (target.value[end] != ice.SP && target.value[i] == ice.SP) { break }
|
if (target.value[end] != lex.SP && target.value[i] == lex.SP) { break }
|
||||||
} can.onkeymap.deleteText(target, i+1, end-i)
|
} can.onkeymap.deleteText(target, i+1, end-i)
|
||||||
},
|
},
|
||||||
n: function(event, can, target) { var his = target._history||[], pos = target._current||0
|
n: function(event, can, target) { var his = target._history||[], pos = target._current||0
|
||||||
|
@ -409,6 +409,7 @@ body.mobile.simple div.output.card div.item { width:100%; }
|
|||||||
body.mobile.landscape div.output.card div.item { width:auto; float:left; }
|
body.mobile.landscape div.output.card div.item { width:auto; float:left; }
|
||||||
/* scrollbar */
|
/* scrollbar */
|
||||||
fieldset.panel.Action>div.output::-webkit-scrollbar { width:0 !important; height:0 !important; }
|
fieldset.panel.Action>div.output::-webkit-scrollbar { width:0 !important; height:0 !important; }
|
||||||
|
fieldset.panel.River>div.output::-webkit-scrollbar { width:0 !important; height:0 !important; }
|
||||||
div.story[data-type=spark]::-webkit-scrollbar { width:0 !important; height:0 !important; }
|
div.story[data-type=spark]::-webkit-scrollbar { width:0 !important; height:0 !important; }
|
||||||
div.project::-webkit-scrollbar { width:0 !important; height:0 !important; }
|
div.project::-webkit-scrollbar { width:0 !important; height:0 !important; }
|
||||||
div.content::-webkit-scrollbar { width:0 !important; height:0 !important; }
|
div.content::-webkit-scrollbar { width:0 !important; height:0 !important; }
|
||||||
|
34
lib/base.js
34
lib/base.js
@ -6,7 +6,7 @@ Volcanos("base", {
|
|||||||
try {
|
try {
|
||||||
if (typeof val == code.STRING) { if (val == "") { return def } val = JSON.parse(val) }
|
if (typeof val == code.STRING) { if (val == "") { return def } val = JSON.parse(val) }
|
||||||
if (val.length > 0) { return val } for (var k in val) { return val } return def
|
if (val.length > 0) { return val } for (var k in val) { return val } return def
|
||||||
} catch (e) { return typeof val == code.STRING && val.split(ice.FS) || def }
|
} catch (e) { return typeof val == code.STRING && val.split(mdb.FS) || def }
|
||||||
},
|
},
|
||||||
Copy: function(to, from, merge) { if (!from) { return to }
|
Copy: function(to, from, merge) { if (!from) { return to }
|
||||||
if (arguments.length == 2 || typeof merge == code.BOOLEAN) { for (var k in from) { if (k == undefined) { continue }
|
if (arguments.length == 2 || typeof merge == code.BOOLEAN) { for (var k in from) { if (k == undefined) { continue }
|
||||||
@ -20,18 +20,18 @@ Volcanos("base", {
|
|||||||
for (var k in to) { if (k != skip && !call(to[k], from[k])) { return false } } return true
|
for (var k in to) { if (k != skip && !call(to[k], from[k])) { return false } } return true
|
||||||
} return to === from
|
} return to === from
|
||||||
},
|
},
|
||||||
Ext: function(path) { return path.split(ice.PS).pop().split(ice.PT).pop().toLowerCase() },
|
Ext: function(path) { return path.split(nfs.PS).pop().split(nfs.PT).pop().toLowerCase() },
|
||||||
Dir: function(path) { return path.endsWith(ice.PS)? path: path.slice(0, path.lastIndexOf(ice.PS)+1) },
|
Dir: function(path) { return path.endsWith(nfs.PS)? path: path.slice(0, path.lastIndexOf(nfs.PS)+1) },
|
||||||
Path: function(path) { var res = "", arg = arguments; for (var i = 0; i < arg.length; i++) { if (!arg[i]) { continue }
|
Path: function(path) { var res = "", arg = arguments; for (var i = 0; i < arg.length; i++) { if (!arg[i]) { continue }
|
||||||
res += (arg[i][0]==ice.PS || res=="" || res[res.length-1]==ice.PS? "": ice.PS) + arg[i].trim()
|
res += (arg[i][0]==nfs.PS || res=="" || res[res.length-1]==nfs.PS? "": nfs.PS) + arg[i].trim()
|
||||||
} return res },
|
} return res },
|
||||||
Args: function() { var res = [], arg = arguments; function encode(k, v) { k && v != undefined && v != null && res.push(encodeURIComponent(k)+ice.EQ+encodeURIComponent(v)) }
|
Args: function() { var res = [], arg = arguments; function encode(k, v) { k && v != undefined && v != null && res.push(encodeURIComponent(k)+mdb.EQ+encodeURIComponent(v)) }
|
||||||
for (var i = 0; i < arg.length; i += 2) { if (typeof arg[i] == code.OBJECT) {
|
for (var i = 0; i < arg.length; i += 2) { if (typeof arg[i] == code.OBJECT) {
|
||||||
if (arg[i].length > 0) { for (var j = 0; j < arg[i].length; j += 2) { encode(arg[i][j], arg[i][j+1]) } } else { for (var k in arg[i]) { encode(k, arg[i][k]) } } i--
|
if (arg[i].length > 0) { for (var j = 0; j < arg[i].length; j += 2) { encode(arg[i][j], arg[i][j+1]) } } else { for (var k in arg[i]) { encode(k, arg[i][k]) } } i--
|
||||||
} else { encode(arg[i], arg[i+1]) } } return res.join("&")
|
} else { encode(arg[i], arg[i+1]) } } return res.join("&")
|
||||||
},
|
},
|
||||||
_parse: function(url, res) { var list = url.split("#")[0].split(ice.QS); res = res||{}, res._origin = list[0]
|
_parse: function(url, res) { var list = url.split("#")[0].split(ice.QS); res = res||{}, res._origin = list[0]
|
||||||
list[1] && list[1].split("&").forEach(function(item) { var ls = item.split(ice.EQ); res[decodeURIComponent(ls[0])] = decodeURIComponent(ls[1]) })
|
list[1] && list[1].split("&").forEach(function(item) { var ls = item.split(mdb.EQ); res[decodeURIComponent(ls[0])] = decodeURIComponent(ls[1]) })
|
||||||
return res
|
return res
|
||||||
},
|
},
|
||||||
MergeURL: function(url) { var arg = this._parse(url); delete(arg._origin); for (var i = 1; i < arguments.length; i += 2) { delete(arg[arguments[i]]) }
|
MergeURL: function(url) { var arg = this._parse(url); delete(arg._origin); for (var i = 1; i < arguments.length; i += 2) { delete(arg[arguments[i]]) }
|
||||||
@ -39,7 +39,7 @@ Volcanos("base", {
|
|||||||
},
|
},
|
||||||
ParseURL: function(url) { var res = this._parse(url); res.link = url, res.origin = res._origin; return res },
|
ParseURL: function(url) { var res = this._parse(url); res.link = url, res.origin = res._origin; return res },
|
||||||
ParseJSON: function(str) { var res; if (typeof str == code.OBJECT) { return str }
|
ParseJSON: function(str) { var res; if (typeof str == code.OBJECT) { return str }
|
||||||
if (str.indexOf(ice.HTTP) == 0) { var res = this._parse(str, {type: mdb.LINK, name: "", text: str}); return res.name = res._origin.split("://").pop().split(ice.PS)[0], res }
|
if (str.indexOf(ice.HTTP) == 0) { var res = this._parse(str, {type: mdb.LINK, name: "", text: str}); return res.name = res._origin.split("://").pop().split(nfs.PS)[0], res }
|
||||||
try { res = JSON.parse(str), res.text = res.text||str, res.type = res.type||nfs.JSON } catch (e) { res = {type: mdb.TEXT, text: str} } return res
|
try { res = JSON.parse(str), res.text = res.text||str, res.type = res.type||nfs.JSON } catch (e) { res = {type: mdb.TEXT, text: str} } return res
|
||||||
},
|
},
|
||||||
ParseSize: function(size) { size = size.toLowerCase()
|
ParseSize: function(size) { size = size.toLowerCase()
|
||||||
@ -50,10 +50,10 @@ Volcanos("base", {
|
|||||||
return parseInt(size)
|
return parseInt(size)
|
||||||
}, _unit: {k: 1024, m: 1024*1024, g: 1024*1024*1024, t: 1024*1024*1024*1024},
|
}, _unit: {k: 1024, m: 1024*1024, g: 1024*1024*1024, t: 1024*1024*1024*1024},
|
||||||
Size: function(size) { size = parseInt(size); var n = 100, k = this._unit.k, m = this._unit.m, g = this._unit.g, t = this._unit.t
|
Size: function(size) { size = parseInt(size); var n = 100, k = this._unit.k, m = this._unit.m, g = this._unit.g, t = this._unit.t
|
||||||
if (size > t) { return parseInt(size/t) + ice.PT + parseInt(size/g%k*n/k) + "T" }
|
if (size > t) { return parseInt(size/t) + nfs.PT + parseInt(size/g%k*n/k) + "T" }
|
||||||
if (size > g) { return parseInt(size/g) + ice.PT + parseInt(size/m%k*n/k) + "G" }
|
if (size > g) { return parseInt(size/g) + nfs.PT + parseInt(size/m%k*n/k) + "G" }
|
||||||
if (size > m) { return parseInt(size/m) + ice.PT + parseInt(size/k%k*n/k) + "M" }
|
if (size > m) { return parseInt(size/m) + nfs.PT + parseInt(size/k%k*n/k) + "M" }
|
||||||
if (size > k) { return parseInt(size/k) + ice.PT + parseInt(size%k*n/k) + "K" }
|
if (size > k) { return parseInt(size/k) + nfs.PT + parseInt(size%k*n/k) + "K" }
|
||||||
return size + "B"
|
return size + "B"
|
||||||
},
|
},
|
||||||
Number: function(d, n) { var res = []
|
Number: function(d, n) { var res = []
|
||||||
@ -83,9 +83,9 @@ Volcanos("base", {
|
|||||||
fmt = fmt.replace("%s", this.Number(now.getMilliseconds(), 3))
|
fmt = fmt.replace("%s", this.Number(now.getMilliseconds(), 3))
|
||||||
return fmt
|
return fmt
|
||||||
},
|
},
|
||||||
Date: function(time) { var now = new Date(); if (typeof time == code.STRING && time != "") { var ls = time.split(ice.SP)
|
Date: function(time) { var now = new Date(); if (typeof time == code.STRING && time != "") { var ls = time.split(lex.SP)
|
||||||
var vs = ls[0].split("-"); now.setFullYear(parseInt(vs[0])), now.setMonth(parseInt(vs[1])-1), now.setDate(parseInt(vs[2]))
|
var vs = ls[0].split("-"); now.setFullYear(parseInt(vs[0])), now.setMonth(parseInt(vs[1])-1), now.setDate(parseInt(vs[2]))
|
||||||
var vs = ls[1].split(ice.DF); now.setHours(parseInt(vs[0])), now.setMinutes(parseInt(vs[1])), now.setSeconds(parseInt(vs[2]))
|
var vs = ls[1].split(nfs.DF); now.setHours(parseInt(vs[0])), now.setMinutes(parseInt(vs[1])), now.setSeconds(parseInt(vs[2]))
|
||||||
} else if (time) { now = time } return now },
|
} else if (time) { now = time } return now },
|
||||||
DateAdd: function(stamp, days) { return new Date(stamp - stamp%(24*3600*1000) - 8*3600*1000 + days*24*3600*1000) },
|
DateAdd: function(stamp, days) { return new Date(stamp - stamp%(24*3600*1000) - 8*3600*1000 + days*24*3600*1000) },
|
||||||
Duration: function(n) { var res = "", h = 0
|
Duration: function(n) { var res = "", h = 0
|
||||||
@ -93,7 +93,7 @@ Volcanos("base", {
|
|||||||
h = parseInt(n/3600000), h > 0 && (res += h+"h"), n = n % 3600000
|
h = parseInt(n/3600000), h > 0 && (res += h+"h"), n = n % 3600000
|
||||||
h = parseInt(n/60000), h > 0 && (res += h+"m"), n = n % 60000
|
h = parseInt(n/60000), h > 0 && (res += h+"m"), n = n % 60000
|
||||||
h = parseInt(n/1000), h > 0 && (res += h), n = n % 1000
|
h = parseInt(n/1000), h > 0 && (res += h), n = n % 1000
|
||||||
return res + (n > 0? ice.PT+parseInt(n/10): "") + "s"
|
return res + (n > 0? nfs.PT+parseInt(n/10): "") + "s"
|
||||||
},
|
},
|
||||||
isNight: function() { var now = new Date(); return now.getHours() < 7 || now.getHours() > 17 },
|
isNight: function() { var now = new Date(); return now.getHours() < 7 || now.getHours() > 17 },
|
||||||
isNumber: function(val) { return typeof val == code.NUMBER },
|
isNumber: function(val) { return typeof val == code.NUMBER },
|
||||||
@ -127,8 +127,8 @@ Volcanos("base", {
|
|||||||
trim: function(arg) { if (this.isString(arg)) { return arg.trim() }
|
trim: function(arg) { if (this.isString(arg)) { return arg.trim() }
|
||||||
if (this.isArray(arg)) { for (var i = arg.length-1; i >= 0; i--) { if (!arg[i]) { arg.pop() } else { break } } } return arg
|
if (this.isArray(arg)) { for (var i = arg.length-1; i >= 0; i--) { if (!arg[i]) { arg.pop() } else { break } } } return arg
|
||||||
},
|
},
|
||||||
join: function(list, sp) { return typeof list == code.STRING? list: (list||[]).join(sp||ice.SP) },
|
join: function(list, sp) { return typeof list == code.STRING? list: (list||[]).join(sp||lex.SP) },
|
||||||
joins: function(list, inner, outer) { for (var i = 0; i < list.length; i++) { list[i] = typeof list[i] == code.STRING? list[i]: list[i].join(inner||ice.FS) } return list.join(outer||ice.SP) },
|
joins: function(list, inner, outer) { for (var i = 0; i < list.length; i++) { list[i] = typeof list[i] == code.STRING? list[i]: list[i].join(inner||mdb.FS) } return list.join(outer||lex.SP) },
|
||||||
joinKV: function(list, inner, outer) { var res = []; for (var i = 0; i < list.length-1; i += 2) { res.push(list[i]+(inner||": ")+list[i+1]) } return res.join(outer||ice.SP) },
|
joinKV: function(list, inner, outer) { var res = []; for (var i = 0; i < list.length-1; i += 2) { res.push(list[i]+(inner||": ")+list[i+1]) } return res.join(outer||lex.SP) },
|
||||||
random: function(max, min) { return min = min||0, parseInt(Math.random()*(max-min))+min },
|
random: function(max, min) { return min = min||0, parseInt(Math.random()*(max-min))+min },
|
||||||
})
|
})
|
||||||
|
16
lib/core.js
16
lib/core.js
@ -8,16 +8,16 @@ Volcanos("core", {
|
|||||||
case lang.NUMBER: list.push(v+""); break
|
case lang.NUMBER: list.push(v+""); break
|
||||||
case lang.FUNCTION: v = v()
|
case lang.FUNCTION: v = v()
|
||||||
default: v && list.push(v+"")
|
default: v && list.push(v+"")
|
||||||
} } return list.join(ice.PT)
|
} } return list.join(nfs.PT)
|
||||||
},
|
},
|
||||||
Value: function(data, key, value) { if (data == undefined) { return } if (key == undefined) { return data }
|
Value: function(data, key, value) { if (data == undefined) { return } if (key == undefined) { return data }
|
||||||
if (typeof key == lang.OBJECT) { if (key.length != undefined) { key = key.join(ice.PT) } else { for (var k in key) { arguments.callee.call(this, data, k, key[k]) } return data } }
|
if (typeof key == lang.OBJECT) { if (key.length != undefined) { key = key.join(nfs.PT) } else { for (var k in key) { arguments.callee.call(this, data, k, key[k]) } return data } }
|
||||||
if (value != undefined) { var _node = data, keys = key.split(ice.PT)
|
if (value != undefined) { var _node = data, keys = key.split(nfs.PT)
|
||||||
for (var i = 0; i < keys.length; i++) { var _next = _node[keys[i]]||{}; _node[keys[i]] = _next
|
for (var i = 0; i < keys.length; i++) { var _next = _node[keys[i]]||{}; _node[keys[i]] = _next
|
||||||
if (i < keys.length - 1) { _node = _next } else { _node[keys[i]] = value }
|
if (i < keys.length - 1) { _node = _next } else { _node[keys[i]] = value }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var node = data, keys = key.split(ice.PT); while (node && keys.length > 0) {
|
var node = data, keys = key.split(nfs.PT); while (node && keys.length > 0) {
|
||||||
if (keys[0] == "-1") { keys[0] = node.length-1 } node = node[keys[0]], keys = keys.slice(1)
|
if (keys[0] == "-1") { keys[0] = node.length-1 } node = node[keys[0]], keys = keys.slice(1)
|
||||||
} return node == undefined? data[key]: node
|
} return node == undefined? data[key]: node
|
||||||
},
|
},
|
||||||
@ -51,10 +51,10 @@ Volcanos("core", {
|
|||||||
case mdb.NAME: return {type: html.TEXT, name: item}
|
case mdb.NAME: return {type: html.TEXT, name: item}
|
||||||
case mdb.TEXT: return {type: html.TEXTAREA, name: item}
|
case mdb.TEXT: return {type: html.TEXTAREA, name: item}
|
||||||
case ctx.ARGS: return {type: html.TEXTAREA, name: item}
|
case ctx.ARGS: return {type: html.TEXTAREA, name: item}
|
||||||
default: var ls = this.Split(item, ice.SP, "*:=@"), res = {type: type, name: ls[0]}; for (var i = 1; i < ls.length; i += 2) { switch (ls[i]) {
|
default: var ls = this.Split(item, lex.SP, "*:=@"), res = {type: type, name: ls[0]}; for (var i = 1; i < ls.length; i += 2) { switch (ls[i]) {
|
||||||
case "*": res["need"] = "must", i--; break
|
case "*": res["need"] = "must", i--; break
|
||||||
case ice.DF: res[mdb.TYPE] = ls[i+1]; break
|
case nfs.DF: res[mdb.TYPE] = ls[i+1]; break
|
||||||
case ice.EQ:
|
case mdb.EQ:
|
||||||
if (res[mdb.TYPE] == html.SELECT) { res.values = this.Split(ls[i+1]); for (var j = 1; j < res.values.length; j++) {
|
if (res[mdb.TYPE] == html.SELECT) { res.values = this.Split(ls[i+1]); for (var j = 1; j < res.values.length; j++) {
|
||||||
if (res.values[0] == "" || res.values[0] == res.values[j]) { res.value = res.values[0], res.values = res.values.slice(1); break }
|
if (res.values[0] == "" || res.values[0] == res.values[j]) { res.value = res.values[0], res.values = res.values.slice(1); break }
|
||||||
} } else { res.value = ls[i+1] } break
|
} } else { res.value = ls[i+1] } break
|
||||||
@ -65,7 +65,7 @@ Volcanos("core", {
|
|||||||
if (Array.isArray(args)) { this.List(args, function(arg) { if (!arg) { return } if (arg.request && arg.run) { can = arg } else if (arg.Append && arg.Result) { msg = arg } else if (typeof arg == code.FUNCTION) { cb = arg } }) }
|
if (Array.isArray(args)) { this.List(args, function(arg) { if (!arg) { return } if (arg.request && arg.run) { can = arg } else if (arg.Append && arg.Result) { msg = arg } else if (typeof arg == code.FUNCTION) { cb = arg } }) }
|
||||||
func = typeof func == lang.FUNCTION? func: typeof func == lang.OBJECT && func.length > 0? this.Value(func[0], this.Keys(func.slice(1))): typeof func == lang.STRING? this.Value(mod||can, func): null
|
func = typeof func == lang.FUNCTION? func: typeof func == lang.OBJECT && func.length > 0? this.Value(func[0], this.Keys(func.slice(1))): typeof func == lang.STRING? this.Value(mod||can, func): null
|
||||||
if (typeof func != lang.FUNCTION) { if (typeof cb == lang.FUNCTION) { cb() } return }
|
if (typeof func != lang.FUNCTION) { if (typeof cb == lang.FUNCTION) { cb() } return }
|
||||||
var list = [], echo = false; args.length > 0? list = args: this.List(func.toString().split(")")[0].split("(")[1].split(ice.FS), function(item, index) { item = item.trim(); if (item == "") { return }
|
var list = [], echo = false; args.length > 0? list = args: this.List(func.toString().split(")")[0].split("(")[1].split(mdb.FS), function(item, index) { item = item.trim(); if (item == "") { return }
|
||||||
list.push(args[item] || msg&&msg.Option&&msg.Option(item) || can&&can.Conf&&can.Conf(item) || null); if (item == "cb") { echo = true }
|
list.push(args[item] || msg&&msg.Option&&msg.Option(item) || can&&can.Conf&&can.Conf(item) || null); if (item == "cb") { echo = true }
|
||||||
}); var res = func.apply(mod||can, list); if (msg && msg.Defer) { msg.Defer() }
|
}); var res = func.apply(mod||can, list); if (msg && msg.Defer) { msg.Defer() }
|
||||||
if (!echo && typeof cb == lang.FUNCTION) { res && msg&&msg.Echo&&msg.Echo(res), arguments.callee.apply(this, [cb, {msg: msg, res: res}]) } return res
|
if (!echo && typeof cb == lang.FUNCTION) { res && msg&&msg.Echo&&msg.Echo(res), arguments.callee.apply(this, [cb, {msg: msg, res: res}]) } return res
|
||||||
|
48
lib/misc.js
48
lib/misc.js
@ -23,7 +23,7 @@ Volcanos("misc", {
|
|||||||
if (val == undefined) { return can.base.isIn(key, msg.append) && msg[key] && msg[key][0] || "" }
|
if (val == undefined) { return can.base.isIn(key, msg.append) && msg[key] && msg[key][0] || "" }
|
||||||
return msg.append = can.base.AddUniq(msg.append, key), msg[key] = can.core.List(arguments).slice(1), val
|
return msg.append = can.base.AddUniq(msg.append, key), msg[key] = can.core.List(arguments).slice(1), val
|
||||||
},
|
},
|
||||||
Result: function() { if (!msg.result) { return "" } return msg.result[0] == ice.ErrWarn? msg.result.join(ice.SP): msg.result.join("") },
|
Result: function() { if (!msg.result) { return "" } return msg.result[0] == ice.ErrWarn? msg.result.join(lex.SP): msg.result.join("") },
|
||||||
Results: function() { return msg.result && msg.result[0] == ice.ErrWarn? "": msg.Result() },
|
Results: function() { return msg.result && msg.result[0] == ice.ErrWarn? "": msg.Result() },
|
||||||
TableDetail: function() { var item = can.Option(); return msg.Table(function(value) { can.core.Value(item, value.key, value.value) }), item },
|
TableDetail: function() { var item = can.Option(); return msg.Table(function(value) { can.core.Value(item, value.key, value.value) }), item },
|
||||||
Table: function(cb) { return can.core.List(msg.Length(), function(index) { var item = {}
|
Table: function(cb) { return can.core.List(msg.Length(), function(index) { var item = {}
|
||||||
@ -82,9 +82,9 @@ Volcanos("misc", {
|
|||||||
if (msg._upload) { var data = new FormData(); can.core.ItemForm(form, function(v, i, k) { data.append(k, v) })
|
if (msg._upload) { var data = new FormData(); can.core.ItemForm(form, function(v, i, k) { data.append(k, v) })
|
||||||
data.append(ice.MSG_UPLOAD, web.UPLOAD), data.append(web.UPLOAD, msg._upload)
|
data.append(ice.MSG_UPLOAD, web.UPLOAD), data.append(web.UPLOAD, msg._upload)
|
||||||
xhr.upload.onprogress = function(event) { can.base.isFunc(msg._progress) && msg._progress(event, parseInt(event.loaded*100/event.total), event.total, event.loaded) }
|
xhr.upload.onprogress = function(event) { can.base.isFunc(msg._progress) && msg._progress(event, parseInt(event.loaded*100/event.total), event.total, event.loaded) }
|
||||||
} else if (can.user.isMailMaster) { var data = can.core.ItemForm(form, function(value, index, key) { return key+ice.EQ+encodeURIComponent(value) }).join("&")
|
} else if (can.user.isMailMaster) { var data = can.core.ItemForm(form, function(value, index, key) { return key+mdb.EQ+encodeURIComponent(value) }).join("&")
|
||||||
if (data) { xhr.open(msg._method||web.POST, url += (url.indexOf(url, ice.QS) == -1? ice.QS: "&")+data) }
|
if (data) { xhr.open(msg._method||web.POST, url += (url.indexOf(url, ice.QS) == -1? ice.QS: "&")+data) }
|
||||||
} else { var data = can.core.ItemForm(form, function(v, i, k) { return k+ice.EQ+encodeURIComponent(v) }).join("&")
|
} else { var data = can.core.ItemForm(form, function(v, i, k) { return k+mdb.EQ+encodeURIComponent(v) }).join("&")
|
||||||
xhr.setRequestHeader(web.ContentType, web.ContentFORM)
|
xhr.setRequestHeader(web.ContentType, web.ContentFORM)
|
||||||
} try { xhr.send(data) } catch(e) { can.misc.Warn(e) }
|
} try { xhr.send(data) } catch(e) { can.misc.Warn(e) }
|
||||||
},
|
},
|
||||||
@ -114,7 +114,7 @@ Volcanos("misc", {
|
|||||||
} catch (e) { can.misc.Warn(e), msg.Reply() }
|
} catch (e) { can.misc.Warn(e), msg.Reply() }
|
||||||
}) }
|
}) }
|
||||||
},
|
},
|
||||||
MergePath: function(can, file, path) { return file.indexOf(ice.PS) == 0 || file.indexOf(ice.HTTP) == 0? file: can.base.Path(path, file) },
|
MergePath: function(can, file, path) { return file.indexOf(nfs.PS) == 0 || file.indexOf(ice.HTTP) == 0? file: can.base.Path(path, file) },
|
||||||
MergeCache: function(can, hash) { return can.misc.MergeURL(can, {_path: can.base.Path(web.SHARE_CACHE, hash)}, true) },
|
MergeCache: function(can, hash) { return can.misc.MergeURL(can, {_path: can.base.Path(web.SHARE_CACHE, hash)}, true) },
|
||||||
MergePodCmd: function(can, obj) {
|
MergePodCmd: function(can, obj) {
|
||||||
if (can.base.beginWith(obj.pod, "http://", "https://")) { return obj.pod }
|
if (can.base.beginWith(obj.pod, "http://", "https://")) { return obj.pod }
|
||||||
@ -124,17 +124,17 @@ Volcanos("misc", {
|
|||||||
can.misc.Search(can, log.DEBUG) && (obj.debug = ice.TRUE); var hash = obj._hash||""; delete(obj._hash)
|
can.misc.Search(can, log.DEBUG) && (obj.debug = ice.TRUE); var hash = obj._hash||""; delete(obj._hash)
|
||||||
var args = [web.CHAT]; can.core.List([ice.POD, ice.CMD, web.WEBSITE], function(key) { obj[key] && args.push(key, obj[key]), delete(obj[key]) })
|
var args = [web.CHAT]; can.core.List([ice.POD, ice.CMD, web.WEBSITE], function(key) { obj[key] && args.push(key, obj[key]), delete(obj[key]) })
|
||||||
var _location = location; if (can.user.isExtension) { var _location = new URL(Volcanos.meta.iceberg) }
|
var _location = location; if (can.user.isExtension) { var _location = new URL(Volcanos.meta.iceberg) }
|
||||||
return can.base.MergeURL(_location.origin+(args.length == 1? path: ice.PS+args.join(ice.PS))+(clear? "": _location.search), obj)+(hash? "#"+hash: "")
|
return can.base.MergeURL(_location.origin+(args.length == 1? path: nfs.PS+args.join(nfs.PS))+(clear? "": _location.search), obj)+(hash? "#"+hash: "")
|
||||||
},
|
},
|
||||||
ParseURL: function(can, url) { var args = can.base.ParseURL(url), _location = new URL(url)
|
ParseURL: function(can, url) { var args = can.base.ParseURL(url), _location = new URL(url)
|
||||||
delete(args.link), delete(args.origin), delete(args._origin)
|
delete(args.link), delete(args.origin), delete(args._origin)
|
||||||
var ls = can.core.Split(_location.pathname, ice.PS); if (ls[0] == chat.SHARE) { args[chat.SHARE] = ls[1] }
|
var ls = can.core.Split(_location.pathname, nfs.PS); if (ls[0] == chat.SHARE) { args[chat.SHARE] = ls[1] }
|
||||||
for (var i = 1; i < ls.length; i += 2) { if (can.base.isIn(ls[i], [ice.POD, ice.CMD, web.WEBSITE])) { args[ls[i]] = ls[i+1] } }
|
for (var i = 1; i < ls.length; i += 2) { if (can.base.isIn(ls[i], [ice.POD, ice.CMD, web.WEBSITE])) { args[ls[i]] = ls[i+1] } }
|
||||||
return args
|
return args
|
||||||
},
|
},
|
||||||
SplitPath: function(can, path) { var ls = path.split(ice.PS); if (ls.length == 1) { return [nfs.PWD, ls[0]] }
|
SplitPath: function(can, path) { var ls = path.split(nfs.PS); if (ls.length == 1) { return [nfs.PWD, ls[0]] }
|
||||||
if (ls[0] == ice.USR) { return [ls.slice(0, 2).join(ice.PS)+ice.PS, ls.slice(2).join(ice.PS)] }
|
if (ls[0] == ice.USR) { return [ls.slice(0, 2).join(nfs.PS)+nfs.PS, ls.slice(2).join(nfs.PS)] }
|
||||||
return [ls.slice(0, 1).join(ice.PS)+ice.PS, ls.slice(1).join(ice.PS)]
|
return [ls.slice(0, 1).join(nfs.PS)+nfs.PS, ls.slice(1).join(nfs.PS)]
|
||||||
},
|
},
|
||||||
Search: function(can, key, value) { var args = this.ParseURL(can, location.href)
|
Search: function(can, key, value) { var args = this.ParseURL(can, location.href)
|
||||||
if (can.base.isUndefined(key)) { return args } else if (can.base.isObject(key)) {
|
if (can.base.isUndefined(key)) { return args } else if (can.base.isObject(key)) {
|
||||||
@ -148,18 +148,18 @@ Volcanos("misc", {
|
|||||||
hash = can.core.List(arguments, function(item) {
|
hash = can.core.List(arguments, function(item) {
|
||||||
return can.base.replaceAll(item, ":", "%3A")
|
return can.base.replaceAll(item, ":", "%3A")
|
||||||
return encodeURIComponent(item)
|
return encodeURIComponent(item)
|
||||||
}).slice(1).join(ice.DF)
|
}).slice(1).join(nfs.DF)
|
||||||
if (can.isCmdMode() || can._name == "Action") { location.hash = hash }
|
if (can.isCmdMode() || can._name == "Action") { location.hash = hash }
|
||||||
}
|
}
|
||||||
return can.core.List(can.core.Split(can.base.trimPrefix(location.hash, "#"), ice.DF)||[], function(item) { return decodeURIComponent(item) })
|
return can.core.List(can.core.Split(can.base.trimPrefix(location.hash, "#"), nfs.DF)||[], function(item) { return decodeURIComponent(item) })
|
||||||
},
|
},
|
||||||
SearchOrConf: function(can, key, def) { return can.misc.Search(can, key)||Volcanos.meta.args[key]||can.misc.sessionStorage(can, "can."+key)||can.misc.localStorage(can, "can."+key)||can.Conf(key)||def },
|
SearchOrConf: function(can, key, def) { return can.misc.Search(can, key)||Volcanos.meta.args[key]||can.misc.sessionStorage(can, "can."+key)||can.misc.localStorage(can, "can."+key)||can.Conf(key)||def },
|
||||||
CookieSessid: function(can, value, path) { return can.misc.Cookie(can, ice.MSG_SESSID+"_"+(location.port||(location.protocol == "https:"? "443": "80")), value, path) },
|
CookieSessid: function(can, value, path) { return can.misc.Cookie(can, ice.MSG_SESSID+"_"+(location.port||(location.protocol == "https:"? "443": "80")), value, path) },
|
||||||
Cookie: function(can, key, value, path) { function set(k, v) { document.cookie = k+ice.EQ+v+";path="+(path||ice.PS) }
|
Cookie: function(can, key, value, path) { function set(k, v) { document.cookie = k+mdb.EQ+v+";path="+(path||nfs.PS) }
|
||||||
if (can.base.isObject(key)) { for (var k in key) { set(k, key[k]) } key = undefined }
|
if (can.base.isObject(key)) { for (var k in key) { set(k, key[k]) } key = undefined }
|
||||||
if (can.base.isUndefined(key)) { var cs = {}; if (!document.cookie) { return } return document.cookie.split("; ").forEach(function(item) { var ls = item.split(ice.EQ); cs[ls[0]] = ls[1] }), cs }
|
if (can.base.isUndefined(key)) { var cs = {}; if (!document.cookie) { return } return document.cookie.split("; ").forEach(function(item) { var ls = item.split(mdb.EQ); cs[ls[0]] = ls[1] }), cs }
|
||||||
if (value === "") { var expires = new Date(); expires.setTime(expires.getTime() - 10)
|
if (value === "") { var expires = new Date(); expires.setTime(expires.getTime() - 10)
|
||||||
return document.cookie = key+ice.EQ+value+";path="+(path||ice.PS)+";expires=" + expires.toGMTString();
|
return document.cookie = key+mdb.EQ+value+";path="+(path||nfs.PS)+";expires=" + expires.toGMTString();
|
||||||
} can.base.isUndefined(value) || set(key, value)
|
} can.base.isUndefined(value) || set(key, value)
|
||||||
var val = (new RegExp(key+"=([^;]*);?")).exec(document.cookie); return val && val.length > 1? val[1]: ""
|
var val = (new RegExp(key+"=([^;]*);?")).exec(document.cookie); return val && val.length > 1? val[1]: ""
|
||||||
},
|
},
|
||||||
@ -179,38 +179,38 @@ Volcanos("misc", {
|
|||||||
Info: function() { var args = this._args(log.INFO, arguments); console.info.apply(console, args), this._signal(args) },
|
Info: function() { var args = this._args(log.INFO, arguments); console.info.apply(console, args), this._signal(args) },
|
||||||
Warn: function() { var args = this._args(log.WARN, arguments); console.warn.apply(console, args), this._signal(args); debugger },
|
Warn: function() { var args = this._args(log.WARN, arguments); console.warn.apply(console, args), this._signal(args); debugger },
|
||||||
Error: function() {
|
Error: function() {
|
||||||
var args = this._args(log.ERROR, arguments); args.push(ice.NL, this._stacks().slice(1).join(ice.NL)), console.error.apply(console, args), this._signal(args); debugger
|
var args = this._args(log.ERROR, arguments); args.push(lex.NL, this._stacks().slice(1).join(lex.NL)), console.error.apply(console, args), this._signal(args); debugger
|
||||||
},
|
},
|
||||||
Debug: function() { var args = this._args(log.DEBUG, arguments); args.push(ice.NL, this._stacks().slice(1, 4).join(ice.NL)), console.debug.apply(console, args), this._signal(args) },
|
Debug: function() { var args = this._args(log.DEBUG, arguments); args.push(lex.NL, this._stacks().slice(1, 4).join(lex.NL)), console.debug.apply(console, args), this._signal(args) },
|
||||||
Trace: function() { var output = false
|
Trace: function() { var output = false
|
||||||
for (var i in arguments) { var arg = arguments[i]; if (arg.Conf && arg.Conf("log.trace") == ice.TRUE || arg.Option && arg.Option("log.trace") == ice.TRUE) { output = true } } if (!output) { return }
|
for (var i in arguments) { var arg = arguments[i]; if (arg.Conf && arg.Conf("log.trace") == ice.TRUE || arg.Option && arg.Option("log.trace") == ice.TRUE) { output = true } } if (!output) { return }
|
||||||
var args = this._args(log.TRACE, arguments); args.push(ice.NL, this._stacks().slice(1, 4).join(ice.NL)), console.debug.apply(console, args), this._signal(args)
|
var args = this._args(log.TRACE, arguments); args.push(lex.NL, this._stacks().slice(1, 4).join(lex.NL)), console.debug.apply(console, args), this._signal(args)
|
||||||
},
|
},
|
||||||
FileLine: function(depth, length) { var file = this.fileLine(depth+1, length||9); return file.link },
|
FileLine: function(depth, length) { var file = this.fileLine(depth+1, length||9); return file.link },
|
||||||
fileLine: function(depth, length) { var list = this._stacks()
|
fileLine: function(depth, length) { var list = this._stacks()
|
||||||
function split(i) { if (!list[i]) { return {} }
|
function split(i) { if (!list[i]) { return {} }
|
||||||
var ls = /(https*:\/\/[^/]+)*([^:]+):([0-9]+):([0-9]+)/.exec(list[i])
|
var ls = /(https*:\/\/[^/]+)*([^:]+):([0-9]+):([0-9]+)/.exec(list[i])
|
||||||
var name = ""; list[i].lastIndexOf(ice.TB) > 0 && (name = list[i].split(ice.TB).pop())
|
var name = ""; list[i].lastIndexOf(lex.TB) > 0 && (name = list[i].split(lex.TB).pop())
|
||||||
if (ls[0].indexOf(ice.QS) > -1) { ls[0] = ls[0].split(ice.QS)[0]+ice.DF+ls[3]+ice.DF+ls[4] }
|
if (ls[0].indexOf(ice.QS) > -1) { ls[0] = ls[0].split(ice.QS)[0]+nfs.DF+ls[3]+nfs.DF+ls[4] }
|
||||||
return {name: name, link: ls[0], path: ls[2], file: ls[2].split(ice.PS).slice(-length).join(ice.PS), line: ls[3], cols: ls[4]}
|
return {name: name, link: ls[0], path: ls[2], file: ls[2].split(nfs.PS).slice(-length).join(nfs.PS), line: ls[3], cols: ls[4]}
|
||||||
}
|
}
|
||||||
if (depth < 0) { var current = split(-depth)
|
if (depth < 0) { var current = split(-depth)
|
||||||
for (var i = -depth+1; i < list.length; i++) { var pos = split(i); if (pos.path != current.path) { return pos } }
|
for (var i = -depth+1; i < list.length; i++) { var pos = split(i); if (pos.path != current.path) { return pos } }
|
||||||
} return split(depth)||{}
|
} return split(depth)||{}
|
||||||
},
|
},
|
||||||
_stacks: function(n, s) { var list = ((s||(new Error())).stack||"").split(ice.NL).slice(typeof n == undefined? 2: n)
|
_stacks: function(n, s) { var list = ((s||(new Error())).stack||"").split(lex.NL).slice(typeof n == undefined? 2: n)
|
||||||
for (var i = 0; i < list.length; i++) { var ls = list[i].trim().split(ice.SP)
|
for (var i = 0; i < list.length; i++) { var ls = list[i].trim().split(lex.SP)
|
||||||
list[i] = ls.pop().trim(); if (list[i][0] == "(") { list[i] = list[i].slice(1, -1) }
|
list[i] = ls.pop().trim(); if (list[i][0] == "(") { list[i] = list[i].slice(1, -1) }
|
||||||
list[i] = " "+list[i]; if (ls.length > 1) { list[i] += " "+ls.pop() }
|
list[i] = " "+list[i]; if (ls.length > 1) { list[i] += " "+ls.pop() }
|
||||||
list[i] = list[i].replace(/\?[^:]+/, "").replace(location.origin, "")
|
list[i] = list[i].replace(/\?[^:]+/, "").replace(location.origin, "")
|
||||||
} return list
|
} return list
|
||||||
}, _stack: function() { return ((new Error()).stack||"").split(ice.NL).slice(2) },
|
}, _stack: function() { return ((new Error()).stack||"").split(lex.NL).slice(2) },
|
||||||
_time: function() { var now = new Date()
|
_time: function() { var now = new Date()
|
||||||
var hour = now.getHours(); hour < 10 && (hour = "0"+hour)
|
var hour = now.getHours(); hour < 10 && (hour = "0"+hour)
|
||||||
var minute = now.getMinutes(); minute < 10 && (minute = "0"+minute)
|
var minute = now.getMinutes(); minute < 10 && (minute = "0"+minute)
|
||||||
var second = now.getSeconds(); second < 10 && (second = "0"+second)
|
var second = now.getSeconds(); second < 10 && (second = "0"+second)
|
||||||
var mill = now.getMilliseconds(); mill < 10 && (mill = "00"+mill) || mill < 100 && (mill = "0"+mill)
|
var mill = now.getMilliseconds(); mill < 10 && (mill = "00"+mill) || mill < 100 && (mill = "0"+mill)
|
||||||
return [hour, minute, second].join(ice.DF)+ice.PT+mill
|
return [hour, minute, second].join(nfs.DF)+nfs.PT+mill
|
||||||
},
|
},
|
||||||
_args: function(level, arg) { var args = [this._time(), this.FileLine(this._skip+1, 3)].concat(level? [level]: [])
|
_args: function(level, arg) { var args = [this._time(), this.FileLine(this._skip+1, 3)].concat(level? [level]: [])
|
||||||
for (var i in arg) { arg[i] != undefined && args.push(arg[i]) } return args
|
for (var i in arg) { arg[i] != undefined && args.push(arg[i]) } return args
|
||||||
|
68
lib/page.js
68
lib/page.js
@ -1,12 +1,12 @@
|
|||||||
Volcanos("page", {
|
Volcanos("page", {
|
||||||
ClassList: {
|
ClassList: {
|
||||||
has: function(can, target, key) { var list = target.className? target.className.split(ice.SP): []; return list.indexOf(key) > -1 },
|
has: function(can, target, key) { var list = target.className? target.className.split(lex.SP): []; return list.indexOf(key) > -1 },
|
||||||
add: function(can, target, key) { Array.isArray(key) && (key = key.join(ice.SP))
|
add: function(can, target, key) { Array.isArray(key) && (key = key.join(lex.SP))
|
||||||
var list = target.className? target.className.split(ice.SP): []; can.core.List(can.core.Split(key), function(key) { can.base.AddUniq(list, key) })
|
var list = target.className? target.className.split(lex.SP): []; can.core.List(can.core.Split(key), function(key) { can.base.AddUniq(list, key) })
|
||||||
var value = list.join(ice.SP).trim(); return value != target.className && (target.className = value), value
|
var value = list.join(lex.SP).trim(); return value != target.className && (target.className = value), value
|
||||||
},
|
},
|
||||||
del: function(can, target, key) { var list = target.className? target.className.split(ice.SP): []
|
del: function(can, target, key) { var list = target.className? target.className.split(lex.SP): []
|
||||||
return target.className = can.core.List(list, function(value) { return value == key? undefined: value }).join(ice.SP).trim()
|
return target.className = can.core.List(list, function(value) { return value == key? undefined: value }).join(lex.SP).trim()
|
||||||
},
|
},
|
||||||
set: function(can, target, key, condition) { return (condition? this.add(can, target, key): this.del(can, target, key)).indexOf(key) > -1 },
|
set: function(can, target, key, condition) { return (condition? this.add(can, target, key): this.del(can, target, key)).indexOf(key) > -1 },
|
||||||
neg: function(can, target, key) { return (this.has(can, target, key)? this.del(can, target, key): this.add(can, target, key)).indexOf(key) > -1 },
|
neg: function(can, target, key) { return (this.has(can, target, key)? this.del(can, target, key): this.add(can, target, key)).indexOf(key) > -1 },
|
||||||
@ -16,7 +16,7 @@ Volcanos("page", {
|
|||||||
if (can.base.isUndefined(key)) { var value = {}; can.page.SelectArgs(can, target, "", function(item) { item.name && item.value && (value[item.name] = item.value) }); return [value] }
|
if (can.base.isUndefined(key)) { var value = {}; can.page.SelectArgs(can, target, "", function(item) { item.name && item.value && (value[item.name] = item.value) }); return [value] }
|
||||||
if (can.base.isObject(key)) { return can.core.Item(key, function(key, value) { can.page.SelectArgs(can, target, key, value) }), [key] }
|
if (can.base.isObject(key)) { return can.core.Item(key, function(key, value) { can.page.SelectArgs(can, target, key, value) }), [key] }
|
||||||
if (!can.base.isFunc(cb)) { var value = cb; cb = function(item) { return item.name && (can.base.isUndefined(value)? item.value: (item.value = value))||"" } }
|
if (!can.base.isFunc(cb)) { var value = cb; cb = function(item) { return item.name && (can.base.isUndefined(value)? item.value: (item.value = value))||"" } }
|
||||||
if (key.indexOf(ice.PT) > -1) { return [""] }
|
if (key.indexOf(nfs.PT) > -1) { return [""] }
|
||||||
key && can.base.isString(cb) && can.page.Select(can, target, "div.item."+key+">span.value", cb)
|
key && can.base.isString(cb) && can.page.Select(can, target, "div.item."+key+">span.value", cb)
|
||||||
return can.page.Select(can, target, key? "select[name="+key+"],"+"input.select[type=button][name="+key+"],"+"input[name="+key+"],"+"textarea[name="+key+"]": ".args", cb)
|
return can.page.Select(can, target, key? "select[name="+key+"],"+"input.select[type=button][name="+key+"],"+"input[name="+key+"],"+"textarea[name="+key+"]": ".args", cb)
|
||||||
},
|
},
|
||||||
@ -24,11 +24,11 @@ Volcanos("page", {
|
|||||||
SelectChild: function(can, target, key, cb) { return can.core.List(can.page.Select(can, target, key, function(node) { if (node.parentNode == target) { return node } }), cb) },
|
SelectChild: function(can, target, key, cb) { return can.core.List(can.page.Select(can, target, key, function(node) { if (node.parentNode == target) { return node } }), cb) },
|
||||||
SelectOne: function(can, target, key, cb) { return can.page.Select(can, target, key, function(target, index) { return index == 0 && can.base.isFunc(cb) && cb(target), target })[0] },
|
SelectOne: function(can, target, key, cb) { return can.page.Select(can, target, key, function(target, index) { return index == 0 && can.base.isFunc(cb) && cb(target), target })[0] },
|
||||||
Select: function(can, target, key, cb, interval, cbs) { target = target || document.body
|
Select: function(can, target, key, cb, interval, cbs) { target = target || document.body
|
||||||
return can.core.List(key == ice.PT? [target]: target.querySelectorAll(can.page.Keys(key)), cb, interval, cbs)
|
return can.core.List(key == nfs.PT? [target]: target.querySelectorAll(can.page.Keys(key)), cb, interval, cbs)
|
||||||
},
|
},
|
||||||
Modify: function(can, target, value) { target = can.base.isString(target)? document.querySelector(target): target; if (!target) { return }
|
Modify: function(can, target, value) { target = can.base.isString(target)? document.querySelector(target): target; if (!target) { return }
|
||||||
can.base.isString(value)? (target.innerHTML = value): can.core.Item(value, function(key, val) {
|
can.base.isString(value)? (target.innerHTML = value): can.core.Item(value, function(key, val) {
|
||||||
key == "className" && can.base.isArray(val) && (val = val.join(ice.SP)), !can.base.isObject(val)? (target[key] = val): can.core.Item(val, function(k, v) {
|
key == "className" && can.base.isArray(val) && (val = val.join(lex.SP)), !can.base.isObject(val)? (target[key] = val): can.core.Item(val, function(k, v) {
|
||||||
if (can.base.isIn(k, "height", "width", "min-height", "max-height", "min-width", "max-width") && parseInt(v) < 0) { return target[key] && (target[key][k] = "") }
|
if (can.base.isIn(k, "height", "width", "min-height", "max-height", "min-width", "max-width") && parseInt(v) < 0) { return target[key] && (target[key][k] = "") }
|
||||||
if (can.base.isIn(k, "height", "width", "min-height", "max-height", "min-width", "max-width", "left", "top", "right", "bottom", "margin-left", "margin-top", "margin", "padding", "font-size") && v && (can.base.isNumber(v) || !can.base.endWith(v, "px"))) { v += "px" }
|
if (can.base.isIn(k, "height", "width", "min-height", "max-height", "min-width", "max-width", "left", "top", "right", "bottom", "margin-left", "margin-top", "margin", "padding", "font-size") && v && (can.base.isNumber(v) || !can.base.endWith(v, "px"))) { v += "px" }
|
||||||
target[key] && (target[key][k] = v)
|
target[key] && (target[key][k] = v)
|
||||||
@ -50,9 +50,9 @@ Volcanos("page", {
|
|||||||
case html.INNER: data.innerHTML = item.inner; break
|
case html.INNER: data.innerHTML = item.inner; break
|
||||||
default: can.base.isUndefined(item[key]) || (data[key] = item[key])
|
default: can.base.isUndefined(item[key]) || (data[key] = item[key])
|
||||||
} })
|
} })
|
||||||
if (item.view) { var list = can.core.List(item.view); if (can.base.isArray(list[0])) { list[0] = list[0].join(ice.SP) }
|
if (item.view) { var list = can.core.List(item.view); if (can.base.isArray(list[0])) { list[0] = list[0].join(lex.SP) }
|
||||||
list[0] && can.page.ClassList.add(can, data, list[0]), type = list[1]||type, data.innerHTML = list[2]||data.innerHTML||"", name = list[3]||name
|
list[0] && can.page.ClassList.add(can, data, list[0]), type = list[1]||type, data.innerHTML = list[2]||data.innerHTML||"", name = list[3]||name
|
||||||
} else if (item.text) { var list = can.core.List(item.text); if (can.base.isArray(list[2])) { list[2] = list[2].join(ice.SP) }
|
} else if (item.text) { var list = can.core.List(item.text); if (can.base.isArray(list[2])) { list[2] = list[2].join(lex.SP) }
|
||||||
data.innerHTML = list[0]||data.innerHTML||"", type = list[1]||item.type||html.SPAN, list[2] && can.page.ClassList.add(can, data, list[2])
|
data.innerHTML = list[0]||data.innerHTML||"", type = list[1]||item.type||html.SPAN, list[2] && can.page.ClassList.add(can, data, list[2])
|
||||||
} else if (item.icon) { var list = can.core.List(item.icon)
|
} else if (item.icon) { var list = can.core.List(item.icon)
|
||||||
type = html.SPAN, name = list[0], data.className = "icon "+list[0], data.innerText = can.page.unicode[list[0]]
|
type = html.SPAN, name = list[0], data.className = "icon "+list[0], data.innerText = can.page.unicode[list[0]]
|
||||||
@ -76,12 +76,12 @@ Volcanos("page", {
|
|||||||
// if (type == html.SELECT) { data.title = can.user.trans(can, data.title||name) }
|
// if (type == html.SELECT) { data.title = can.user.trans(can, data.title||name) }
|
||||||
if (type == html.INPUT) {
|
if (type == html.INPUT) {
|
||||||
if (data.type == html.TEXT||data.type == html.PASSWORD||!data.type) {
|
if (data.type == html.TEXT||data.type == html.PASSWORD||!data.type) {
|
||||||
data.placeholder = (data.placeholder||name||"").split(ice.PT).pop(), data.title = can.user.trans(can, data.title||data.placeholder)
|
data.placeholder = (data.placeholder||name||"").split(nfs.PT).pop(), data.title = can.user.trans(can, data.title||data.placeholder)
|
||||||
data.autocomplete = data.autocomplete||"off"
|
data.autocomplete = data.autocomplete||"off"
|
||||||
} else if (data.type == html.BUTTON) {
|
} else if (data.type == html.BUTTON) {
|
||||||
// data.value = can.user.trans(can, data.value)
|
// data.value = can.user.trans(can, data.value)
|
||||||
}
|
}
|
||||||
} if (type == html.TEXTAREA) { data.placeholder = can.user.trans(can, (data.placeholder||name||"").split(ice.PT).pop()) }
|
} if (type == html.TEXTAREA) { data.placeholder = can.user.trans(can, (data.placeholder||name||"").split(nfs.PT).pop()) }
|
||||||
can.core.List(["className", "placeholder", "title"], function(key) { data[key] || delete(data[key]) })
|
can.core.List(["className", "placeholder", "title"], function(key) { data[key] || delete(data[key]) })
|
||||||
name && (data.name = name); var node = can.page.Create(can, type, data)
|
name && (data.name = name); var node = can.page.Create(can, type, data)
|
||||||
value[type] = value[name] = value[can.core.Split(data.className)[0]] = node, value._target = value._target||node, value.first = value.first||node, value.last = node
|
value[type] = value[name] = value[can.core.Split(data.className)[0]] = node, value._target = value._target||node, value.first = value.first||node, value.last = node
|
||||||
@ -92,7 +92,7 @@ Volcanos("page", {
|
|||||||
AppendData: function(can, target, prefix, key, value, cb) { var open = can.page.unicode.open, close = can.page.unicode.close
|
AppendData: function(can, target, prefix, key, value, cb) { var open = can.page.unicode.open, close = can.page.unicode.close
|
||||||
function short(value, length) {
|
function short(value, length) {
|
||||||
if (length == undefined) {
|
if (length == undefined) {
|
||||||
value.indexOf(ice.NL) > -1 && (value = value.trim().split(ice.NL)[0]+can.page.unicode.inner)
|
value.indexOf(lex.NL) > -1 && (value = value.trim().split(lex.NL)[0]+can.page.unicode.inner)
|
||||||
return can.page.replace(can, value)
|
return can.page.replace(can, value)
|
||||||
} else { if (length > 5) {
|
} else { if (length > 5) {
|
||||||
return can.page.unicode.inner }
|
return can.page.unicode.inner }
|
||||||
@ -101,21 +101,21 @@ Volcanos("page", {
|
|||||||
function show(value, deep) { deep = deep == undefined? 2: 0; switch (typeof value) {
|
function show(value, deep) { deep = deep == undefined? 2: 0; switch (typeof value) {
|
||||||
case lang.OBJECT: if (!value) { return {} }
|
case lang.OBJECT: if (!value) { return {} }
|
||||||
if (value._path) { return {value: "@\""+value._path+"\""} }
|
if (value._path) { return {value: "@\""+value._path+"\""} }
|
||||||
if (value.tagName) { return {type: nfs.TARGET, value: "$ "+value.tagName.toLowerCase()+(value.className? ice.PT+value.className.replaceAll(ice.SP, ice.PT):"")} }
|
if (value.tagName) { return {type: nfs.TARGET, value: "$ "+value.tagName.toLowerCase()+(value.className? nfs.PT+value.className.replaceAll(lex.SP, nfs.PT):"")} }
|
||||||
if (deep < 0) { return {value: value.length == undefined? "{"+can.page.unicode.inner+"}": "["+can.page.unicode.inner+"]"} }
|
if (deep < 0) { return {value: value.length == undefined? "{"+can.page.unicode.inner+"}": "["+can.page.unicode.inner+"]"} }
|
||||||
if (value.length != undefined) { return {value: (value.length > 3? value.length+ice.SP: "")+"["+can.core.List(value, function(value, index) { if (index < 6) { return short(show(value, deep-1).value, index+1) } }).join(ice.FS)+"]"} }
|
if (value.length != undefined) { return {value: (value.length > 3? value.length+lex.SP: "")+"["+can.core.List(value, function(value, index) { if (index < 6) { return short(show(value, deep-1).value, index+1) } }).join(mdb.FS)+"]"} }
|
||||||
return {value: "{"+can.core.Item(value, function(key, val, list) { if (value.hasOwnProperty(key) && val && list.length < 7) { return short(key+ice.DF+show(val, deep-1).value, list.length) } }).join(ice.FS)+"}"}
|
return {value: "{"+can.core.Item(value, function(key, val, list) { if (value.hasOwnProperty(key) && val && list.length < 7) { return short(key+nfs.DF+show(val, deep-1).value, list.length) } }).join(mdb.FS)+"}"}
|
||||||
case lang.STRING: return {open: "s", close: "s", value: "\""+(deep == 2? value.replaceAll("\n", "\\n"): short(value))+"\""}
|
case lang.STRING: return {open: "s", close: "s", value: "\""+(deep == 2? value.replaceAll("\n", "\\n"): short(value))+"\""}
|
||||||
case lang.NUMBER: return {open: "n", close: "n", value: value}
|
case lang.NUMBER: return {open: "n", close: "n", value: value}
|
||||||
case lang.BOOLEAN: return {open: "b", close: "b", value: value}
|
case lang.BOOLEAN: return {open: "b", close: "b", value: value}
|
||||||
case lang.FUNCTION: return {open: "f", close: "f", value: deep == 2? (""+value).split(ice.NL)[0]: "function(..) {..}"}
|
case lang.FUNCTION: return {open: "f", close: "f", value: deep == 2? (""+value).split(lex.NL)[0]: "function(..) {..}"}
|
||||||
default: return {value: value}
|
default: return {value: value}
|
||||||
} } var loaded = false, _show = show(value); _show.open = _show.open||open, _show.close = _show.close||close
|
} } var loaded = false, _show = show(value); _show.open = _show.open||open, _show.close = _show.close||close
|
||||||
var ui = can.page.Append(can, target, [!key && value.tagName? can.page.AppendView(can, value): {view: [[html.ITEM, _show.type||typeof(value)], key == ""? html.SPAN: html.DIV], list: [
|
var ui = can.page.Append(can, target, [!key && value.tagName? can.page.AppendView(can, value): {view: [[html.ITEM, _show.type||typeof(value)], key == ""? html.SPAN: html.DIV], list: [
|
||||||
{view: [mdb.ICON, html.SPAN, _show.close+ice.SP]}, {view: [mdb.NAME, html.SPAN, key || key === 0? key+ice.SP: ""]}, {view: [mdb.VALUE, html.SPAN, _show.value]},
|
{view: [mdb.ICON, html.SPAN, _show.close+lex.SP]}, {view: [mdb.NAME, html.SPAN, key || key === 0? key+lex.SP: ""]}, {view: [mdb.VALUE, html.SPAN, _show.value]},
|
||||||
], onclick: function() { cb && cb(prefix, value); if (typeof value != lang.OBJECT) { return }
|
], onclick: function() { cb && cb(prefix, value); if (typeof value != lang.OBJECT) { return }
|
||||||
ui.icon.innerText = (can.onmotion.toggle(can, ui.list)? _show.open: _show.close)+ice.SP
|
ui.icon.innerText = (can.onmotion.toggle(can, ui.list)? _show.open: _show.close)+lex.SP
|
||||||
if (loaded) { return } loaded = true, ui.icon.innerText = _show.open+ice.SP
|
if (loaded) { return } loaded = true, ui.icon.innerText = _show.open+lex.SP
|
||||||
if (value.tagName) { can.page.Append(can, ui.list, [can.page.AppendView(can, value)]), can.onappend.style(can, mdb.VIEW, ui.list)
|
if (value.tagName) { can.page.Append(can, ui.list, [can.page.AppendView(can, value)]), can.onappend.style(can, mdb.VIEW, ui.list)
|
||||||
can.core.List(can.core.Item(target, function(key, value) { if (["textContent", "innerHTML", "outerHTML"].indexOf(key) > -1 || typeof value == lang.FUNCTION || key.toUpperCase() == key) { return } return key }).sort(), function(key) {
|
can.core.List(can.core.Item(target, function(key, value) { if (["textContent", "innerHTML", "outerHTML"].indexOf(key) > -1 || typeof value == lang.FUNCTION || key.toUpperCase() == key) { return } return key }).sort(), function(key) {
|
||||||
target[key] && can.page.AppendData(can, ui.list, can.core.Keys(prefix, key), key, target[key], cb)
|
target[key] && can.page.AppendData(can, ui.list, can.core.Keys(prefix, key), key, target[key], cb)
|
||||||
@ -133,18 +133,18 @@ Volcanos("page", {
|
|||||||
},
|
},
|
||||||
AppendView: function(can, target, tag, list, loaded, cb) {
|
AppendView: function(can, target, tag, list, loaded, cb) {
|
||||||
function field(target) { return target? can.core.List(target.attributes, function(item) {
|
function field(target) { return target? can.core.List(target.attributes, function(item) {
|
||||||
return item.value == "" || item.value == item.name? {type: html.SPAN, list: [{text: ice.SP}, {text: item.name}]}:
|
return item.value == "" || item.value == item.name? {type: html.SPAN, list: [{text: lex.SP}, {text: item.name}]}:
|
||||||
{type: html.SPAN, list: [{text: ice.SP}, {text: item.name}, {text: ice.EQ}, {className: code.STRING, text: "\""+item.value+"\""}]}
|
{type: html.SPAN, list: [{text: lex.SP}, {text: item.name}, {text: mdb.EQ}, {className: code.STRING, text: "\""+item.value+"\""}]}
|
||||||
}): [] }
|
}): [] }
|
||||||
var ui = {}; tag = tag||target.tagName.toLowerCase(), isclose = tag != mdb.META && tag != mdb.LINK, _field = field(target)
|
var ui = {}; tag = tag||target.tagName.toLowerCase(), isclose = tag != mdb.META && tag != mdb.LINK, _field = field(target)
|
||||||
var inner = target.innerHTML? can.page.unicode.inner: ""; if (target && target.tagName) { target.innerText == target.innerHTML && (inner = target.innerText) }
|
var inner = target.innerHTML? can.page.unicode.inner: ""; if (target && target.tagName) { target.innerText == target.innerHTML && (inner = target.innerText) }
|
||||||
return {view: mdb.VIEW, list: [
|
return {view: mdb.VIEW, list: [
|
||||||
{view: [[html.ITEM, target.tagName && target.tagName.toLowerCase()]], list: [
|
{view: [[html.ITEM, target.tagName && target.tagName.toLowerCase()]], list: [
|
||||||
{text: (target.children.length > 0? can.page.unicode.close: ice.SP)+ice.SP, _init: function(target) { ui.toggle = target }},
|
{text: (target.children.length > 0? can.page.unicode.close: lex.SP)+lex.SP, _init: function(target) { ui.toggle = target }},
|
||||||
{className: code.KEYWORD, text: can.page.replace(can, ice.LT)}, {className: code.KEYWORD, text: tag}, {type: html.SPAN, list: _field},
|
{className: code.KEYWORD, text: can.page.replace(can, ice.LT)}, {className: code.KEYWORD, text: tag}, {type: html.SPAN, list: _field},
|
||||||
{className: code.KEYWORD, text: can.page.replace(can, ice.GT)}, inner && {text: inner, _init: function(target) { ui.inner = target }},
|
{className: code.KEYWORD, text: can.page.replace(can, ice.GT)}, inner && {text: inner, _init: function(target) { ui.inner = target }},
|
||||||
isclose && {className: code.KEYWORD, text: can.page.replace(can, ice.LT+ice.PS+tag+ice.GT), _init: function(target) { ui._close = target }},
|
isclose && {className: code.KEYWORD, text: can.page.replace(can, ice.LT+nfs.PS+tag+ice.GT), _init: function(target) { ui._close = target }},
|
||||||
], onclick: function(event) { ui.toggle.innerText = (can.onmotion.toggle(can, ui.list)? can.page.unicode.open: can.page.unicode.close)+ice.SP
|
], onclick: function(event) { ui.toggle.innerText = (can.onmotion.toggle(can, ui.list)? can.page.unicode.open: can.page.unicode.close)+lex.SP
|
||||||
ui.inner && can.onmotion.toggle(can, ui.inner), can.onmotion.toggle(can, ui.close), can.onmotion.toggle(can, ui._close)
|
ui.inner && can.onmotion.toggle(can, ui.inner), can.onmotion.toggle(can, ui.close), can.onmotion.toggle(can, ui._close)
|
||||||
if (!loaded) { if (can.page.tagis(target, ctx.STYLE, nfs.SCRIPT)) { can.page.Append(can, ui.list, [{text: target.innerHTML}]) } else {
|
if (!loaded) { if (can.page.tagis(target, ctx.STYLE, nfs.SCRIPT)) { can.page.Append(can, ui.list, [{text: target.innerHTML}]) } else {
|
||||||
can.page.Append(can, ui.list, can.core.List(target.children, function(node) { return can.page.AppendView(can, node, "", null, false, cb) }))
|
can.page.Append(can, ui.list, can.core.List(target.children, function(node) { return can.page.AppendView(can, node, "", null, false, cb) }))
|
||||||
@ -154,7 +154,7 @@ Volcanos("page", {
|
|||||||
!can.page.tagis(target, nfs.SCRIPT) && can.onappend.style(can, "picker", target)
|
!can.page.tagis(target, nfs.SCRIPT) && can.onappend.style(can, "picker", target)
|
||||||
}, _init: function(target) { can.onmotion.delay(can, function() { loaded && target.click() }) }},
|
}, _init: function(target) { can.onmotion.delay(can, function() { loaded && target.click() }) }},
|
||||||
isclose && {view: [[html.LIST, html.HIDE]], style: {"margin-left": "20px"}, _init: function(target) { ui.list = target }, list: list},
|
isclose && {view: [[html.LIST, html.HIDE]], style: {"margin-left": "20px"}, _init: function(target) { ui.list = target }, list: list},
|
||||||
isclose && {view: [[html.ITEM, html.HIDE]], list: [{text: " "}, {className: code.KEYWORD, text: can.page.replace(can, ice.LT+ice.PS+tag+ice.GT)}], _init: function(target) { ui.close = target }},
|
isclose && {view: [[html.ITEM, html.HIDE]], list: [{text: " "}, {className: code.KEYWORD, text: can.page.replace(can, ice.LT+nfs.PS+tag+ice.GT)}], _init: function(target) { ui.close = target }},
|
||||||
]}
|
]}
|
||||||
},
|
},
|
||||||
AppendTable: function(can, msg, target, list, cb) { if (!msg.append||msg.append.length == 0) { return }
|
AppendTable: function(can, msg, target, list, cb) { if (!msg.append||msg.append.length == 0) { return }
|
||||||
@ -192,11 +192,11 @@ Volcanos("page", {
|
|||||||
case html.IMG: return arg[2]? "<img src='"+arg[1]+"' height="+arg[2]+">": "<img src='"+arg[1]+"'>"
|
case html.IMG: return arg[2]? "<img src='"+arg[1]+"' height="+arg[2]+">": "<img src='"+arg[1]+"'>"
|
||||||
case html.SPAN: return arg[2]? "<span class='"+arg[2]+"'>"+arg[1]+"</span>": arg[1]
|
case html.SPAN: return arg[2]? "<span class='"+arg[2]+"'>"+arg[1]+"</span>": arg[1]
|
||||||
default: /* type inner arg... */
|
default: /* type inner arg... */
|
||||||
var list = ["<"+type]; for (var i = 2; i < arg.length; i += 2) { list.push(ice.SP+arg[i]+ice.EQ+arg[i+1]) }
|
var list = ["<"+type]; for (var i = 2; i < arg.length; i += 2) { list.push(lex.SP+arg[i]+mdb.EQ+arg[i+1]) }
|
||||||
return list.concat(">", arg[1], "</", type, ">").join("")
|
return list.concat(">", arg[1], "</", type, ">").join("")
|
||||||
} },
|
} },
|
||||||
Color: function(text) { if (typeof text != lang.STRING) { return "" } text = text.replace(/\\n/g, "<br>")
|
Color: function(text) { if (typeof text != lang.STRING) { return "" } text = text.replace(/\\n/g, "<br>")
|
||||||
if (text.indexOf(ice.HTTP) == 0 && text.length > 10) { var ls = text.split(ice.SP); text = "<a href='"+ls[0]+"' target='_blank'>"+ls[0]+"</a>"+ls.slice(1).join(ice.SP) }
|
if (text.indexOf(ice.HTTP) == 0 && text.length > 10) { var ls = text.split(lex.SP); text = "<a href='"+ls[0]+"' target='_blank'>"+ls[0]+"</a>"+ls.slice(1).join(lex.SP) }
|
||||||
if (text.indexOf("export ctx_dev=") == 0 && text.length > 10) {
|
if (text.indexOf("export ctx_dev=") == 0 && text.length > 10) {
|
||||||
return "<div class='story' data-type='spark' data-name='shell'><div>"+"<span>"+text+"</span>"+"</div></div>"
|
return "<div class='story' data-type='spark' data-name='shell'><div>"+"<span>"+text+"</span>"+"</div></div>"
|
||||||
}
|
}
|
||||||
@ -215,10 +215,10 @@ Volcanos("page", {
|
|||||||
},
|
},
|
||||||
Keys: function() { var list = []; /* FS SP GT PT */ for (var i = 0; i < arguments.length; i++) { var v = arguments[i]; if (typeof v == lang.OBJECT) {
|
Keys: function() { var list = []; /* FS SP GT PT */ for (var i = 0; i < arguments.length; i++) { var v = arguments[i]; if (typeof v == lang.OBJECT) {
|
||||||
for (var j = 0; j < v.length; j++) { if (typeof v[j] == lang.OBJECT) {
|
for (var j = 0; j < v.length; j++) { if (typeof v[j] == lang.OBJECT) {
|
||||||
for (var k = 0; k < v[j].length; k++) { if (typeof v[j][k] == lang.OBJECT) { v[j][k] = v[j][k].join(ice.PT) } }
|
for (var k = 0; k < v[j].length; k++) { if (typeof v[j][k] == lang.OBJECT) { v[j][k] = v[j][k].join(nfs.PT) } }
|
||||||
v[j] = v[j].join(ice.GT)
|
v[j] = v[j].join(ice.GT)
|
||||||
} } list.push(v.join(ice.SP))
|
} } list.push(v.join(lex.SP))
|
||||||
} else { list.push(v+"") } } return list.join(ice.FS) },
|
} else { list.push(v+"") } } return list.join(mdb.FS) },
|
||||||
Cache: function(name, output, data) { if (!name) { return } var cache = output._cache||{}; output._cache = cache
|
Cache: function(name, output, data) { if (!name) { return } var cache = output._cache||{}; output._cache = cache
|
||||||
if (data) { if (output.children.length == 0) { return } var temp = document.createDocumentFragment()
|
if (data) { if (output.children.length == 0) { return } var temp = document.createDocumentFragment()
|
||||||
while (output.childNodes.length > 0) { var item = output.childNodes[0]; item.parentNode.removeChild(item), temp.appendChild(item) }
|
while (output.childNodes.length > 0) { var item = output.childNodes[0]; item.parentNode.removeChild(item), temp.appendChild(item) }
|
||||||
@ -241,7 +241,7 @@ Volcanos("page", {
|
|||||||
tagis: function(target) { if (!target || !target.tagName) { return }
|
tagis: function(target) { if (!target || !target.tagName) { return }
|
||||||
var type = target.tagName.toLowerCase(); for (var i = 1; i < arguments.length; i++) { if (type == arguments[i]) { return true } }
|
var type = target.tagName.toLowerCase(); for (var i = 1; i < arguments.length; i++) { if (type == arguments[i]) { return true } }
|
||||||
},
|
},
|
||||||
tagClass: function(target) { return target.tagName.toLowerCase()+(target.className? ice.PT+target.className.replaceAll(ice.SP, ice.PT): "") },
|
tagClass: function(target) { return target.tagName.toLowerCase()+(target.className? nfs.PT+target.className.replaceAll(lex.SP, nfs.PT): "") },
|
||||||
isDisplay: function(target) { return target && target.style.display != html.NONE && target.className.indexOf(html.HIDE) == -1 },
|
isDisplay: function(target) { return target && target.style.display != html.NONE && target.className.indexOf(html.HIDE) == -1 },
|
||||||
editable: function(can, item, ok) { item.setAttribute("contenteditable", ok) },
|
editable: function(can, item, ok) { item.setAttribute("contenteditable", ok) },
|
||||||
draggable: function(can, item, ok) { item.setAttribute("draggable", ok) },
|
draggable: function(can, item, ok) { item.setAttribute("draggable", ok) },
|
||||||
@ -293,7 +293,7 @@ Volcanos("page", {
|
|||||||
} return input
|
} return input
|
||||||
},
|
},
|
||||||
requireModules: function(can, libs, cb, cbs) {
|
requireModules: function(can, libs, cb, cbs) {
|
||||||
for (var i = 0; i < libs.length; i++) { if (libs[i].indexOf(ice.PS) == 0 || libs[i].indexOf(ice.HTTP) == 0) { continue }
|
for (var i = 0; i < libs.length; i++) { if (libs[i].indexOf(nfs.PS) == 0 || libs[i].indexOf(ice.HTTP) == 0) { continue }
|
||||||
if (libs[i].indexOf(nfs._CSS) == -1 && libs[i].indexOf(nfs._JS) == -1) { libs[i] = libs[i]+"/lib/"+libs[i]+nfs._JS }
|
if (libs[i].indexOf(nfs._CSS) == -1 && libs[i].indexOf(nfs._JS) == -1) { libs[i] = libs[i]+"/lib/"+libs[i]+nfs._JS }
|
||||||
libs[i] = "/require/modules/"+libs[i]
|
libs[i] = "/require/modules/"+libs[i]
|
||||||
} can.require(libs, cb, cbs)
|
} can.require(libs, cb, cbs)
|
||||||
|
12
lib/user.js
12
lib/user.js
@ -41,7 +41,7 @@ Volcanos("user", {
|
|||||||
close: function(url) { window.close() },
|
close: function(url) { window.close() },
|
||||||
theme: function(can, name) { can.base.isString(name) && (name = [name]) || name || [], can.user.isWindows && name.push("windows")
|
theme: function(can, name) { can.base.isString(name) && (name = [name]) || name || [], can.user.isWindows && name.push("windows")
|
||||||
can.user.isWebview && name.push(html.WEBVIEW), can.user.isMobile && name.push(html.MOBILE) && can.user.isLandscape() && name.push(html.LANDSCAPE)
|
can.user.isWebview && name.push(html.WEBVIEW), can.user.isMobile && name.push(html.MOBILE) && can.user.isLandscape() && name.push(html.LANDSCAPE)
|
||||||
can.user.language(can) && name.push(can.user.language(can)), can.page.styleClass(can, document.body, name.join(ice.SP))
|
can.user.language(can) && name.push(can.user.language(can)), can.page.styleClass(can, document.body, name.join(lex.SP))
|
||||||
},
|
},
|
||||||
title: function(text) { if (window.webview) { return title(text) } return text && (document.title = text), document.title },
|
title: function(text) { if (window.webview) { return title(text) } return text && (document.title = text), document.title },
|
||||||
language: function(can) { return can.misc.SearchOrConf(can, aaa.LANGUAGE)||can.user.info.language||"zh" },
|
language: function(can) { return can.misc.SearchOrConf(can, aaa.LANGUAGE)||can.user.info.language||"zh" },
|
||||||
@ -75,7 +75,7 @@ Volcanos("user", {
|
|||||||
toastSuccess: function(can, content, title) { return can.user.toast(can, {content: "\u2705 "+(content||ice.SUCCESS), title: title||can._name, caller: 2}) },
|
toastSuccess: function(can, content, title) { return can.user.toast(can, {content: "\u2705 "+(content||ice.SUCCESS), title: title||can._name, caller: 2}) },
|
||||||
toastFailure: function(can, content, title) { return can.user.toast(can, {content: "\u274C "+(content||ice.FAILURE), title: title||can._name, duration: 10000, caller: 2}) },
|
toastFailure: function(can, content, title) { return can.user.toast(can, {content: "\u274C "+(content||ice.FAILURE), title: title||can._name, duration: 10000, caller: 2}) },
|
||||||
toast: function(can, content, title, duration, progress, caller) {
|
toast: function(can, content, title, duration, progress, caller) {
|
||||||
var meta = can.base.isObject(content)? content: {content: content, title: title||can._name.split(ice.PS).slice(-2).join(ice.PS), duration: duration, progress: progress, caller: caller}
|
var meta = can.base.isObject(content)? content: {content: content, title: title||can._name.split(nfs.PS).slice(-2).join(nfs.PS), duration: duration, progress: progress, caller: caller}
|
||||||
var width = meta.width||400; if (width < 0) { width = window.innerWidth + width } meta.action = meta.action||[""]
|
var width = meta.width||400; if (width < 0) { width = window.innerWidth + width } meta.action = meta.action||[""]
|
||||||
var ui = can.page.Append(can, document.body, [{view: [[chat.TOAST, chat.FLOAT]], style: {left: (window.innerWidth-width)/2, width: width, top: can.page.height()/2}, list: [
|
var ui = can.page.Append(can, document.body, [{view: [[chat.TOAST, chat.FLOAT]], style: {left: (window.innerWidth-width)/2, width: width, top: can.page.height()/2}, list: [
|
||||||
{text: [meta.title||"", html.DIV, html.TITLE], title: "点击复制", onclick: function(event) { can.user.copy(event, can, meta.title) }},
|
{text: [meta.title||"", html.DIV, html.TITLE], title: "点击复制", onclick: function(event) { can.user.copy(event, can, meta.title) }},
|
||||||
@ -127,7 +127,7 @@ Volcanos("user", {
|
|||||||
can.onimport && can.onimport[item[0]] && can.onimport[item[0]](can, button)
|
can.onimport && can.onimport[item[0]] && can.onimport[item[0]](can, button)
|
||||||
}, carte, trans); can.onlayout.figure(event, can, sub._target, true), remove_sub(carte), carte._sub = sub }
|
}, carte, trans); can.onlayout.figure(event, can, sub._target, true), remove_sub(carte), carte._sub = sub }
|
||||||
return item === ""? /* 0.space */ {type: html.HR}: can.base.isString(item)||can.base.isNumber(item)? /* 1.string */ {view: [html.ITEM, html.DIV, meta._style == ice.CMD? item: can.user.trans(can, item, trans)], onclick: function(event) { click(event, item) }, onmouseenter: function(event) { remove_sub(carte) } }:
|
return item === ""? /* 0.space */ {type: html.HR}: can.base.isString(item)||can.base.isNumber(item)? /* 1.string */ {view: [html.ITEM, html.DIV, meta._style == ice.CMD? item: can.user.trans(can, item, trans)], onclick: function(event) { click(event, item) }, onmouseenter: function(event) { remove_sub(carte) } }:
|
||||||
can.base.isArray(item)? /* 2.array */ {view: html.ITEM, list: [{text: can.user.trans(can, item[0], trans)}, {text: [ice.SP+can.page.unicode.next, "", [html.ICON, "next"]]}], onmouseenter: subs, onclick: subs}: /* 3.object */ item
|
can.base.isArray(item)? /* 2.array */ {view: html.ITEM, list: [{text: can.user.trans(can, item[0], trans)}, {text: [lex.SP+can.page.unicode.next, "", [html.ICON, "next"]]}], onmouseenter: subs, onclick: subs}: /* 3.object */ item
|
||||||
})}]); can.onkeymap.prevent(event), can.page.Select(can, ui._target, html.IMG, function(target) { target.onload = function() { can.onlayout.figure(event, can, ui._target) } })
|
})}]); can.onkeymap.prevent(event), can.page.Select(can, ui._target, html.IMG, function(target) { target.onload = function() { can.onlayout.figure(event, can, ui._target) } })
|
||||||
var carte = {_target: ui._target, _parent: parent, layout: can.onlayout.figure(event, can, ui._target, false, 0.8), close: function() { can.page.Remove(can, ui._target) }}; return carte
|
var carte = {_target: ui._target, _parent: parent, layout: can.onlayout.figure(event, can, ui._target, false, 0.8), close: function() { can.page.Remove(can, ui._target) }}; return carte
|
||||||
},
|
},
|
||||||
@ -185,14 +185,14 @@ Volcanos("user", {
|
|||||||
show: function (event, value, total, loaded) {
|
show: function (event, value, total, loaded) {
|
||||||
ui.cost.innerHTML = can.base.Duration(new Date() - begin)
|
ui.cost.innerHTML = can.base.Duration(new Date() - begin)
|
||||||
ui.show.innerHTML = value+"%", value == 0 && action.begin(event)
|
ui.show.innerHTML = value+"%", value == 0 && action.begin(event)
|
||||||
ui.size.innerHTML = can.base.Size(loaded)+ice.PS+can.base.Size(total)
|
ui.size.innerHTML = can.base.Size(loaded)+nfs.PS+can.base.Size(total)
|
||||||
can.page.styleWidth(can, ui.progress, value*(ui.output.offsetWidth-2)/100)
|
can.page.styleWidth(can, ui.progress, value*(ui.output.offsetWidth-2)/100)
|
||||||
}, _target: ui._target,
|
}, _target: ui._target,
|
||||||
}); can.page.Select(can, ui.action, html.INPUT_FILE)[0].click(), silent && can.onmotion.hidden(can, ui._target); return action
|
}); can.page.Select(can, ui.action, html.INPUT_FILE)[0].click(), silent && can.onmotion.hidden(can, ui._target); return action
|
||||||
},
|
},
|
||||||
downloads: function(can, text, name, ext) { return text && can.user.download(can, URL.createObjectURL(new Blob([text])), name, ext) },
|
downloads: function(can, text, name, ext) { return text && can.user.download(can, URL.createObjectURL(new Blob([text])), name, ext) },
|
||||||
download: function(can, path, name, ext) {
|
download: function(can, path, name, ext) {
|
||||||
var a = can.page.Append(can, document.body, [{type: html.A, href: path, download: can.core.Keys(name, ext)||path.split(ice.PS).pop()}])._target
|
var a = can.page.Append(can, document.body, [{type: html.A, href: path, download: can.core.Keys(name, ext)||path.split(nfs.PS).pop()}])._target
|
||||||
return a.click(), can.page.Remove(can, a), path
|
return a.click(), can.page.Remove(can, a), path
|
||||||
},
|
},
|
||||||
toimage: function(can, name, target, silent) { var toast = can.user.toastProcess(can, "生成中...")
|
toimage: function(can, name, target, silent) { var toast = can.user.toastProcess(can, "生成中...")
|
||||||
@ -219,7 +219,7 @@ Volcanos("user", {
|
|||||||
can.require(["http://localhost:9020/code/git/token/get/"+location.host], function() {
|
can.require(["http://localhost:9020/code/git/token/get/"+location.host], function() {
|
||||||
})
|
})
|
||||||
can.user.isChrome && can.misc.POST(can, can.request(), "http://localhost:9020/code/git/token/get/"+location.host, {}, function(msg) {
|
can.user.isChrome && can.misc.POST(can, can.request(), "http://localhost:9020/code/git/token/get/"+location.host, {}, function(msg) {
|
||||||
msg.Results() && can.misc.POST(can, can.request(), "/code/git/token/sid/"+msg.result[0]+ice.PS+msg.result[1], {}, function(msg) {
|
msg.Results() && can.misc.POST(can, can.request(), "/code/git/token/sid/"+msg.result[0]+nfs.PS+msg.result[1], {}, function(msg) {
|
||||||
if (msg.Result() == ice.OK) { can.page.Remove(can, ui._target), can.base.isFunc(cb) && cb() }
|
if (msg.Result() == ice.OK) { can.page.Remove(can, ui._target), can.base.isFunc(cb) && cb() }
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -59,7 +59,7 @@ Volcanos(chat.ONACTION, {_init: function(can, target) {
|
|||||||
},
|
},
|
||||||
_onaction_cmd: function(can) { can.onengine.signal(can, chat.ONACTION_CMD), can.onlayout._init(can) },
|
_onaction_cmd: function(can) { can.onengine.signal(can, chat.ONACTION_CMD), can.onlayout._init(can) },
|
||||||
onaction_cmd: function(can, msg) { can.page.ClassList.add(can, can._target, can.Mode(chat.CMD)), can.Conf(html.MARGIN_Y, 0), can.Conf(html.MARGIN_X, 0) },
|
onaction_cmd: function(can, msg) { can.page.ClassList.add(can, can._target, can.Mode(chat.CMD)), can.Conf(html.MARGIN_Y, 0), can.Conf(html.MARGIN_X, 0) },
|
||||||
onsearch: function(can, msg, arg) { var fields = msg.Option(ice.MSG_FIELDS).split(ice.FS)
|
onsearch: function(can, msg, arg) { var fields = msg.Option(ice.MSG_FIELDS).split(mdb.FS)
|
||||||
if (arg[0] == mdb.PLUGIN) { can.onexport.plugin(can, msg, arg, fields) }
|
if (arg[0] == mdb.PLUGIN) { can.onexport.plugin(can, msg, arg, fields) }
|
||||||
if (arg[0] == ctx.COMMAND) { can.onexport.command(can, msg, arg, fields) }
|
if (arg[0] == ctx.COMMAND) { can.onexport.command(can, msg, arg, fields) }
|
||||||
},
|
},
|
||||||
|
@ -19,13 +19,13 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.Conf(NKEY, can.
|
|||||||
close(); switch (event.target.value) {
|
close(); switch (event.target.value) {
|
||||||
case cli.CLEAR:
|
case cli.CLEAR:
|
||||||
case cli.CLOSE: break
|
case cli.CLOSE: break
|
||||||
default: var list = can.core.Split(event.target.value, ice.SP)
|
default: var list = can.core.Split(event.target.value, lex.SP)
|
||||||
can.onexport._float(can, "cli", list[0], list.slice(1), function(sub) { can.getActionSize(function(left) { can.page.style(can, sub._target, html.LEFT, left+10, html.RIGHT, "") }) })
|
can.onexport._float(can, "cli", list[0], list.slice(1), function(sub) { can.getActionSize(function(left) { can.page.style(can, sub._target, html.LEFT, left+10, html.RIGHT, "") }) })
|
||||||
}
|
}
|
||||||
}}, "", target, [chat.TITLE]) },
|
}}, "", target, [chat.TITLE]) },
|
||||||
_data: function(can, name, item) { can.db[name] = can.db[name]||can.request(), can.db[name].Push(item), can.onimport.count(can, name) },
|
_data: function(can, name, item) { can.db[name] = can.db[name]||can.request(), can.db[name].Push(item), can.onimport.count(can, name) },
|
||||||
count: function(can, name) { can.page.Select(can, can._output, can.core.Keys(html.SPAN, name), function(item) { item.innerHTML = can.Conf(name, parseInt(can.Conf(name)||"0")+1+"")+"" }) },
|
count: function(can, name) { can.page.Select(can, can._output, can.core.Keys(html.SPAN, name), function(item) { item.innerHTML = can.Conf(name, parseInt(can.Conf(name)||"0")+1+"")+"" }) },
|
||||||
ntip: function(can, msg, time, title, content) { can.onimport._data(can, NTIP, {time: time, fileline: can.base.trimPrefix(msg.Option("log.caller"), location.origin+ice.PS), title: title, content: content}), can.page.Modify(can, can.ui.toast, [time, title, content].join(ice.SP)) },
|
ntip: function(can, msg, time, title, content) { can.onimport._data(can, NTIP, {time: time, fileline: can.base.trimPrefix(msg.Option("log.caller"), location.origin+nfs.PS), title: title, content: content}), can.page.Modify(can, can.ui.toast, [time, title, content].join(lex.SP)) },
|
||||||
ncmd: function(can, msg, _follow, _cmds) { can.onimport._data(can, NCMD, {time: can.base.Time(), follow: _follow, cmds: _cmds}), can.onimport.nlog(can, NLOG) },
|
ncmd: function(can, msg, _follow, _cmds) { can.onimport._data(can, NCMD, {time: can.base.Time(), follow: _follow, cmds: _cmds}), can.onimport.nlog(can, NLOG) },
|
||||||
nlog: function(can, name) { can.onimport.count(can, name) },
|
nlog: function(can, name) { can.onimport.count(can, name) },
|
||||||
})
|
})
|
||||||
@ -77,20 +77,20 @@ Volcanos(chat.ONPLUGIN, {
|
|||||||
]}].concat(can.core.List(can.misc._list, function(list) { stat[list[2]] = ((stat[list[2]]||0)+1); return (!arg || !arg[0] || arg[0] == "log" || arg[0] == list[2]) && {type: html.TR, list: [
|
]}].concat(can.core.List(can.misc._list, function(list) { stat[list[2]] = ((stat[list[2]]||0)+1); return (!arg || !arg[0] || arg[0] == "log" || arg[0] == list[2]) && {type: html.TR, list: [
|
||||||
{type: html.TD, list: can.core.List(list, function(item, index) { var vimer
|
{type: html.TD, list: can.core.List(list, function(item, index) { var vimer
|
||||||
if (index == 1) { var _ls = /(https*:\/\/[^/]+)\/*([^:]+):([0-9]+):([0-9]+)/.exec(list[1]); _ls[2] = _ls[2].split(ice.QS)[0]
|
if (index == 1) { var _ls = /(https*:\/\/[^/]+)\/*([^:]+):([0-9]+):([0-9]+)/.exec(list[1]); _ls[2] = _ls[2].split(ice.QS)[0]
|
||||||
return {view: [html.ITEM, html.SPAN], list: [{text: ice.SP+can.page.unicode.close+ice.SP}, {text: [(_ls[1] == location.origin? "": _ls[1])+_ls[2]+ice.DF+_ls[3], "", nfs.PATH], onclick: function(event) {
|
return {view: [html.ITEM, html.SPAN], list: [{text: lex.SP+can.page.unicode.close+lex.SP}, {text: [(_ls[1] == location.origin? "": _ls[1])+_ls[2]+nfs.DF+_ls[3], "", nfs.PATH], onclick: function(event) {
|
||||||
if (can.onexport.record(can, list[1], mdb.LINK, {time: list[0], link: list[1], type: list[2], path: ice.USR_VOLCANOS, file: _ls[2], line: _ls[3]})) { return }
|
if (can.onexport.record(can, list[1], mdb.LINK, {time: list[0], link: list[1], type: list[2], path: ice.USR_VOLCANOS, file: _ls[2], line: _ls[3]})) { return }
|
||||||
if (vimer) { return can.page.Remove(can, vimer._target), vimer = null }
|
if (vimer) { return can.page.Remove(can, vimer._target), vimer = null }
|
||||||
vimer = can.onappend.plugin(_can, {index: web.CODE_INNER, args: [ice.USR_VOLCANOS, _ls[2], _ls[3]]}, function(sub) {}, event.target.parentNode)
|
vimer = can.onappend.plugin(_can, {index: web.CODE_INNER, args: [ice.USR_VOLCANOS, _ls[2], _ls[3]]}, function(sub) {}, event.target.parentNode)
|
||||||
}}]}
|
}}]}
|
||||||
} if (!can.base.isObject(item)) { return item && {text: (index > 0? ice.SP: "")+item} }
|
} if (!can.base.isObject(item)) { return item && {text: (index > 0? lex.SP: "")+item} }
|
||||||
return {view: [mdb.DATA, html.SPAN], _init: function(target) {
|
return {view: [mdb.DATA, html.SPAN], _init: function(target) {
|
||||||
if (item.tagName) { var detail; var ui = can.page.Append(can, target, [{text: ice.SP},
|
if (item.tagName) { var detail; var ui = can.page.Append(can, target, [{text: lex.SP},
|
||||||
{text: can.page.unicode.close+ice.SP, _init: function(target) { can.onmotion.delay(can, function() { ui.toggle = target }) }},
|
{text: can.page.unicode.close+lex.SP, _init: function(target) { can.onmotion.delay(can, function() { ui.toggle = target }) }},
|
||||||
{view: [[html.ITEM, nfs.TARGET], html.SPAN, can.page.tagClass(item)], onclick: function() {
|
{view: [[html.ITEM, nfs.TARGET], html.SPAN, can.page.tagClass(item)], onclick: function() {
|
||||||
if (detail) { return can.page.Remove(can, detail), detail = null, can.page.Modify(can, ui.toggle, can.page.unicode.close+ice.SP) }
|
if (detail) { return can.page.Remove(can, detail), detail = null, can.page.Modify(can, ui.toggle, can.page.unicode.close+lex.SP) }
|
||||||
detail = can.page.AppendData(can, target, "", "", item)._target, detail.click(), can.page.Modify(can, ui.toggle, can.page.unicode.open+ice.SP)
|
detail = can.page.AppendData(can, target, "", "", item)._target, detail.click(), can.page.Modify(can, ui.toggle, can.page.unicode.open+lex.SP)
|
||||||
}},
|
}},
|
||||||
]) } else { can.page.Append(can, target, [{text: ice.SP}]), can.page.AppendData(can, target, "", "", item) }
|
]) } else { can.page.Append(can, target, [{text: lex.SP}]), can.page.AppendData(can, target, "", "", item) }
|
||||||
}}
|
}}
|
||||||
})},
|
})},
|
||||||
]} })) }]); arg && arg[1] && can.page.Select(can, can._output, html.TR, function(tr) { can.page.ClassList.set(can, tr, html.HIDE, tr.innerText.indexOf(arg[1]) == -1) })
|
]} })) }]); arg && arg[1] && can.page.Select(can, can._output, html.TR, function(tr) { can.page.ClassList.set(can, tr, html.HIDE, tr.innerText.indexOf(arg[1]) == -1) })
|
||||||
@ -99,7 +99,7 @@ Volcanos(chat.ONPLUGIN, {
|
|||||||
].concat(can.core.List([log.INFO, log.WARN, log.ERROR, chat.ONREMOTE, html.WSS], function(item) { return {name: item, value: stat[item]||"0"} })))
|
].concat(can.core.List([log.INFO, log.WARN, log.ERROR, chat.ONREMOTE, html.WSS], function(item) { return {name: item, value: stat[item]||"0"} })))
|
||||||
}),
|
}),
|
||||||
data: shy("网页数据", [mdb.KEY], function(can, msg, arg, cb) { var can = msg._can
|
data: shy("网页数据", [mdb.KEY], function(can, msg, arg, cb) { var can = msg._can
|
||||||
arg[0]? can.page.AppendData(can, can._output, arg[0], arg[0].split(ice.PT).pop(), can.core.Value(can._root, arg[0]), function(prefix, value) { can.Option(mdb.KEY, prefix) })._target.click():
|
arg[0]? can.page.AppendData(can, can._output, arg[0], arg[0].split(nfs.PT).pop(), can.core.Value(can._root, arg[0]), function(prefix, value) { can.Option(mdb.KEY, prefix) })._target.click():
|
||||||
can.page.AppendData(can, can._output, "", can._root._name, can._root, function(prefix, value) { can.Option(mdb.KEY, prefix) })._target.click()
|
can.page.AppendData(can, can._output, "", can._root._name, can._root, function(prefix, value) { can.Option(mdb.KEY, prefix) })._target.click()
|
||||||
}),
|
}),
|
||||||
view: shy("网页元素", [mdb.KEY], function(can, msg, arg, cb) { var can = msg._can
|
view: shy("网页元素", [mdb.KEY], function(can, msg, arg, cb) { var can = msg._can
|
||||||
@ -107,7 +107,7 @@ Volcanos(chat.ONPLUGIN, {
|
|||||||
var ui = can.page.Append(can, can._output, [can.page.AppendView(can, document, "html", [
|
var ui = can.page.Append(can, can._output, [can.page.AppendView(can, document, "html", [
|
||||||
can.page.AppendView(can, document.head, html.HEAD), can.page.AppendView(can, document.body, html.BODY, null, false, function(target) {
|
can.page.AppendView(can, document.head, html.HEAD), can.page.AppendView(can, document.body, html.BODY, null, false, function(target) {
|
||||||
var list = []; for (var p = target; p && p.tagName && p != document.body; p = p.parentNode) {
|
var list = []; for (var p = target; p && p.tagName && p != document.body; p = p.parentNode) {
|
||||||
list.push(p.tagName.toLowerCase()+(p.className? ice.PT+p.className.replaceAll(ice.SP, ice.PT).replace(".picker", ""): ""))
|
list.push(p.tagName.toLowerCase()+(p.className? nfs.PT+p.className.replaceAll(lex.SP, nfs.PT).replace(".picker", ""): ""))
|
||||||
} can.Option(mdb.KEY, list.reverse().join(ice.GT))
|
} can.Option(mdb.KEY, list.reverse().join(ice.GT))
|
||||||
}),
|
}),
|
||||||
], true)]); can.onmotion.delay(can, function() { can.page.Select(can, ui._target, "div.item.head,div.item.body", function(target) { target.click() }) })
|
], true)]); can.onmotion.delay(can, function() { can.page.Select(can, ui._target, "div.item.head,div.item.body", function(target) { target.click() }) })
|
||||||
|
@ -5,7 +5,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) {
|
|||||||
can.page.Append(can, target, [{view: [[html.ITEM, chat.TITLE], "", item], title: "返回主页", onclick: function(event) { can.onaction.title(event, can) }}])
|
can.page.Append(can, target, [{view: [[html.ITEM, chat.TITLE], "", item], title: "返回主页", onclick: function(event) { can.onaction.title(event, can) }}])
|
||||||
}) },
|
}) },
|
||||||
_state: function(can, msg, target) { can.user.isMobile || can.core.List(can.base.Obj(can.Conf(chat.STATE)||msg.Option(chat.STATE), [aaa.USERNICK, aaa.AVATAR, mdb.TIME]).reverse(), function(item) {
|
_state: function(can, msg, target) { can.user.isMobile || can.core.List(can.base.Obj(can.Conf(chat.STATE)||msg.Option(chat.STATE), [aaa.USERNICK, aaa.AVATAR, mdb.TIME]).reverse(), function(item) {
|
||||||
if (item == aaa.AVATAR ) { can.user.isLocalFile || can.page.Append(can, target, [{view: [[html.ITEM, chat.STATE, item]], list: [{img: ice.SP}], onclick: function(event) {
|
if (item == aaa.AVATAR ) { can.user.isLocalFile || can.page.Append(can, target, [{view: [[html.ITEM, chat.STATE, item]], list: [{img: lex.SP}], onclick: function(event) {
|
||||||
can.core.CallFunc([can.onaction, item], [event, can, item])
|
can.core.CallFunc([can.onaction, item], [event, can, item])
|
||||||
}}]); return }
|
}}]); return }
|
||||||
can.page.Append(can, target, [{view: [[html.ITEM, chat.STATE, item], "", (can.Conf(item)||msg.Option(item)||"").split(ice.AT)[0].slice(0, 10)], onclick: function(event) {
|
can.page.Append(can, target, [{view: [[html.ITEM, chat.STATE, item], "", (can.Conf(item)||msg.Option(item)||"").split(ice.AT)[0].slice(0, 10)], onclick: function(event) {
|
||||||
|
@ -5,7 +5,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg) { can.onimport._main(can, msg
|
|||||||
})), select && select.click(), can.onimport._menu(can, msg)
|
})), select && select.click(), can.onimport._menu(can, msg)
|
||||||
},
|
},
|
||||||
_main: function(can, msg) { can.ui = {river_list: {}, storm_list: {}, sublist: {}}
|
_main: function(can, msg) { can.ui = {river_list: {}, storm_list: {}, sublist: {}}
|
||||||
var ls = location.hash.slice(1).split(ice.DF)
|
var ls = location.hash.slice(1).split(nfs.DF)
|
||||||
can._main_river = ls[0]||can.misc.SearchOrConf(can, chat.RIVER)||msg.Option(ice.MSG_RIVER)||"project"
|
can._main_river = ls[0]||can.misc.SearchOrConf(can, chat.RIVER)||msg.Option(ice.MSG_RIVER)||"project"
|
||||||
can._main_storm = ls[1]||can.misc.SearchOrConf(can, chat.STORM)||msg.Option(ice.MSG_STORM)||"studio"
|
can._main_storm = ls[1]||can.misc.SearchOrConf(can, chat.STORM)||msg.Option(ice.MSG_STORM)||"studio"
|
||||||
},
|
},
|
||||||
@ -47,7 +47,7 @@ Volcanos(chat.ONACTION, {list: [mdb.CREATE, web.SHARE, web.REFRESH], _init: func
|
|||||||
can.onaction.storm({target: can.ui.river_list[river]}, can, river), can.onmotion.toggle(can, can.ui.sublist[river], true)
|
can.onaction.storm({target: can.ui.river_list[river]}, can, river), can.onmotion.toggle(can, can.ui.sublist[river], true)
|
||||||
can.onmotion.select(can, can._output, [html.DIV_LIST, html.DIV_ITEM], can.ui.storm_list[can.core.Keys(river, storm)])
|
can.onmotion.select(can, can._output, [html.DIV_LIST, html.DIV_ITEM], can.ui.storm_list[can.core.Keys(river, storm)])
|
||||||
can.onengine.signal(can, chat.ONSTORM_SELECT, can.request(event, {river: can.Conf(chat.RIVER, river), storm: can.Conf(chat.STORM, storm)}))
|
can.onengine.signal(can, chat.ONSTORM_SELECT, can.request(event, {river: can.Conf(chat.RIVER, river), storm: can.Conf(chat.STORM, storm)}))
|
||||||
// location.hash = [river, storm].join(ice.DF)
|
// location.hash = [river, storm].join(nfs.DF)
|
||||||
// can.misc.sessionStorage(can, "can.river", river), can.misc.sessionStorage(can, "can.storm", storm)
|
// can.misc.sessionStorage(can, "can.river", river), can.misc.sessionStorage(can, "can.storm", storm)
|
||||||
},
|
},
|
||||||
carte: function(event, can, list, river, storm) { can.onkeymap.prevent(event); if (can.core.Value(can._root, can.core.Keys(chat.RIVER, river))) { return }
|
carte: function(event, can, list, river, storm) { can.onkeymap.prevent(event); if (can.core.Value(can._root, can.core.Keys(chat.RIVER, river))) { return }
|
||||||
@ -78,7 +78,7 @@ Volcanos(chat.ONDETAIL, {
|
|||||||
},
|
},
|
||||||
_menu: ["share", "savearg", "addcmd", "rename", "remove"],
|
_menu: ["share", "savearg", "addcmd", "rename", "remove"],
|
||||||
share: function(event, can, button, river, storm) { can.onmotion.share(event, can, [{name: chat.TITLE, value: can.user.title()}, {name: chat.THEME, values: [ice.AUTO, html.DARK, html.LIGHT, cli.WHITE, cli.BLACK]}], [mdb.TYPE, chat.STORM, chat.RIVER, river, chat.STORM, storm]) },
|
share: function(event, can, button, river, storm) { can.onmotion.share(event, can, [{name: chat.TITLE, value: can.user.title()}, {name: chat.THEME, values: [ice.AUTO, html.DARK, html.LIGHT, cli.WHITE, cli.BLACK]}], [mdb.TYPE, chat.STORM, chat.RIVER, river, chat.STORM, storm]) },
|
||||||
savearg: function(event, can, button, river, storm) { can.getAction(ctx.ARGS, function(args, sub, next, index, array) { var toast = can.user.toast(can, (index+1)+ice.PS+array.length, button, 10000, (index+1)*100/array.length)
|
savearg: function(event, can, button, river, storm) { can.getAction(ctx.ARGS, function(args, sub, next, index, array) { var toast = can.user.toast(can, (index+1)+nfs.PS+array.length, button, 10000, (index+1)*100/array.length)
|
||||||
can.run({}, [river, storm, chat.STORM, ctx.ACTION, mdb.MODIFY, mdb.ID, sub.Conf(mdb.ID), ctx.ARGS, JSON.stringify(args)], function() {
|
can.run({}, [river, storm, chat.STORM, ctx.ACTION, mdb.MODIFY, mdb.ID, sub.Conf(mdb.ID), ctx.ARGS, JSON.stringify(args)], function() {
|
||||||
can.onmotion.delay(can, function() { toast.close(), next(), index == array.length-1 && can.user.toastSuccess(can) })
|
can.onmotion.delay(can, function() { toast.close(), next(), index == array.length-1 && can.user.toastSuccess(can) })
|
||||||
})
|
})
|
||||||
@ -105,4 +105,4 @@ Volcanos(chat.ONENGINE, {_engine: function(event, can, msg, panel, cmds, cb) { v
|
|||||||
can.core.ItemOrder(river.storm, "order", function(key, value) { msg.Push({hash: key, name: can.user.language(can) == "en"? key: value.name}) })
|
can.core.ItemOrder(river.storm, "order", function(key, value) { msg.Push({hash: key, name: can.user.language(can) == "en"? key: value.name}) })
|
||||||
can.base.isFunc(cb) && cb(msg); return true
|
can.base.isFunc(cb) && cb(msg); return true
|
||||||
}})
|
}})
|
||||||
})()
|
})()
|
||||||
|
@ -11,12 +11,12 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg) { can.onmotion.clear(can, can
|
|||||||
can.ConfHeight(can.base.Min(height-can.ui.content.offsetHeight-can.ui.display.offsetHeight-html.ACTION_HEIGHT, height/2))
|
can.ConfHeight(can.base.Min(height-can.ui.content.offsetHeight-can.ui.display.offsetHeight-html.ACTION_HEIGHT, height/2))
|
||||||
}) },
|
}) },
|
||||||
_input: function(can, msg, arg, fields) { if (can.base.contains(arg[1], ";")) { arg = can.core.Split(arg[1], "\t ;", "\t ;") }
|
_input: function(can, msg, arg, fields) { if (can.base.contains(arg[1], ";")) { arg = can.core.Split(arg[1], "\t ;", "\t ;") }
|
||||||
can.run(can.request({}, {fields: fields.join(ice.FS)}, msg), arg, function(res) { can.db.type = arg[0]
|
can.run(can.request({}, {fields: fields.join(mdb.FS)}, msg), arg, function(res) { can.db.type = arg[0]
|
||||||
res.Option(ice.ARG, arg), can.onengine.signal(can, chat.ONSEARCH, res), can.onimport._init(can, res)
|
res.Option(ice.ARG, arg), can.onengine.signal(can, chat.ONSEARCH, res), can.onimport._init(can, res)
|
||||||
}), can.onmotion.toggle(can, can._target, true)
|
}), can.onmotion.toggle(can, can._target, true)
|
||||||
},
|
},
|
||||||
select: function(can, msg, cmds, cb) { can.ui.filter.value = cmds[1], can.ui.input = function(event, word) { cmds[1] = word||cmds[1]; can.onimport._input(can, msg, cmds, fields) }
|
select: function(can, msg, cmds, cb) { can.ui.filter.value = cmds[1], can.ui.input = function(event, word) { cmds[1] = word||cmds[1]; can.onimport._input(can, msg, cmds, fields) }
|
||||||
var fields = (cmds[2]||msg.Option(ice.MSG_FIELDS)||"ctx,cmd,type,name,text").split(ice.FS); can.page.Appends(can, can.ui.display, [{th: fields}]), can.onmotion.hidden(can, can.ui.display), can.onmotion.clear(can, can.ui.profile)
|
var fields = (cmds[2]||msg.Option(ice.MSG_FIELDS)||"ctx,cmd,type,name,text").split(mdb.FS); can.page.Appends(can, can.ui.display, [{th: fields}]), can.onmotion.hidden(can, can.ui.display), can.onmotion.clear(can, can.ui.profile)
|
||||||
can.ui.done = function() { can.base.isFunc(cb) && cb(can.onexport.select(can)), can.onmotion.hidden(can) }, can.db = {}, can._plugins = [], can.onimport._input(can, msg, cmds, fields)
|
can.ui.done = function() { can.base.isFunc(cb) && cb(can.onexport.select(can)), can.onmotion.hidden(can) }, can.db = {}, can._plugins = [], can.onimport._input(can, msg, cmds, fields)
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
@ -45,11 +45,11 @@ Volcanos(chat.ONACTION, {_init: function(can) { can.onmotion.hidden(can) }, list
|
|||||||
}}]); show()
|
}}]); show()
|
||||||
},
|
},
|
||||||
plugin: function(event, can, data) { if (can.base.isFunc(data.text)) { return can.onmotion.hidden(can), data.text(event) }
|
plugin: function(event, can, data) { if (can.base.isFunc(data.text)) { return can.onmotion.hidden(can), data.text(event) }
|
||||||
var cmd = data.cmd == ctx.COMMAND? can.core.Keys(data.type, data.name.split(ice.SP)[0]): can.core.Keys(data.ctx, data.cmd)
|
var cmd = data.cmd == ctx.COMMAND? can.core.Keys(data.type, data.name.split(lex.SP)[0]): can.core.Keys(data.ctx, data.cmd)
|
||||||
var meta = {type: html.PLUGIN, index: cmd||msg.Option(mdb.INDEX), args: cmd == web.WIKI_WORD? [data.name]: []}
|
var meta = {type: html.PLUGIN, index: cmd||msg.Option(mdb.INDEX), args: cmd == web.WIKI_WORD? [data.name]: []}
|
||||||
if (data.type == cli.OPENS) { return can.runAction(event, cli.OPENS, [data.text], null, true) }
|
if (data.type == cli.OPENS) { return can.runAction(event, cli.OPENS, [data.text], null, true) }
|
||||||
if (data.type == ssh.SHELL) { meta = {index: web.CODE_XTERM, args: [data.text]} }
|
if (data.type == ssh.SHELL) { meta = {index: web.CODE_XTERM, args: [data.text]} }
|
||||||
if (data.type == ctx.INDEX) { meta = {index: data.text.split(ice.FS)[0], args: data.text.split(ice.FS).slice(1) } }
|
if (data.type == ctx.INDEX) { meta = {index: data.text.split(mdb.FS)[0], args: data.text.split(mdb.FS).slice(1) } }
|
||||||
if (data.type == nfs.FILE) { meta = {index: web.CODE_VIMER, args: can.misc.SplitPath(can, data.text)} }
|
if (data.type == nfs.FILE) { meta = {index: web.CODE_VIMER, args: can.misc.SplitPath(can, data.text)} }
|
||||||
can.onappend.plugin(can, meta, function(sub) { can._plugins = (can._plugins||[]).concat(sub), sub.onimport.size(sub, can.ConfHeight(), can.ConfWidth()-1, true), sub.Focus() }, can.ui.profile)
|
can.onappend.plugin(can, meta, function(sub) { can._plugins = (can._plugins||[]).concat(sub), sub.onimport.size(sub, can.ConfHeight(), can.ConfWidth()-1, true), sub.Focus() }, can.ui.profile)
|
||||||
},
|
},
|
||||||
|
@ -19,7 +19,7 @@ Volcanos(chat.ONFIGURE, {date: {
|
|||||||
function show(now) { can.Action(YEAR, now.getFullYear()), can.Action(MONTH, now.getMonth()+1)
|
function show(now) { can.Action(YEAR, now.getFullYear()), can.Action(MONTH, now.getMonth()+1)
|
||||||
can.Action(HOUR, now.getHours()), can.Action(MINUTE, parseInt(now.getMinutes()/5)*5), can.Action(SECOND, parseInt(now.getSeconds()/5)*5)
|
can.Action(HOUR, now.getHours()), can.Action(MINUTE, parseInt(now.getMinutes()/5)*5), can.Action(SECOND, parseInt(now.getSeconds()/5)*5)
|
||||||
can.page.Appends(can, can._table, can.date.List(can, function(event, day) { day.setHours(now.getHours()), day.setMinutes(now.getMinutes()), day.getSeconds(now.getSeconds()), _cb(day), can.close() }, now))
|
can.page.Appends(can, can._table, can.date.List(can, function(event, day) { day.setHours(now.getHours()), day.setMinutes(now.getMinutes()), day.getSeconds(now.getSeconds()), _cb(day), can.close() }, now))
|
||||||
var l = can.date.solar2lunar(now); can.page.Appends(can, can._status, [{view: "today", inner: [l.gzYear, l.Animal+"年", l.cnMonth, l.cnDay, l.lunarFestival||l.festival||l.Term, l.Astro].join(ice.SP)}])
|
var l = can.date.solar2lunar(now); can.page.Appends(can, can._status, [{view: "today", inner: [l.gzYear, l.Animal+"年", l.cnMonth, l.cnDay, l.lunarFestival||l.festival||l.Term, l.Astro].join(lex.SP)}])
|
||||||
return now
|
return now
|
||||||
} show(now), can._show = function(d) { d? _cb(show(now = new Date(now.getTime()+d*24*3600*1000))): _cb(show(now)) }
|
} show(now), can._show = function(d) { d? _cb(show(now = new Date(now.getTime()+d*24*3600*1000))): _cb(show(now)) }
|
||||||
})},
|
})},
|
||||||
|
@ -2,7 +2,7 @@ Volcanos(chat.ONFIGURE, {img: {
|
|||||||
_init: function(can, meta, target) { var images = can.core.Split(target.value); can.onmotion.hidden(can, target)
|
_init: function(can, meta, target) { var images = can.core.Split(target.value); can.onmotion.hidden(can, target)
|
||||||
var count = parseInt(meta.value||"1"), width = target.parentNode.offsetWidth-12; for (var n = 1; n < 10; n++) { if (n*n >= count) { width = width/n; break } } width -= 1
|
var count = parseInt(meta.value||"1"), width = target.parentNode.offsetWidth-12; for (var n = 1; n < 10; n++) { if (n*n >= count) { width = width/n; break } } width -= 1
|
||||||
function add(target, hash) { target._hash = hash, can.page.Appends(can, target, [{img: can.misc.MergeURL(can, {_path: web.SHARE_CACHE+hash}, true), height: width, width: width}]) }
|
function add(target, hash) { target._hash = hash, can.page.Appends(can, target, [{img: can.misc.MergeURL(can, {_path: web.SHARE_CACHE+hash}, true), height: width, width: width}]) }
|
||||||
function set() { target.value = can.page.SelectChild(can, target.parentNode, html.DIV, function(target) { return target._hash }).join(ice.FS) }
|
function set() { target.value = can.page.SelectChild(can, target.parentNode, html.DIV, function(target) { return target._hash }).join(mdb.FS) }
|
||||||
for (var i = 0; i < count; i++) {
|
for (var i = 0; i < count; i++) {
|
||||||
can.page.Append(can, target.parentNode, [{type: html.DIV, style: {
|
can.page.Append(can, target.parentNode, [{type: html.DIV, style: {
|
||||||
"background-color": "yellow", "float": "left", "clear": i%n == 0? "both": "none", "margin": 1, height: width, width: width,
|
"background-color": "yellow", "float": "left", "clear": i%n == 0? "both": "none", "margin": 1, height: width, width: width,
|
||||||
|
@ -8,7 +8,7 @@ Volcanos(chat.ONFIGURE, {keyboard: {
|
|||||||
msg.Table(function(item) { item.type == html.HEAD && can.page.Append(can, can._output, html.BR)
|
msg.Table(function(item) { item.type == html.HEAD && can.page.Append(can, can._output, html.BR)
|
||||||
function add(value) { target.value += value, target.focus(), can.user.toast(can, value||item.name) }
|
function add(value) { target.value += value, target.focus(), can.user.toast(can, value||item.name) }
|
||||||
function hold() { can.page.ClassList.add(can, div, "hold") }
|
function hold() { can.page.ClassList.add(can, div, "hold") }
|
||||||
var div = can.page.Append(can, can._output, [{view: item.type+ice.SP+item.name+(item.name.indexOf(ice.NL)>-1? " double": item.name.length>1? " special": ""), list: [{text: [item.name]}], onclick: function(event) {
|
var div = can.page.Append(can, can._output, [{view: item.type+lex.SP+item.name+(item.name.indexOf(lex.NL)>-1? " double": item.name.length>1? " special": ""), list: [{text: [item.name]}], onclick: function(event) {
|
||||||
switch (item.name) {
|
switch (item.name) {
|
||||||
case cli.CLEAR: target.value = "", target.focus(); break
|
case cli.CLEAR: target.value = "", target.focus(); break
|
||||||
case cli.CLOSE: can.close(); break
|
case cli.CLOSE: can.close(); break
|
||||||
@ -19,10 +19,10 @@ Volcanos(chat.ONFIGURE, {keyboard: {
|
|||||||
case lang.ENTER: break
|
case lang.ENTER: break
|
||||||
default: can._shift = can._shift||event.shiftKey
|
default: can._shift = can._shift||event.shiftKey
|
||||||
if (item.name == lang.TAB) {
|
if (item.name == lang.TAB) {
|
||||||
add(ice.TB)
|
add(lex.TB)
|
||||||
} else if (item.name == lang.SPACE) {
|
} else if (item.name == lang.SPACE) {
|
||||||
add(ice.SP)
|
add(lex.SP)
|
||||||
} else if (item.name.indexOf(ice.NL) > -1) { var ls = can.core.Split(item.name, ice.NL, ice.NL, ice.NL)
|
} else if (item.name.indexOf(lex.NL) > -1) { var ls = can.core.Split(item.name, lex.NL, lex.NL, lex.NL)
|
||||||
add(can._shift? ls[0]: ls[1])
|
add(can._shift? ls[0]: ls[1])
|
||||||
} else {
|
} else {
|
||||||
add(can._shift? item.name.toUpperCase(): item.name)
|
add(can._shift? item.name.toUpperCase(): item.name)
|
||||||
@ -37,7 +37,7 @@ Volcanos(chat.ONFIGURE, {keyboard: {
|
|||||||
["4", "5", "6"],
|
["4", "5", "6"],
|
||||||
["7", "8", "9"],
|
["7", "8", "9"],
|
||||||
], function(list) { can.core.List(list, function(item, index) {
|
], function(list) { can.core.List(list, function(item, index) {
|
||||||
msg.Push(can.base.isObject(item)? item: {type: [mdb.KEY, (index == 0? html.HEAD: "")].join(ice.SP), name: item})
|
msg.Push(can.base.isObject(item)? item: {type: [mdb.KEY, (index == 0? html.HEAD: "")].join(lex.SP), name: item})
|
||||||
}) }); return 150
|
}) }); return 150
|
||||||
},
|
},
|
||||||
_normal: function(can, msg) {
|
_normal: function(can, msg) {
|
||||||
@ -48,7 +48,7 @@ Volcanos(chat.ONFIGURE, {keyboard: {
|
|||||||
[lang.SHIFT, "z", "x", "c", "v", "b", "n", "m", "<\n,", ">\n.", "?\n/", lang.SHIFT],
|
[lang.SHIFT, "z", "x", "c", "v", "b", "n", "m", "<\n,", ">\n.", "?\n/", lang.SHIFT],
|
||||||
[lang.CTRL, lang.CMD, lang.ALT, lang.SPACE, lang.ALT, lang.CMD, lang.CTRL],
|
[lang.CTRL, lang.CMD, lang.ALT, lang.SPACE, lang.ALT, lang.CMD, lang.CTRL],
|
||||||
], function(list) { can.core.List(list, function(item, index) {
|
], function(list) { can.core.List(list, function(item, index) {
|
||||||
msg.Push(can.base.isObject(item)? item: {type: [mdb.KEY, index == 0? html.HEAD: index == list.length-1? "tail": ""].join(ice.SP), name: item})
|
msg.Push(can.base.isObject(item)? item: {type: [mdb.KEY, index == 0? html.HEAD: index == list.length-1? "tail": ""].join(lex.SP), name: item})
|
||||||
}) }); return 750
|
}) }); return 750
|
||||||
}
|
}
|
||||||
}})
|
}})
|
||||||
|
@ -47,14 +47,14 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) {
|
|||||||
can._msg.Table(function(item) { can.onimport._item(can, item) })
|
can._msg.Table(function(item) { can.onimport._item(can, item) })
|
||||||
},
|
},
|
||||||
_search0: function(can, keyword) { var p = can.onimport.point(can, can.current.item)
|
_search0: function(can, keyword) { var p = can.onimport.point(can, can.current.item)
|
||||||
can.runAction(can.request({}, {"boundary": "nearby("+can.base.join([p.lat, p.lng, "500"], ice.FS)+")", "page_index": 1, "keyword": keyword}), "search", [], function(msg) {
|
can.runAction(can.request({}, {"boundary": "nearby("+can.base.join([p.lat, p.lng, "500"], mdb.FS)+")", "page_index": 1, "keyword": keyword}), "search", [], function(msg) {
|
||||||
var res = can.base.Obj(msg.Result()); can.core.List(res.data, function(item) {
|
var res = can.base.Obj(msg.Result()); can.core.List(res.data, function(item) {
|
||||||
can.onimport._item(can, can.onexport.point(can, item.location, {type: item.category, name: item.title, text: item.address}), can.ui.explore._target)
|
can.onimport._item(can, can.onexport.point(can, item.location, {type: item.category, name: item.title, text: item.address}), can.ui.explore._target)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
_search: function(can, keyword) { var p = can.onimport.point(can, can.current.item)
|
_search: function(can, keyword) { var p = can.onimport.point(can, can.current.item)
|
||||||
can.runAction(can.request({}, {"boundary": "region("+can.base.join([can.Status("city"), p.lat, p.lng], ice.FS)+")", "page_index": 1, "keyword": keyword}), "search", [], function(msg) {
|
can.runAction(can.request({}, {"boundary": "region("+can.base.join([can.Status("city"), p.lat, p.lng], mdb.FS)+")", "page_index": 1, "keyword": keyword}), "search", [], function(msg) {
|
||||||
var res = can.base.Obj(msg.Result()); can.core.List(res.data, function(item) {
|
var res = can.base.Obj(msg.Result()); can.core.List(res.data, function(item) {
|
||||||
can.onimport._item(can, can.onexport.point(can, item.location, {type: item.category, name: item.title, text: item.address}), can.ui.search._target)
|
can.onimport._item(can, can.onexport.point(can, item.location, {type: item.category, name: item.title, text: item.address}), can.ui.search._target)
|
||||||
})
|
})
|
||||||
@ -262,7 +262,7 @@ Volcanos(chat.ONACTION, {list: [["mode", "select", "insert"],
|
|||||||
|
|
||||||
explore: function(event, can, button) { var p = can.onimport.point(can, can.current.item); can.onmotion.clear(can, can.ui.explore._target)
|
explore: function(event, can, button) { var p = can.onimport.point(can, can.current.item); can.onmotion.clear(can, can.ui.explore._target)
|
||||||
for (var i = 1; i < 6; i++) {
|
for (var i = 1; i < 6; i++) {
|
||||||
can.runAction(can.request({}, {"boundary": "nearby("+can.base.join([p.lat, p.lng, "500"], ice.FS)+")", "page_index": i}), button, [], function(msg) {
|
can.runAction(can.request({}, {"boundary": "nearby("+can.base.join([p.lat, p.lng, "500"], mdb.FS)+")", "page_index": i}), button, [], function(msg) {
|
||||||
var res = can.base.Obj(msg.Result()); can.core.List(res.data, function(item) {
|
var res = can.base.Obj(msg.Result()); can.core.List(res.data, function(item) {
|
||||||
can.onimport._item(can, can.onexport.point(can, item.location, {type: item.category, name: item.title, text: item.address}), can.ui.explore._target)
|
can.onimport._item(can, can.onexport.point(can, item.location, {type: item.category, name: item.title, text: item.address}), can.ui.explore._target)
|
||||||
})
|
})
|
||||||
@ -272,7 +272,7 @@ Volcanos(chat.ONACTION, {list: [["mode", "select", "insert"],
|
|||||||
direction: function(event, can, button) { var p = can.map.getCenter(); can.onmotion.clear(can, can.ui.direction._target)
|
direction: function(event, can, button) { var p = can.map.getCenter(); can.onmotion.clear(can, can.ui.direction._target)
|
||||||
can.user.input(event, can, [["type", "driving", "walking", "bicycling", "transit"]], function(list) {
|
can.user.input(event, can, [["type", "driving", "walking", "bicycling", "transit"]], function(list) {
|
||||||
var from = can.onimport.point(can, can._current), to = can.onimport.point(can, can.current.item)
|
var from = can.onimport.point(can, can._current), to = can.onimport.point(can, can.current.item)
|
||||||
var msg = can.request({}, {type: list[0], "from": can.base.join([from.lat, from.lng], ice.FS), "to": can.base.join([to.lat, to.lng], ice.FS)})
|
var msg = can.request({}, {type: list[0], "from": can.base.join([from.lat, from.lng], mdb.FS), "to": can.base.join([to.lat, to.lng], mdb.FS)})
|
||||||
can.runAction(msg._event, button, [], function(msg) { var res = can.base.Obj(msg.Result()), route = res.result.routes[0]
|
can.runAction(msg._event, button, [], function(msg) { var res = can.base.Obj(msg.Result()), route = res.result.routes[0]
|
||||||
var coors = route.polyline, pl = [], kr = 1000000
|
var coors = route.polyline, pl = [], kr = 1000000
|
||||||
for (var i = 2; i < coors.length; i++) { coors[i] = Number(coors[i - 2]) + Number(coors[i]) / kr }
|
for (var i = 2; i < coors.length; i++) { coors[i] = Number(coors[i - 2]) + Number(coors[i]) / kr }
|
||||||
|
@ -11,7 +11,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) {
|
|||||||
return can.onappend.plugin(can, {type: chat.STORY, index: index}, function(sub) {
|
return can.onappend.plugin(can, {type: chat.STORY, index: index}, function(sub) {
|
||||||
sub.onimport.size(sub, can.ConfHeight()/2, can.ConfWidth()/2, false)
|
sub.onimport.size(sub, can.ConfHeight()/2, can.ConfWidth()/2, false)
|
||||||
can.page.style(can, sub._target, {float: pos, clear: pos})
|
can.page.style(can, sub._target, {float: pos, clear: pos})
|
||||||
sub._legend.innerHTML = can.Option(from)+ice.SP+index
|
sub._legend.innerHTML = can.Option(from)+lex.SP+index
|
||||||
|
|
||||||
sub.run = function(event, cmds, cb) {
|
sub.run = function(event, cmds, cb) {
|
||||||
if (can.onaction[cmds[1]]) { return can.onaction[cmds[1]](can, from, to, event, cmds, cb) }
|
if (can.onaction[cmds[1]]) { return can.onaction[cmds[1]](can, from, to, event, cmds, cb) }
|
||||||
@ -26,7 +26,7 @@ Volcanos(chat.ONACTION, {
|
|||||||
var path = can.request(event).Option(nfs.PATH)
|
var path = can.request(event).Option(nfs.PATH)
|
||||||
var msg = can.request(event, {_handle: ice.TRUE,
|
var msg = can.request(event, {_handle: ice.TRUE,
|
||||||
from: can.Option(from), from_path: path,
|
from: can.Option(from), from_path: path,
|
||||||
to: can.Option(to), to_path: _to.Option(nfs.PATH)+path.split(ice.PS).pop(),
|
to: can.Option(to), to_path: _to.Option(nfs.PATH)+path.split(nfs.PS).pop(),
|
||||||
})
|
})
|
||||||
can.run(event, cmds, function() { _to.Update() }, true)
|
can.run(event, cmds, function() { _to.Update() }, true)
|
||||||
},
|
},
|
||||||
|
@ -76,6 +76,8 @@ body.white fieldset.inner>div.output div.content tr.select { background-color:al
|
|||||||
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.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>div.layout>div.layout>div.profile { overflow:hidden; }
|
||||||
body.zh fieldset.inner>div.output>div.project>div.zone>div.item { letter-spacing:10px; }
|
body.zh fieldset.inner>div.output>div.project>div.zone>div.item { letter-spacing:10px; }
|
||||||
div.path span.item { padding:5px; }
|
div.path span.item { padding:5px; }
|
||||||
div.carte.path.float { font-size:14px; border-radius:0; } div.carte.path.float div.item { padding:5px; }
|
div.carte.path.float { font-size:14px; border-radius:0; } div.carte.path.float div.item { padding:5px; }
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
Volcanos(chat.ONIMPORT, {_init: function(can, msg) {
|
Volcanos(chat.ONIMPORT, {_init: function(can, msg) {
|
||||||
can.core.List(can.misc._list, function(item) {
|
can.core.List(can.misc._list, function(item) {
|
||||||
msg.Push(mdb.TIME, item[0])
|
msg.Push(mdb.TIME, item[0])
|
||||||
msg.Push(nfs.FILE, item[1].split(ice.DF)[0].split("?")[0])
|
msg.Push(nfs.FILE, item[1].split(nfs.DF)[0].split("?")[0])
|
||||||
msg.Push(nfs.LINE, item[1].split(ice.DF)[1])
|
msg.Push(nfs.LINE, item[1].split(nfs.DF)[1])
|
||||||
msg.Push(mdb.TYPE, item[2])
|
msg.Push(mdb.TYPE, item[2])
|
||||||
msg.Push(mdb.NAME, item[3])
|
msg.Push(mdb.NAME, item[3])
|
||||||
msg.Push(mdb.TEXT, item.slice(4).join(ice.SP)||"")
|
msg.Push(mdb.TEXT, item.slice(4).join(lex.SP)||"")
|
||||||
}), msg.StatusTimeCount(), can.onmotion.clear(can), can.onappend.table(can, msg)
|
}), msg.StatusTimeCount(), can.onmotion.clear(can), can.onappend.table(can, msg)
|
||||||
can.page.Select(can, can._option, "input[name=name]", function(target) {
|
can.page.Select(can, can._option, "input[name=name]", function(target) {
|
||||||
target.onkeyup = function(event) { can.misc.Event(event, can, function(msg) {
|
target.onkeyup = function(event) { can.misc.Event(event, can, function(msg) {
|
||||||
|
@ -134,8 +134,8 @@ Volcanos(chat.ONSYNTAX, {
|
|||||||
},
|
},
|
||||||
func: function(can, push, text, indent, opts) { var ls = can.core.Split(text, "\t ")
|
func: function(can, push, text, indent, opts) { var ls = can.core.Split(text, "\t ")
|
||||||
opts.chapter = opts.chapter||0
|
opts.chapter = opts.chapter||0
|
||||||
if (ls[0] == "chapter") { opts.chapter++, opts.section = 0, push(opts.chapter+ice.SP+ls[1]) }
|
if (ls[0] == "chapter") { opts.chapter++, opts.section = 0, push(opts.chapter+lex.SP+ls[1]) }
|
||||||
if (ls[0] == "section") { opts.section++, push(opts.chapter+ice.PT+opts.section+ice.SP+ls[1]) }
|
if (ls[0] == "section") { opts.section++, push(opts.chapter+nfs.PT+opts.section+lex.SP+ls[1]) }
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
py: {prefix: {"#!": code.COMMENT, "# ": code.COMMENT}, keyword: {"import": code.KEYWORD, "from": code.KEYWORD, "return": code.KEYWORD, "print": code.FUNCTION}},
|
py: {prefix: {"#!": code.COMMENT, "# ": code.COMMENT}, keyword: {"import": code.KEYWORD, "from": code.KEYWORD, "return": code.KEYWORD, "print": code.FUNCTION}},
|
||||||
@ -163,19 +163,19 @@ Volcanos(chat.ONSYNTAX, {
|
|||||||
},
|
},
|
||||||
func: function(can, push, text, indent, opts) { var ls = can.core.Split(text, "\t *", "({:})")
|
func: function(can, push, text, indent, opts) { var ls = can.core.Split(text, "\t *", "({:})")
|
||||||
function isKey() { return opts.block == "cmds" && ls[1] == ":" && ls[2] == "{" } function isEnd() { return ls[0] == "}" }
|
function isKey() { return opts.block == "cmds" && ls[1] == ":" && ls[2] == "{" } function isEnd() { return ls[0] == "}" }
|
||||||
function prefix(key, pre) { return key.toLowerCase() == key? "- ": ("+ "+(pre? pre+ice.PT: "")) }
|
function prefix(key, pre) { return key.toLowerCase() == key? "- ": ("+ "+(pre? pre+nfs.PT: "")) }
|
||||||
if (indent == 0) { switch (ls[0]) {
|
if (indent == 0) { switch (ls[0]) {
|
||||||
case "package": opts.package = ls[1]; break
|
case "package": opts.package = ls[1]; break
|
||||||
case "func": if (ls[1] == "(") { push(prefix(ls[5])+ls[2]+ice.PT+ls[5]); break }
|
case "func": if (ls[1] == "(") { push(prefix(ls[5])+ls[2]+nfs.PT+ls[5]); break }
|
||||||
case "const":
|
case "const":
|
||||||
case "var": if (ls[1] == "(") { break }
|
case "var": if (ls[1] == "(") { break }
|
||||||
case "type": push(prefix(ls[1], opts.package)+ls[1]); break
|
case "type": push(prefix(ls[1], opts.package)+ls[1]); break
|
||||||
} opts.stack = [ls[0]] } else if (indent == 4 && opts.stack[0] == "func") {
|
} opts.stack = [ls[0]] } else if (indent == 4 && opts.stack[0] == "func") {
|
||||||
if (text.indexOf("MergeCommands(") > -1) { opts.block = "cmds" } else if (text.indexOf("}") == 0) { opts.block = "" }
|
if (text.indexOf("MergeCommands(") > -1) { opts.block = "cmds" } else if (text.indexOf("}") == 0) { opts.block = "" }
|
||||||
} else if (indent == 8) {
|
} else if (indent == 8) {
|
||||||
if (isKey()) { push(prefix(ls[0], opts.package)+ls[0]), opts.cmds = opts.package+ice.PT+ls[0] }
|
if (isKey()) { push(prefix(ls[0], opts.package)+ls[0]), opts.cmds = opts.package+nfs.PT+ls[0] }
|
||||||
} else if (indent == 12) {
|
} else if (indent == 12) {
|
||||||
if (isKey()) { push("+ "+opts.cmds+ice.SP+ls[0]) }
|
if (isKey()) { push("+ "+opts.cmds+lex.SP+ls[0]) }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}, mod: {prefix: {"//": code.COMMENT}, keyword: {"go": code.KEYWORD, "module": code.KEYWORD, "require": code.KEYWORD, "replace": code.KEYWORD}}, sum: {},
|
}, mod: {prefix: {"//": code.COMMENT}, keyword: {"go": code.KEYWORD, "module": code.KEYWORD, "require": code.KEYWORD, "replace": code.KEYWORD}}, sum: {},
|
||||||
@ -206,20 +206,20 @@ Volcanos(chat.ONSYNTAX, {
|
|||||||
"res": code.OBJECT, "sub": code.OBJECT, "sup": code.OBJECT,
|
"res": code.OBJECT, "sub": code.OBJECT, "sup": code.OBJECT,
|
||||||
},
|
},
|
||||||
complete: function(event, can, msg, target, pre, key) {
|
complete: function(event, can, msg, target, pre, key) {
|
||||||
var ls = can.core.Split(can.core.Split(pre, "\t {(:,)}").pop(), ice.PT), list = {can: can, msg: msg, target: target, event: event, window: window}
|
var ls = can.core.Split(can.core.Split(pre, "\t {(:,)}").pop(), nfs.PT), list = {can: can, msg: msg, target: target, event: event, window: window}
|
||||||
can.core.ItemKeys(key == ""? list: can.core.Value(list, ls)||can.core.Value(window, ls)||window, function(k, v) {
|
can.core.ItemKeys(key == ""? list: can.core.Value(list, ls)||can.core.Value(window, ls)||window, function(k, v) {
|
||||||
msg.Push(mdb.NAME, k).Push(mdb.TEXT, (v+"").split(ice.NL)[0])
|
msg.Push(mdb.NAME, k).Push(mdb.TEXT, (v+"").split(lex.NL)[0])
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
func: function(can, push, text, indent, opts) { var ls = can.core.Split(text, "\t (,", ice.DF)
|
func: function(can, push, text, indent, opts) { var ls = can.core.Split(text, "\t (,", nfs.DF)
|
||||||
if (indent == 0 && can.base.beginWith(text, "Volcanos")) {
|
if (indent == 0 && can.base.beginWith(text, "Volcanos")) {
|
||||||
var _block = can.base.trimPrefix(ls[1], "chat.").toLowerCase()
|
var _block = can.base.trimPrefix(ls[1], "chat.").toLowerCase()
|
||||||
if (_block != opts.block) { push("") } opts.block = _block
|
if (_block != opts.block) { push("") } opts.block = _block
|
||||||
if (text.indexOf(chat._INIT) > -1) { push(opts.block+ice.PT+chat._INIT) }
|
if (text.indexOf(chat._INIT) > -1) { push(opts.block+nfs.PT+chat._INIT) }
|
||||||
} else if (indent == 0 && can.base.beginWith(text, "var ")) {
|
} else if (indent == 0 && can.base.beginWith(text, "var ")) {
|
||||||
opts.block = ls[1]
|
opts.block = ls[1]
|
||||||
} else if (indent == 4 && ls[1] == ice.DF) {
|
} else if (indent == 4 && ls[1] == nfs.DF) {
|
||||||
ls[0] && push(opts.block+ice.PT+ls[0])
|
ls[0] && push(opts.block+nfs.PT+ls[0])
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}, json: {},
|
}, json: {},
|
||||||
|
@ -115,7 +115,7 @@ Volcanos(chat.ONACTION, {list: ["编译", "变更", "源码", "终端", "导图"
|
|||||||
"首页": function(event, can) { can.onimport.tabview(can, "", location.origin+nfs.PS+(can.misc.Search(can, log.DEBUG) == ice.TRUE? "?debug=true": ""), web.SPACE) },
|
"首页": function(event, can) { can.onimport.tabview(can, "", location.origin+nfs.PS+(can.misc.Search(can, log.DEBUG) == ice.TRUE? "?debug=true": ""), web.SPACE) },
|
||||||
insertLine: function(can, value, before) { var line = can.onaction.appendLine(can, value); before && can.ui.content.insertBefore(line, can.onaction._getLine(can, before)); return can.onaction.rerankLine(can), can.onexport.line(can, line) },
|
insertLine: function(can, value, before) { var line = can.onaction.appendLine(can, value); before && can.ui.content.insertBefore(line, can.onaction._getLine(can, before)); return can.onaction.rerankLine(can), can.onexport.line(can, line) },
|
||||||
deleteLine: function(can, line) { line = can.onaction._getLine(can, line); var next = line.nextSibling||line.previousSibling; return can.page.Remove(can, line), can.onaction.rerankLine(can), next },
|
deleteLine: function(can, line) { line = can.onaction._getLine(can, line); var next = line.nextSibling||line.previousSibling; return can.page.Remove(can, line), can.onaction.rerankLine(can), next },
|
||||||
_selectLine: function(can) { can.page.Select(can, can.current.line, "td.text", function(td) { var target = can.ui.current; target.value = td.innerText
|
_selectLine: function(can) { can.current && can.page.Select(can, can.current.line, "td.text", function(td) { var target = can.ui.current; target.value = td.innerText
|
||||||
can.current.line.appendChild(target), can.page.style(can, target, html.LEFT, td.offsetLeft-1, html.TOP, td.offsetTop,
|
can.current.line.appendChild(target), can.page.style(can, target, html.LEFT, td.offsetLeft-1, html.TOP, td.offsetTop,
|
||||||
html.WIDTH, can.base.Min(td.offsetWidth, can.ui.content.offsetWidth-can.page.Select(can, can.current.line, "td.line")[0].offsetWidth))
|
html.WIDTH, can.base.Min(td.offsetWidth, can.ui.content.offsetWidth-can.page.Select(can, can.current.line, "td.line")[0].offsetWidth))
|
||||||
can.db.mode == mdb.NORMAL && can.onkeymap._normal(can)
|
can.db.mode == mdb.NORMAL && can.onkeymap._normal(can)
|
||||||
|
@ -39,9 +39,9 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { can.page.requireModules
|
|||||||
term.onData(function(data) { can.onimport._input(can, term, data) })
|
term.onData(function(data) { can.onimport._input(can, term, data) })
|
||||||
term.onCursorMove(function() { can.onexport.term(can, term) })
|
term.onCursorMove(function() { can.onexport.term(can, term) })
|
||||||
term.loadAddon(new WebLinksAddon.WebLinksAddon())
|
term.loadAddon(new WebLinksAddon.WebLinksAddon())
|
||||||
can.onmotion.clear(can, output), term.open(output), term.focus(), text && can.onmotion.delay(can, function() { term.write(text.replaceAll(ice.NL, "\r\n")) })
|
can.onmotion.clear(can, output), term.open(output), term.focus(), text && can.onmotion.delay(can, function() { term.write(text.replaceAll(lex.NL, "\r\n")) })
|
||||||
can.onengine.listen(can, chat.ONTHEMECHANGE, function() { can = can.core.Value(can.sup, chat._OUTPUTS_CURRENT)
|
can.onengine.listen(can, chat.ONTHEMECHANGE, function() { can = can.core.Value(can.sup, chat._OUTPUTS_CURRENT)
|
||||||
term.selectAll(), can.onimport._connect(can, item, output, tabs, can.base.trimSuffix(term.getSelection(), ice.NL))
|
term.selectAll(), can.onimport._connect(can, item, output, tabs, can.base.trimSuffix(term.getSelection(), lex.NL))
|
||||||
}), can.page.style(can, output, html.BACKGROUND_COLOR, term._publicOptions.theme.background||cli.BLACK)
|
}), can.page.style(can, output, html.BACKGROUND_COLOR, term._publicOptions.theme.background||cli.BLACK)
|
||||||
output.onclick = function() { output._tabs._current = output
|
output.onclick = function() { output._tabs._current = output
|
||||||
can.onmotion.select(can, can._fields, html.DIV_OUTPUT, can._output = output), term.focus(), can.onexport.term(can, term)
|
can.onmotion.select(can, can._fields, html.DIV_OUTPUT, can._output = output), term.focus(), can.onexport.term(can, term)
|
||||||
@ -78,19 +78,19 @@ Volcanos(chat.ONKEYMAP, {
|
|||||||
p: function(event, can) { can._output._tabs.previousSibling && can._output._tabs.previousSibling.click() },
|
p: function(event, can) { can._output._tabs.previousSibling && can._output._tabs.previousSibling.click() },
|
||||||
s: function(event, can) { can.onaction.sess(event, can) },
|
s: function(event, can) { can.onaction.sess(event, can) },
|
||||||
t: function(event, can) { can.user.input({target: can._output._tabs}, can, [ctx.INDEX, ctx.ARGS], function(list, data) { can.onimport.tool(can, [data], function(sub) {
|
t: function(event, can) { can.user.input({target: can._output._tabs}, can, [ctx.INDEX, ctx.ARGS], function(list, data) { can.onimport.tool(can, [data], function(sub) {
|
||||||
sub.select(), sub.onexport.record = function(_, value) { can.onimport._input(can, can._output._term, value+ice.NL) }
|
sub.select(), sub.onexport.record = function(_, value) { can.onimport._input(can, can._output._term, value+lex.NL) }
|
||||||
}, can._fields) }) },
|
}, can._fields) }) },
|
||||||
f: function(event, can) {
|
f: function(event, can) {
|
||||||
var input = can.user.input({target: can._output._tabs}, can, [{type: mdb.TEXT, name: nfs.FILE, select: function(item) {
|
var input = can.user.input({target: can._output._tabs}, can, [{type: mdb.TEXT, name: nfs.FILE, select: function(item) {
|
||||||
var ls = item.split(ice.DF); switch (ls[0]) {
|
var ls = item.split(nfs.DF); switch (ls[0]) {
|
||||||
case "tabs": can.page.Select(can, can._action, [html.DIV_TABS, html.SPAN_NAME], function(target) { target.innerText == ls[1] && target.click() }); break
|
case "tabs": can.page.Select(can, can._action, [html.DIV_TABS, html.SPAN_NAME], function(target) { target.innerText == ls[1] && target.click() }); break
|
||||||
case web.LAYOUT: can.Option(mdb.HASH, ls[1]), can.Update(); break
|
case web.LAYOUT: can.Option(mdb.HASH, ls[1]), can.Update(); break
|
||||||
case ctx.INDEX: can.onimport.tool(can, [ls[1]], function(sub) { sub.select() }); break
|
case ctx.INDEX: can.onimport.tool(can, [ls[1]], function(sub) { sub.select() }); break
|
||||||
case ssh.SHELL: can.onaction.tabnew(can.request({}, {_handle: ice.TRUE, type: ls[1]}), can); break
|
case ssh.SHELL: can.onaction.tabnew(can.request({}, {_handle: ice.TRUE, type: ls[1]}), can); break
|
||||||
default: can.onimport._input(can, can._output._term, item+ice.NL)
|
default: can.onimport._input(can, can._output._term, item+lex.NL)
|
||||||
} input.cancel()
|
} input.cancel()
|
||||||
}, run: function(event, cmds, cb) { can.run(event, cmds, function(msg) { var _msg = can.request()
|
}, run: function(event, cmds, cb) { can.run(event, cmds, function(msg) { var _msg = can.request()
|
||||||
function push(type, name) { _msg.Push(nfs.FILE, can.core.List(arguments).join(ice.DF)) }
|
function push(type, name) { _msg.Push(nfs.FILE, can.core.List(arguments).join(nfs.DF)) }
|
||||||
can.page.Select(can, can._action, [html.DIV_TABS, html.SPAN_NAME], function(target) { push("tabs", target.innerText) })
|
can.page.Select(can, can._action, [html.DIV_TABS, html.SPAN_NAME], function(target) { push("tabs", target.innerText) })
|
||||||
_msg.Copy(msg), can.core.Item(can.onengine.plugin.meta, function(key, value) { push(ctx.INDEX, "can."+key) }), cb(_msg)
|
_msg.Copy(msg), can.core.Item(can.onengine.plugin.meta, function(key, value) { push(ctx.INDEX, "can."+key) }), cb(_msg)
|
||||||
}) }}], function(list) {})
|
}) }}], function(list) {})
|
||||||
@ -129,7 +129,7 @@ Volcanos(chat.ONACTION, {
|
|||||||
},
|
},
|
||||||
sess: function(event, can) { can.user.input({target: can._legend}, can, [mdb.NAME], function(list) {
|
sess: function(event, can) { can.user.input({target: can._legend}, can, [mdb.NAME], function(list) {
|
||||||
can.runAction({}, mdb.CREATE, [mdb.TYPE, html.LAYOUT, mdb.NAME, list[0], mdb.TEXT, can.base.Format(can.onexport.sess(can))], function(msg) {
|
can.runAction({}, mdb.CREATE, [mdb.TYPE, html.LAYOUT, mdb.NAME, list[0], mdb.TEXT, can.base.Format(can.onexport.sess(can))], function(msg) {
|
||||||
can.user.toastSuccess(can, can.user.trans(can, nfs.SAVE)+ice.SP+msg.Result())
|
can.user.toastSuccess(can, can.user.trans(can, nfs.SAVE)+lex.SP+msg.Result())
|
||||||
}, true)
|
}, true)
|
||||||
}) },
|
}) },
|
||||||
onkeydown: function(event, can) {
|
onkeydown: function(event, can) {
|
||||||
|
@ -23,14 +23,14 @@ 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)
|
ondragstart: function(event) { var target = event.target; can.drop = function(event, td, time) { td.append(target)
|
||||||
can.onaction.modifyTask(event, can, task, team.BEGIN_TIME, time+task.begin_time.slice(time.length), task.begin_time)
|
can.onaction.modifyTask(event, can, task, team.BEGIN_TIME, time+task.begin_time.slice(time.length), task.begin_time)
|
||||||
} }, draggable: time != undefined, title: can.onexport.title(can, task), _init: function(target) {
|
} }, draggable: time != undefined, title: can.onexport.title(can, task), _init: function(target) {
|
||||||
var item = can.onimport.item(can, {nick: task.name+ice.DF+task.text}, function() { can.onmotion.delay(can, function() {
|
var item = can.onimport.item(can, {nick: task.name+nfs.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), can.onimport._display(can, task), can.onimport.layout(can)
|
can.onmotion.select(can, can.ui.content, html.TD, target.parentNode), can.onimport._profile(can, task), can.onimport._display(can, task), can.onimport.layout(can)
|
||||||
}) }, null, can.ui.project); task._target = target, target.onclick = function(event) { item.click() }, can.list[can.core.Keys(task.zone, task.id)] = target
|
}) }, null, can.ui.project); task._target = target, target.onclick = function(event) { item.click() }, can.list[can.core.Keys(task.zone, task.id)] = target
|
||||||
}}
|
}}
|
||||||
}),
|
}),
|
||||||
} },
|
} },
|
||||||
_profile: function(can, task) { can.onmotion.toggle(can, can.ui.profile, true), can.onexport.hash(can, task)
|
_profile: function(can, task) { can.onmotion.toggle(can, can.ui.profile, true), can.onexport.hash(can, task)
|
||||||
if (can.onmotion.cache(can, function() { return can.sup.task = task, can.Status(task), [task.pod, task.zone, task.id].join(ice.PT) }, can.ui.profile)) { return }
|
if (can.onmotion.cache(can, function() { return can.sup.task = task, can.Status(task), [task.pod, task.zone, task.id].join(nfs.PT) }, can.ui.profile)) { return }
|
||||||
task.extra && can.core.Item(can.base.Obj(task.extra), function(key, value) { task["extra."+key] = value }), delete(task.extra)
|
task.extra && can.core.Item(can.base.Obj(task.extra), function(key, value) { task["extra."+key] = value }), delete(task.extra)
|
||||||
var table = can.page.Appends(can, can.ui.profile, [{view: [chat.CONTENT, html.TABLE], list: [{th: [can.user.trans(can, mdb.KEY, "字段"), can.user.trans(can, mdb.VALUE, "属性")]}]}])._target
|
var table = can.page.Appends(can, can.ui.profile, [{view: [chat.CONTENT, html.TABLE], list: [{th: [can.user.trans(can, mdb.KEY, "字段"), can.user.trans(can, mdb.VALUE, "属性")]}]}])._target
|
||||||
can.core.Item(task, function(key, value) { key != "_target" && can.page.Append(can, table, [{
|
can.core.Item(task, function(key, value) { key != "_target" && can.page.Append(can, table, [{
|
||||||
@ -42,13 +42,13 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(
|
|||||||
}]) }), can.onmotion.story.auto(can, can.ui.profile)
|
}]) }), can.onmotion.story.auto(can, can.ui.profile)
|
||||||
},
|
},
|
||||||
_display: function(can, task) { can.onmotion.toggle(can, can.ui.display, true)
|
_display: function(can, task) { can.onmotion.toggle(can, can.ui.display, true)
|
||||||
if (can.onmotion.cache(can, function() { return can.sup.task = task, can.Status(task), [task.pod, task.zone, task.id].join(ice.PT) }, can.ui.display)) { return }
|
if (can.onmotion.cache(can, function() { return can.sup.task = task, can.Status(task), [task.pod, task.zone, task.id].join(nfs.PT) }, can.ui.display)) { return }
|
||||||
task[ctx.EXTRA_INDEX] && can.onappend.plugin(can, {index: task[ctx.EXTRA_INDEX], args: task[ctx.EXTRA_ARGS], height: can.ConfHeight()/2-2*html.ACTION_HEIGHT}, function(sub, meta) {
|
task[ctx.EXTRA_INDEX] && can.onappend.plugin(can, {index: task[ctx.EXTRA_INDEX], args: task[ctx.EXTRA_ARGS], height: can.ConfHeight()/2-2*html.ACTION_HEIGHT}, function(sub, meta) {
|
||||||
sub.run = function(event, cmds, cb) { can.request(event, kit.Dict(team.TASK_POD, task.pod, team.TASK_ZONE, task.zone, team.TASK_ID, task.id))
|
sub.run = function(event, cmds, cb) { can.request(event, kit.Dict(team.TASK_POD, task.pod, team.TASK_ZONE, task.zone, team.TASK_ID, task.id))
|
||||||
can.page.style(can, sub._output, html.MAX_HEIGHT, ""), can.runAction(event, ice.RUN, [task[mdb.ZONE], task[mdb.ID]].concat(cmds), cb)
|
can.page.style(can, sub._output, html.MAX_HEIGHT, ""), can.runAction(event, ice.RUN, [task[mdb.ZONE], task[mdb.ID]].concat(cmds), cb)
|
||||||
}
|
}
|
||||||
sub.onexport.output = function() { can.onmotion.delay(can, function() {
|
sub.onexport.output = function() { can.onmotion.delay(can, function() {
|
||||||
sub.onimport.size(sub, can._display_heights[[task.zone, task.id].join(ice.FS)] = can.base.Max(sub._target.offsetHeight, can.ConfHeight()/2), can.ConfWidth()-can.ui.project.offsetWidth)
|
sub.onimport.size(sub, can._display_heights[[task.zone, task.id].join(mdb.FS)] = can.base.Max(sub._target.offsetHeight, can.ConfHeight()/2), can.ConfWidth()-can.ui.project.offsetWidth)
|
||||||
can.onimport.layout(can)
|
can.onimport.layout(can)
|
||||||
}) }, sub.onaction.close = function() { can.onmotion.toggle(can, can.ui.display), can.onimport.layout(can) }
|
}) }, sub.onaction.close = function() { can.onmotion.toggle(can, can.ui.display), can.onimport.layout(can) }
|
||||||
}, can.ui.display)
|
}, can.ui.display)
|
||||||
@ -106,7 +106,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(
|
|||||||
can.ui.layout(can.ConfHeight(), can.ConfWidth())
|
can.ui.layout(can.ConfHeight(), can.ConfWidth())
|
||||||
return
|
return
|
||||||
can.page.styleHeight(can, can._output, can.ConfHeight()), can.page.styleHeight(can, can.ui.project, can.ConfHeight())
|
can.page.styleHeight(can, can._output, can.ConfHeight()), can.page.styleHeight(can, can.ui.project, 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(mdb.FS): ""]||html.ACTION_HEIGHT
|
||||||
if (!can.ui.display.innerHTML || can.ui.display.style.display == html.NONE) { height = 0 }
|
if (!can.ui.display.innerHTML || can.ui.display.style.display == html.NONE) { height = 0 }
|
||||||
can.page.style(can, can.ui.table, html.HEIGHT, can.ConfHeight()-height, html.WIDTH, can.ConfWidth()-can.ui.project.offsetWidth-can.ui.profile.offsetWidth)
|
can.page.style(can, can.ui.table, html.HEIGHT, can.ConfHeight()-height, html.WIDTH, can.ConfWidth()-can.ui.project.offsetWidth-can.ui.profile.offsetWidth)
|
||||||
can.page.style(can, can.ui.content, html.HEIGHT, can.ConfHeight()-height, html.WIDTH, can.ConfWidth()-can.ui.project.offsetWidth-can.ui.profile.offsetWidth)
|
can.page.style(can, can.ui.content, html.HEIGHT, can.ConfHeight()-height, html.WIDTH, can.ConfWidth()-can.ui.project.offsetWidth-can.ui.profile.offsetWidth)
|
||||||
@ -148,12 +148,12 @@ Volcanos(chat.ONACTION, {list: [
|
|||||||
})
|
})
|
||||||
Volcanos(chat.ONEXPORT, {list: [mdb.COUNT, team.BEGIN_TIME, mdb.ZONE, mdb.ID, mdb.TYPE, mdb.NAME, mdb.TEXT],
|
Volcanos(chat.ONEXPORT, {list: [mdb.COUNT, team.BEGIN_TIME, mdb.ZONE, mdb.ID, mdb.TYPE, mdb.NAME, mdb.TEXT],
|
||||||
span: function(can) { return kit.Dict(team.DAY, 24*3600*1000, team.WEEK, 7*24*3600*1000, team.MONTH, 30*24*3600*1000, team.YAER, 365*24*3600*1000, team.LONG, 365*24*3600*1000)[can.Option("scale")]||0 },
|
span: function(can) { return kit.Dict(team.DAY, 24*3600*1000, team.WEEK, 7*24*3600*1000, team.MONTH, 30*24*3600*1000, team.YAER, 365*24*3600*1000, team.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.DF) },
|
hash: function(can, task) { if (!can.isCmdMode()) { return } location.hash = [task.zone, task.id].join(nfs.DF) },
|
||||||
head: function(can, scale) { if ([team.YEAR, team.LONG].indexOf(scale) > -1) { return } return [scale].concat(can.user.time(can, "", "%W")) },
|
head: function(can, scale) { if ([team.YEAR, team.LONG].indexOf(scale) > -1) { return } return [scale].concat(can.user.time(can, "", "%W")) },
|
||||||
name: function(can, task) { return task.name },
|
name: function(can, task) { return task.name },
|
||||||
text: function(can, task) { return task.name+": "+(task.text||"") },
|
text: function(can, task) { return task.name+": "+(task.text||"") },
|
||||||
level: function(can, task) { return "l-"+(task.level||3)+": "+(task.name||"") },
|
level: function(can, task) { return "l-"+(task.level||3)+": "+(task.name||"") },
|
||||||
score: function(can, task) { return "s-"+(task.level||3)+": "+(task.name||"") },
|
score: function(can, task) { return "s-"+(task.level||3)+": "+(task.name||"") },
|
||||||
title: function(can, task) { return task.zone+": "+(task.type||"") },
|
title: function(can, task) { return task.zone+": "+(task.type||"") },
|
||||||
style: function(can, task) { return [html.ITEM, task.status, mdb.ID+task.id, "l"+(task.level||""), "s"+(task.score||"")].join(ice.SP) },
|
style: function(can, task) { return [html.ITEM, task.status, mdb.ID+task.id, "l"+(task.level||""), "s"+(task.score||"")].join(lex.SP) },
|
||||||
})
|
})
|
||||||
|
@ -72,6 +72,6 @@ Volcanos(chat.ONDETAIL, {list: ["复制", "删除"],
|
|||||||
})
|
})
|
||||||
Volcanos(chat.ONEXPORT, {
|
Volcanos(chat.ONEXPORT, {
|
||||||
content: function(can) { return can.page.Select(can, can.ui.content, html.TR, function(tr) {
|
content: function(can) { return can.page.Select(can, can.ui.content, html.TR, function(tr) {
|
||||||
return can.page.Select(can, tr, can.page.Keys(html.TH, html.TD), function(td) {return td.innerHTML}).join(ice.FS)
|
return can.page.Select(can, tr, can.page.Keys(html.TH, html.TD), function(td) {return td.innerHTML}).join(mdb.FS)
|
||||||
}).join(ice.NL) },
|
}).join(lex.NL) },
|
||||||
})
|
})
|
||||||
|
@ -19,7 +19,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(
|
|||||||
target.Group = function() { for (var node = target; node; node = node.parentNode) { if (can.page.tagis(node, svg.G, html.SVG)) { return node } } return can.svg }
|
target.Group = function() { for (var node = target; node; node = node.parentNode) { if (can.page.tagis(node, svg.G, html.SVG)) { return node } } return can.svg }
|
||||||
target.Groups = function() { if (target == can.svg) { return html.SVG } var list = []
|
target.Groups = function() { if (target == can.svg) { return html.SVG } var list = []
|
||||||
for (var node = target; node && !can.page.tagis(node, html.SVG); node = node.parentNode) { can.page.tagis(node, svg.G) && node.Value(html.CLASS) && list.push(node.Value(html.CLASS)) }
|
for (var node = target; node && !can.page.tagis(node, html.SVG); node = node.parentNode) { can.page.tagis(node, svg.G) && node.Value(html.CLASS) && list.push(node.Value(html.CLASS)) }
|
||||||
return list.reverse().join(ice.PT)
|
return list.reverse().join(nfs.PT)
|
||||||
}; return target
|
}; return target
|
||||||
},
|
},
|
||||||
_group: function(can, target) { if (!can.ui.project) { return } var name = target.Groups()
|
_group: function(can, target) { if (!can.ui.project) { return } var name = target.Groups()
|
||||||
@ -147,7 +147,7 @@ Volcanos(chat.ONACTION, {list: [[svg.GRID, 10, 1, 2, 3, 4, 5, 10, 20],
|
|||||||
oncontextmenu: function(event, can) { can.page.style(can, can.user.carte(event, can, can.ondetail, null, function(ev, button, meta) { meta[button](event, can, button) })._target, {left: event.clientX, top: event.clientY}) },
|
oncontextmenu: function(event, can) { can.page.style(can, can.user.carte(event, can, can.ondetail, null, function(ev, button, meta) { meta[button](event, can, button) })._target, {left: event.clientX, top: event.clientY}) },
|
||||||
})
|
})
|
||||||
Volcanos(chat.ONDETAIL, {list: [cli.START, ice.COPY, html.LABEL, "toimage", mdb.REMOVE],
|
Volcanos(chat.ONDETAIL, {list: [cli.START, ice.COPY, html.LABEL, "toimage", mdb.REMOVE],
|
||||||
_select(can, name, cb) { if (!name) { return } var target = can.page.SelectOne(can, can.svg, ice.PT+name, cb)
|
_select(can, name, cb) { if (!name) { return } var target = can.page.SelectOne(can, can.svg, nfs.PT+name, cb)
|
||||||
can.onimport._profile(can, target), can.onimport._display(can, target), can.onimport.layout(can)
|
can.onimport._profile(can, target), can.onimport._display(can, target), can.onimport.layout(can)
|
||||||
return target
|
return target
|
||||||
},
|
},
|
||||||
@ -178,7 +178,7 @@ Volcanos(chat.ONDETAIL, {list: [cli.START, ice.COPY, html.LABEL, "toimage", mdb.
|
|||||||
target.Value(mdb.TEXT, can.onexport._pid(can, can.onimport.block(can, html.TEXT, can.onexport._text(can, target, can.onfigure._get(can, target), {inner: list[0]}), target.Group()) ))
|
target.Value(mdb.TEXT, can.onexport._pid(can, can.onimport.block(can, html.TEXT, can.onexport._text(can, target, can.onfigure._get(can, target), {inner: list[0]}), target.Group()) ))
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
toimage: function(event, can) { can.user.toimage(can, can.Option(nfs.PATH).split(ice.PS).pop().split(ice.PT)[0], can.svg) },
|
toimage: function(event, can) { can.user.toimage(can, can.Option(nfs.PATH).split(nfs.PS).pop().split(nfs.PT)[0], can.svg) },
|
||||||
remove: function(event, can) { if (target == can.svg) { return } var target = event.target
|
remove: function(event, can) { if (target == can.svg) { return } var target = event.target
|
||||||
can.core.List(target.Value(ice.SHIP), function(item) { can.ondetail._select(can, item.pid, function(target) { can.page.Remove(can, target) }) })
|
can.core.List(target.Value(ice.SHIP), function(item) { can.ondetail._select(can, item.pid, function(target) { can.page.Remove(can, target) }) })
|
||||||
can.ondetail._select(can, target.Value(mdb.TEXT), function(target) { can.page.Remove(can, target) }), can.page.Remove(can, target)
|
can.ondetail._select(can, target.Value(mdb.TEXT), function(target) { can.page.Remove(can, target) }), can.page.Remove(can, target)
|
||||||
@ -192,31 +192,31 @@ Volcanos(chat.ONDETAIL, {list: [cli.START, ice.COPY, html.LABEL, "toimage", mdb.
|
|||||||
Volcanos(chat.ONEXPORT, {list: [svg.GROUP, svg.FIGURE, ctx.INDEX, "pos"],
|
Volcanos(chat.ONEXPORT, {list: [svg.GROUP, svg.FIGURE, ctx.INDEX, "pos"],
|
||||||
_point: function(event, can) { var p = can.svg.getBoundingClientRect(), point = {x: event.clientX-p.x, y: event.clientY-p.y}
|
_point: function(event, can) { var p = can.svg.getBoundingClientRect(), point = {x: event.clientX-p.x, y: event.clientY-p.y}
|
||||||
point.x = point.x - point.x % parseInt(can.Action(svg.GRID)), point.y = point.y - point.y % parseInt(can.Action(svg.GRID))
|
point.x = point.x - point.x % parseInt(can.Action(svg.GRID)), point.y = point.y - point.y % parseInt(can.Action(svg.GRID))
|
||||||
return can.Status("pos", point.x+ice.FS+point.y), point
|
return can.Status("pos", point.x+mdb.FS+point.y), point
|
||||||
},
|
},
|
||||||
_pid: function(can, target) { if (target.Value(svg.PID)) { return target.Value(svg.PID) }
|
_pid: function(can, target) { if (target.Value(svg.PID)) { return target.Value(svg.PID) }
|
||||||
var pid = "p"+can.svg.Val(mdb.COUNT, can.svg.Val(mdb.COUNT)+1)
|
var pid = "p"+can.svg.Val(mdb.COUNT, can.svg.Val(mdb.COUNT)+1)
|
||||||
return target.Value(html.CLASS, [target.Value(html.CLASS), target.Value(svg.PID, pid)].join(ice.SP).trim()), pid
|
return target.Value(html.CLASS, [target.Value(html.CLASS), target.Value(svg.PID, pid)].join(lex.SP).trim()), pid
|
||||||
},
|
},
|
||||||
_text: function(can, target, figure, data) { var trans = can.core.Value(figure.data, svg.TRANS)||{}
|
_text: function(can, target, figure, data) { var trans = can.core.Value(figure.data, svg.TRANS)||{}
|
||||||
if (figure.text) { return figure.text(can, target, data) }
|
if (figure.text) { return figure.text(can, target, data) }
|
||||||
return data.x = target.Val(trans[svg.X]||svg.X), data.y = target.Val(trans[svg.Y]||svg.Y), data
|
return data.x = target.Val(trans[svg.X]||svg.X), data.y = target.Val(trans[svg.Y]||svg.Y), data
|
||||||
},
|
},
|
||||||
_size: function(can, target, figure) { var trans = can.core.Value(figure.data, svg.TRANS)||{}
|
_size: function(can, target, figure) { var trans = can.core.Value(figure.data, svg.TRANS)||{}
|
||||||
return "<("+target.Val(trans[html.HEIGHT]||html.HEIGHT)+ice.FS+target.Val(trans[html.WIDTH]||html.WIDTH)+")"
|
return "<("+target.Val(trans[html.HEIGHT]||html.HEIGHT)+mdb.FS+target.Val(trans[html.WIDTH]||html.WIDTH)+")"
|
||||||
},
|
},
|
||||||
_position: function(can, target, figure) { var trans = can.core.Value(figure.data, svg.TRANS)||{}
|
_position: function(can, target, figure) { var trans = can.core.Value(figure.data, svg.TRANS)||{}
|
||||||
return "@("+target.Val(trans[svg.X]||svg.X)+ice.FS+target.Val(trans[svg.Y]||svg.Y)+")"
|
return "@("+target.Val(trans[svg.X]||svg.X)+mdb.FS+target.Val(trans[svg.Y]||svg.Y)+")"
|
||||||
},
|
},
|
||||||
_show: function(can, target) { var figure = can.onfigure._get(can, target)
|
_show: function(can, target) { var figure = can.onfigure._get(can, target)
|
||||||
function show() { return can.onexport._size(can, target, figure)+ice.SP+can.onexport._position(can, target, figure) }
|
function show() { return can.onexport._size(can, target, figure)+lex.SP+can.onexport._position(can, target, figure) }
|
||||||
can.Status(svg.FIGURE, target.tagName+ice.DF+target.Value(svg.PID)+ice.SP+(figure? (figure.show||show)(can, target, figure): ""))
|
can.Status(svg.FIGURE, target.tagName+nfs.DF+target.Value(svg.PID)+lex.SP+(figure? (figure.show||show)(can, target, figure): ""))
|
||||||
can.Status(svg.GROUP, target.Groups()||can.group.Groups()||html.SVG)
|
can.Status(svg.GROUP, target.Groups()||can.group.Groups()||html.SVG)
|
||||||
can.Status(ctx.INDEX, target.Value(ctx.INDEX)||"")
|
can.Status(ctx.INDEX, target.Value(ctx.INDEX)||"")
|
||||||
},
|
},
|
||||||
content: function(can, target) { return ['<svg xmlns="https://www.w3.org/2000/svg" vertion="1.1" text-anchor="middle" '].concat(
|
content: function(can, target) { return ['<svg xmlns="https://www.w3.org/2000/svg" vertion="1.1" text-anchor="middle" '].concat(
|
||||||
// content: function(can, target) { return ['<svg xmlns="https://www.w3.org/2000/svg" vertion="1.1" text-anchor="middle" dominant-baseline="middle" '].concat(
|
// content: function(can, target) { return ['<svg xmlns="https://www.w3.org/2000/svg" vertion="1.1" text-anchor="middle" dominant-baseline="middle" '].concat(
|
||||||
target? can.core.List([mdb.COUNT, svg.PID], function(item) { return target.Value(item)? can.base.joinKV([item, target.Value(item)], ice.EQ): ""}).join(ice.SP): "").concat([">", target? target.innerHTML: "", "</svg>"]).join("")
|
target? can.core.List([mdb.COUNT, svg.PID], function(item) { return target.Value(item)? can.base.joinKV([item, target.Value(item)], mdb.EQ): ""}).join(lex.SP): "").concat([">", target? target.innerHTML: "", "</svg>"]).join("")
|
||||||
},
|
},
|
||||||
cursor: function(event, can, target) {
|
cursor: function(event, can, target) {
|
||||||
var p = target.getBoundingClientRect(), q = {x: event.clientX, y: event.clientY}, pos = 5, margin = 20
|
var p = target.getBoundingClientRect(), q = {x: event.clientX, y: event.clientY}, pos = 5, margin = 20
|
||||||
@ -308,7 +308,7 @@ Volcanos(chat.ONFIGURE, {
|
|||||||
return {x1: p0.x, y1: p0.y, x2: p1.x, y2: p1.y, ship: ship.length > 0? ship: undefined}
|
return {x1: p0.x, y1: p0.y, x2: p1.x, y2: p1.y, ship: ship.length > 0? ship: undefined}
|
||||||
},
|
},
|
||||||
text: function(can, target, data) { return data.x = (target.Val(svg.X1)+target.Val(svg.X2))/2, data.y = (target.Val(svg.Y1)+target.Val(svg.Y2))/2, data },
|
text: function(can, target, data) { return data.x = (target.Val(svg.X1)+target.Val(svg.X2))/2, data.y = (target.Val(svg.Y1)+target.Val(svg.Y2))/2, data },
|
||||||
show: function(can, target, figure) { return "<("+(target.Val(svg.Y2)-target.Val(svg.Y1))+ice.FS+(target.Val(svg.X2)-target.Val(svg.X1))+")"+can.onexport._position(can, target, figure) },
|
show: function(can, target, figure) { return "<("+(target.Val(svg.Y2)-target.Val(svg.Y1))+mdb.FS+(target.Val(svg.X2)-target.Val(svg.X1))+")"+can.onexport._position(can, target, figure) },
|
||||||
},
|
},
|
||||||
circle: { // "25" cy="75" r="20"/>
|
circle: { // "25" cy="75" r="20"/>
|
||||||
data: {points: 2, trans: {height: svg.R, width: svg.R, x: svg.CX, y: svg.CY}, copy: [svg.R]},
|
data: {points: 2, trans: {height: svg.R, width: svg.R, x: svg.CX, y: svg.CY}, copy: [svg.R]},
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) { can.onmotion.clear(can), can.dir_root = msg.Option(nfs.DIR_ROOT)
|
Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) { can.onmotion.clear(can), can.dir_root = msg.Option(nfs.DIR_ROOT)
|
||||||
can._path = can.request(), can.list = [], msg.Table(function(value) { can.base.endWith(value.path, ice.PS)? can._path.Push(value): can.list.push(value) })
|
can._path = can.request(), can.list = [], msg.Table(function(value) { can.base.endWith(value.path, nfs.PS)? can._path.Push(value): can.list.push(value) })
|
||||||
can.ui = can.onappend.layout(can, [html.PROJECT, html.DISPLAY])
|
can.ui = can.onappend.layout(can, [html.PROJECT, html.DISPLAY])
|
||||||
can._path.Table(function(item) { item.name = item.path
|
can._path.Table(function(item) { item.name = item.path
|
||||||
can.onimport.item(can, item, function() { can.Option(nfs.PATH, item.path), can.Update() }, function() {}, can.ui.project)
|
can.onimport.item(can, item, function() { can.Option(nfs.PATH, item.path), can.Update() }, function() {}, can.ui.project)
|
||||||
@ -61,7 +61,7 @@ Volcanos(chat.ONACTION, {list: [
|
|||||||
record0: function(event, can, name, cb) { can.user.input(event, can, [{name: nfs.FILE, value: name}], function(list) { var height = window.innerHeight
|
record0: function(event, can, name, cb) { can.user.input(event, can, [{name: nfs.FILE, value: name}], function(list) { var height = window.innerHeight
|
||||||
navigator.mediaDevices.getDisplayMedia({video: {height: height}}).then(function(stream) {
|
navigator.mediaDevices.getDisplayMedia({video: {height: height}}).then(function(stream) {
|
||||||
can.core.Next([3, 2, 1], function(item, next) { can.user.toast(can, item + "s 后开始截图"), can.onmotion.delay(can, next, 1000) }, function() { can.user.toast(can, "现在开始截图")
|
can.core.Next([3, 2, 1], function(item, next) { can.user.toast(can, item + "s 后开始截图"), can.onmotion.delay(can, next, 1000) }, function() { can.user.toast(can, "现在开始截图")
|
||||||
cb(stream, function(blobs, ext) { var msg = can.request(event); msg._upload = new File(blobs, list[0]+ice.PT+ext)
|
cb(stream, function(blobs, ext) { var msg = can.request(event); msg._upload = new File(blobs, list[0]+nfs.PT+ext)
|
||||||
can.runAction(msg, html.UPLOAD, [], function() { can.user.toast(can, "上传成功"), can.Update() })
|
can.runAction(msg, html.UPLOAD, [], function() { can.user.toast(can, "上传成功"), can.Update() })
|
||||||
can.core.List(stream.getTracks(), function(item) { item.stop() })
|
can.core.List(stream.getTracks(), function(item) { item.stop() })
|
||||||
})
|
})
|
||||||
@ -85,7 +85,7 @@ Volcanos(chat.ONDETAIL, {list: ["关闭", "上一个", "下一个", "设置头
|
|||||||
sub.page.style(sub, sub._target, {left: left||0, top: top||0}), sub.page.style(sub, sub._output, html.HEIGHT, height-2*html.ACTION_HEIGHT, html.WIDTH, width)
|
sub.page.style(sub, sub._target, {left: left||0, top: top||0}), sub.page.style(sub, sub._output, html.HEIGHT, height-2*html.ACTION_HEIGHT, html.WIDTH, width)
|
||||||
can.order = index, can.show = function(order) { path = can.onimport._file(can, can.list[order].path); var cb = can.onfigure[can.base.Ext(path)]||can.onfigure[wiki.IMAGE]
|
can.order = index, can.show = function(order) { path = can.onimport._file(can, can.list[order].path); var cb = can.onfigure[can.base.Ext(path)]||can.onfigure[wiki.IMAGE]
|
||||||
sub.page.Appends(sub, sub._output, [can.base.Copy(cb(can, path, index), {height: "", style: kit.Dict(html.MAX_WIDTH, width, html.MAX_HEIGHT, height-2*html.ACTION_HEIGHT)})])
|
sub.page.Appends(sub, sub._output, [can.base.Copy(cb(can, path, index), {height: "", style: kit.Dict(html.MAX_WIDTH, width, html.MAX_HEIGHT, height-2*html.ACTION_HEIGHT)})])
|
||||||
sub.Status(cli.BEGIN, order+1+ice.PS+can.list.length), sub.Status(nfs.FILE, path)
|
sub.Status(cli.BEGIN, order+1+nfs.PS+can.list.length), sub.Status(nfs.FILE, path)
|
||||||
}, can.show(can.order)
|
}, can.show(can.order)
|
||||||
}), sub.run = function(can, cmds, cb) { can.run(can, cmds, cb, true) }
|
}), sub.run = function(can, cmds, cb) { can.run(can, cmds, cb, true) }
|
||||||
}, can._root._target)
|
}, can._root._target)
|
||||||
@ -101,5 +101,5 @@ Volcanos(chat.ONDETAIL, {list: ["关闭", "上一个", "下一个", "设置头
|
|||||||
})
|
})
|
||||||
Volcanos(chat.ONEXPORT, {list: [cli.BEGIN, mdb.LIMIT, mdb.TOTAL, nfs.FILE, "position"],
|
Volcanos(chat.ONEXPORT, {list: [cli.BEGIN, mdb.LIMIT, mdb.TOTAL, nfs.FILE, "position"],
|
||||||
height: function(can) { var height = can.Action(html.HEIGHT); return parseInt(height == ice.AUTO? can.base.Min(can.ConfHeight()/4, 200): height)||200 },
|
height: function(can) { var height = can.Action(html.HEIGHT); return parseInt(height == ice.AUTO? can.base.Min(can.ConfHeight()/4, 200): height)||200 },
|
||||||
position: function(can, index, total) { total = total || can.max; return parseInt((index+1)*100/total)+"%"+" = "+(parseInt(index)+1)+ice.PS+parseInt(total) },
|
position: function(can, index, total) { total = total || can.max; return parseInt((index+1)*100/total)+"%"+" = "+(parseInt(index)+1)+nfs.PS+parseInt(total) },
|
||||||
})
|
})
|
||||||
|
@ -120,7 +120,7 @@ Volcanos(chat.ONDETAIL, {list: ["删除"],
|
|||||||
if (index == which || page == which) {
|
if (index == which || page == which) {
|
||||||
sub.page.Select(sub, page, sub.page.Keys(html.H1, html.H2, html.H3), function(item) { sub.Action("菜单", item.innerHTML) })
|
sub.page.Select(sub, page, sub.page.Keys(html.H1, html.H2, html.H3), function(item) { sub.Action("菜单", item.innerHTML) })
|
||||||
sub.onmotion.select(sub, sub.ui.project, html.DIV_ITEM, index)
|
sub.onmotion.select(sub, sub.ui.project, html.DIV_ITEM, index)
|
||||||
sub.Status(mdb.PAGE, index+1+ice.PS+sub.list.length)
|
sub.Status(mdb.PAGE, index+1+nfs.PS+sub.list.length)
|
||||||
sub.page.ClassList.add(sub, page, html.SHOW)
|
sub.page.ClassList.add(sub, page, html.SHOW)
|
||||||
} else {
|
} else {
|
||||||
sub.page.ClassList.del(sub, page, html.SHOW)
|
sub.page.ClassList.del(sub, page, html.SHOW)
|
||||||
|
@ -98,8 +98,8 @@ Volcanos(chat.ONACTION, {list: [
|
|||||||
], [mdb.NAME, meta.index, mdb.TEXT, JSON.stringify(can.Input())]) },
|
], [mdb.NAME, meta.index, mdb.TEXT, JSON.stringify(can.Input())]) },
|
||||||
"打开链接": function(event, can) { can.user.open(can.onexport.link(can)) },
|
"打开链接": function(event, can) { can.user.open(can.onexport.link(can)) },
|
||||||
"生成链接": function(event, can) { can.onmotion.share(event, can, [], [mdb.LINK, can.user.copy(event, can, can.onexport.link(can))]) },
|
"生成链接": function(event, can) { can.onmotion.share(event, can, [], [mdb.LINK, can.user.copy(event, can, can.onexport.link(can))]) },
|
||||||
"生成脚本": function(event, can) { var conf = can.Conf(), args = can.Input().join(ice.SP), list = [
|
"生成脚本": function(event, can) { var conf = can.Conf(), args = can.Input().join(lex.SP), list = [
|
||||||
"export ctx_dev="+location.origin+"; ctx_temp=$(mktemp); curl -o $ctx_temp -fsSL $ctx_dev;"+" source $ctx_temp cmd "+(conf.index||"")+ice.SP+args,
|
"export ctx_dev="+location.origin+"; ctx_temp=$(mktemp); curl -o $ctx_temp -fsSL $ctx_dev;"+" source $ctx_temp cmd "+(conf.index||"")+lex.SP+args,
|
||||||
"ish_sys_dev_run_command "+args, "ish_sys_dev_run_action", "ish_sys_dev_run_source",
|
"ish_sys_dev_run_command "+args, "ish_sys_dev_run_action", "ish_sys_dev_run_source",
|
||||||
]; can.user.copy(event, can, list[0]) },
|
]; can.user.copy(event, can, list[0]) },
|
||||||
"生成图片": function(event, can) { can.user.toimage(can, can._name) },
|
"生成图片": function(event, can) { can.user.toimage(can, can._name) },
|
||||||
@ -163,7 +163,7 @@ Volcanos(chat.ONACTION, {list: [
|
|||||||
record0: function(event, can, name, cb) { can.user.input(event, can, [{name: nfs.FILE, value: name}], function(list) {
|
record0: function(event, can, name, cb) { can.user.input(event, can, [{name: nfs.FILE, value: name}], function(list) {
|
||||||
navigator.mediaDevices.getDisplayMedia({video: {height: window.innerHeight}}).then(function(stream) { var toast
|
navigator.mediaDevices.getDisplayMedia({video: {height: window.innerHeight}}).then(function(stream) { var toast
|
||||||
can.core.Next([3, 2, 1], function(item, next) { toast = can.user.toast(can, item + "s 后开始截图"), can.onmotion.delay(can, next, 1000) }, function() { toast.close()
|
can.core.Next([3, 2, 1], function(item, next) { toast = can.user.toast(can, item + "s 后开始截图"), can.onmotion.delay(can, next, 1000) }, function() { toast.close()
|
||||||
cb(stream, function(blobs, ext) { var msg = can.request(event); msg._upload = new File(blobs, list[0]+ice.PT+ext)
|
cb(stream, function(blobs, ext) { var msg = can.request(event); msg._upload = new File(blobs, list[0]+nfs.PT+ext)
|
||||||
can.runAction(msg, html.UPLOAD, [], function() { can.user.toastSuccess(can), can.Update() })
|
can.runAction(msg, html.UPLOAD, [], function() { can.user.toastSuccess(can), can.Update() })
|
||||||
can.core.List(stream.getTracks(), function(item) { item.stop() })
|
can.core.List(stream.getTracks(), function(item) { item.stop() })
|
||||||
})
|
})
|
||||||
|
@ -24,7 +24,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(
|
|||||||
} break
|
} break
|
||||||
case code.STRING: can.page.Append(can, target, [{text: ['"'+data+'"', "", code.STRING]}]); break
|
case code.STRING: can.page.Append(can, target, [{text: ['"'+data+'"', "", code.STRING]}]); break
|
||||||
default: can.page.Append(can, target, [{text: [''+data+'', "", code.CONSTANT]}])
|
default: can.page.Append(can, target, [{text: [''+data+'', "", code.CONSTANT]}])
|
||||||
} (index < total-1) && can.page.Append(can, target, [{text: ice.FS}]); return list
|
} (index < total-1) && can.page.Append(can, target, [{text: mdb.FS}]); return list
|
||||||
}; show(data, can.page.Append(can, target, [html.ITEM])._target, 0, 0)
|
}; show(data, can.page.Append(can, target, [html.ITEM])._target, 0, 0)
|
||||||
},
|
},
|
||||||
}, [""])
|
}, [""])
|
||||||
|
@ -18,7 +18,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { can.page.requireDraw(ca
|
|||||||
function pie(x, y, r, begin, span, color, cb) { can.onimport.draw(can, {shape: svg.PATH, style: kit.Dict(
|
function pie(x, y, r, begin, span, color, cb) { can.onimport.draw(can, {shape: svg.PATH, style: kit.Dict(
|
||||||
svg.STROKE, color, svg.FILL, color, "d", can.base.joins([
|
svg.STROKE, color, svg.FILL, color, "d", can.base.joins([
|
||||||
["M", x, y], ["L"].concat(pos(x, y, r, begin)), ["A", r, r, "0", span>180? "1": "0", "1"].concat(pos(x, y, r, begin+span)), ["Z"]
|
["M", x, y], ["L"].concat(pos(x, y, r, begin)), ["A", r, r, "0", span>180? "1": "0", "1"].concat(pos(x, y, r, begin+span)), ["Z"]
|
||||||
], ice.SP, ice.FS),
|
], lex.SP, mdb.FS),
|
||||||
), onmouseenter: function(event) { can.base.isFunc(cb) && cb(event) } }) }
|
), onmouseenter: function(event) { can.base.isFunc(cb) && cb(event) } }) }
|
||||||
can.onmotion.clear(can, can.svg), can.svg.Value(mdb.COUNT, 0)
|
can.onmotion.clear(can, can.svg), can.svg.Value(mdb.COUNT, 0)
|
||||||
var begin = 0; can.core.List(can.list, function(item, index) { var p = index==which? pos(x, y, margin, begin+item.span/2): [x, y]
|
var begin = 0; can.core.List(can.list, function(item, index) { var p = index==which? pos(x, y, margin, begin+item.span/2): [x, y]
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { can.page.requireDraw(can, function() { can.ConfDefault({field: msg.append[0], split: ice.PS})
|
Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { can.page.requireDraw(can, function() { can.ConfDefault({field: msg.append[0], split: nfs.PS})
|
||||||
can.dir_root = can.Conf(nfs.DIR_ROOT)||msg.Option(nfs.DIR_ROOT), can._tree = can.onimport._tree(can, msg.Table(), can.Conf(mdb.FIELD), can.Conf(lex.SPLIT))
|
can.dir_root = can.Conf(nfs.DIR_ROOT)||msg.Option(nfs.DIR_ROOT), can._tree = can.onimport._tree(can, msg.Table(), can.Conf(mdb.FIELD), can.Conf(lex.SPLIT))
|
||||||
can.onaction.list = [], can.base.isFunc(cb) && cb(msg), can.onimport.layout(can)
|
can.onaction.list = [], can.base.isFunc(cb) && cb(msg), can.onimport.layout(can)
|
||||||
can.onappend._status(can, msg.Option(ice.MSG_STATUS))
|
can.onappend._status(can, msg.Option(ice.MSG_STATUS))
|
||||||
|
@ -17,7 +17,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(
|
|||||||
_system_app: function(can, msg, target) { can.page.Appends(can, target, msg.Table(function(item) { var name = item.name||item.text
|
_system_app: function(can, msg, target) { can.page.Appends(can, target, msg.Table(function(item) { var name = item.name||item.text
|
||||||
return {view: html.ITEM, style: {"text-align": "center", margin: 10, width: 100, "float": "left"}, list: [
|
return {view: html.ITEM, style: {"text-align": "center", margin: 10, width: 100, "float": "left"}, list: [
|
||||||
{type: html.IMG, src: "/share/local/usr/icons/"+item.text, style: {display: html.BLOCK, width: 100}},
|
{type: html.IMG, src: "/share/local/usr/icons/"+item.text, style: {display: html.BLOCK, width: 100}},
|
||||||
{text: name.split(ice.PT)[0].replace(ice.SP, ice.NL), style: {display: html.BLOCK, height: 40}},
|
{text: name.split(nfs.PT)[0].replace(lex.SP, lex.NL), style: {display: html.BLOCK, height: 40}},
|
||||||
], onclick: function(event) { can.runAction(can.request(event, item, can.Option()), "xterm", []) }}
|
], onclick: function(event) { can.runAction(can.request(event, item, can.Option()), "xterm", []) }}
|
||||||
})) },
|
})) },
|
||||||
card: function(can, msg, target) { can.page.Appends(can, target||can._output, msg.Table(function(item) {
|
card: function(can, msg, target) { can.page.Appends(can, target||can._output, msg.Table(function(item) {
|
||||||
@ -60,7 +60,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(
|
|||||||
can.core.List(list.reverse(), function(meta) { can.base.isString(meta) && (meta = {index: meta}), meta.mode = html.FLOAT
|
can.core.List(list.reverse(), function(meta) { can.base.isString(meta) && (meta = {index: meta}), meta.mode = html.FLOAT
|
||||||
can.onimport.plug(can, meta, function(sub) { can.onmotion.hidden(can, sub._target), sub._legend._target = sub._target
|
can.onimport.plug(can, meta, function(sub) { can.onmotion.hidden(can, sub._target), sub._legend._target = sub._target
|
||||||
status.appendChild(sub._legend), sub._legend.onclick = function(event) { can.misc.Event(event, can, function(msg) {
|
status.appendChild(sub._legend), sub._legend.onclick = function(event) { can.misc.Event(event, can, function(msg) {
|
||||||
if (can.page.SelectOne(can, status, ice.PT+html.SELECT, function(target) { can.onmotion.hidden(can, target._target), can.page.ClassList.del(can, target, html.SELECT); return target }) == sub._legend) { return }
|
if (can.page.SelectOne(can, status, nfs.PT+html.SELECT, function(target) { can.onmotion.hidden(can, target._target), can.page.ClassList.del(can, target, html.SELECT); return target }) == sub._legend) { return }
|
||||||
can.onmotion.select(can, status, html.LEGEND, sub._legend), can.onmotion.toggle(can, sub._target, true), sub.Focus()
|
can.onmotion.select(can, status, html.LEGEND, sub._legend), can.onmotion.toggle(can, sub._target, true), sub.Focus()
|
||||||
if (sub._delay_init || meta.msg) { sub._delay_init = false, meta.msg = false, sub.Update() }
|
if (sub._delay_init || meta.msg) { sub._delay_init = false, meta.msg = false, sub.Update() }
|
||||||
}) }, sub._delay_init = true, sub.onaction.close = function() { sub.select() }, sub.select = function() { return sub._legend.click(), sub }
|
}) }, sub._delay_init = true, sub.onaction.close = function() { sub.select() }, sub.select = function() { return sub._legend.click(), sub }
|
||||||
@ -170,7 +170,7 @@ Volcanos(chat.ONEXPORT, {
|
|||||||
can._legend.innerHTML = title, can.isCmdMode() && can.user.title(title); var sup = can.sup; if (sup) { sup._header_tabs && (sup._header_tabs.innerHTML = title), sup._tabs && (sup._tabs.innerHTML = title) }
|
can._legend.innerHTML = title, can.isCmdMode() && can.user.title(title); var sup = can.sup; if (sup) { sup._header_tabs && (sup._header_tabs.innerHTML = title), sup._tabs && (sup._tabs.innerHTML = title) }
|
||||||
},
|
},
|
||||||
table: function(can) { var msg = can._msg; if (msg.Length() == 0) { return }
|
table: function(can) { var msg = can._msg; if (msg.Length() == 0) { return }
|
||||||
var res = [msg.append && msg.append.join(ice.FS)]; msg.Table(function(line, index, array) { res.push(can.core.Item(line, function(key, value) { return value }).join(ice.FS)) }); return res.join(ice.NL)
|
var res = [msg.append && msg.append.join(mdb.FS)]; msg.Table(function(line, index, array) { res.push(can.core.Item(line, function(key, value) { return value }).join(ice.FS)) }); return res.join(lex.NL)
|
||||||
},
|
},
|
||||||
board: function(can) { var msg = can._msg; return msg.Result() },
|
board: function(can) { var msg = can._msg; return msg.Result() },
|
||||||
})
|
})
|
||||||
|
15
proto.js
15
proto.js
@ -72,7 +72,8 @@ var mdb = {
|
|||||||
KEYS: "keys",
|
KEYS: "keys",
|
||||||
MAIN: "main", PAGE: "page", NEXT: "next", PREV: "prev", LIMIT: "limit", OFFEND: "offend",
|
MAIN: "main", PAGE: "page", NEXT: "next", PREV: "prev", LIMIT: "limit", OFFEND: "offend",
|
||||||
FOREACH: "*", RANDOMS: "%",
|
FOREACH: "*", RANDOMS: "%",
|
||||||
EQ: "=", FS: ",",
|
QS: ice.QS, AT: ice.AT,
|
||||||
|
EQ: ice.EQ, FS: ice.FS,
|
||||||
}
|
}
|
||||||
var web = {CHAT: "chat",
|
var web = {CHAT: "chat",
|
||||||
SHARE: "share", SPACE: "space", DREAM: "dream",
|
SHARE: "share", SPACE: "space", DREAM: "dream",
|
||||||
@ -100,7 +101,7 @@ var aaa = {
|
|||||||
}
|
}
|
||||||
var lex = {
|
var lex = {
|
||||||
SPLIT: "split", PREFIX: "prefix", SUFFIX: "suffix",
|
SPLIT: "split", PREFIX: "prefix", SUFFIX: "suffix",
|
||||||
TB: "\t", SP: " ", NL: "\n",
|
TB: ice.TB, SP: ice.SP, NL: ice.NL,
|
||||||
}
|
}
|
||||||
var yac = {
|
var yac = {
|
||||||
}
|
}
|
||||||
@ -122,7 +123,7 @@ var nfs = {
|
|||||||
SVG: "svg", HTML: "html", CSS: "css", JS: "js", SH: "sh", GO: "go", CSV: "csv", JSON: "json",
|
SVG: "svg", HTML: "html", CSS: "css", JS: "js", SH: "sh", GO: "go", CSV: "csv", JSON: "json",
|
||||||
TXT: "txt", PNG: "png", WEBM: "webm",
|
TXT: "txt", PNG: "png", WEBM: "webm",
|
||||||
_CSS: ".css", _JS: ".js",
|
_CSS: ".css", _JS: ".js",
|
||||||
DF: ":", PS: "/", PT: ".",
|
DF: ice.DF, PS: ice.PS, PT: ice.PT,
|
||||||
PWD: "./", SRC: "src/",
|
PWD: "./", SRC: "src/",
|
||||||
}
|
}
|
||||||
var cli = {
|
var cli = {
|
||||||
@ -329,7 +330,7 @@ var Volcanos = shy({iceberg: "/chat/", volcano: "/frame.js", cache: {}, pack: {}
|
|||||||
can.run(event, [ctx.ACTION].concat(action, args), cb, silent)
|
can.run(event, [ctx.ACTION].concat(action, args), cb, silent)
|
||||||
},
|
},
|
||||||
search: function(event, cmds, cb) {
|
search: function(event, cmds, cb) {
|
||||||
if (cmds && typeof cmds == lang.OBJECT && cmds.length > 0 && typeof cmds[0] == lang.OBJECT && cmds[0].length > 0 ) { cmds[0] = cmds[0].join(ice.PT) }
|
if (cmds && typeof cmds == lang.OBJECT && cmds.length > 0 && typeof cmds[0] == lang.OBJECT && cmds[0].length > 0 ) { cmds[0] = cmds[0].join(nfs.PT) }
|
||||||
return (can._root||can).run(event, [chat._SEARCH].concat(cmds), cb, true)
|
return (can._root||can).run(event, [chat._SEARCH].concat(cmds), cb, true)
|
||||||
},
|
},
|
||||||
get: function(name, key, cb) { var value; can.search({}, [can.core.Keys(name, chat.ONEXPORT, key)], cb||function(msg) { value = msg.Result() }); return value },
|
get: function(name, key, cb) { var value; can.search({}, [can.core.Keys(name, chat.ONEXPORT, key)], cb||function(msg) { value = msg.Result() }); return value },
|
||||||
@ -357,7 +358,7 @@ var Volcanos = shy({iceberg: "/chat/", volcano: "/frame.js", cache: {}, pack: {}
|
|||||||
for (var i = 0; i < arguments.length; i += 2) {
|
for (var i = 0; i < arguments.length; i += 2) {
|
||||||
if (typeof key == lang.OBJECT) { res = can.core.Value(can._conf, arguments[i]), i--; continue }
|
if (typeof key == lang.OBJECT) { res = can.core.Value(can._conf, arguments[i]), i--; continue }
|
||||||
res = can.core.Value(can._conf, arguments[i], arguments[i+1])
|
res = can.core.Value(can._conf, arguments[i], arguments[i+1])
|
||||||
} return can.base.isUndefined(res) && key.indexOf(ctx.FEATURE+ice.PT) == -1? can.Conf(can.core.Keys(ctx.FEATURE, key)): res
|
} return can.base.isUndefined(res) && key.indexOf(ctx.FEATURE+nfs.PT) == -1? can.Conf(can.core.Keys(ctx.FEATURE, key)): res
|
||||||
}, _conf: {},
|
}, _conf: {},
|
||||||
}, meta)); if (_can_name) { meta.cache[_can_name] = meta.cache[_can_name]||[], meta.cache[_can_name].push(can) } else { list.push(can) }
|
}, meta)); if (_can_name) { meta.cache[_can_name] = meta.cache[_can_name]||[], meta.cache[_can_name].push(can) } else { list.push(can) }
|
||||||
return can.require(can._follow? libs.concat(meta.libs, meta.volcano): libs, cb), can
|
return can.require(can._follow? libs.concat(meta.libs, meta.volcano): libs, cb), can
|
||||||
@ -366,14 +367,14 @@ try { if (typeof(window) == lang.OBJECT) { var meta = Volcanos.meta
|
|||||||
meta.target = document.body, meta._height = window.innerHeight, meta._width = window.innerWidth
|
meta.target = document.body, meta._height = window.innerHeight, meta._width = window.innerWidth
|
||||||
if (window._version && window.outerWidth-window.innerWidth < 100) { meta.version = window._version }
|
if (window._version && window.outerWidth-window.innerWidth < 100) { meta.version = window._version }
|
||||||
meta._load = function(url, cb) { var v = meta.version? meta.version+"&_tt="+(new Date()).getTime(): ""
|
meta._load = function(url, cb) { var v = meta.version? meta.version+"&_tt="+(new Date()).getTime(): ""
|
||||||
switch (url.split(ice.QS)[0].split(ice.PT).pop().toLowerCase()) {
|
switch (url.split(ice.QS)[0].split(nfs.PT).pop().toLowerCase()) {
|
||||||
case nfs.CSS: var item = document.createElement(mdb.LINK); item.href = url+v, item.rel = "stylesheet", item.onload = cb, document.head.appendChild(item); break
|
case nfs.CSS: var item = document.createElement(mdb.LINK); item.href = url+v, item.rel = "stylesheet", item.onload = cb, document.head.appendChild(item); break
|
||||||
default: var item = document.createElement(nfs.SCRIPT); item.src = url+v, item.onerror = cb, item.onload = cb, document.body.appendChild(item)
|
default: var item = document.createElement(nfs.SCRIPT); item.src = url+v, item.onerror = cb, item.onload = cb, document.body.appendChild(item)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
meta._init = function(can) {
|
meta._init = function(can) {
|
||||||
window.onerror = function(message, source, lineno, colno, error) {
|
window.onerror = function(message, source, lineno, colno, error) {
|
||||||
meta.version? alert([message].concat(can.misc._stacks(0, error)).join(ice.NL)): can.misc.Error(message, ice.NL+[source, lineno, colno].join(ice.DF), error)
|
meta.version? alert([message].concat(can.misc._stacks(0, error)).join(lex.NL)): can.misc.Error(message, lex.NL+[source, lineno, colno].join(ice.DF), error)
|
||||||
}, window.onbeforeunload = function() { can.Action._socket && can.Action._socket.close() }
|
}, window.onbeforeunload = function() { can.Action._socket && can.Action._socket.close() }
|
||||||
var last = can.page.width() < can.page.height(); window.onresize = function(event) { can.misc.Event(event, can, function(msg) {
|
var last = can.page.width() < can.page.height(); window.onresize = function(event) { can.misc.Event(event, can, function(msg) {
|
||||||
if (can.user.isMobile && last === can.page.width() < can.page.height()) { return } last = can.page.width() < can.page.height()
|
if (can.user.isMobile && last === can.page.width() < can.page.height()) { return } last = can.page.width() < can.page.height()
|
||||||
|
@ -9,21 +9,21 @@ setTimeout(function() { Volcanos({
|
|||||||
var has = {}; target = target||document.body
|
var has = {}; target = target||document.body
|
||||||
can.page.Select(can, target, html.AUDIO, function(target) {
|
can.page.Select(can, target, html.AUDIO, function(target) {
|
||||||
if (!target.src || has[target.src]) { return } has[target.src] = true
|
if (!target.src || has[target.src]) { return } has[target.src] = true
|
||||||
var name = target.src.split("?")[0].split(ice.PT).pop()
|
var name = target.src.split("?")[0].split(nfs.PT).pop()
|
||||||
msg.Push(mdb.TYPE, html.AUDIO)
|
msg.Push(mdb.TYPE, html.AUDIO)
|
||||||
msg.Push(mdb.NAME, html.AUDIO+ice.PT+name)
|
msg.Push(mdb.NAME, html.AUDIO+nfs.PT+name)
|
||||||
msg.Push(mdb.LINK, target.src)
|
msg.Push(mdb.LINK, target.src)
|
||||||
})
|
})
|
||||||
can.page.Select(can, target, html.VIDEO, function(target) {
|
can.page.Select(can, target, html.VIDEO, function(target) {
|
||||||
if (!target.src || has[target.src]) { return } has[target.src] = true
|
if (!target.src || has[target.src]) { return } has[target.src] = true
|
||||||
var name = target.src.split("?")[0].split(ice.PT).pop()
|
var name = target.src.split("?")[0].split(nfs.PT).pop()
|
||||||
msg.Push(mdb.TYPE, html.VIDEO)
|
msg.Push(mdb.TYPE, html.VIDEO)
|
||||||
msg.Push(mdb.NAME, html.VIDEO+ice.PT+name)
|
msg.Push(mdb.NAME, html.VIDEO+nfs.PT+name)
|
||||||
msg.Push(mdb.LINK, target.src)
|
msg.Push(mdb.LINK, target.src)
|
||||||
})
|
})
|
||||||
can.page.Select(can, target, html.IMG, function(target) {
|
can.page.Select(can, target, html.IMG, function(target) {
|
||||||
if (!target.src || has[target.src]) { return } has[target.src] = true
|
if (!target.src || has[target.src]) { return } has[target.src] = true
|
||||||
var name = target.src.split("?")[0].split(ice.PS).pop()
|
var name = target.src.split("?")[0].split(nfs.PS).pop()
|
||||||
msg.Push(mdb.TYPE, html.IMG)
|
msg.Push(mdb.TYPE, html.IMG)
|
||||||
if (target.src.indexOf("data:image") == 0) {
|
if (target.src.indexOf("data:image") == 0) {
|
||||||
msg.Push(mdb.NAME, target.src.slice(target.src.length-20))
|
msg.Push(mdb.NAME, target.src.slice(target.src.length-20))
|
||||||
@ -46,7 +46,7 @@ setTimeout(function() { Volcanos({
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
style: function(can, msg, arg) {
|
style: function(can, msg, arg) {
|
||||||
can.core.List(arg[0].split(ice.FS), function(item) {
|
can.core.List(arg[0].split(mdb.FS), function(item) {
|
||||||
can.page.Select(can, document.body, item, function(target) {
|
can.page.Select(can, document.body, item, function(target) {
|
||||||
can.page.Modify(can, target, can.base.Obj(arg[1]))
|
can.page.Modify(can, target, can.base.Obj(arg[1]))
|
||||||
})
|
})
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
try { if (typeof(global) == lang.OBJECT) { // nodejs
|
try { if (typeof(global) == lang.OBJECT) { // nodejs
|
||||||
Volcanos.meta._load = function(url, cb) { if (!url) { return cb() }
|
Volcanos.meta._load = function(url, cb) { if (!url) { return cb() }
|
||||||
switch (url.split("?")[0].split(ice.PT).pop().toLowerCase()) {
|
switch (url.split("?")[0].split(nfs.PT).pop().toLowerCase()) {
|
||||||
case nfs.JS:
|
case nfs.JS:
|
||||||
// console.log("require", url)
|
// console.log("require", url)
|
||||||
require(url.indexOf("/src/") == 0? path.join(process.cwd(), url): path.join(process.cwd(), "usr/volcanos", url))
|
require(url.indexOf("/src/") == 0? path.join(process.cwd(), url): path.join(process.cwd(), "usr/volcanos", url))
|
||||||
@ -26,22 +26,22 @@ Volcanos("onappend", {
|
|||||||
if (index == 0) {
|
if (index == 0) {
|
||||||
for (var i = 0; i < msg.append.length; i++) { line.push(msg.append[i])
|
for (var i = 0; i < msg.append.length; i++) { line.push(msg.append[i])
|
||||||
for (var j = 0; j <= max[msg.append[i]]-msg.append[i].length; j++) {
|
for (var j = 0; j <= max[msg.append[i]]-msg.append[i].length; j++) {
|
||||||
line.push(ice.SP)
|
line.push(lex.SP)
|
||||||
}
|
}
|
||||||
line.push(ice.SP)
|
line.push(lex.SP)
|
||||||
}
|
}
|
||||||
list.push(line.join(""))
|
list.push(line.join(""))
|
||||||
}
|
}
|
||||||
line = []; for (var i = 0; i < msg.append.length; i++) { var k = msg.append[i]
|
line = []; for (var i = 0; i < msg.append.length; i++) { var k = msg.append[i]
|
||||||
line.push(value[k])
|
line.push(value[k])
|
||||||
for (var j = 0; j <= max[k]-value[k]; j++) {
|
for (var j = 0; j <= max[k]-value[k]; j++) {
|
||||||
line.push(ice.SP)
|
line.push(lex.SP)
|
||||||
}
|
}
|
||||||
line.push(ice.SP)
|
line.push(lex.SP)
|
||||||
}
|
}
|
||||||
list.push(line.join(""))
|
list.push(line.join(""))
|
||||||
})
|
})
|
||||||
console.log(list.join(ice.NL))
|
console.log(list.join(lex.NL))
|
||||||
},
|
},
|
||||||
board: function(can, msg) {
|
board: function(can, msg) {
|
||||||
console.log(msg.Result())
|
console.log(msg.Result())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user