diff --git a/frame.js b/frame.js index bc6137fe..65450c56 100644 --- a/frame.js +++ b/frame.js @@ -142,11 +142,12 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) { meta.msg && can.onmotion.delay(can, function() { 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) }), meta.inputs && sub.onappend._option(sub, meta, sub._option, meta.msg) + can.base.isFunc(cb) && cb(sub) sub._legend && (sub._legend.onclick = function(event) { can.user.carte(event, sub, sub.onaction, sub.onaction.list.concat([[ctx.ACTION].concat(can.core.Item(meta.feature._trans))]), function(event, button) { can.misc.Event(event, sub, function(msg) { msg.RunAction(event, can.core.Value(sub, chat._OUTPUTS_CURRENT), [ctx.ACTION, button]) || msg.RunAction(event, sub, [ctx.ACTION, button]) || sub.runAction(event, button) }) }) - }), can.base.isFunc(cb) && cb(sub) + }) sub.isCmdMode() && can.onappend.style(sub, can.misc.Search(can, ctx.STYLE)) sub.isCmdMode() && sub.Conf(can.misc.Search(can)) if (can.user.isMobile && !can.user.isLandscape()) { return } diff --git a/index.css b/index.css index 51ce119d..f77a3f3e 100644 --- a/index.css +++ b/index.css @@ -207,7 +207,7 @@ div.project div.zone>div.list>div.zone>div.item { text-align:left; padding-left: div.project div.zone>div.list>div.zone>div.item:hover { margin-left:10px; transition:all 0.3s; } fieldset>div.output>div.project>div.item.filter { padding:0; } fieldset>div.output>div.project { border-right:gray solid 1px; min-width:120px; max-width:240px; } -fieldset>div.output div.profile { border-left:gray solid 1px; max-width:240px; } +fieldset>div.output div.profile { border-left:gray solid 1px; max-width:320px; } fieldset>div.output div.display { border-top:gray solid 1px; } /* table card */ div.output.card>div.item.stop { color:gray; } diff --git a/lib/page.js b/lib/page.js index 7a49a50d..f61bcd99 100644 --- a/lib/page.js +++ b/lib/page.js @@ -300,7 +300,7 @@ Volcanos("page", { }, requireDraw: function(can, cb) { can.require(["/plugin/local/wiki/draw.js", "/plugin/local/wiki/draw/path.js"], function() { can.onimport._last_init(can, can.request(), can._output), can.onappend.style(can, wiki.DRAW, can._fields), cb() - }) }, + }, function(can, mod, sub) { mod == chat.ONIMPORT && (can[mod]._last_init = sub._init) }) }, drawText: function(can, text, size, margin, fonts) { text = text.slice(0, 1), size = size||80, margin = margin == undefined? 10: margin var colors = ["rgb(239,150,26)", 'rgb(255,58,201)', "rgb(111,75,255)", "rgb(36,174,34)", "rgb(80,80,80)"] var canvas = can.page.Create(can, html.CANVAS, {width: size, height: size}), ctx = canvas.getContext("2d") diff --git a/panel/header.js b/panel/header.js index 3b2f8ef0..efcccb2d 100644 --- a/panel/header.js +++ b/panel/header.js @@ -1,7 +1,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onimport._title(can, msg, target), can.onimport._state(can, msg, target), can.onimport._avatar(can, msg, target), can.onimport._background(can, msg, target), can.onimport._search(can, msg, target) }, - _title: function(can, msg, target) { can.user.isMobile || can.core.List(can.base.getValid(can.Conf(chat.TITLE)||msg.result, ["shylinux.com/x/contexts"]), function(item) { + _title: function(can, msg, target) { can.user.isMobile || can.core.List(can.base.getValid(can.Conf(chat.TITLE)||location.host||msg.result, [location.host]), function(item) { 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.core.List(can.base.Obj(can.Conf(chat.STATE)||msg.Option(chat.STATE), [aaa.USERNICK, aaa.AVATAR, mdb.TIME]).reverse(), function(item) { diff --git a/panel/river.js b/panel/river.js index c6d7e48d..89257957 100644 --- a/panel/river.js +++ b/panel/river.js @@ -32,10 +32,7 @@ Volcanos(chat.ONACTION, {list: [mdb.CREATE, web.SHARE, web.REFRESH], _init: func can.runAction(event, mdb.CREATE, args, function(msg) { can.misc.Search(can, {river: msg.Result()}) }) }) }, share: function(event, can) { can.core.CallFunc(can.ondetail.share, {event: event, can: can}) }, - refresh: function(event, can) { can.misc.Search(can, { - river: can.Conf(chat.RIVER), storm: can.Conf(chat.STORM), - // theme: can.getHeaderTheme(), layout: can.getAction("layout"), - }) }, + refresh: function(event, can) { can.misc.Search(can, {river: can.Conf(chat.RIVER), storm: can.Conf(chat.STORM)}) }, storm: function(event, can, river) { can.onmotion.select(can, can._output, html.DIV_ITEM, can.ui.river_list[river]) var list = can.ui.sublist[river]; if (list) { return can.onmotion.toggle(can, list) } @@ -45,10 +42,7 @@ Volcanos(chat.ONACTION, {list: [mdb.CREATE, web.SHARE, web.REFRESH], _init: func }, action: function(event, can, river, storm) { 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.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(nfs.DF) - // 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 } can.request(event, {river: river, storm: storm}) diff --git a/plugin/local/code/inner.js b/plugin/local/code/inner.js index 8b506338..cb38c2d5 100644 --- a/plugin/local/code/inner.js +++ b/plugin/local/code/inner.js @@ -296,7 +296,7 @@ Volcanos(chat.ONSYNTAX, {_init: function(can, msg, cb) { var key = can.onexport. } else { can.core.List(msg.Result().split(lex.NL), function(item) { can.onaction.appendLine(can, item) }) } can.onmotion.delay(can, function() { can.onappend.scroll(can, can.ui.content) }) can.onengine.signal(can, VIEW_CREATE, msg), can.base.isFunc(cb) && cb(msg._content = content._root? content._root: content) - } can.require(["inner/syntax.js"], function() { var parse = can.onexport.parse(can); can.Conf(chat.PLUG) && (can.onsyntax[parse] = can.Conf(chat.PLUG)) + } can.require(["/plugin/local/code/inner/syntax.js"], function() { var parse = can.onexport.parse(can); can.Conf(chat.PLUG) && (can.onsyntax[parse] = can.Conf(chat.PLUG)) var p = can.onsyntax[parse]; !p? can.runAction({}, mdb.PLUGIN, [parse, file, path], function(msg) { show(p = can.onsyntax[parse] = can.base.Obj(msg.Result()||"{}")) }): show(p) }) }, diff --git a/plugin/local/code/vimer.js b/plugin/local/code/vimer.js index 22eba190..f6bddd11 100644 --- a/plugin/local/code/vimer.js +++ b/plugin/local/code/vimer.js @@ -1,7 +1,9 @@ -Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { can.require(["inner.js"], function(can) { can.onimport._last_init(can, msg, function() { - can.onengine.listen(can, "tabview.line.select", function(msg) { can.onaction._selectLine(can) }) - can.db.undo = [], can.db.redo = [], can.onimport._input(can), can.base.isFunc(cb) && cb(msg) - }) }) }, +Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { + can.require(["inner.js"], function(can) { can.onimport._last_init(can, msg, function() { + can.onengine.listen(can, "tabview.line.select", function(msg) { can.onaction._selectLine(can) }) + can.db.undo = [], can.db.redo = [], can.onimport._input(can), can.base.isFunc(cb) && cb(msg) + }) }, function(can, mod, sub) { mod == chat.ONIMPORT && (can[mod]._last_init = sub._init) }) + }, _input: function(can) { var ui = can.page.Append(can, can.ui.content.parentNode, [ {view: [code.CURRENT, html.INPUT], spellcheck: false, onkeydown: function(event) { can.onimport._value(can); if (event.metaKey) { return } can.db._keylist = can.onkeymap._parse(event, can, can.db.mode+(event.ctrlKey? "_ctrl": ""), can.db._keylist, can.ui.current) diff --git a/proto.js b/proto.js index 5981dbb4..46e6c7d8 100644 --- a/proto.js +++ b/proto.js @@ -189,10 +189,10 @@ var chat = { "/plugin/local/code/inner/syntax.js", "/plugin/local/wiki/draw/path.js", "/plugin/local/wiki/draw.js", + "/plugin/local/wiki/feel.js", "/plugin/local/wiki/word.js", "/plugin/local/team/plan.js", "/plugin/local/mall/goods.js", - "/plugin/local/mall/goods.js", ], PLUGIN_INPUT: "/plugin/input/", PLUGIN_STORY: "/plugin/story/", PLUGIN_LOCAL: "/plugin/local/", PLUGIN_STATE_JS: "/plugin/state.js", PLUGIN_INPUT_JS: "/plugin/input.js", PLUGIN_TABLE_JS: "/plugin/table.js", ONENGINE: "onengine", ONDAEMON: "ondaemon", ONAPPEND: "onappend", ONLAYOUT: "onlayout", ONMOTION: "onmotion", ONKEYMAP: "onkeymap", @@ -291,12 +291,10 @@ var Volcanos = shy({iceberg: "/chat/", volcano: "/frame.js", cache: {}, pack: {} cb = can||function(can) { can.onengine._init(can, can.Conf(Config), panels, Config._init||meta._init, can._target) } can = Config, can._follow = name, can._target = Config.target||meta.target, can._height = Config.height||meta._height, can._width = Config.width||meta._width } - can = kit.proto(can||{}, kit.proto({_name: name, _path: _can_path, _load: function(name, cbs) { var cache = meta.cache[name]||[] - for (list.reverse(); list.length > 0; list) { var sub = list.pop(); sub != can && cache.push(sub) } meta.cache[name] = cache + can = kit.proto(can||{}, kit.proto({_name: name, _load: function(name, cbs) { var cache = meta.cache[name]||[] + for (list.reverse(); list.length > 0; list) { var sub = list.pop(); sub != can && cache.push(sub), sub._path = sub._path||name } meta.cache[name] = cache cache.forEach(function(sub) { var name = sub._name; if (typeof cbs == lang.FUNCTION && cbs(can, name, sub)) { return } - can[name] = can[name]||{}; for (var k in sub) { can[name].hasOwnProperty(k) || sub.hasOwnProperty(k) && (can[name][k] = sub[k]) - name == chat.ONIMPORT && k == chat._INIT && (can[name]._last_init = sub[k]) - } + can[name] = can[name]||{}; for (var k in sub) { can[name].hasOwnProperty(k) || sub.hasOwnProperty(k) && (can[name][k] = sub[k]) } }) }, require: function(libs, cb, cbs) { @@ -311,7 +309,6 @@ var Volcanos = shy({iceberg: "/chat/", volcano: "/frame.js", cache: {}, pack: {} if (libs[0][0] != ice.PS && libs[0].indexOf(ice.HTTP) != 0) { libs[0] = can._path.slice(0, can._path.lastIndexOf(ice.PS)+1)+libs[0] } var name = (libs[0].indexOf(ice.HTTP) == 0? libs[0]: libs[0].split(ice.QS)[0]).toLowerCase() function next() { can._load(name, cbs), can.require(libs.slice(1), cb, cbs) } - name.endsWith(nfs.JS) && (_can_path = name) meta.cache[name]||name==""? next(): (meta._load(name, next)) }, request: function(event) { event = event||{}, event = event._event||event @@ -372,7 +369,10 @@ var Volcanos = shy({iceberg: "/chat/", volcano: "/frame.js", cache: {}, pack: {} } return can.base.isUndefined(res) && key.indexOf(ctx.FEATURE+nfs.PT) == -1? can.Conf(can.core.Keys(ctx.FEATURE, key)): res }, _conf: {}, }, 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 + setTimeout(function() { + can.require(can._follow? libs.concat(meta.libs, meta.volcano): libs, cb) + }, 1) + return can }) try { if (typeof(window) == lang.OBJECT) { var meta = Volcanos.meta meta.target = document.body, meta._height = window.innerHeight, meta._width = window.innerWidth