forked from x/volcanos
opt some
This commit is contained in:
parent
4e7163d295
commit
726ff8c6fe
112
frame.js
112
frame.js
@ -37,7 +37,7 @@ Volcanos(chat.ONENGINE, {_init: function(can, meta, list, cb, target) {
|
|||||||
if (panel.onengine._plugin(event, can, msg, panel, cmds, cb)) { return }
|
if (panel.onengine._plugin(event, can, msg, panel, cmds, cb)) { return }
|
||||||
if (panel.onengine._static(event, can, msg, panel, cmds, cb)) { return }
|
if (panel.onengine._static(event, can, msg, panel, cmds, cb)) { return }
|
||||||
|
|
||||||
var toast, _toast = msg.Option(chat._TOAST); if (_toast) { can.onmotion.delay(can, function() { toast = toast||can.user.toastProcess(msg._can, _toast) }, 1000) }
|
var toast, _toast = msg.Option(chat._TOAST); if (_toast) { can.onmotion.delay(can, function() { toast = toast||can.user.toastProcess(msg._can, _toast) }, 500) }
|
||||||
msg.option = can.core.List(msg.option, function(item) { return [chat._TOAST, ice.MSG_HANDLE].indexOf(item) > -1 && delete(msg[item])? undefined: item })
|
msg.option = can.core.List(msg.option, function(item) { return [chat._TOAST, ice.MSG_HANDLE].indexOf(item) > -1 && delete(msg[item])? undefined: item })
|
||||||
can.getHeader(chat.TOPIC, function(topic) { msg.Option(chat.TOPIC, topic) })
|
can.getHeader(chat.TOPIC, function(topic) { msg.Option(chat.TOPIC, topic) })
|
||||||
if (can.base.isUndefined(msg._daemon)) { var sub = msg._can
|
if (can.base.isUndefined(msg._daemon)) { var sub = msg._can
|
||||||
@ -52,7 +52,7 @@ Volcanos(chat.ONENGINE, {_init: function(can, meta, list, cb, target) {
|
|||||||
},
|
},
|
||||||
_static: function(event, can, msg, panel, cmds, cb) {
|
_static: function(event, can, msg, panel, cmds, cb) {
|
||||||
if (can.user.isLocalFile) { var msg = can.request(event); msg.Clear(ice.MSG_APPEND)
|
if (can.user.isLocalFile) { var msg = can.request(event); msg.Clear(ice.MSG_APPEND)
|
||||||
var res = Volcanos.meta.pack[can.core.Keys(panel._name, cmds.join(ice.FS))]; res? msg.Copy(res): can.user.toast(can, "缺失数据")
|
var res = Volcanos.meta.pack[can.core.Keys(panel._name, cmds.join(ice.FS))]; res? msg.Copy(res): can.user.toast(can, "miss data")
|
||||||
return can.base.isFunc(cb) && cb(msg), true
|
return can.base.isFunc(cb) && cb(msg), true
|
||||||
} return false
|
} return false
|
||||||
},
|
},
|
||||||
@ -68,7 +68,7 @@ Volcanos(chat.ONENGINE, {_init: function(can, meta, list, cb, target) {
|
|||||||
return can.core.CallFunc(p, {can: p.can||panel, msg: msg, arg: cmds.slice(n), cmds: cmds.slice(n), cb: cb}), true
|
return can.core.CallFunc(p, {can: p.can||panel, msg: msg, arg: cmds.slice(n), cmds: cmds.slice(n), cb: cb}), true
|
||||||
} return false
|
} return false
|
||||||
},
|
},
|
||||||
plugin: shy("添加插件", function(can, name, command) {
|
plugin: shy(function(can, name, command) {
|
||||||
if (can.base.isUndefined(name)) { return } else if (can.base.isUndefined(command)) {
|
if (can.base.isUndefined(name)) { return } else if (can.base.isUndefined(command)) {
|
||||||
if (!can.base.isString(name) || name.indexOf("can.") == -1) { return }
|
if (!can.base.isString(name) || name.indexOf("can.") == -1) { return }
|
||||||
return arguments.callee.meta[can.base.trimPrefix(name, "can.")]
|
return arguments.callee.meta[can.base.trimPrefix(name, "can.")]
|
||||||
@ -77,11 +77,11 @@ Volcanos(chat.ONENGINE, {_init: function(can, meta, list, cb, target) {
|
|||||||
return can.base.isString(item) && (item = can.core.SplitInput(item, type)), type = item.type, item
|
return can.base.isString(item) && (item = can.core.SplitInput(item, type)), type = item.type, item
|
||||||
}), command.can = can, arguments.callee.meta[can.base.trimPrefix(name, "can.")] = command
|
}), command.can = can, arguments.callee.meta[can.base.trimPrefix(name, "can.")] = command
|
||||||
}),
|
}),
|
||||||
listen: shy("监听事件", function(can, name, cb) { arguments.callee.meta[name] = (arguments.callee.meta[name]||[]).concat(cb) }),
|
listen: shy(function(can, name, cb) { arguments.callee.meta[name] = (arguments.callee.meta[name]||[]).concat(cb) }),
|
||||||
signal: shy("触发事件", 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("log.disable") != ice.TRUE && can.misc.Log(gdb.SIGNAL, name, can._name, (msg._cmds||[]).join(ice.SP), _msg)
|
_msg.Option(ice.LOG_DISABLE) == ice.TRUE || can.misc.Log(gdb.SIGNAL, name, can._name, (msg._cmds||[]).join(ice.SP), _msg)
|
||||||
return can.core.List(can.onengine.listen.meta[name], function(cb) { can.core.CallFunc(cb, {event: msg._event, msg: msg}) }).length
|
return can.core.List(can.onengine.listen.meta[name], function(cb) { can.core.CallFunc(cb, {event: msg._event, msg: msg}) }).length
|
||||||
}),
|
},
|
||||||
})
|
})
|
||||||
Volcanos(chat.ONDAEMON, {_init: function(can, name) { if (can.user.isLocalFile) { return }
|
Volcanos(chat.ONDAEMON, {_init: function(can, name) { if (can.user.isLocalFile) { return }
|
||||||
can.misc.WSS(can, {type: html.CHROME, name: can.misc.Search(can, cli.DAEMON)||name||"", text: can.user.title()}, function(event, msg, cmd, arg) { if (!msg) { return }
|
can.misc.WSS(can, {type: html.CHROME, name: can.misc.Search(can, cli.DAEMON)||name||"", text: can.user.title()}, function(event, msg, cmd, arg) { if (!msg) { return }
|
||||||
@ -90,15 +90,14 @@ Volcanos(chat.ONDAEMON, {_init: function(can, name) { if (can.user.isLocalFile)
|
|||||||
can.onengine._search({}, can, msg, can, [chat._SEARCH, cmd].concat(arg), function() { msg.Reply() })
|
can.onengine._search({}, can, msg, can, [chat._SEARCH, cmd].concat(arg), function() { msg.Reply() })
|
||||||
})
|
})
|
||||||
}, _list: [""],
|
}, _list: [""],
|
||||||
pwd: function(can, msg, arg) { can._wss_name = can.ondaemon._list[0] = arg[0] },
|
pwd: function(can, arg) { can._wss_name = can.ondaemon._list[0] = arg[0] },
|
||||||
toast: function(can, msg, sub, arg) { can.core.CallFunc(can.user.toast, [sub].concat(arg)) },
|
toast: function(can, sub, arg) { can.core.CallFunc(can.user.toast, [sub].concat(arg)) },
|
||||||
refresh: function(can, msg, sub) { sub.Update() },
|
refresh: function(can, sub) { can.base.isFunc(sub.Update) && sub.Update() },
|
||||||
input: function(can, msg, sub, arg) { can.page.Select(can, sub._target, "input:focus", function(target) { target.value += arg[0] }) },
|
|
||||||
action: function(can, msg, sub, arg) {
|
action: function(can, msg, sub, arg) {
|
||||||
if (can.page.Select(can, sub._option, "input.args[name="+arg[0]+"]", function(target) { return target.focus(), target }).length > 0) { return }
|
if (can.page.SelectInput(can, sub._option, arg[0], function(target) { return arg[1] && (target.value = arg[1]), target.focus(), target })) { return }
|
||||||
var _sub = can.core.Value(sub, chat._OUTPUTS_CURRENT); if (_sub && _sub.onaction) { return _sub.onaction && _sub.onaction._daemon({}, _sub, arg) }
|
var _sub = can.core.Value(sub, chat._OUTPUTS_CURRENT); (_sub||sub).runAction(can.request({}, msg), arg[0], arg.slice(1))
|
||||||
sub.runAction({}, arg[0], arg.slice(1))
|
|
||||||
},
|
},
|
||||||
|
input: function(can, msg, sub, arg) { can.page.Select(can, sub._target, "input:focus", function(target) { target.value += arg[0] }) },
|
||||||
grow: function(can, msg, sub, arg) {
|
grow: function(can, msg, sub, arg) {
|
||||||
if (sub.onimport && sub.onimport._grow) {
|
if (sub.onimport && sub.onimport._grow) {
|
||||||
sub.onimport._grow(sub, msg, can.page.Color(arg.join("")))
|
sub.onimport._grow(sub, msg, can.page.Color(arg.join("")))
|
||||||
@ -131,12 +130,11 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
Option: function(key, value) { return can.page.SelectArgs(can, option, key, value)[0] },
|
Option: function(key, value) { return can.page.SelectArgs(can, option, key, value)[0] },
|
||||||
Update: function(event, cmds, cb, silent) { sub.onappend._output0(sub, sub.Conf(), event||{}, cmds||sub.Input(), cb, silent); return true },
|
Update: function(event, cmds, cb, silent) { sub.onappend._output0(sub, sub.Conf(), event||{}, cmds||sub.Input(), cb, silent); return true },
|
||||||
Focus: function() { can.page.SelectOne(can, option, html.INPUT_ARGS, function(target) { target.focus() }) },
|
Focus: function() { can.page.SelectOne(can, option, html.INPUT_ARGS, function(target) { target.focus() }) },
|
||||||
Input: function(cmds, save) {
|
Input: function(cmds, save) { cmds = cmds && cmds.length > 0? cmds: can.page.SelectArgs(sub), cmds = can.base.trim(cmds)
|
||||||
cmds = cmds && cmds.length > 0? cmds: can.page.SelectArgs(can, option, "").concat(can.page.SelectArgs(can, action, "")), cmds = can.base.trim(cmds)
|
|
||||||
return !save || cmds[0] == ctx.ACTION || can.base.Eq(sub._history[sub._history.length-1], cmds) || sub._history.push(cmds), cmds
|
return !save || cmds[0] == ctx.ACTION || can.base.Eq(sub._history[sub._history.length-1], cmds) || sub._history.push(cmds), cmds
|
||||||
},
|
},
|
||||||
Clone: function() { meta.args = can.page.SelectArgs(can, option, "").concat(can.page.SelectArgs(can, action, ""))
|
Clone: function() { meta.args = can.page.SelectArgs(can)
|
||||||
can.onappend._init(can, meta, list, function(sub) { can.base.isFunc(cb) && cb(sub, true), can.onmotion.delay(can, function() { 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) { sub.Conf(meta), meta.feature = can.base.Obj(meta.feature, {})
|
}, list, function(sub) { sub.Conf(meta), meta.feature = can.base.Obj(meta.feature, {})
|
||||||
can.page.ClassList.add(can, field, meta.index? meta.index.split(ice.PT).pop(): meta.name)
|
can.page.ClassList.add(can, field, meta.index? meta.index.split(ice.PT).pop(): meta.name)
|
||||||
@ -145,8 +143,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
case lang.OBJECT: can.page.style(can, sub._target, style); break
|
case lang.OBJECT: can.page.style(can, sub._target, style); break
|
||||||
} sub.Mode() != meta.type && can.page.ClassList.add(can, field, sub.Mode())
|
} sub.Mode() != meta.type && can.page.ClassList.add(can, field, 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])), meta.inputs && sub.onappend._option(sub, meta, sub._option, meta.msg)
|
||||||
meta.inputs && sub.onappend._option(sub, meta, sub._option, meta.msg)
|
|
||||||
if (meta.msg) { var msg = sub.request(); msg.Copy(can.base.Obj(meta.msg)), sub.onappend._output(sub, msg, meta.display||msg.Option(ice.MSG_DISPLAY)||meta.feature.display) }
|
if (meta.msg) { var msg = sub.request(); msg.Copy(can.base.Obj(meta.msg)), sub.onappend._output(sub, msg, meta.display||msg.Option(ice.MSG_DISPLAY)||meta.feature.display) }
|
||||||
|
|
||||||
sub._legend[chat.ONMOUSEENTER] = function(event) {
|
sub._legend[chat.ONMOUSEENTER] = function(event) {
|
||||||
@ -163,27 +160,25 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
return Volcanos(item.name, {_root: can._root, _follow: can.core.Keys(can._follow, item.name),
|
return Volcanos(item.name, {_root: can._root, _follow: can.core.Keys(can._follow, item.name),
|
||||||
_target: can.onappend.input(can, item, args[index]||opts[item.name], option||can._option),
|
_target: can.onappend.input(can, item, args[index]||opts[item.name], option||can._option),
|
||||||
_option: option||can._option, _action: can._action, _output: can._output, _status: can._status,
|
_option: option||can._option, _action: can._action, _output: can._output, _status: can._status,
|
||||||
|
CloneField: can.Clone, CloneInput: function() { can.onmotion.focus(can, add(item)._target) },
|
||||||
Option: can.Option, Action: can.Action, Status: can.Status, Input: can.Input,
|
Option: can.Option, Action: can.Action, Status: can.Status, Input: can.Input,
|
||||||
CloneInput: function() { can.onmotion.focus(can, add(item)._target) }, CloneField: can.Clone,
|
|
||||||
}, [item.display, chat.PLUGIN_INPUT_JS], function(sub) { sub.Conf(item)
|
}, [item.display, chat.PLUGIN_INPUT_JS], function(sub) { sub.Conf(item)
|
||||||
sub.run = function(event, cmds, cb, silent) { var msg = can.request(event, kit.Dict(chat._TOAST, ice.PROCESS))
|
sub.run = function(event, cmds, cb, silent) { var msg = can.request(event, kit.Dict(chat._TOAST, ice.PROCESS))
|
||||||
if (msg.RunAction(event, sub, cmds)) { return }
|
if (msg.RunAction(event, sub, cmds) || msg.RunAction(event, can.core.Value(can, chat._OUTPUTS_CURRENT), cmds)) { return }
|
||||||
if (msg.RunAction(event, can.core.Value(can, chat._OUTPUTS_CURRENT), cmds)) { return }
|
|
||||||
can.Update(event, can.Input(cmds, !silent), cb, silent)
|
can.Update(event, can.Input(cmds, !silent), cb, silent)
|
||||||
}, can._inputs[item.name] = sub, sub.sup = can
|
}, can._inputs[item.name] = sub, sub.sup = can
|
||||||
|
|
||||||
can.core.ItemCB(sub.onaction, function(key, cb) { sub._target[key] = function(event) { cb(can.request(event)._event, sub) } })
|
can.core.ItemCB(sub.onaction, function(key, cb) { sub._target[key] = function(event) { cb(can.request(event)._event, sub) } })
|
||||||
can.core.ItemCB(item, function(key, cb) { sub._target[key] = function(event) { cb(can.request(event)._event, sub) } })
|
can.core.ItemCB(item, function(key, cb) { sub._target[key] = function(event) { cb(can.request(event)._event, sub) } })
|
||||||
skip? next(): can.core.CallFunc([sub.onaction, chat._INIT], {can: sub, meta: item, cb: next, target: sub._target});
|
skip? next(): can.core.CallFunc([sub.onaction, chat._INIT], {can: sub, meta: item, cb: next, target: sub._target});
|
||||||
// (item.action||can.core.Value(meta, [ctx.FEATURE, ctx.INPUTS])) && can.onappend.figure(sub, item, sub._target, function(_sub, value) {
|
(item.action||can.core.Value(meta, [ctx.FEATURE, ctx.INPUTS])) && can.onappend.figure(sub, item, sub._target, function(_sub, value) {
|
||||||
can.onappend.figure(sub, item, sub._target, function(_sub, value) {
|
|
||||||
sub._target.value = value, can.onmotion.focus(can, sub._target), can.onmotion.delay(can, function() { can.Update() })
|
sub._target.value = value, can.onmotion.focus(can, sub._target), can.onmotion.delay(can, function() { can.Update() })
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}; can.core.Next(([{type: html.BUTTON, name: cli.CLOSE}]).concat(can.base.getValid(can.core.Value(can, [chat.ONIMPORT, mdb.LIST]), can.base.Obj(meta.inputs, []))||[]), add)
|
}; can.core.Next(([{type: html.BUTTON, name: cli.CLOSE}]).concat(can.base.getValid(can.core.Value(can, [chat.ONIMPORT, mdb.LIST]), can.base.Obj(meta.inputs, []))||[]), add)
|
||||||
},
|
},
|
||||||
_action: function(can, list, action, meta) { meta = meta||can.onaction||{}, action = action||can._action, can.onmotion.clear(can, action)
|
_action: function(can, list, action, meta) { meta = meta||can.onaction||{}, action = action||can._action, can.onmotion.clear(can, action)
|
||||||
return can.core.List(can.page.inputs(can, can.base.getValid(can.base.Obj(list), can.core.Value(can, [chat.ONACTION, mdb.LIST]), can.core.Item(meta))||[]), function(item) {
|
return can.core.List(can.page.inputs(can, can.base.getValid(can.base.Obj(list), can.core.Value(can, [chat.ONACTION, mdb.LIST]), meta != can.onaction? can.core.Item(meta): [])||[]), function(item) {
|
||||||
!can.base.isUndefined(item) && can.onappend.input(can, item == ""? /* 空白 */ {type: html.SPACE}:
|
!can.base.isUndefined(item) && can.onappend.input(can, item == ""? /* 空白 */ {type: html.SPACE}:
|
||||||
can.base.isString(item)? /* 按键 */ {type: html.BUTTON, name: item, value: can.user.trans(can, item, meta._trans), onclick: function(event) {
|
can.base.isString(item)? /* 按键 */ {type: html.BUTTON, name: item, value: can.user.trans(can, item, meta._trans), onclick: function(event) {
|
||||||
var cb = meta[item]||meta[chat._ENGINE]; cb? can.core.CallFunc(cb, {event: event, can: can, button: item}): can.run(event, [ctx.ACTION, item].concat(can.sup.Input()))
|
var cb = meta[item]||meta[chat._ENGINE]; cb? can.core.CallFunc(cb, {event: event, can: can, button: item}): can.run(event, [ctx.ACTION, item].concat(can.sup.Input()))
|
||||||
@ -196,20 +191,11 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
},
|
},
|
||||||
_output0: function(can, meta, event, cmds, cb, silent) { var msg = can.request(event); if (msg.RunAction(event, can, cmds)) { return }
|
_output0: function(can, meta, event, cmds, cb, silent) { var msg = can.request(event); if (msg.RunAction(event, can, cmds)) { return }
|
||||||
if (msg.Option(ice.MSG_HANDLE) != ice.TRUE && cmds && cmds[0] == ctx.ACTION && meta.feature[cmds[1]]) { var msg = can.request(event, {action: cmds[1]})
|
if (msg.Option(ice.MSG_HANDLE) != ice.TRUE && cmds && cmds[0] == ctx.ACTION && meta.feature[cmds[1]]) { var msg = can.request(event, {action: cmds[1]})
|
||||||
if (can.base.isFunc(meta.feature[cmds[1]])) { return can.core.CallFunc(meta.feature[cmds[1]], {can: can, msg: msg, cmds: cmds.slice(2)}) }
|
return can.user.input(event, can, meta.feature[cmds[1]], function(args) { can.Update(can.request(event, {_handle: ice.TRUE}, can.Option()), cmds.slice(0, 2).concat(args)) })
|
||||||
return can.user.input(event, can, meta.feature[cmds[1]], function(args) { var msg = can.request(event, {_handle: ice.TRUE}, can.Option())
|
|
||||||
can.Update(event, cmds.slice(0, 2).concat(args), cb||function() {
|
|
||||||
if (can.core.CallFunc([can.sup, chat.ONIMPORT, ice.MSG_PROCESS], {can: can.sup, msg: msg}) || silent) { return }
|
|
||||||
if (cmds[1] == mdb.CREATE || cmds[1] == mdb.INSERT) { can.Update() } else if (msg.Result().length > 0 || msg.Length() > 0) {
|
|
||||||
can.onappend.table(can, msg), can.onappend.board(can, msg)
|
|
||||||
} else { can.Update() }
|
|
||||||
}, true)
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
return can.run(event, cmds, function(msg) { if (can.base.isFunc(cb)) { can.core.CallFunc(cb, {can: can, msg: msg}); return }
|
return can.run(event, cmds, cb||function(msg) { var sub = can.core.Value(can, chat._OUTPUTS_CURRENT)||{}, process = msg._can == can || msg._can == sub
|
||||||
var sub = can.core.Value(can, chat._OUTPUTS_CURRENT)||{}, process = msg._can == can || msg._can == sub
|
|
||||||
if (process && can.core.CallFunc([can, chat.ONIMPORT, ice.MSG_PROCESS], {can: can, msg: msg}) || silent) { return }
|
if (process && can.core.CallFunc([can, chat.ONIMPORT, ice.MSG_PROCESS], {can: can, msg: msg}) || silent) { return }
|
||||||
if (cmds && cmds[0] == ctx.ACTION) { if (msg.Length() == 0 && msg.Result() == "") { return can.Update() } } else { can._msg = msg, msg._cmds = cmds }
|
if (cmds && cmds[0] == ctx.ACTION) { if (cmds[1] == mdb.CREATE || cmds[1] == mdb.INSERT || msg.Length() == 0 && msg.Result() == "") { return can.Update() } } else { can._msg = msg, msg._cmds = cmds }
|
||||||
can.onappend._output(can, msg, meta.display||msg.Option(ice.MSG_DISPLAY)||meta.feature.display)
|
can.onappend._output(can, msg, meta.display||msg.Option(ice.MSG_DISPLAY)||meta.feature.display)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
@ -218,9 +204,8 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
_legend: can._legend, _option: can._option, _action: can._action, _output: output, _status: can._status,
|
_legend: can._legend, _option: can._option, _action: can._action, _output: output, _status: can._status,
|
||||||
Update: can.Update, Option: can.Option, Action: can.Action, Status: can.Status,
|
Update: can.Update, Option: can.Option, Action: can.Action, Status: can.Status,
|
||||||
}, [display, chat.PLUGIN_TABLE_JS], function(sub) { sub.Conf(can.Conf())
|
}, [display, chat.PLUGIN_TABLE_JS], function(sub) { sub.Conf(can.Conf())
|
||||||
sub.run = function(event, cmds, cb, silent) { var msg = can.request(event)
|
sub.run = function(event, cmds, cb, silent) {
|
||||||
if (msg.RunAction(event, sub, cmds)) { return }
|
can.request(event).RunAction(event, sub, cmds) || can.Update(event, can.Input(cmds, !silent), cb, silent)
|
||||||
return can.Update(event, can.Input(cmds, !silent), cb, silent)
|
|
||||||
}, can._outputs && can._outputs.push(sub), sub.sup = can
|
}, can._outputs && can._outputs.push(sub), sub.sup = can
|
||||||
|
|
||||||
sub._index = can._index, sub._msg = msg, sub.Conf(sub._args = can.base.ParseURL(display))
|
sub._index = can._index, sub._msg = msg, sub.Conf(sub._args = can.base.ParseURL(display))
|
||||||
@ -230,7 +215,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
}
|
}
|
||||||
can._display_output? can._display_output(sub, msg): can.core.CallFunc([sub, chat.ONIMPORT, chat._INIT], {can: sub, msg: msg, cb: function(msg) {
|
can._display_output? can._display_output(sub, msg): can.core.CallFunc([sub, chat.ONIMPORT, chat._INIT], {can: sub, msg: msg, cb: function(msg) {
|
||||||
can.onmotion.clear(can, can._action), can.user.isMobile && can.ConfHeight() > can.ConfWidth() && can.onmotion.hidden(can, can._action)
|
can.onmotion.clear(can, can._action), can.user.isMobile && can.ConfHeight() > can.ConfWidth() && can.onmotion.hidden(can, can._action)
|
||||||
action === false || sub.onappend._action(sub, msg.Option(ice.MSG_ACTION)||can.Conf(ice.MSG_ACTION), action||can._action)
|
action === false || sub.onappend._action(sub, can.Conf(ice.MSG_ACTION)||msg.Option(ice.MSG_ACTION), action||can._action)
|
||||||
action === false || sub.onappend._status(sub, msg.Option(ice.MSG_STATUS)), sub.onappend.tools(sub, msg)
|
action === false || sub.onappend._status(sub, msg.Option(ice.MSG_STATUS)), sub.onappend.tools(sub, msg)
|
||||||
can.user.isMobile && can.isCmdMode() && can.page.style(can, can._output, html.MAX_HEIGHT, can.ConfHeight())
|
can.user.isMobile && can.isCmdMode() && can.page.style(can, can._output, html.MAX_HEIGHT, can.ConfHeight())
|
||||||
can.core.List([chat.FLOAT, chat.FULL, chat.CMD], function(mode) { can.page.ClassList.has(can, can._target, mode) && sub.onlayout[mode](sub) })
|
can.core.List([chat.FLOAT, chat.FULL, chat.CMD], function(mode) { can.page.ClassList.has(can, can._target, mode) && sub.onlayout[mode](sub) })
|
||||||
@ -240,7 +225,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 (item.value && item.value.indexOf && item.value.indexOf(ice.HTTP) == 0) { item.value = can.page.Format(html.A, item.value) }
|
if (can.base.beginWith(item.value, ice.HTTP)) { item.value = can.page.Format(html.A, item.value) }
|
||||||
can.page.Append(can, status, [{view: can.base.join([html.ITEM, item.name]), title: item.name, list: [
|
can.page.Append(can, status, [{view: can.base.join([html.ITEM, item.name]), title: item.name, list: [
|
||||||
{text: [item.name, html.LABEL]}, {text: [": ", html.LABEL]}, {text: [(item.value||"")+"", html.SPAN, item.name]},
|
{text: [item.name, html.LABEL]}, {text: [": ", html.LABEL]}, {text: [(item.value||"")+"", html.SPAN, item.name]},
|
||||||
], onclick: function(event) { can.user.copy(event, can, item.value) }}])
|
], onclick: function(event) { can.user.copy(event, can, item.value) }}])
|
||||||
@ -254,19 +239,18 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
]}])
|
]}])
|
||||||
},
|
},
|
||||||
input: function(can, item, value, target, style) {
|
input: function(can, item, value, target, style) {
|
||||||
switch (item.type) { case "": return can.page.Append(can, target, [item])
|
switch (item.type) {
|
||||||
|
case "": return can.page.Append(can, target, [item])
|
||||||
case html.SPACE: return can.page.Append(can, target, [{view: can.base.join([html.ITEM, html.SPACE])}])
|
case html.SPACE: return can.page.Append(can, target, [{view: can.base.join([html.ITEM, html.SPACE])}])
|
||||||
}
|
}
|
||||||
var input = can.page.input(can, can.base.Copy({}, item), value)
|
var input = can.page.input(can, can.base.Copy({}, item), value)
|
||||||
if (item.type == html.SELECT && item.value) {
|
if (item.type == html.SELECT && item.value) { input._init = function(target) { target.value = item.value } }
|
||||||
input._init = function(target) { target.value = item.value }
|
|
||||||
}
|
|
||||||
if (item.type == html.TEXT) { input.onkeydown = item.onkeydown||function(event) {
|
if (item.type == html.TEXT) { input.onkeydown = item.onkeydown||function(event) {
|
||||||
can.onkeymap.input(event, can), can.onkeymap.selectOutput(event, can), event.key == lang.ENTER && can.onkeymap.prevent(event)
|
can.onkeymap.input(event, can), can.onkeymap.selectOutput(event, can), event.key == lang.ENTER && can.onkeymap.prevent(event)
|
||||||
} }
|
} }
|
||||||
if (item.range) { input._init = function(target) { item.mode = chat.SIMPLE
|
if (item.range) { input._init = function(target) { can.onappend.figure(can, item, target, function(sub, value, old) {
|
||||||
can.onappend.figure(can, item, target, function(sub, value, old) { target.value = value, can.onaction[item.name](event, can, item.name) })
|
target.value = value, can.core.CallFunc([can.onaction, item.name], [event, can, item.name])
|
||||||
} }
|
}) } }
|
||||||
var br = input.type == html.TEXTAREA? [{type: html.BR, style: {clear: html.BOTH}}]: []
|
var br = input.type == html.TEXTAREA? [{type: html.BR, style: {clear: html.BOTH}}]: []
|
||||||
var title = can.Conf(can.core.Keys(ctx.FEATURE, chat.TITLE, item.name))||""; title && (input.title = title)
|
var title = can.Conf(can.core.Keys(ctx.FEATURE, chat.TITLE, item.name))||""; title && (input.title = title)
|
||||||
return can.page.Append(can, target, ([{view: style||can.base.join([html.ITEM, item.type]), list: [input]}]).concat(br))[item.name]
|
return can.page.Append(can, target, ([{view: style||can.base.join([html.ITEM, item.type]), list: [input]}]).concat(br))[item.name]
|
||||||
@ -275,32 +259,16 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
var table = can.page.AppendTable(can, msg, target||can._output, msg.append, cb||function(value, key, index, line, array) {
|
var table = can.page.AppendTable(can, msg, target||can._output, msg.append, cb||function(value, key, index, line, array) {
|
||||||
if (msg.append.length == 2 && msg.append[0] == mdb.KEY && msg.append[1] == mdb.VALUE) { if (key == mdb.VALUE) { key = line.key }
|
if (msg.append.length == 2 && msg.append[0] == mdb.KEY && msg.append[1] == mdb.VALUE) { if (key == mdb.VALUE) { key = line.key }
|
||||||
line = {}, can.core.List(array, function(item) { line[item.key] = item.value })
|
line = {}, can.core.List(array, function(item) { line[item.key] = item.value })
|
||||||
key == "extra.cmd" && can.onappend.plugin(can, {ctx: line["extra.ctx"], cmd: line["extra.cmd"], arg: line["extra.arg"]}, function(sub) {
|
|
||||||
sub.run = function(event, cmds, cb) { can.runActionCommand(can.request(event, line, can.Option()), can.core.Keys(line["extra.ctx"], line["extra.cmd"]), cmds, cb) }
|
|
||||||
}, target||can._output)
|
|
||||||
}
|
|
||||||
function run(cmds) {
|
|
||||||
return can.run(can.request(event, line, can.Option()), cmds, function(msg) {
|
|
||||||
if (can.core.CallFunc([can.sup, chat.ONIMPORT, ice.MSG_PROCESS], {can: can.sup, msg: msg})) { return }
|
|
||||||
if (msg.Option(ice.MSG_DISPLAY) != "") {
|
|
||||||
can.onappend._output(can.sup, msg, msg.Option(ice.MSG_DISPLAY))
|
|
||||||
} else if (msg.Length() > 0 || msg.Result().length > 0 ) {
|
|
||||||
can.onappend.table(can, msg), can.onappend.board(can, msg)
|
|
||||||
} else { can.Update() }
|
|
||||||
}, true)
|
|
||||||
}
|
}
|
||||||
|
function run(cmd, arg) { return can.run(can.request(event, line, can.Option()), [ctx.ACTION, cmd].concat(arg)) }
|
||||||
return {text: [value, html.TD], onclick: function(event) { var target = event.target
|
return {text: [value, html.TD], onclick: function(event) { var target = event.target
|
||||||
if (can.page.tagis(target, html.INPUT) && target.type == html.BUTTON) {
|
if (can.page.tagis(target, html.INPUT) && target.type == html.BUTTON) {
|
||||||
meta && meta[target.name]? can.user.input(can.request(event, {action: target.name}), can, meta[target.name], function(args) {
|
meta && meta[target.name]? can.user.input(can.request(event, {action: target.name}), can, meta[target.name], function(args) { run(target.name, args) }): run(target.name)
|
||||||
run([ctx.ACTION, target.name].concat(args))
|
} else { can.sup.onimport.change(event, can.sup, key, event.target.innerText) || can.sup.onexport.record(can.sup, line) }
|
||||||
}): run([ctx.ACTION, target.name])
|
|
||||||
} else if (can.sup.onimport.change(event, can.sup, key, event.target.innerText).length == 0) {
|
|
||||||
can.sup.onexport.record(can.sup, line)
|
|
||||||
}
|
|
||||||
}, ondblclick: function(event) { if ([mdb.KEY, mdb.HASH, mdb.ID].indexOf(key) > -1) { return }
|
}, ondblclick: function(event) { if ([mdb.KEY, mdb.HASH, mdb.ID].indexOf(key) > -1) { return }
|
||||||
var item = can.core.List(can.Conf("feature.insert"), function(item) { if (item.name == key) { return item } })[0]||{name: key, value: value}
|
var item = can.core.List(can.Conf([ctx.FEATURE, mdb.INSERT]), function(item) { if (item.name == key) { return item } })[0]||{name: key, value: value}
|
||||||
item.run = function(event, cmds, cb) { can.run(can.request(event, line), cmds, cb, true) }
|
item.run = function(event, cmds, cb) { can.run(can.request(event, line), cmds, cb, true) }
|
||||||
can.onmotion.modifys(can, event.target, function(event, value, old) { run([ctx.ACTION, mdb.MODIFY, key, value]) }, item)
|
can.onmotion.modifys(can, event.target, function(event, value, old) { run(mdb.MODIFY, [key, value]) }, item)
|
||||||
}}
|
}}
|
||||||
}); table && can.page.styleClass(can, table, chat.CONTENT)
|
}); table && can.page.styleClass(can, table, chat.CONTENT)
|
||||||
if (msg.append && msg.append[msg.append.length-1] == ctx.ACTION) { can.page.ClassList.add(can, table, ctx.ACTION) }
|
if (msg.append && msg.append[msg.append.length-1] == ctx.ACTION) { can.page.ClassList.add(can, table, ctx.ACTION) }
|
||||||
@ -309,7 +277,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
board: function(can, text, target) { text && text.Result && (text = text.Result()); if (!text) { return }
|
board: function(can, text, target) { text && text.Result && (text = text.Result()); if (!text) { return }
|
||||||
var code = can.page.Append(can, target||can._output, [{text: [can.page.Color(text), html.DIV, html.CODE]}]).code
|
var code = can.page.Append(can, target||can._output, [{text: [can.page.Color(text), html.DIV, html.CODE]}]).code
|
||||||
can.page.Select(can, code, html.INPUT_BUTTON, function(target) { target.onclick = function(event) {
|
can.page.Select(can, code, html.INPUT_BUTTON, function(target) { target.onclick = function(event) {
|
||||||
can.runAction(can.request(event, can.Option()), target.name, [], function(msg) { can.run() })
|
can.runAction(can.request(event, can.Option()), target.name)
|
||||||
} }); return (code.scrollBy && code.scrollBy(0, 10000)), code
|
} }); return (code.scrollBy && code.scrollBy(0, 10000)), code
|
||||||
},
|
},
|
||||||
tools: function(can, msg, cb, target) { can.onimport.tool(can, can.base.Obj(msg.Option(ice.MSG_TOOLKIT), []), cb, target) },
|
tools: function(can, msg, cb, target) { can.onimport.tool(can, can.base.Obj(msg.Option(ice.MSG_TOOLKIT), []), cb, target) },
|
||||||
|
@ -146,12 +146,12 @@ Volcanos("misc", {Message: function(event, can) { var msg = {}
|
|||||||
var res = can.request({}); res._source = (msg[ice.MSG_TARGET]||[]).reverse().slice(1)||[]
|
var res = can.request({}); res._source = (msg[ice.MSG_TARGET]||[]).reverse().slice(1)||[]
|
||||||
res.Option({_handle: ice.TRUE, _target: (msg[ice.MSG_SOURCE]||[]).reverse().join(ice.PT)})
|
res.Option({_handle: ice.TRUE, _target: (msg[ice.MSG_SOURCE]||[]).reverse().join(ice.PT)})
|
||||||
res.append = msg.append, can.core.List(msg.append, function(key) { res[key] = msg[key] }), res.result = (msg.result||[]).concat(can.core.List(arguments))
|
res.append = msg.append, can.core.List(msg.append, function(key) { res[key] = msg[key] }), res.result = (msg.result||[]).concat(can.core.List(arguments))
|
||||||
res.Option("log.disable", msg.Option("log.disable")) != ice.TRUE && can.misc.Log(html.WSS, ice.MSG_RESULT, msg.result||[], msg)
|
res.Option(ice.LOG_DISABLE, msg.Option(ice.LOG_DISABLE)) != ice.TRUE && can.misc.Log(html.WSS, ice.MSG_RESULT, msg.result||[], msg)
|
||||||
socket.send(JSON.stringify(res))
|
socket.send(JSON.stringify(res))
|
||||||
}, msg.detail = data.detail, msg.Copy(data)
|
}, msg.detail = data.detail, msg.Copy(data)
|
||||||
|
|
||||||
try {
|
try {
|
||||||
msg.Option("log.disable") != ice.TRUE && can.misc.Log(html.WSS, ice.MSG_DETAIL, msg.detail, msg)
|
msg.Option(ice.LOG_DISABLE) != ice.TRUE && can.misc.Log(html.WSS, ice.MSG_DETAIL, msg.detail, msg)
|
||||||
can.base.isFunc(cb) && cb(event, msg, msg.detail[0], msg.detail.slice(1))
|
can.base.isFunc(cb) && cb(event, msg, msg.detail[0], msg.detail.slice(1))
|
||||||
} catch (e) { can.misc.Warn(e), msg.Reply() }
|
} catch (e) { can.misc.Warn(e), msg.Reply() }
|
||||||
}
|
}
|
||||||
|
@ -13,8 +13,9 @@ Volcanos("page", {ClassList: {
|
|||||||
can.page.Select(can, target, html.IFRAME, function(item) { can.page.SelectAll(can, item.contentWindow.document.body, key, cb, interval, cbs) })
|
can.page.Select(can, target, html.IFRAME, function(item) { can.page.SelectAll(can, item.contentWindow.document.body, key, cb, interval, cbs) })
|
||||||
return can.core.List(target && target.querySelectorAll(key), cb, interval, cbs)
|
return can.core.List(target && target.querySelectorAll(key), cb, interval, cbs)
|
||||||
},
|
},
|
||||||
SelectInput: function(can, target, name, cb) { return can.page.Select(can, target, "input[name="+name+"]", cb) },
|
SelectInput: function(can, target, name, cb) { return can.page.Select(can, target, "input[name="+name+"]", cb)[0] },
|
||||||
SelectArgs: function(can, option, key, cb) {
|
SelectArgs: function(can, option, key, cb) {
|
||||||
|
if (can.base.isUndefined(option)) { return can.page.SelectArgs(can, can._option, "").concat(can.page.SelectArgs(can, can._action, "")) }
|
||||||
if (can.base.isUndefined(key)) { var value = {}; can.page.SelectArgs(can, option, "", function(item) { item.name && item.value && (value[item.name] = item.value) }); return [value] }
|
if (can.base.isUndefined(key)) { var value = {}; can.page.SelectArgs(can, option, "", 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, option, key, value) }), [key] }
|
if (can.base.isObject(key)) { return can.core.Item(key, function(key, value) { can.page.SelectArgs(can, option, key, value) }), [key] }
|
||||||
if (!can.base.isFunc(cb)) { var value = cb; cb = function(item) { if (item.type == html.BUTTON) { return } return item.name && (can.base.isUndefined(value)? item.value: (item.value = value))||"" } }
|
if (!can.base.isFunc(cb)) { var value = cb; cb = function(item) { if (item.type == html.BUTTON) { return } return item.name && (can.base.isUndefined(value)? item.value: (item.value = value))||"" } }
|
||||||
@ -33,7 +34,7 @@ Volcanos("page", {ClassList: {
|
|||||||
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",
|
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",
|
"left", "top", "right", "bottom", "margin-left", "margin-top", "margin", "padding", "font-size",
|
||||||
) && v && (can.base.isNumber(v) || !can.base.endWidth(v, "px"))) { v += "px" }
|
) && v && (can.base.isNumber(v) || !can.base.endWith(v, "px"))) { v += "px" }
|
||||||
target[key] && (target[key][k] = v)
|
target[key] && (target[key][k] = v)
|
||||||
})
|
})
|
||||||
}); return target
|
}); return target
|
||||||
|
@ -85,7 +85,7 @@ Volcanos(chat.ONIMPORT, {_process: function(can, msg) {
|
|||||||
return can.page.SelectArgs(can, can._option, "", function(input) {
|
return can.page.SelectArgs(can, can._option, "", function(input) {
|
||||||
if (input.name != name || value == input.value) { return }
|
if (input.name != name || value == input.value) { return }
|
||||||
return input.value = value, can.Update(event, can.Input([], true), cb), input
|
return input.value = value, can.Update(event, can.Input([], true), cb), input
|
||||||
})
|
})[0]
|
||||||
},
|
},
|
||||||
title: function(can, title) { can.isCmdMode() && can.user.title(title) },
|
title: function(can, title) { can.isCmdMode() && can.user.title(title) },
|
||||||
})
|
})
|
||||||
|
55
proto.js
55
proto.js
@ -1,10 +1,6 @@
|
|||||||
var kit = {
|
var kit = {
|
||||||
Dict: function() { var res = {}; for (var i = 0; i < arguments.length; i += 2) {
|
Dict: function() { var res = {}, args = arguments; for (var i = 0; i < args.length; i += 2) {
|
||||||
if (typeof arguments[i] == "object") {
|
if (typeof args[i] == "object") { for (var k in args[i]) { res[k] = args[i][k] } i-- } else if (args[i] != undefined) { res[args[i]] = args[i+1] }
|
||||||
for (var k in arguments[i]) { res[k] = arguments[i][k] } i--
|
|
||||||
} else if (arguments[i] != undefined) {
|
|
||||||
res[arguments[i]] = arguments[i+1]
|
|
||||||
}
|
|
||||||
} return res },
|
} return res },
|
||||||
proto: function(sub, sup) { return sub.__proto__ = sup, sub },
|
proto: function(sub, sup) { return sub.__proto__ = sup, sub },
|
||||||
}
|
}
|
||||||
@ -38,7 +34,6 @@ var ice = {
|
|||||||
MSG_PROCESS: "_process",
|
MSG_PROCESS: "_process",
|
||||||
MSG_DISPLAY: "_display",
|
MSG_DISPLAY: "_display",
|
||||||
MSG_TOOLKIT: "_toolkit",
|
MSG_TOOLKIT: "_toolkit",
|
||||||
|
|
||||||
PROCESS_AGAIN: "_again",
|
PROCESS_AGAIN: "_again",
|
||||||
|
|
||||||
MSG_TITLE: "sess.title",
|
MSG_TITLE: "sess.title",
|
||||||
@ -50,6 +45,8 @@ var ice = {
|
|||||||
MSG_USERNAME: "user.name",
|
MSG_USERNAME: "user.name",
|
||||||
MSG_USERNICK: "user.nick",
|
MSG_USERNICK: "user.nick",
|
||||||
|
|
||||||
|
LOG_DISABLE: "log.disable",
|
||||||
|
|
||||||
ErrWarn: "warn: ",
|
ErrWarn: "warn: ",
|
||||||
ErrNotLogin: "not login: ",
|
ErrNotLogin: "not login: ",
|
||||||
ErrNotRight: "not right: ",
|
ErrNotRight: "not right: ",
|
||||||
@ -75,7 +72,7 @@ var aaa = {
|
|||||||
}
|
}
|
||||||
var web = {
|
var web = {
|
||||||
SPACE: "space", DREAM: "dream", SHARE: "share",
|
SPACE: "space", DREAM: "dream", SHARE: "share",
|
||||||
WEBSITE: "website", REFRESH: "refresh", UPLOAD: "upload", DOWNLOAD: "download",
|
WEBSITE: "website", REFRESH: "refresh", CLEAR: "clear", UPLOAD: "upload", DOWNLOAD: "download",
|
||||||
SHARE_CACHE: "/share/cache/",
|
SHARE_CACHE: "/share/cache/",
|
||||||
|
|
||||||
GET: "GET", PUT: "PUT", POST: "POST", DELETE: "DELETE",
|
GET: "GET", PUT: "PUT", POST: "POST", DELETE: "DELETE",
|
||||||
@ -85,8 +82,7 @@ var web = {
|
|||||||
var mdb = {
|
var mdb = {
|
||||||
DICT: "dict", META: "meta", HASH: "hash", LIST: "list",
|
DICT: "dict", META: "meta", HASH: "hash", LIST: "list",
|
||||||
|
|
||||||
ID: "id", KEY: "key", TIME: "time", ZONE: "zone", TYPE: "type", NAME: "name", TEXT: "text",
|
ID: "id", KEY: "key", TIME: "time", ZONE: "zone", TYPE: "type", NAME: "name", TEXT: "text", LINK: "link", SCAN: "scan", HELP: "help",
|
||||||
LINK: "link", SCAN: "scan", SHOW: "show", HELP: "help",
|
|
||||||
SHORT: "short", FIELD: "field", TOTAL: "total", COUNT: "count", LIMIT: "limit",
|
SHORT: "short", FIELD: "field", TOTAL: "total", COUNT: "count", LIMIT: "limit",
|
||||||
INDEX: "index", VALUE: "value", EXTRA: "extra", ALIAS: "alias", EXPIRE: "expire",
|
INDEX: "index", VALUE: "value", EXTRA: "extra", ALIAS: "alias", EXPIRE: "expire",
|
||||||
|
|
||||||
@ -144,11 +140,9 @@ var chat = {
|
|||||||
|
|
||||||
libs: ["/lib/base.js", "/lib/core.js", "/lib/misc.js", "/lib/page.js", "/lib/user.js"],
|
libs: ["/lib/base.js", "/lib/core.js", "/lib/misc.js", "/lib/page.js", "/lib/user.js"],
|
||||||
panel_list: [
|
panel_list: [
|
||||||
{name: "Header", help: "标题栏", pos: "head", state: ["time", "usernick", "avatar"]},
|
{name: "Header", pos: "head", state: ["time", "usernick", "avatar"]},
|
||||||
{name: "River", help: "群聊组", pos: "left"},
|
{name: "River", pos: "left"}, {name: "Action", pos: "main"}, {name: "Search", pos: "auto"},
|
||||||
{name: "Action", help: "工作台", pos: "main"},
|
{name: "Footer", pos: "foot", state: ["ncmd", "ntip"]},
|
||||||
{name: "Search", help: "搜索框", pos: "auto"},
|
|
||||||
{name: "Footer", help: "状态条", pos: "foot", state: ["ncmd", "ntip"]},
|
|
||||||
],
|
],
|
||||||
plugin_list: [
|
plugin_list: [
|
||||||
"/plugin/state.js",
|
"/plugin/state.js",
|
||||||
@ -172,7 +166,7 @@ var chat = {
|
|||||||
ONENGINE: "onengine", ONDAEMON: "ondaemon", ONAPPEND: "onappend", ONLAYOUT: "onlayout", ONMOTION: "onmotion", ONKEYMAP: "onkeymap",
|
ONENGINE: "onengine", ONDAEMON: "ondaemon", ONAPPEND: "onappend", ONLAYOUT: "onlayout", ONMOTION: "onmotion", ONKEYMAP: "onkeymap",
|
||||||
ONIMPORT: "onimport", ONSYNTAX: "onsyntax", ONFIGURE: "onfigure", ONACTION: "onaction", ONDETAIL: "ondetail", ONEXPORT: "onexport", ONPLUGIN: "onplugin",
|
ONIMPORT: "onimport", ONSYNTAX: "onsyntax", ONFIGURE: "onfigure", ONACTION: "onaction", ONDETAIL: "ondetail", ONEXPORT: "onexport", ONPLUGIN: "onplugin",
|
||||||
|
|
||||||
ONMAIN: "onmain", ONLOGIN: "onlogin", ONSEARCH: "onsearch", ONREMOTE: "onremote",
|
ONMAIN: "onmain", ONLOGIN: "onlogin", ONREMOTE: "onremote", ONSEARCH: "onsearch",
|
||||||
ONSIZE: "onsize", ONTOAST: "ontoast", ONSHARE: "onshare", ONPRINT: "onprint",
|
ONSIZE: "onsize", ONTOAST: "ontoast", ONSHARE: "onshare", ONPRINT: "onprint",
|
||||||
ONRESIZE: "onresize", ONKEYUP: "onkeyup", ONKEYDOWN: "onkeydown", ONMOUSEENTER: "onmouseenter", ORIENTATIONCHANGE: "orientationchange",
|
ONRESIZE: "onresize", ONKEYUP: "onkeyup", ONKEYDOWN: "onkeydown", ONMOUSEENTER: "onmouseenter", ORIENTATIONCHANGE: "orientationchange",
|
||||||
ONSTORM_SELECT: "onstorm_select", ONACTION_NOTOOL: "onaction_notool", ONACTION_TOUCH: "onaction_touch", ONACTION_CMD: "onaction_cmd",
|
ONSTORM_SELECT: "onstorm_select", ONACTION_NOTOOL: "onaction_notool", ONACTION_TOUCH: "onaction_touch", ONACTION_CMD: "onaction_cmd",
|
||||||
@ -185,8 +179,8 @@ var team = {
|
|||||||
TASK: "task", PLAN: "plan",
|
TASK: "task", PLAN: "plan",
|
||||||
}
|
}
|
||||||
var mall = {
|
var mall = {
|
||||||
|
COUNT: "count", PRICE: "price",
|
||||||
ASSET: "asset", SALARY: "salary",
|
ASSET: "asset", SALARY: "salary",
|
||||||
PRICE: "price", COUNT: "count",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var svg = {
|
var svg = {
|
||||||
@ -199,7 +193,7 @@ var svg = {
|
|||||||
}
|
}
|
||||||
var html = {PLUGIN_MARGIN: 10, ACTION_HEIGHT: 31, ACTION_MARGIN: 200,
|
var html = {PLUGIN_MARGIN: 10, ACTION_HEIGHT: 31, ACTION_MARGIN: 200,
|
||||||
FIELDSET: "fieldset", LEGEND: "legend", OPTION: "option", ACTION: "action", OUTPUT: "output", STATUS: "status",
|
FIELDSET: "fieldset", LEGEND: "legend", OPTION: "option", ACTION: "action", OUTPUT: "output", STATUS: "status",
|
||||||
FORM_OPTION: "form.option", DIV_ACTION: "div.action", DIV_OUTPUT: "div.output", DIV_STATUS: "div.status", DIV_CONTENT: "div.content",
|
FORM_OPTION: "form.option", DIV_ACTION: "div.action", DIV_OUTPUT: "div.output", DIV_STATUS: "div.status",
|
||||||
FIELDSET_PANEL: "fieldset.panel", FIELDSET_PLUGIN: "fieldset.plugin", FIELDSET_STORY: "fieldset.story", FIELDSET_FLOAT: "fieldset.float",
|
FIELDSET_PANEL: "fieldset.panel", FIELDSET_PLUGIN: "fieldset.plugin", FIELDSET_STORY: "fieldset.story", FIELDSET_FLOAT: "fieldset.float",
|
||||||
FIELDSET_HEAD: "fieldset.head", FIELDSET_FOOT: "fieldset.foot", FIELDSET_LEFT: "fieldset.left", FIELDSET_MAIN: "fieldset.main",
|
FIELDSET_HEAD: "fieldset.head", FIELDSET_FOOT: "fieldset.foot", FIELDSET_LEFT: "fieldset.left", FIELDSET_MAIN: "fieldset.main",
|
||||||
OPTION_ARGS: "select.args,input.args,textarea.args", INPUT_ARGS: "input.args,textarea.args", INPUT_BUTTON: "input[type=button]", INPUT_FILE: "input[type=file]",
|
OPTION_ARGS: "select.args,input.args,textarea.args", INPUT_ARGS: "input.args,textarea.args", INPUT_BUTTON: "input[type=button]", INPUT_FILE: "input[type=file]",
|
||||||
@ -218,18 +212,18 @@ var html = {PLUGIN_MARGIN: 10, ACTION_HEIGHT: 31, ACTION_MARGIN: 200,
|
|||||||
|
|
||||||
PAGE: "page", TABS: "tabs", MENU: "menu", NODE: "node",
|
PAGE: "page", TABS: "tabs", MENU: "menu", NODE: "node",
|
||||||
ZONE: "zone", LIST: "list", ITEM: "item", NAME: "name", ICON: "icon",
|
ZONE: "zone", LIST: "list", ITEM: "item", NAME: "name", ICON: "icon",
|
||||||
SHOW: "show", HIDE: "hide", AUTO: "auto", HEAD: "head", LEFT: "left", MAIN: "main", FOOT: "foot",
|
HEAD: "head", LEFT: "left", MAIN: "main", FOOT: "foot", AUTO: "auto", SHOW: "show", HIDE: "hide",
|
||||||
PLUGIN: "plugin", LAYOUT: "layout", CONTENT: "content",
|
PLUGIN: "plugin", LAYOUT: "layout", CONTENT: "content",
|
||||||
|
|
||||||
DIV_PAGE: "div.page", DIV_TABS: "div.tabs",
|
DIV_PAGE: "div.page", DIV_TABS: "div.tabs",
|
||||||
DIV_ZONE: "div.zone", DIV_LIST: "div.list", DIV_ITEM: "div.item", DIV_NAME: "div.name",
|
DIV_ZONE: "div.zone", DIV_LIST: "div.list", DIV_ITEM: "div.item", DIV_NAME: "div.name",
|
||||||
DIV_LAYOUT_HEAD: "div.layout.head", DIV_LAYOUT_FOOT: "div.layout.foot", DIV_LAYOUT_LEFT: "div.layout.left",
|
DIV_LAYOUT_HEAD: "div.layout.head", DIV_LAYOUT_FOOT: "div.layout.foot", DIV_LAYOUT_LEFT: "div.layout.left",
|
||||||
DIV_CODE: "div.code", DIV_FLOAT: "div.float", TABLE_CONTENT: "table.content",
|
DIV_CODE: "div.code", DIV_FLOAT: "div.float", DIV_CONTENT: "div.content", TABLE_CONTENT: "table.content",
|
||||||
}
|
}
|
||||||
var lang = {
|
var lang = {
|
||||||
UNDEFINED: "undefined", STRING: "string", NUMBER: "number", BOOLEAN: "boolean", OBJECT: "object", FUNCTION: "function",
|
UNDEFINED: "undefined", STRING: "string", NUMBER: "number", BOOLEAN: "boolean", FUNCTION: "function", OBJECT: "object",
|
||||||
META: "Meta", ALT: "Alt", CONTROL: "Control", SHIFT: "Shift", TAB: "Tab", ENTER: "Enter", ESCAPE: "Escape", PS: "/",
|
META: "Meta", ALT: "Alt", CONTROL: "Control", SHIFT: "Shift", TAB: "Tab", ENTER: "Enter", ESCAPE: "Escape",
|
||||||
ESC: "Esc", CTRL: "Ctrl", CMD: "Cmd", SPACE: "Space", BACKSPACE: "Backspace",
|
CMD: "Cmd", CTRL: "Ctrl", SPACE: "Space", BACKSPACE: "Backspace", ESC: "Esc", PS: "/",
|
||||||
}
|
}
|
||||||
|
|
||||||
function shy(help, meta, list, cb) { var args = arguments, i = 0
|
function shy(help, meta, list, cb) { var args = arguments, i = 0
|
||||||
@ -239,7 +233,7 @@ function shy(help, meta, list, cb) { var args = arguments, i = 0
|
|||||||
var Volcanos = shy("火山架", {iceberg: "/chat/", volcano: "/frame.js", cache: {}, pack: {}}, function(name, can, libs, cb) {
|
var Volcanos = shy("火山架", {iceberg: "/chat/", volcano: "/frame.js", cache: {}, pack: {}}, function(name, can, libs, cb) {
|
||||||
var meta = arguments.callee.meta, list = arguments.callee.list; if (typeof name == lang.OBJECT) {
|
var meta = arguments.callee.meta, list = arguments.callee.list; if (typeof name == lang.OBJECT) {
|
||||||
if (name.length > 0) { return Volcanos({panels: [{name: "Header", pos: html.HIDE, state: [aaa.USERNICK]}, {name: "Action", pos: html.MAIN, tool: name}]}) }
|
if (name.length > 0) { return Volcanos({panels: [{name: "Header", pos: html.HIDE, state: [aaa.USERNICK]}, {name: "Action", pos: html.MAIN, tool: name}]}) }
|
||||||
var Config = name; name = Config.name||ice.CAN, kit.proto(meta, Config), _can_name = ""
|
var Config = name; name = Config.name||ice.CAN, kit.proto(meta, Config), _can_name = "", _can_path = ""
|
||||||
meta.iceberg = Config.iceberg||meta.iceberg, meta.libs = Config.libs||chat.libs, panels = Config.panels||chat.panel_list
|
meta.iceberg = Config.iceberg||meta.iceberg, meta.libs = Config.libs||chat.libs, panels = Config.panels||chat.panel_list
|
||||||
libs = [], panels.forEach(function(p) { p && (libs = libs.concat(p.list = p.list||["/panel/"+p.name+nfs._CSS, "/panel/"+p.name+nfs._JS])) }), libs = libs.concat(Config.plugin||chat.plugin_list)
|
libs = [], panels.forEach(function(p) { p && (libs = libs.concat(p.list = p.list||["/panel/"+p.name+nfs._CSS, "/panel/"+p.name+nfs._JS])) }), libs = libs.concat(Config.plugin||chat.plugin_list)
|
||||||
cb = can||function(can) { can.onengine._init(can, can.Conf(Config), panels, Config._init, can._target) }
|
cb = can||function(can) { can.onengine._init(can, can.Conf(Config), panels, Config._init, can._target) }
|
||||||
@ -276,13 +270,10 @@ var Volcanos = shy("火山架", {iceberg: "/chat/", volcano: "/frame.js", cache:
|
|||||||
}); return msg
|
}); return msg
|
||||||
},
|
},
|
||||||
|
|
||||||
runActionCommand: function(event, index, args, cb) { can.runAction(event, ice.RUN, can.misc.concat(can, [index], args), cb) },
|
runActionCommand: function(event, index, args, cb) { can.runAction(event, ice.RUN, can.misc.concat(can, [index], args), cb, true) },
|
||||||
runAction: function(event, action, args, cb) { can.request(event, {_handle: ice.TRUE}, can.Option())
|
runAction: function(event, action, args, cb, silent) {
|
||||||
can.run(event, can.misc.concat(can, [ctx.ACTION].concat(action), args), cb||function(msg) {
|
can.run(can.request(event, {_handle: ice.TRUE}, can.Option()), can.misc.concat(can, [ctx.ACTION].concat(action), args), cb, silent)
|
||||||
if (can.core.CallFunc([can, chat.ONIMPORT, ice.MSG_PROCESS], {can: can, msg: msg})) { return }
|
// can.run(can.request(event, can.Option()), can.misc.concat(can, [ctx.ACTION].concat(action), args), cb, silent)
|
||||||
if (can.core.CallFunc([can.sup, chat.ONIMPORT, ice.MSG_PROCESS], {can: can.sup, msg: msg})) { return }
|
|
||||||
can.user.toastSuccess(can, action)
|
|
||||||
}, true)
|
|
||||||
},
|
},
|
||||||
|
|
||||||
search: function(event, cmds, cb) {
|
search: function(event, cmds, cb) {
|
||||||
@ -292,7 +283,7 @@ var Volcanos = shy("火山架", {iceberg: "/chat/", volcano: "/frame.js", cache:
|
|||||||
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 },
|
||||||
set: function(name, key, value) { var msg = can.request(); msg.Option(key, value); return can.search(msg, [[name, chat.ONIMPORT, key]]) },
|
set: function(name, key, value) { var msg = can.request(); msg.Option(key, value); return can.search(msg, [[name, chat.ONIMPORT, key]]) },
|
||||||
setHeaderMenu: function(list, cb) { can._menu && can.page.Remove(can, can._menu)
|
setHeaderMenu: function(list, cb) { can._menu && can.page.Remove(can, can._menu)
|
||||||
return can._menu = can.search(can.request({}, {trans: can.onaction._trans}), [["Header", chat.ONIMPORT, html.MENU], can._name].concat(list), cb)
|
return can._menu = can.search(can.request({}, {trans: can.onaction._trans}), [["Header", chat.ONIMPORT, html .MENU], can._name].concat(list), cb)
|
||||||
},
|
},
|
||||||
setHeader: function(key, value) { return can.set("Header", key, value) },
|
setHeader: function(key, value) { return can.set("Header", key, value) },
|
||||||
getHeader: function(key, cb) { return can.get("Header", key, cb) },
|
getHeader: function(key, cb) { return can.get("Header", key, cb) },
|
||||||
|
Loading…
x
Reference in New Issue
Block a user