From fb41d101a096b734ae60bd35b873ae66808b45c1 Mon Sep 17 00:00:00 2001 From: harveyshao Date: Sun, 9 Jan 2022 03:27:35 +0800 Subject: [PATCH] opt some --- frame.js | 77 +++++++++++++++----------------------- lib/misc.js | 2 +- lib/user.js | 10 ++--- panel/action.js | 2 +- panel/header.js | 10 ++--- panel/river.js | 28 +++++++------- panel/search.js | 6 +-- plugin/input.js | 8 ++-- plugin/input/key.js | 2 +- plugin/input/province.js | 2 +- plugin/local/chat/div.js | 2 +- plugin/local/chat/wx.js | 4 +- plugin/local/code/inner.js | 4 +- plugin/local/team/plan.js | 2 +- plugin/local/wiki/draw.js | 24 ++++++------ plugin/state.js | 8 ++-- plugin/story/spide.js | 4 +- proto.js | 17 +++++---- 18 files changed, 100 insertions(+), 112 deletions(-) diff --git a/frame.js b/frame.js index c2037c85..6563ddb0 100644 --- a/frame.js +++ b/frame.js @@ -2,9 +2,8 @@ _can_name = "/frame.js" Volcanos("onengine", {help: "搜索引擎", list: [], _init: function(can, meta, list, cb, target) { can.run = function(event, cmds, cb) { var msg = can.request(event); cmds = cmds||[] return (can.onengine[cmds[0]]||can.onengine._remote)(event, can, msg, can, cmds, cb) - }, can.river = can.Conf(chat.RIVER)||{} - - if (can.user.isExtension) { Volcanos.meta.args = JSON.parse(localStorage.getItem("args"))||{} } + } + if (can.user.isExtension) { Volcanos.meta.args = JSON.parse(localStorage.getItem(ctx.ARGS))||{} } can.core.Next(list, function(item, next) { item.type = chat.PANEL can.onappend._init(can, item, item.list, function(panel) { @@ -15,42 +14,19 @@ Volcanos("onengine", {help: "搜索引擎", list: [], _init: function(can, meta, can.core.ItemCB(panel.onaction, function(key, cb) { can.onengine.listen(can, key, function(msg) { can.core.CallFunc(cb, {can: panel, msg: msg}) }) }), panel.onaction._init(panel, item, item.list, next, panel._target) - - can.onmotion.float.auto(can, panel._output) - // panel.onkeypop._build(panel) }, target) }, function() { can.misc.Log(can.user.title(), ice.RUN, can) - can.require(["/frame.js"], null, function(can, name, sub) { can[name] = sub }) - can.ondaemon._init(can), can.onmotion._init(can, target), can.onkeypop._init(can) - can.onlayout.topic(can), can.onengine.signal(can, chat.ONMAIN, can.request()) + can.require([can.volcano], null, function(can, name, sub) { can[name] = sub }) + can.onlayout.topic(can), can.onmotion._init(can, target), can.onkeypop._init(can) + can.ondaemon._init(can), can.onengine.signal(can, chat.ONMAIN, can.request()) can.base.isFunc(cb) && cb() - - can.onengine.listen(can, "onsearch", function(msg, word) { - if (word[0] == "*" || word[0] == ctx.COMMAND) { var meta = can.onengine.plugin.meta - var list = word[1] == ""? meta: meta[word[1]]? kit.Dict(word[1], meta[word[1]]): {} - can.core.Item(list, function(name, command) { - name = can.base.trimPrefix(name, "can.") - can.core.List(msg.Option(ice.MSG_FIELDS).split(ice.FS), function(item) { - msg.Push(item, kit.Dict( - "ctx", "onengine", - "cmd", "command", - "type", "can", - "name", name, - "text", command.help, - "context", "can", - "command", name, - )[item]||"") - }) - }) - } - }) }) }, _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) - }); if (!sub || !mod || !fun) { can.misc.Warn("not found", cmds) - return can.base.isFunc(cb) && cb(msg.Echo("warn: ", "not found: ", 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, { @@ -64,7 +40,7 @@ Volcanos("onengine", {help: "搜索引擎", list: [], _init: function(can, meta, if (panel.onengine._engine(event, can, msg, panel, cmds, cb)) { return } can.onengine.signal(can, "onremote", can.request({}, {_follow: panel._follow, _msg: msg, _cmds: cmds})) - var key = can.core.Keys(panel._name, cmds.join(",")) + var key = can.core.Keys(panel._name, cmds.join(ice.FS)) if (can.user.isLocalFile) { var msg = can.request(event); msg.Clear(ice.MSG_APPEND) var res = Volcanos.meta.pack[key]; res? msg.Copy(res): can.user.toast(can, "缺失数据") return can.base.isFunc(cb) && cb(msg) @@ -73,7 +49,7 @@ Volcanos("onengine", {help: "搜索引擎", list: [], _init: function(can, meta, var names = msg.Option("_names")||panel._names||((can.Conf("iceberg")||"/chat/")+panel._name) can.misc.Run(event, can, {names: names, daemon: can.core.Keys(can.ondaemon._list[0], msg._daemon)}, cmds, function(msg) { Volcanos.meta.pack[key] = msg, delete(msg._handle), delete(msg._toast) - if (msg.result && msg.result[0] == "warn: ") { can.user.toast(can, msg.Result(), "", 10000); return } + if (msg.result && msg.result[0] == ice.ErrWarn) { can.user.toast(can, msg.Result(), "", 10000); return } can.base.isFunc(cb) && cb(msg) }) }, @@ -105,13 +81,26 @@ Volcanos("onengine", {help: "搜索引擎", list: [], _init: function(can, meta, }), }) Volcanos("ondaemon", {help: "推荐引擎", list: [], _init: function(can, name) { if (can.user.isLocalFile) { return } - can.misc.WSS(can, {type: "chrome", name: can.misc.Search(can, "daemon")||name||""}, function(event, msg, cmd, arg) { if (!msg) { return } + can.misc.WSS(can, {type: html.CHROME, name: can.misc.Search(can, "daemon")||name||""}, function(event, msg, cmd, arg) { if (!msg) { return } can.base.isFunc(can.ondaemon[cmd])? can.core.CallFunc(can.ondaemon[cmd], { "can": can, "msg": msg, "cmd": cmd, "arg": arg, "cb": function() { msg.Reply() }, }): can.onengine._search({}, can, msg, can, ["_search", cmd].concat(arg), function() { msg.Reply() }) }) + can.onengine.listen(can, "onsearch", function(msg, word) { var meta = can.onengine.plugin.meta + if (word[0] != "*" && word[0] != ctx.COMMAND) { return } + var list = word[1] == ""? meta: meta[word[1]]? kit.Dict(word[1], meta[word[1]]): {} + can.core.Item(list, function(name, command) { name = can.base.trimPrefix(name, "can.") + can.core.List(msg.Option(ice.MSG_FIELDS).split(ice.FS), function(item) { + msg.Push(item, kit.Dict( + "ctx", "onengine", "cmd", "command", + "type", "can", "name", name, "text", command.help, + "context", "can", "command", name, + )[item]||"") + }) + }) + }) }, _list: [""], pwd: function(can, msg, arg) { can.ondaemon._list[0] = arg[0] @@ -142,7 +131,6 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, Status: function(key, value) { if (sub.base.isObject(key)) { return sub.core.Item(key, sub.Status), key } - sub.page.Select(sub, status, "div."+key+">span", function(item) { return value == undefined? (value = item.innerHTML): (item.innerHTML = value) }); return value @@ -155,11 +143,9 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, silent || cmds[0] == ctx.ACTION || sub.base.Eq(sub._history[sub._history.length-1], cmds) || sub._history.push(cmds) return cmds }, - Clone: function() { - meta.args = sub.page.SelectArgs(sub, option, "") - can.onappend._init(can, meta, list, function(sub) { + Clone: function() { meta.args = sub.page.SelectArgs(sub, option, "") + can.onappend._init(can, meta, list, function(sub) { can.base.isFunc(cb) && cb(sub, true) can.core.Timer(10, function() { for (var k in sub._inputs) { can.onmotion.focus(can, sub._inputs[k]._target); break } }) - can.base.isFunc(cb) && cb(sub, true) }, target) }, }, list, function(sub) { sub.Conf(meta), meta.feature = sub.base.Obj(meta.feature, {}) @@ -168,9 +154,8 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, sub.page.Modify(sub, sub._legend, {onmouseenter: function(event) { sub.user.carte(event, sub, sub.onaction, sub.onaction.list.concat([["所有 ->"].concat(can.core.Item(meta.feature._trans))], ["close"])) - }}) + }}), meta.inputs && sub.onappend._option(sub, meta, sub._option) - meta.inputs && sub.onappend._option(sub, meta, sub._option) can.base.isFunc(cb) && cb(sub) }); return sub }, @@ -303,8 +288,8 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, }, table: function(can, msg, cb, target, sort) { 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] == kit.MDB_KEY && msg.append[1] == kit.MDB_VALUE) { - if (key == kit.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 }) } @@ -326,7 +311,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, return } can.sup.onaction.change(event, can.sup, key, value) - }, ondblclick: function(event) { if ([kit.MDB_KEY].indexOf(key) > -1) { return } + }, ondblclick: function(event) { if ([mdb.KEY].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} @@ -352,7 +337,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, }, figure: function(can, meta, target, cb) { if ([html.BUTTON, html.SELECT].indexOf(meta.type) > -1) { return } - var input = meta.action||kit.MDB_KEY; input != "auto" && can.require(["/plugin/input/"+input+".js"], function(can) { + var input = meta.action||mdb.KEY; input != "auto" && can.require(["/plugin/input/"+input+".js"], function(can) { can.core.ItemCB(can.onfigure[input], function(key, on) { target[key] = function(event) { can.onappend._init(can, {type: html.INPUT, name: input, pos: chat.FLOAT}, [], function(sub) { sub.Conf(meta) @@ -555,7 +540,7 @@ Volcanos("onmotion", {help: "动态特效", list: [], _init: function(can, targe story: { _hash: { spark: function(can, meta, target) { - if (meta[kit.MDB_NAME] == "inner") { + if (meta[mdb.NAME] == "inner") { target.title = "点击复制", target.onclick = function(event) { can.user.copy(event, can, target.innerText) } diff --git a/lib/misc.js b/lib/misc.js index 9b6a0240..0384efb1 100644 --- a/lib/misc.js +++ b/lib/misc.js @@ -63,7 +63,7 @@ Volcanos("misc", {help: "通信协议", Message: function(event, can) { var msg Push: function(key, value, detail) { if (can.base.isObject(key)) { value = value || can.core.Item(key), can.core.List(value, function(item) { - detail? msg.Push(kit.MDB_KEY, item).Push(kit.MDB_VALUE, key[item]||""): + detail? msg.Push(mdb.KEY, item).Push(mdb.VALUE, key[item]||""): msg.Push(item, key[item]||"") }) return msg diff --git a/lib/user.js b/lib/user.js index 9522d487..bb2056cb 100644 --- a/lib/user.js +++ b/lib/user.js @@ -12,8 +12,8 @@ Volcanos("user", {help: "用户操作", agent: { } ); }, openLocation: function(msg) { - window.open("https://map.baidu.com/search/"+encodeURIComponent(msg.Option(kit.MDB_TEXT)) - +"/@12958750.085,4825785.55,16z?querytype=s&da_src=shareurl&wd="+encodeURIComponent(msg.Option(kit.MDB_TEXT))) + window.open("https://map.baidu.com/search/"+encodeURIComponent(msg.Option(mdb.TEXT)) + +"/@12958750.085,4825785.55,16z?querytype=s&da_src=shareurl&wd="+encodeURIComponent(msg.Option(mdb.TEXT))) }, chooseImage: function(cb) { typeof cb == lang.FUNCTION && cb([]) @@ -114,9 +114,9 @@ Volcanos("user", {help: "用户操作", agent: { share: function(can, msg, cmd) { can.run(msg._event, cmd||[ctx.ACTION, chat.SHARE], function(msg) { can.user.toast(can, {height: 300, width: 500, - title: msg.Append(kit.MDB_NAME), duration: -1, - content: msg.Append(kit.MDB_TEXT), action: [cli.CLOSE], - }), can.user.copy(msg._event, can, msg.Append(kit.MDB_NAME)) + title: msg.Append(mdb.NAME), duration: -1, + content: msg.Append(mdb.TEXT), action: [cli.CLOSE], + }), can.user.copy(msg._event, can, msg.Append(mdb.NAME)) }) }, login: function(can, cb, method) { diff --git a/panel/action.js b/panel/action.js index 7b5d34d1..bff91438 100644 --- a/panel/action.js +++ b/panel/action.js @@ -53,7 +53,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg) can.user.title(can.misc.Search(can, chat.TITLE)||msg.Option(chat.TITLE)) can.onaction.layout(can, "auto") - if (msg[kit.MDB_INDEX].length == 1) { can.require(["/panel/cmd.css"]) + if (msg[mdb.INDEX].length == 1) { can.require(["/panel/cmd.css"]) can.user.mod.isCmd = true, can.page.ClassList.add(can, can._target, "cmd") can.page.Select(can, document.body, "fieldset.panel", function(item) { item != can._target && can.onmotion.hidden(can, item) diff --git a/panel/header.js b/panel/header.js index 59bd64c8..8bc1af54 100644 --- a/panel/header.js +++ b/panel/header.js @@ -42,13 +42,13 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, }, onmouseenter: function(event) { var list = msg.Table() can.user.carte(event, can, {}, can.core.List(list, function(item) { return item.name }), function(event, item, meta, index) { - can.user.open(list[index].path) + event.shiftKey? can.user.open(list[index].path): can.user.jumps(list[index].path) }) }}]) }) }, _state: function(can, msg, target) { - can.core.List(can.base.Obj(msg.Option(chat.STATE)||can.Conf(chat.STATE), [kit.MDB_TIME, aaa.USERNICK]), function(item) { + can.core.List(can.base.Obj(msg.Option(chat.STATE)||can.Conf(chat.STATE), [mdb.TIME, aaa.USERNICK]), function(item) { if (item == aaa.AVATAR ) { if (can.user.isLocalFile) { return } can.page.Append(can, target, [{view: can.base.join([chat.STATE, item]), list: [{img: ice.SP}], onmouseenter: function(event) { can.onaction.carte(event, can, [can.page.Format(html.IMG, "/share/local/avatar", 160)]) @@ -57,7 +57,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, can.page.Append(can, target, [{view: [can.base.join([chat.STATE, item]), html.DIV, (can.Conf(item)||"").slice(0, 10)], onmouseenter: function(event) { can.core.CallFunc([can.onaction, item], [event, can, item]) - }, _init: function(target) { item == kit.MDB_TIME && can.onimport._time(can, target) }}]) + }, _init: function(target) { item == mdb.TIME && can.onimport._time(can, target) }}]) }) }, _search: function(can, msg, target) { @@ -187,7 +187,7 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, meta, can.set("River", html.HEIGHT, -1), can.set("Action", html.HEIGHT, -1) }, webpack: function(event, can) { - can.user.input(event, can, [{name: kit.MDB_NAME, value: can.user.title()}], function(ev, button, meta, list) { + can.user.input(event, can, [{name: mdb.NAME, value: can.user.title()}], function(ev, button, meta, list) { can.core.Item(Volcanos.meta.pack, function(key, msg) { can.core.List(["_event", "_can", "_xhr", ice.MSG_SESSID, ""], function(key) { delete(msg[key]) }) }) @@ -210,7 +210,7 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, meta, usernick: function(event, can) { can.onaction.carte(event, can, ["shareuser", "setnick", [aaa.LANGUAGE, aaa.CHINESE, aaa.ENGLISH], cli.CLEAR, aaa.LOGOUT]) }, - shareuser: function(event, can) { can.user.share(can, can.request(event), [ctx.ACTION, chat.SHARE, kit.MDB_TYPE, aaa.LOGIN]) }, + shareuser: function(event, can) { can.user.share(can, can.request(event), [ctx.ACTION, chat.SHARE, mdb.TYPE, aaa.LOGIN]) }, setnick: function(event, can) { var ui = can.user.input(event, can, [{name: aaa.USERNICK, value: can.Conf(aaa.USERNICK)}], function(ev, button, data, list, args) { can.run(event, [aaa.USERNICK, list[0]], function(msg) { diff --git a/panel/river.js b/panel/river.js index 1d5753ab..2fbc9ef8 100644 --- a/panel/river.js +++ b/panel/river.js @@ -130,8 +130,8 @@ Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, msg, create: function(event, can) { can.user.trans(can, {"public": "公开群", "protected": "内部群", "private": "私有群"}) can.user.input(event, can, [ - {name: kit.MDB_TYPE, values: [chat.PUBLIC, chat.PROTECTED, chat.PRIVATE], _trans: "类型"}, - {name: kit.MDB_NAME, value: "hi", _trans: "群名"}, {name: kit.MDB_TEXT, value: "hello", _trans: "简介"}, + {name: mdb.TYPE, values: [chat.PUBLIC, chat.PROTECTED, chat.PRIVATE], _trans: "类型"}, + {name: mdb.NAME, value: "hi", _trans: "群名"}, {name: mdb.TEXT, value: "hello", _trans: "简介"}, ], function(event, button, meta, list, args) { can.run(event, [ctx.ACTION, mdb.CREATE].concat(args), function(msg) { can.misc.Search(can, {river: msg.Result()}) @@ -157,20 +157,20 @@ Volcanos("ondetail", {help: "菜单交互", "创建群组": function(event, can) { can.onaction.create(event, can) }, "共享群组": function(event, can, button, river) { can.user.input(event, can, [{name: chat.TILTE, value: river, _trans: "标题"}], function(event, button, meta, list) { - can.user.share(can, can.request(event), [river, ctx.ACTION, chat.SHARE, kit.MDB_TYPE, chat.RIVER, kit.MDB_NAME, list[0]]) + can.user.share(can, can.request(event), [river, ctx.ACTION, chat.SHARE, mdb.TYPE, chat.RIVER, mdb.NAME, list[0]]) }) }, "添加应用": function(event, can, button, river) { can.ondetail.create(event, can, button, river) }, "共享应用": function(event, can, button, river, storm) { can.user.input(event, can, [{name: chat.TILTE, value: storm, _trans: "标题"}], function(event, button, meta, list) { - can.user.share(can, can.request(event), [river, ctx.ACTION, chat.SHARE, kit.MDB_TYPE, chat.STORM, kit.MDB_NAME, list[0], + can.user.share(can, can.request(event), [river, ctx.ACTION, chat.SHARE, mdb.TYPE, chat.STORM, mdb.NAME, list[0], chat.STORM, storm, chat.RIVER, river, ]) }) }, "添加工具": function(event, can, button, river, storm) { can.user.select(event, can, ctx.COMMAND, "context,command", function(item, next) { - can.run({}, [river, chat.STORM, ctx.ACTION, mdb.INSERT, kit.MDB_HASH, storm].concat([ice.POD, "", ice.CTX, item[0], ice.CMD, item[1]]), function(msg) { + can.run({}, [river, chat.STORM, ctx.ACTION, mdb.INSERT, mdb.HASH, storm].concat([ice.POD, "", ice.CTX, item[0], ice.CMD, item[1]]), function(msg) { next() }) }, function() { @@ -179,15 +179,15 @@ Volcanos("ondetail", {help: "菜单交互", }, "共享工具": function(event, can, button, river, storm) { can.user.select(event, can, mdb.PLUGIN, "name,context,command,argument", function(item, next) { - can.user.share(can, can.request(event), [river, ctx.ACTION, chat.SHARE, kit.MDB_TYPE, chat.FIELD, - kit.MDB_NAME, item[2], kit.MDB_TEXT, item[3], chat.TITLE, item[0], chat.RIVER, river, chat.STORM, storm, + can.user.share(can, can.request(event), [river, ctx.ACTION, chat.SHARE, mdb.TYPE, chat.FIELD, + mdb.NAME, item[2], mdb.TEXT, item[3], chat.TITLE, item[0], chat.RIVER, river, chat.STORM, storm, ]) }) }, "添加设备": function(event, can, button, river) { can.user.select(event, can, web.SPACE, "type,name,text", function(item, next) { - can.run({}, [river, chat.NODE, ctx.ACTION, mdb.INSERT, kit.MDB_TYPE, item[0], kit.MDB_NAME, item[1]], function(msg) { + can.run({}, [river, chat.NODE, ctx.ACTION, mdb.INSERT, mdb.TYPE, item[0], mdb.NAME, item[1]], function(msg) { next() }) }) @@ -203,7 +203,7 @@ Volcanos("ondetail", {help: "菜单交互", "创建空间": function(event, can, button, river, storm) { can.request(event, {action: button}) can.user.input(event, can, [{name: "name", value: "hi"}, {name: "repos"}, {name: "template"}], function(event, button, data, list, args) { can.run(event, [ctx.ACTION, cli.START].concat(args, chat.RIVER, river), function(msg) { - var link = can.misc.MergeURL(can, {_path: "/chat/pod/"+can.core.Keys(can.misc.Search(can, ice.POD), msg.Option(kit.MDB_NAME))}) + var link = can.misc.MergeURL(can, {_path: "/chat/pod/"+can.core.Keys(can.misc.Search(can, ice.POD), msg.Option(mdb.NAME))}) can.user.toast(can, link), can.user.open(link) }) }) @@ -221,8 +221,8 @@ Volcanos("ondetail", {help: "菜单交互", }) }, "重命名群组": function(event, can, button, river) { - can.user.input(event, can, [kit.MDB_NAME], function(event, button, meta, list) { - can.run(can.request(event, {hash: river})._event, [ctx.ACTION, mdb.MODIFY, kit.MDB_NAME, meta.name], function(msg) { + can.user.input(event, can, [mdb.NAME], function(event, button, meta, list) { + can.run(can.request(event, {hash: river})._event, [ctx.ACTION, mdb.MODIFY, mdb.NAME, meta.name], function(msg) { can.misc.Search(can, {river: river}) }) }) @@ -241,7 +241,7 @@ Volcanos("ondetail", {help: "菜单交互", }) }, "重命名应用": function(event, can, button, river, storm) { - can.user.input(event, can, [kit.MDB_NAME], function(ev, button, meta, list, args) { + can.user.input(event, can, [mdb.NAME], function(ev, button, meta, list, args) { can.run(can.request(event, {hash: storm})._event, [river, chat.STORM, ctx.ACTION, mdb.MODIFY].concat(args), function(msg) { can.misc.Search(can, {river: river, storm: storm}) }) @@ -257,8 +257,8 @@ Volcanos("ondetail", {help: "菜单交互", create: function(event, can, button, river) { can.user.trans(can, {"public": "公开应用", "protected": "群组应用", "private": "个人应用"}) can.user.input(event, can, [ - {name: kit.MDB_TYPE, values: [chat.PUBLIC, chat.PROTECTED, chat.PRIVATE], _trans: "类型"}, - {name: kit.MDB_NAME, value: "hi", _trans: "名称"}, {name: kit.MDB_TEXT, value: "hello", _trans: "简介"}, + {name: mdb.TYPE, values: [chat.PUBLIC, chat.PROTECTED, chat.PRIVATE], _trans: "类型"}, + {name: mdb.NAME, value: "hi", _trans: "名称"}, {name: mdb.TEXT, value: "hello", _trans: "简介"}, ], function(event, button, meta, list, args) { can.run({}, [river, chat.STORM, ctx.ACTION, mdb.CREATE].concat(args), function(msg) { can.misc.Search(can, {river: river, storm: msg.Result()}) diff --git a/panel/search.js b/panel/search.js index 813cc8c9..27a9c77a 100644 --- a/panel/search.js +++ b/panel/search.js @@ -1,7 +1,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) { can.list = msg.Table(), can.onmotion.clear(can, can.ui.content) - var table = can.onappend.table(can, msg, function(value, key, index, line, array) { can.Status(kit.MDB_TOTAL, index+1) - return {text: [key == kit.MDB_TEXT && can.base.isFunc(line.text) && line.text.help || value, html.TD], onclick: function(event) { + var table = can.onappend.table(can, msg, function(value, key, index, line, array) { can.Status(mdb.TOTAL, index+1) + return {text: [key == mdb.TEXT && can.base.isFunc(line.text) && line.text.help || value, html.TD], onclick: function(event) { can.onaction[can.type == "*"||event.ctrlKey? chat.PLUGIN: mdb.SELECT](event, can, index) }} }, can.ui.content, can.core.List((msg.Option("sort")||"ctx,cmd,type,name,text").split(ice.FS), function(item) { @@ -88,7 +88,7 @@ Volcanos("onaction", {help: "交互操作", list: [cli.CLEAR, cli.CLOSE, cli.DON if (can.base.isFunc(line.text)) { return can.onmotion.hide(can), line.text(event) } var cmd = line.cmd == ctx.COMMAND? can.core.Keys(line.type, line.name.split(ice.SP)[0]): can.core.Keys(line.ctx, line.cmd) - can.onappend.plugin(can, {type: chat.PLUGIN, index: cmd||msg.Option(kit.MDB_INDEX)}, function(sub, meta) { + can.onappend.plugin(can, {type: chat.PLUGIN, index: cmd||msg.Option(mdb.INDEX)}, function(sub, meta) { can.getActionSize(function(msg, height, width) { height -= can.ui.content.offsetHeight+204 can.page.Modify(can, sub._output, {style: kit.Dict(html.MAX_HEIGHT, height-26, html.MAX_WIDTH, width-40)}) sub.Conf(html.HEIGHT, height+28), sub.Conf(html.WIDTH, width-60) diff --git a/plugin/input.js b/plugin/input.js index 76ab7281..1604b35e 100644 --- a/plugin/input.js +++ b/plugin/input.js @@ -18,16 +18,16 @@ Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, meta, refresh: function(event, can) { can.run(event) }, onclick: function(event, can) { - if (can.Conf(kit.MDB_TYPE) == html.BUTTON) { can.run(event, [ctx.ACTION, can.Conf(kit.MDB_NAME)].concat(can.sup.Input())) } + if (can.Conf(mdb.TYPE) == html.BUTTON) { can.run(event, [ctx.ACTION, can.Conf(mdb.NAME)].concat(can.sup.Input())) } }, onchange: function(event, can) { - if (can.Conf(kit.MDB_TYPE) == html.SELECT) { can.run(event) } + if (can.Conf(mdb.TYPE) == html.SELECT) { can.run(event) } }, onkeydown: function(event, can) { - if (can.Conf(kit.MDB_TYPE) == html.TEXTAREA) { if (!event.ctrlKey) { return } } + if (can.Conf(mdb.TYPE) == html.TEXTAREA) { if (!event.ctrlKey) { return } } can.onkeypop.input(event, can, event.target); switch (event.key) { case lang.ENTER: - switch (can.Conf(kit.MDB_TYPE)) { + switch (can.Conf(mdb.TYPE)) { case html.TEXTAREA: if (!event.ctrlKey) { return } case html.TEXT: event.target.setSelectionRange(0, -1); break }; can.run(event), event.stopPropagation(), event.preventDefault(); break diff --git a/plugin/input/key.js b/plugin/input/key.js index 84a5db8b..171c983d 100644 --- a/plugin/input/key.js +++ b/plugin/input/key.js @@ -14,7 +14,7 @@ Volcanos("onfigure", {help: "控件详情", list: [], key: {onclick: function(ev show(msg) }): can.page.Remove(can, can._target) }} - }), can.Status(kit.MDB_COUNT, msg.Length()) + }), can.Status(mdb.COUNT, msg.Length()) } show(msg), can.onlayout.figure(event, can) }) diff --git a/plugin/input/province.js b/plugin/input/province.js index 4b5d5822..3a022daa 100644 --- a/plugin/input/province.js +++ b/plugin/input/province.js @@ -8,7 +8,7 @@ Volcanos("onfigure", {help: "控件详情", list: [], province: {onclick: functi var china_chart = echarts.init(can.page.Append(can, can._output, [{type: html.DIVk, style: {width: "600px", height: "400px"}}]).first) china_chart.setOption({geo: {map: 'china'}}), china_chart.on('click', function (params) { target.value = params.name, can.page.Remove(can, can._target) - }), can.Status(kit.MDB_COUNT, 34) + }), can.Status(mdb.COUNT, 34) can.onlayout.figure(event, can) }) }}, }) diff --git a/plugin/local/chat/div.js b/plugin/local/chat/div.js index 001a0013..6f79e5c9 100644 --- a/plugin/local/chat/div.js +++ b/plugin/local/chat/div.js @@ -83,7 +83,7 @@ Volcanos("onaction", {help: "操作数据", list: [], }) }, "保存": function(event, can) { var msg = can.request(event, can.Option()) - can.run(event, [mdb.MODIFY, kit.MDB_TEXT, JSON.stringify(can._meta)], function(msg) { + can.run(event, [mdb.MODIFY, mdb.TEXT, JSON.stringify(can._meta)], function(msg) { can.user.toastSuccess(can) }, true) }, diff --git a/plugin/local/chat/wx.js b/plugin/local/chat/wx.js index 23703a40..197b3573 100644 --- a/plugin/local/chat/wx.js +++ b/plugin/local/chat/wx.js @@ -14,8 +14,8 @@ Volcanos("onaction", {source: function(can, msg) { openLocation: function(msg) { wx.openLocation({ latitude: parseInt(msg.Option("latitude"))/100000, longitude: parseInt(msg.Option("longitude"))/100000, - name: msg.Option(kit.MDB_NAME), address: msg.Option(kit.MDB_TEXT), - scale: msg.Option("scale")||14, infoUrl: msg.Option(kit.MDB_LINK), + name: msg.Option(mdb.NAME), address: msg.Option(mdb.TEXT), + scale: msg.Option("scale")||14, infoUrl: msg.Option(mdb.LINK), }) }, chooseImage: function(cb, count) { wx.chooseImage({count: count||9, sizeType: ['original', 'compressed'], sourceType: ['album', 'camera'], success: function (res) { can.base.isFunc(cb) && cb(res.localIds) diff --git a/plugin/local/code/inner.js b/plugin/local/code/inner.js index 2b69521b..3aea76f6 100644 --- a/plugin/local/code/inner.js +++ b/plugin/local/code/inner.js @@ -300,8 +300,8 @@ Volcanos("onaction", {help: "控件交互", list: ["项目", "收藏"], {name: "name", value: "hello"}, ], function(event, button, meta, list) { can.run(event, [ctx.ACTION, code.FAVOR, - ctx.ACTION, mdb.INSERT, kit.MDB_ZONE, meta.zone||"", - kit.MDB_TYPE, can.parse, kit.MDB_NAME, meta.name||"", kit.MDB_TEXT, (value||"").trimRight(), + ctx.ACTION, mdb.INSERT, mdb.ZONE, meta.zone||"", + mdb.TYPE, can.parse, mdb.NAME, meta.name||"", mdb.TEXT, (value||"").trimRight(), nfs.PATH, can.Option(nfs.PATH), nfs.FILE, can.Option(nfs.FILE), nfs.LINE, can.Option(nfs.LINE), ], function(msg) { can.user.toastSuccess(can) diff --git a/plugin/local/team/plan.js b/plugin/local/team/plan.js index 94d72d22..3302f08a 100644 --- a/plugin/local/team/plan.js +++ b/plugin/local/team/plan.js @@ -87,7 +87,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, _display: function(can, task) { if (!task["extra.cmd"]) { return } can.onappend.plugin(can, {type: chat.STORY, ctx: task["extra.ctx"], cmd: task["extra.cmd"], arg: task["extra.arg"]}, function(sub, meta) { sub.run = function(event, cmds, cb) { var msg = can.request(event, kit.Dict("task.pod", task["pod"], "task.zone", task.zone, "task.id", task.id)) - can.run(event, can.misc.concat([ctx.ACTION, ice.RUN, task[kit.MDB_ZONE], task[kit.MDB_ID]], cmds), cb, true) + can.run(event, can.misc.concat([ctx.ACTION, ice.RUN, task[mdb.ZONE], task[mdb.ID]], cmds), cb, true) } }, can.ui.display) can.page.Modify(can, can.ui.display, {style: {display: html.BLOCK}}) diff --git a/plugin/local/wiki/draw.js b/plugin/local/wiki/draw.js index ae58d8dd..d7555454 100644 --- a/plugin/local/wiki/draw.js +++ b/plugin/local/wiki/draw.js @@ -93,9 +93,9 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, }}) var figure = can.onfigure._get(can, target) - list = (list||[]).concat(figure.data.copy, [svg.X, svg.Y, kit.MDB_INDEX, kit.MDB_ARGS]) + list = (list||[]).concat(figure.data.copy, [svg.X, svg.Y, mdb.INDEX, ctx.ARGS]) can.page.Append(can, can.ui.profile, [{type: html.TABLE, className: "content", list: [ - {th: [kit.MDB_KEY, kit.MDB_VALUE]}, {td: [kit.MDB_TYPE, target.tagName]}, {td: ["pid", target.Value("pid")]}, + {th: [mdb.KEY, mdb.VALUE]}, {td: [mdb.TYPE, target.tagName]}, {td: ["pid", target.Value("pid")]}, ].concat(can.core.List(list, function(key) { return key = figure.data.size[key]||key, {td: [key, target.Value(key)], ondblclick: function(event) { can.onmotion.modify(can, event.target, function(event, value, old) { @@ -117,10 +117,10 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, }, ["/plugin/local/wiki/draw.css"]) Volcanos("onfigure", {help: "图形绘制", list: [], _get: function(can, item, name) { - return can.onfigure[name]||can.onfigure[item.getAttribute(kit.MDB_NAME)]||can.onfigure[item.tagName] + return can.onfigure[name]||can.onfigure[item.getAttribute(mdb.NAME)]||can.onfigure[item.tagName] }, _pid: function(can, item) { if (item.Value("pid")) { return item.Value("pid") } - var pid = "p"+can.svg.Val(kit.MDB_COUNT, can.svg.Val(kit.MDB_COUNT)+1) + var pid = "p"+can.svg.Val(mdb.COUNT, can.svg.Val(mdb.COUNT)+1) item.Value(html.CLASS, (item.Value(html.CLASS)+ice.SP+item.Value("pid", pid)).trim()) return pid }, @@ -155,7 +155,7 @@ Volcanos("onfigure", {help: "图形绘制", list: [], text: { // hi data: {points: 1, size: {}, copy: [html.INNER]}, draw: function(event, can, point, style) { if (point.length < 1 || event.type == "mousemove") { return } - var p0 = point[0], text = style&&style.inner||can.user.prompt(kit.MDB_TEXT) + var p0 = point[0], text = style&&style.inner||can.user.prompt(mdb.TEXT) return text? {x: p0.x, y: p0.y, inner: text}: null }, show: function(can, target, figure) { return can.onexport._position(can, target, figure) } @@ -336,7 +336,7 @@ Volcanos("onaction", {help: "组件菜单", list: [ can.current && can.core.List(can.current.begin, function(item) { var figure = can.onfigure._get(can, item.target) can.onexport.resize(event, item.target, item, point[0], point[1], can.current.pos) - can.page.Select(can, can.svg, ice.PT+item.target.Value(kit.MDB_TEXT), function(text) { + can.page.Select(can, can.svg, ice.PT+item.target.Value(mdb.TEXT), function(text) { text.Value(can.onexport._text(can, item.target, figure, {})) }) can.onfigure._move(can, item.target, item.ship) @@ -348,7 +348,7 @@ Volcanos("onaction", {help: "组件菜单", list: [ }, _auto: function(can, target) { if (can.point.length > 0) { return } - if (target.tagName == kit.MDB_TEXT) { return } + if (target.tagName == mdb.TEXT) { return } var pos = can.onexport.cursor(event, can, event.target) if (target == can.svg) { @@ -414,7 +414,7 @@ Volcanos("ondetail", {help: "组件详情", list: [cli.START, ice.RUN, ice.COPY, var cache = can.page.Cache(can._pid, can.ui.display); if (cache) { return } can.onmotion.clear(can, can.ui.display), can.svg.Value("pid", target.Value("pid")) - var index = target.Value(kit.MDB_INDEX); index && can.onappend.plugin(can, {type: chat.STORY, index: index, args: target.Value(kit.MDB_ARGS)}, function(sub) { + var index = target.Value(mdb.INDEX); index && can.onappend.plugin(can, {type: chat.STORY, index: index, args: target.Value(ctx.ARGS)}, function(sub) { sub.Conf("height", can.Conf("height")-can.svg.Val("height")-52), sub.Conf("width", can.Conf("width")) sub.run = function(event, cmds, cb) { can.run(event, can.misc.concat([ice.RUN, index], cmds), cb, true) } can.onmotion.hidden(can, sub._legend), can.onmotion.hidden(can, can.ui.display, true) @@ -422,7 +422,7 @@ Volcanos("ondetail", {help: "组件详情", list: [cli.START, ice.RUN, ice.COPY, }, copy: function(event, can) { can.onfigure._copy(event, can, event.target) }, label: function(event, can) { var target = event.target - var def = target.Value(kit.MDB_TEXT); def && can.page.Select(can, can.svg, ice.PT+def, function(item) { + var def = target.Value(mdb.TEXT); def && can.page.Select(can, can.svg, ice.PT+def, function(item) { def = item.Value(html.INNER) }) can.user.prompt(html.LABEL, function(text) { @@ -437,7 +437,7 @@ Volcanos("ondetail", {help: "组件详情", list: [cli.START, ice.RUN, ice.COPY, var figure = can.onfigure._get(can, target) var data = can.onexport._text(can, target, figure, {inner: text}) var item = can.onfigure._push(can, html.TEXT, data, target.Group()) - target.Value(kit.MDB_TEXT, can.onfigure._pid(can, item)) + target.Value(mdb.TEXT, can.onfigure._pid(can, item)) }, def) }, modify: function(event, can) { can.onimport._profile(can, event.target) }, @@ -448,7 +448,7 @@ Volcanos("ondetail", {help: "组件详情", list: [cli.START, ice.RUN, ice.COPY, can.page.Remove(can, item) }) }) - target.Value(kit.MDB_TEXT) && can.page.Select(can, can.svg, ice.PT+target.Value(kit.MDB_TEXT), function(item) { + target.Value(mdb.TEXT) && can.page.Select(can, can.svg, ice.PT+target.Value(mdb.TEXT), function(item) { can.page.Remove(can, item) }) can.page.Remove(can, target) @@ -481,7 +481,7 @@ Volcanos("onexport", {help: "导出数据", list: ["group", "figure", "index", " content: function(can, svg) { return ['"]).join("") }, diff --git a/plugin/state.js b/plugin/state.js index 29f07213..468811e1 100644 --- a/plugin/state.js +++ b/plugin/state.js @@ -81,8 +81,8 @@ Volcanos("onaction", {help: "交互操作", list: [ }, "共享工具": function(event, can) { var meta = can.Conf() var ui = can.user.input(event, can, [{name: chat.TITLE, value: meta.name}], function(ev, button, data, list) { - var msg = can.request(event, {arg: [kit.MDB_TYPE, chat.FIELD, - kit.MDB_NAME, meta.index, kit.MDB_TEXT, JSON.stringify(can.Input([], true)), + var msg = can.request(event, {arg: [mdb.TYPE, chat.FIELD, + mdb.NAME, meta.index, mdb.TEXT, JSON.stringify(can.Input([], true)), chat.TITLE, list[0], chat.RIVER, can.Conf(chat.RIVER), chat.STORM, can.Conf(chat.STORM), ]}) can.search(event, ["Header.onaction.share"]) @@ -213,12 +213,12 @@ Volcanos("onaction", {help: "交互操作", list: [ if (navigator.clipboard) { navigator.clipboard.readText().then(add).catch(function(err) { can.misc.Log(err) }) } else { - can.user.input(event, can, [{type: html.TEXTAREA, name: kit.MDB_TEXT}], function(ev, button, data, list, args) { add(list[0]) }) + can.user.input(event, can, [{type: html.TEXTAREA, name: mdb.TEXT}], function(ev, button, data, list, args) { add(list[0]) }) } }, getLocation: function(event, can, button) { can.user.agent.getLocation(function(data) { can.request(event, data) - can.user.input(event, can, [kit.MDB_TYPE, kit.MDB_NAME, kit.MDB_TEXT, "latitude", "longitude"], function(ev, bu, data, list, args) { + can.user.input(event, can, [mdb.TYPE, mdb.NAME, mdb.TEXT, "latitude", "longitude"], function(ev, bu, data, list, args) { can.run(event, [ctx.ACTION, button].concat(can.base.Simple(args, data)), function(msg) { can.user.toastSuccess(can), can.Update() }, true) diff --git a/plugin/story/spide.js b/plugin/story/spide.js index 12248f92..fd1bae77 100644 --- a/plugin/story/spide.js +++ b/plugin/story/spide.js @@ -143,11 +143,11 @@ Volcanos("ondetail", {help: "用户交互", list: [], can.request(event, node.meta) } var msg = can.request(event, can.Option()) - can.run(event, can.base.Obj(can._args.prefix, []).concat([can.Option(kit.MDB_NAME)||"", tree.file||"", tree.name]), function(msg) { + can.run(event, can.base.Obj(can._args.prefix, []).concat([can.Option(mdb.NAME)||"", tree.file||"", tree.name]), function(msg) { if (msg.Length() == 0) { return can.ondetail.plugin(can, tree, {}, "web.code.inner", [can.dir_root, tree.file, tree.line], [ctx.ACTION, "inner"]) } - if (msg.Append(kit.MDB_INDEX)) { msg.Table(function(value) { + if (msg.Append(mdb.INDEX)) { msg.Table(function(value) { can.ondetail.plugin(can, tree, value, value.index, [], [ctx.ACTION, ice.RUN, value.index]) }); return } diff --git a/proto.js b/proto.js index 872ad01a..b7e0589e 100644 --- a/proto.js +++ b/proto.js @@ -59,8 +59,11 @@ var ice = { MSG_STATUS: "_status", MSG_DISPLAY: "_display", MSG_PROCESS: "_process", - PROCESS_AGAIN: "_again", + PROCESS_AGAIN: "_again", MSG_PREFIX: "_prefix", + + ErrWarn: "warn: ", + ErrNotFound: "not found: ", } var ctx = { @@ -156,6 +159,7 @@ var chat = { SSO: "sso", CMD_MARGIN: 53, + libs: ["/lib/base.js", "/lib/core.js", "/lib/misc.js", "/lib/page.js", "/lib/user.js"], panel_list: [ {name: "Header", help: "标题栏", pos: "head", state: ["time", "usernick", "avatar"]}, {name: "River", help: "群聊组", pos: "left", action: ["create", "refresh"]}, @@ -235,13 +239,12 @@ function shy(help, meta, list, cb) { }; var _can_name = "", _can_path = "" var Volcanos = shy("火山架", {iceberg: "/chat/", volcano: "/frame.js", args: {}, pack: {}, libs: [], cache: {}}, function(name, can, libs, cb) { var meta = arguments.callee.meta, list = arguments.callee.list - if (typeof name == lang.OBJECT) { var Config = name; Config.panels = Config.panels||chat.panel_list, Config.main = Config.main||{name: "Header"} - Config.plugin = Config.plugin||chat.plugin_list - libs = [], meta.libs = ["/lib/base.js", "/lib/core.js", "/lib/misc.js", "/lib/page.js", "/lib/user.js"] - meta.iceberg = Config.iceberg||meta.iceberg + if (typeof name == lang.OBJECT) { var Config = name; Config.plugin = Config.plugin||chat.plugin_list + Config.panels = Config.panels||chat.panel_list, Config.main = Config.main||{name: "Header"} + meta.libs = chat.libs, meta.iceberg = Config.iceberg||meta.iceberg // 预加载 - for (var i = 0; i < Config.panels.length; i++) { var panel = Config.panels[i] + libs = []; for (var i = 0; i < Config.panels.length; i++) { var panel = Config.panels[i] panel && (libs = libs.concat(panel.list = panel.list||["/panel/"+panel.name+".css", "/panel/"+panel.name+".js"])) }; libs = libs.concat(Config.plugin, Config.main.list) @@ -334,7 +337,7 @@ var Volcanos = shy("火山架", {iceberg: "/chat/", volcano: "/frame.js", args: Volcanos.meta._load = function(url, cb) { switch (url.split("?")[0].split(ice.PT).pop().toLowerCase()) { case "css": - var item = document.createElement(kit.MDB_LINK) + var item = document.createElement(mdb.LINK) item.rel = "stylesheet", item.type = "text/css" item.onload = cb, item.href = url return (document.head||document.body).appendChild(item), item