mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 16:58:06 +08:00
opt code
This commit is contained in:
parent
f57aba1296
commit
3154844147
20
frame.js
20
frame.js
@ -168,20 +168,22 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
_option: function(can, meta, option, skip) { var index = -1, args = can.base.Obj(meta.args||meta.arg, []), opts = can.base.Obj(meta.opts, {})
|
_option: function(can, meta, option, skip) { var index = -1, args = can.base.Obj(meta.args||meta.arg, []), opts = can.base.Obj(meta.opts, {})
|
||||||
can.core.List([""].concat(meta.inputs), function(item) {
|
can.core.List([""].concat(meta.inputs), function(item) {
|
||||||
var icon = {
|
var icon = {
|
||||||
refresh: {name: "refresh", cb: function(event) { can.Update(event) }},
|
run: {name: web.PLAY, cb: function(event) { can.Update(event) }},
|
||||||
run: {name: "refresh", cb: function(event) { can.Update(event) }},
|
list: {name: web.REFRESH, cb: function(event) { can.Update(event) }},
|
||||||
list: {name: "refresh", cb: function(event) { can.Update(event) }},
|
refresh: {name: web.REFRESH, cb: function(event) { can.Update(event) }},
|
||||||
back: {name: "goback", cb: function(event) { can.onimport._back(can) }},
|
back: {name: "goback", cb: function(event) { can.onimport._back(can) }},
|
||||||
create: {name: "create", cb: function(event) { can.Update(event, [ctx.ACTION, mdb.CREATE]) }},
|
create: {name: mdb.CREATE, cb: function(event) { can.Update(event, [ctx.ACTION, mdb.CREATE]) }},
|
||||||
insert: {name: "create", cb: function(event) { can.Update(event, [ctx.ACTION, mdb.INSERT]) }},
|
insert: {name: mdb.CREATE, cb: function(event) { can.Update(event, [ctx.ACTION, mdb.INSERT]) }},
|
||||||
"": {name: "delete", cb: function(event) { can.onaction.close(event, can) }},
|
play: {name: web.PLAY, cb: function(event) { can.Update(event, [ctx.ACTION, web.PLAY]) }},
|
||||||
}[item.name||""]; icon && can.page.Append(can, option, [{view: [[html.ITEM, html.ICON, icon.name, item.name], html.DIV, can.page.unicode[icon.name]], onclick: icon.cb}])
|
"": {name: mdb.DELETE, cb: function(event) { can.onaction.close(event, can) }},
|
||||||
|
}[item.name||""]; icon && can.page.Append(can, option, [{view: [[html.ITEM, html.ICON, icon.name, item.name], html.DIV, can.page.unicode[icon.name]], title: item.name, onclick: icon.cb}])
|
||||||
})
|
})
|
||||||
function add(item, next) { item = can.base.isString(item)? {type: html.TEXT, name: item}: item, item.type != html.BUTTON && index++
|
function add(item, next) { item = can.base.isString(item)? {type: html.TEXT, name: item}: item, item.type != html.BUTTON && index++
|
||||||
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), _option: option||can._option, _action: can._action, _output: can._output, _status: can._status,
|
_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,
|
||||||
CloneField: can.Clone, CloneInput: function() { can.onmotion.focus(can, add(item)._target) }, Input: can.Input, Option: can.Option, Action: can.Action, Status: can.Status,
|
CloneField: can.Clone, CloneInput: function() { can.onmotion.focus(can, add(item)._target) }, Input: can.Input, Option: can.Option, Action: can.Action, Status: can.Status,
|
||||||
}, [item.display, chat.PLUGIN_INPUT_JS], function(sub) { sub.Conf(item)
|
}, [item.display, chat.PLUGIN_INPUT_JS], function(sub) { sub.Conf(item)
|
||||||
|
if (item.type == html.TEXT) { can.page.Append(can, sub._target.parentNode, [{text: [sub._target.value, html.SPAN, mdb.VALUE]}]) }
|
||||||
sub.run = function(event, cmds, cb, silent) { var msg = can.request(event, kit.Dict(chat._TOAST, ice.PROCESS))._caller()
|
sub.run = function(event, cmds, cb, silent) { var msg = can.request(event, kit.Dict(chat._TOAST, ice.PROCESS))._caller()
|
||||||
msg.RunAction(event, sub, cmds) || msg.RunAction(event, can.core.Value(can, chat._OUTPUTS_CURRENT), cmds) || can.Update(event, can.Input(cmds, !silent), cb, silent)
|
msg.RunAction(event, sub, cmds) || msg.RunAction(event, can.core.Value(can, chat._OUTPUTS_CURRENT), cmds) || can.Update(event, can.Input(cmds, !silent), cb, silent)
|
||||||
}, can._inputs = can._inputs||{}, can._inputs[item.name] = sub, sub.sup = can
|
}, can._inputs = can._inputs||{}, can._inputs[item.name] = sub, sub.sup = can
|
||||||
@ -209,7 +211,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
}), item), "", action)
|
}), item), "", action)
|
||||||
}), meta
|
}), meta
|
||||||
},
|
},
|
||||||
_output0: function(can, meta, event, cmds, cb, silent) { var msg = can.request(event); if (msg.RunAction(event, can, cmds)) { return }
|
_output0: function(can, meta, event, cmds, cb, silent) { var msg = can.request(event); if (msg.RunAction(event, can, cmds) || msg.RunAction(event, can.core.Value(can, chat._OUTPUTS_CURRENT), cmds)) { return }
|
||||||
if (msg.Option(ice.MSG_HANDLE) != ice.TRUE && cmds && cmds[0] == ctx.ACTION && meta.feature[cmds[1]]) { var msg = can.request(event, {action: cmds[1]})
|
if (msg.Option(ice.MSG_HANDLE) != ice.TRUE && cmds && cmds[0] == ctx.ACTION && meta.feature[cmds[1]]) { var msg = can.request(event, {action: cmds[1]})
|
||||||
var action = meta.feature[cmds[1]]; if (can.base.isFunc(action)) { cb = cb||function() { can.Update() }
|
var action = meta.feature[cmds[1]]; if (can.base.isFunc(action)) { cb = cb||function() { can.Update() }
|
||||||
return action.list && action.list.length > 0? can.user.input(event, can, action.list, function(data) {
|
return action.list && action.list.length > 0? can.user.input(event, can, action.list, function(data) {
|
||||||
@ -363,7 +365,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
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) { run(event, target.name, args) }): run(event, target.name)
|
meta && meta[target.name]? can.user.input(can.request(event, {action: target.name}), can, meta[target.name], function(args) { run(event, target.name, args) }): run(event, target.name)
|
||||||
} else { can.sup.onimport.change(event, can.sup, key, event.target.innerText) || can.sup.onexport.record(can.sup, value, key, line) }
|
} else { can.sup.onimport.change(event, can.sup, key, event.target.innerText) || can.sup.onexport.record(can.sup, value, key, line, event) }
|
||||||
}, 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([ctx.FEATURE, mdb.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, can.Option()), cmds, cb, true) }
|
item.run = function(event, cmds, cb) { can.run(can.request(event, line, can.Option()), cmds, cb, true) }
|
||||||
|
26
index.css
26
index.css
@ -99,7 +99,7 @@ body>div.toast div.action>div.item { float:right; }
|
|||||||
body>div.carte { padding:0; }
|
body>div.carte { padding:0; }
|
||||||
body>div.carte input[name=filter] { margin:5px; width:calc(100% - 10px); position:sticky; top:5px; }
|
body>div.carte input[name=filter] { margin:5px; width:calc(100% - 10px); position:sticky; top:5px; }
|
||||||
body>div.carte div.item { white-space:pre; padding:5px 10px; }
|
body>div.carte div.item { white-space:pre; padding:5px 10px; }
|
||||||
body>div.carte div.item span.icon.gt { float:right; }
|
body>div.carte div.item span.icon.next { float:right; }
|
||||||
body>div.input td { padding:5px; }
|
body>div.input td { padding:5px; }
|
||||||
body>div.input td span.icon { font-size:14px; margin-left:-25px; margin-right:10px; visibility:hidden; }
|
body>div.input td span.icon { font-size:14px; margin-left:-25px; margin-right:10px; visibility:hidden; }
|
||||||
body>div.input td:hover span.icon { visibility:visible; }
|
body>div.input td:hover span.icon { visibility:visible; }
|
||||||
@ -138,7 +138,7 @@ fieldset.plugin:not(.float):not(.full):not(.cmd)>legend { float:none; }
|
|||||||
fieldset.auto, fieldset.full, fieldset.float, div.float { position:fixed; z-index:10; }
|
fieldset.auto, fieldset.full, fieldset.float, div.float { position:fixed; z-index:10; }
|
||||||
fieldset.plug { position:absolute; bottom:0; right:0; } fieldset.cmd fieldset.plug { position:fixed; bottom:32px; right:0; }
|
fieldset.plug { position:absolute; bottom:0; right:0; } fieldset.cmd fieldset.plug { position:fixed; bottom:32px; right:0; }
|
||||||
fieldset.plug div.output table.content { width:100%; }
|
fieldset.plug div.output table.content { width:100%; }
|
||||||
fieldset.plugin>div.output>fieldset.story { position:sticky; left:0; }
|
// fieldset.plugin>div.output>fieldset.story { position:sticky; left:0; }
|
||||||
div.output { position:relative; }
|
div.output { position:relative; }
|
||||||
div.tabs { position:relative; }
|
div.tabs { position:relative; }
|
||||||
div.tabs span.icon { margin-left:5px; visibility:hidden; }
|
div.tabs span.icon { margin-left:5px; visibility:hidden; }
|
||||||
@ -154,12 +154,27 @@ form.option>div.icon:first-child { margin-left:-5px; }
|
|||||||
form.option>div.icon { line-height:30px; font-size:26px; padding:0 5px; height:32px; display:none; }
|
form.option>div.icon { line-height:30px; font-size:26px; padding:0 5px; height:32px; display:none; }
|
||||||
form.option>div.icon.refresh { line-height:28px; }
|
form.option>div.icon.refresh { line-height:28px; }
|
||||||
form.option>div.icon.goback { line-height:28px; }
|
form.option>div.icon.goback { line-height:28px; }
|
||||||
|
form.option>div.icon.play { line-height:28px; }
|
||||||
form.option>div.icon.lt { font-size:20px; line-height:30px; }
|
form.option>div.icon.lt { font-size:20px; line-height:30px; }
|
||||||
form.option>div.icon:hover { background-color:white; }
|
form.option>div.icon:hover { background-color:white; }
|
||||||
|
fieldset:not(.float)>form.option>div.text>span.value { display:none; }
|
||||||
|
fieldset.float div.item.text:hover>span.icon.delete { visibility:hidden; }
|
||||||
|
fieldset.float>form.option>div.text>input { display:none; }
|
||||||
|
fieldset.float>form.option>div.text>span.value { padding:7px; display:block; }
|
||||||
fieldset.float>form.option>div.item.button { display:none; }
|
fieldset.float>form.option>div.item.button { display:none; }
|
||||||
fieldset.story>form.option>div.icon.delete { display:block; }
|
|
||||||
fieldset.float>form.option>div.icon { display:block; }
|
fieldset.float>form.option>div.icon { display:block; }
|
||||||
fieldset.full>form.option>div.icon.delete { display:block; }
|
fieldset.full>form.option>div.icon.delete { display:block; }
|
||||||
|
fieldset.cmd>form.option>div.icon { display:block; }
|
||||||
|
fieldset.cmd>form.option>div.item.button.run { display:none; }
|
||||||
|
fieldset.cmd>form.option>div.item.button.list { display:none; }
|
||||||
|
fieldset.cmd>form.option>div.item.button.back { display:none; }
|
||||||
|
fieldset.cmd>form.option>div.item.button.create { display:none; }
|
||||||
|
fieldset.story>form.option>div.icon { display:block; }
|
||||||
|
fieldset.story>form.option>div.item.button.run { display:none; }
|
||||||
|
fieldset.story>form.option>div.item.button.list { display:none; }
|
||||||
|
fieldset.story>form.option>div.item.button.back { display:none; }
|
||||||
|
fieldset.story>form.option>div.item.button.create { display:none; }
|
||||||
|
fieldset.story>form.option>div.item.button.insert { display:none; }
|
||||||
fieldset.plug>form.option>div.icon { margin-left:5px; }
|
fieldset.plug>form.option>div.icon { margin-left:5px; }
|
||||||
div.carte.select.float { border-radius:0; }
|
div.carte.select.float { border-radius:0; }
|
||||||
div.carte.select.float>div.item { text-align:center; }
|
div.carte.select.float>div.item { text-align:center; }
|
||||||
@ -287,11 +302,6 @@ fieldset.plugin.parse.cmd>div.status { display:none; }
|
|||||||
fieldset.plugin.inner.cmd>legend { display:none; }
|
fieldset.plugin.inner.cmd>legend { display:none; }
|
||||||
fieldset.plugin.inner.cmd>div.action { display:none; }
|
fieldset.plugin.inner.cmd>div.action { display:none; }
|
||||||
fieldset.plugin.inner.cmd>form.option { display:none; }
|
fieldset.plugin.inner.cmd>form.option { display:none; }
|
||||||
fieldset.plugin.inner.cmd fieldset.story>form.option>div.icon { display:block; }
|
|
||||||
fieldset.plugin.inner.cmd fieldset.story>form.option>div.item.button.list>input { display:none; }
|
|
||||||
fieldset.plugin.inner.cmd fieldset.story>form.option>div.item.button.back>input { display:none; }
|
|
||||||
fieldset.plugin.inner.cmd fieldset.story>form.option>div.item.button.create>input { display:none; }
|
|
||||||
fieldset.plugin.inner.cmd fieldset.story>form.option>div.item.button.insert>input { display:none; }
|
|
||||||
fieldset.plugin.inner.cmd fieldset.xterm>form.option>div.item.text>input { width:320px; }
|
fieldset.plugin.inner.cmd fieldset.xterm>form.option>div.item.text>input { width:320px; }
|
||||||
fieldset.plan div.output table.content { height:100%; width:100%; }
|
fieldset.plan div.output table.content { height:100%; width:100%; }
|
||||||
fieldset.xterm div.toggle { display:none; }
|
fieldset.xterm div.toggle { display:none; }
|
||||||
|
11
lib/page.js
11
lib/page.js
@ -17,6 +17,7 @@ Volcanos("page", {
|
|||||||
if (can.base.isObject(key)) { return can.core.Item(key, function(key, value) { can.page.SelectArgs(can, target, key, value) }), [key] }
|
if (can.base.isObject(key)) { return can.core.Item(key, function(key, value) { can.page.SelectArgs(can, target, key, value) }), [key] }
|
||||||
if (!can.base.isFunc(cb)) { var value = cb; cb = function(item) { return item.name && (can.base.isUndefined(value)? item.value: (item.value = value))||"" } }
|
if (!can.base.isFunc(cb)) { var value = cb; cb = function(item) { return item.name && (can.base.isUndefined(value)? item.value: (item.value = value))||"" } }
|
||||||
if (key.indexOf(ice.PT) > -1) { return [""] }
|
if (key.indexOf(ice.PT) > -1) { return [""] }
|
||||||
|
key && can.base.isString(cb) && can.page.Select(can, target, "div.item."+key+">span.value", cb)
|
||||||
return can.page.Select(can, target, key? "select[name="+key+"],"+"input.select[type=button][name="+key+"],"+"input[name="+key+"],"+"textarea[name="+key+"]": ".args", cb)
|
return can.page.Select(can, target, key? "select[name="+key+"],"+"input.select[type=button][name="+key+"],"+"input[name="+key+"],"+"textarea[name="+key+"]": ".args", cb)
|
||||||
},
|
},
|
||||||
SelectInput: function(can, target, name, cb) { return can.page.Select(can, target, "input[name="+name+"]", cb)[0] },
|
SelectInput: function(can, target, name, cb) { return can.page.Select(can, target, "input[name="+name+"]", cb)[0] },
|
||||||
@ -245,10 +246,12 @@ Volcanos("page", {
|
|||||||
width: function() { return window.innerWidth },
|
width: function() { return window.innerWidth },
|
||||||
ismodkey: function(event) { return [lang.META, lang.ALT, lang.CONTROL, lang.SHIFT].indexOf(event.key) > -1 },
|
ismodkey: function(event) { return [lang.META, lang.ALT, lang.CONTROL, lang.SHIFT].indexOf(event.key) > -1 },
|
||||||
unicode: {
|
unicode: {
|
||||||
create: "+",
|
menu: "☰", prev: "❮", next: "❯", play: "▸",
|
||||||
menu: "☰", back: "◀", refresh: "↻", reback: "▶", delete: "✕", lt: "❮", gt: "❯", open: "▾", close: "▸", select: "▿", inner: "..",
|
push: "⇈", pull: "⇊", refresh: "↻", goback: "↺",
|
||||||
push: "\u21C8", pull: "\u21CA",
|
create: "+", delete: "✕", open: "▾", close: "▸",
|
||||||
goback: "\u21BA",
|
select: "▿", inner: "..",
|
||||||
|
back: "◀", reback: "▶",
|
||||||
|
lt: "❮", gt: "❯",
|
||||||
},
|
},
|
||||||
inputs: function(can, list, type) { var _list = []; for (var i = 0; i < list.length; i++) { switch (list[i]) {
|
inputs: function(can, list, type) { var _list = []; for (var i = 0; i < list.length; i++) { switch (list[i]) {
|
||||||
case "": _list.push(""); break
|
case "": _list.push(""); break
|
||||||
|
@ -126,7 +126,7 @@ Volcanos("user", {
|
|||||||
can.onimport && can.onimport[item[0]] && can.onimport[item[0]](can, button)
|
can.onimport && can.onimport[item[0]] && can.onimport[item[0]](can, button)
|
||||||
}, carte, trans); can.onlayout.figure(event, can, sub._target, true), remove_sub(carte), carte._sub = sub }
|
}, carte, trans); can.onlayout.figure(event, can, sub._target, true), remove_sub(carte), carte._sub = sub }
|
||||||
return item === ""? /* 0.space */ {type: html.HR}: can.base.isString(item)||can.base.isNumber(item)? /* 1.string */ {view: [html.ITEM, html.DIV, can.user.trans(can, item, trans)], onclick: function(event) { click(event, item) }, onmouseenter: function(event) { remove_sub(carte) } }:
|
return item === ""? /* 0.space */ {type: html.HR}: can.base.isString(item)||can.base.isNumber(item)? /* 1.string */ {view: [html.ITEM, html.DIV, can.user.trans(can, item, trans)], onclick: function(event) { click(event, item) }, onmouseenter: function(event) { remove_sub(carte) } }:
|
||||||
can.base.isArray(item)? /* 2.array */ {view: html.ITEM, list: [{text: can.user.trans(can, item[0], trans)}, {text: [ice.SP+can.page.unicode.gt, "", [html.ICON, "gt"]]}], onmouseenter: subs, onclick: subs}: /* 3.object */ item
|
can.base.isArray(item)? /* 2.array */ {view: html.ITEM, list: [{text: can.user.trans(can, item[0], trans)}, {text: [ice.SP+can.page.unicode.next, "", [html.ICON, "next"]]}], onmouseenter: subs, onclick: subs}: /* 3.object */ item
|
||||||
})}]); can.onkeymap.prevent(event), can.page.Select(can, ui._target, html.IMG, function(target) { target.onload = function() { can.onlayout.figure(event, can, ui._target) } })
|
})}]); can.onkeymap.prevent(event), can.page.Select(can, ui._target, html.IMG, function(target) { target.onload = function() { can.onlayout.figure(event, can, ui._target) } })
|
||||||
var carte = {_target: ui._target, _parent: parent, layout: can.onlayout.figure(event, can, ui._target, false, 0.8), close: function() { can.page.Remove(can, ui._target) }}; return carte
|
var carte = {_target: ui._target, _parent: parent, layout: can.onlayout.figure(event, can, ui._target, false, 0.8), close: function() { can.page.Remove(can, ui._target) }}; return carte
|
||||||
},
|
},
|
||||||
|
@ -33,7 +33,7 @@ Volcanos(chat.ONACTION, {_init: function(can, target) {
|
|||||||
onsize: function(can, msg, height, width) { can.Conf({height: height-can.Conf(html.MARGIN_Y), width: width-can.Conf(html.MARGIN_X)}) },
|
onsize: function(can, msg, height, width) { can.Conf({height: height-can.Conf(html.MARGIN_Y), width: width-can.Conf(html.MARGIN_X)}) },
|
||||||
onmain: function(can, msg) { can.onimport._share(can, can.misc.Search(can, web.SHARE)) },
|
onmain: function(can, msg) { can.onimport._share(can, can.misc.Search(can, web.SHARE)) },
|
||||||
onlogin: function(can, msg) { can.ondaemon._init(can), can.onimport._menu(can, msg), can.onkeymap._build(can)
|
onlogin: function(can, msg) { can.ondaemon._init(can), can.onimport._menu(can, msg), can.onkeymap._build(can)
|
||||||
can._root.River && can.onmotion.delay(can, function() { if (can.Mode()) { return } var gt = can.page.unicode.gt, lt = can.page.unicode.lt, river = can._root.River._target
|
can._root.River && can.onmotion.delay(can, function() { if (can.Mode()) { return } var gt = can.page.unicode.next, lt = can.page.unicode.prev, river = can._root.River._target
|
||||||
var target = can.page.Append(can, can._target, [{view: [[html.TOGGLE, chat.PROJECT], "", can.page.isDisplay(river)? lt: gt], onclick: function(event) {
|
var target = can.page.Append(can, can._target, [{view: [[html.TOGGLE, chat.PROJECT], "", can.page.isDisplay(river)? lt: gt], onclick: function(event) {
|
||||||
can.page.Modify(can, target, (can._river_show = can.onmotion.toggle(can, river))? lt: gt)
|
can.page.Modify(can, target, (can._river_show = can.onmotion.toggle(can, river))? lt: gt)
|
||||||
can.onaction.layout(can)
|
can.onaction.layout(can)
|
||||||
|
@ -10,8 +10,8 @@ fieldset.inner>div.output div.content td.text span.constant { color:magenta; }
|
|||||||
fieldset.inner>div.output div.content td.text span.string { color:magenta; }
|
fieldset.inner>div.output div.content td.text span.string { color:magenta; }
|
||||||
fieldset.inner>div.output div.content td.text span.object { color:cyan; }
|
fieldset.inner>div.output div.content td.text span.object { color:cyan; }
|
||||||
fieldset.inner>div.output>div.layout>div.layout>div.content * { font-family:monospace; font-size:14px; outline:none; }
|
fieldset.inner>div.output>div.layout>div.layout>div.content * { font-family:monospace; font-size:14px; outline:none; }
|
||||||
fieldset.inner>div.output>div.layout>div.path { font-family:monospace; font-size:14px; }
|
|
||||||
fieldset.inner>div.output>div.layout>div.tabs { font-family:monospace; font-size:14px; }
|
fieldset.inner>div.output>div.layout>div.tabs { font-family:monospace; font-size:14px; }
|
||||||
|
fieldset.inner>div.output>div.layout>div.path { font-family:monospace; font-size:14px; }
|
||||||
fieldset.inner>div.output>div.project { width:230px; }
|
fieldset.inner>div.output>div.project { width:230px; }
|
||||||
fieldset.inner>div.output>div.project * { font-family:monospace; font-size:14px; outline:none; }
|
fieldset.inner>div.output>div.project * { font-family:monospace; font-size:14px; outline:none; }
|
||||||
fieldset.inner>div.output>div.project div.action { width:100%; }
|
fieldset.inner>div.output>div.project div.action { width:100%; }
|
||||||
@ -27,9 +27,9 @@ fieldset.inner>div.output>div.project>div.zone fieldset.plug { position:static;
|
|||||||
fieldset.inner>div.output>div.layout.flow { position:relative; }
|
fieldset.inner>div.output>div.layout.flow { position:relative; }
|
||||||
fieldset.inner>div.output>div.layout.flow>div.tabs { display:none; }
|
fieldset.inner>div.output>div.layout.flow>div.tabs { display:none; }
|
||||||
fieldset.inner>div.output>div.layout.flow>div.path { display:none; }
|
fieldset.inner>div.output>div.layout.flow>div.path { display:none; }
|
||||||
fieldset.inner.cmd>div.output>div.project { border-right:solid 2px gray; }
|
fieldset.inner.cmd>div.output>div.project { border-right:dimgray solid 1px; }
|
||||||
fieldset.inner.cmd>div.output div.profile { border-left:solid 2px gray; }
|
fieldset.inner.cmd>div.output div.profile { border-left:dimgray solid 1px; }
|
||||||
fieldset.inner.cmd>div.output div.display { border-top:solid 2px gray; }
|
fieldset.inner.cmd>div.output div.display { border-top:dimgray solid 1px; }
|
||||||
fieldset.inner.cmd>div.output>div.project>div.zone>div.item { font-style:italic; font-weight:bold; line-height:32px; }
|
fieldset.inner.cmd>div.output>div.project>div.zone>div.item { font-style:italic; font-weight:bold; line-height:32px; }
|
||||||
fieldset.inner.cmd>div.output>div.project>div.zone>div.item>span.icon { font-style:normal; font-weight:normal; line-height:32px; }
|
fieldset.inner.cmd>div.output>div.project>div.zone>div.item>span.icon { font-style:normal; font-weight:normal; line-height:32px; }
|
||||||
fieldset.inner.cmd>div.output>div.layout.flow>div.tabs { height:38px; display:block; overflow:hidden; }
|
fieldset.inner.cmd>div.output>div.layout.flow>div.tabs { height:38px; display:block; overflow:hidden; }
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
(function() { const CURRENT_FILE = "web.code.inner:currentFile", SELECT_LINE = "web.code.inner.selectLine"
|
(function() {
|
||||||
const VIEW_CREATE = "tabview.view.create", VIEW_REMOVE = "tabview.view.remove", LINE_SELECT = "tabview.line.select"
|
const PROJECT_HIDE = "web.code.inner:project"
|
||||||
|
const CURRENT_FILE = "web.code.inner:currentFile", SELECT_LINE = "web.code.inner:selectLine"
|
||||||
|
const VIEW_CREATE = "tabview.view.create", VIEW_REMOVE = "tabview.view.remove", LINE_SELECT = "tabview.line.select"
|
||||||
Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) { can.onmotion.clear(can), can.onappend.style(can, code.INNER)
|
Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) { can.onmotion.clear(can), can.onappend.style(can, code.INNER)
|
||||||
if (msg.Option(nfs.FILE)) { can.Option(nfs.FILE, msg.Option(nfs.FILE))
|
if (msg.Option(nfs.FILE)) { can.Option(nfs.FILE, msg.Option(nfs.FILE))
|
||||||
msg.Option(nfs.PATH) && can.Option(nfs.PATH, msg.Option(nfs.PATH))
|
msg.Option(nfs.PATH) && can.Option(nfs.PATH, msg.Option(nfs.PATH))
|
||||||
@ -18,6 +20,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) { can.onmotion.cl
|
|||||||
case chat.SIMPLE: // no break
|
case chat.SIMPLE: // no break
|
||||||
case chat.FLOAT: can.onmotion.hidden(can, can.ui.project); break
|
case chat.FLOAT: can.onmotion.hidden(can, can.ui.project); break
|
||||||
case chat.CMD: can.onimport._keydown(can), can.onmotion.hidden(can, can._status)
|
case chat.CMD: can.onimport._keydown(can), can.onmotion.hidden(can, can._status)
|
||||||
|
can.misc.sessionStorage(can, "web.code.inner:project") == html.HIDE && can.onmotion.hidden(can, can.ui.project)
|
||||||
// var plug = can.base.Obj(msg.Option(html.PLUG), []).concat(can.misc.Search(can, log.DEBUG) == ice.TRUE? ["can.debug", "log.debug"]: [])
|
// var plug = can.base.Obj(msg.Option(html.PLUG), []).concat(can.misc.Search(can, log.DEBUG) == ice.TRUE? ["can.debug", "log.debug"]: [])
|
||||||
// plug.length > 0 && can.run({}, [ctx.ACTION, ctx.COMMAND].concat(plug.reverse()), function(msg) { msg.Table(function(value) { can.onimport.toolkit(can, value) }) })
|
// plug.length > 0 && can.run({}, [ctx.ACTION, ctx.COMMAND].concat(plug.reverse()), function(msg) { msg.Table(function(value) { can.onimport.toolkit(can, value) }) })
|
||||||
case chat.FULL: // no break
|
case chat.FULL: // no break
|
||||||
@ -134,7 +137,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) { can.onmotion.cl
|
|||||||
}
|
}
|
||||||
function load(msg) { var skip = false; can.db.tabview[key] = msg
|
function load(msg) { var skip = false; can.db.tabview[key] = msg
|
||||||
can.onimport.tabs(can, [{name: can.base.beginWith(file, "http://")? file.split(ice.QS)[0]: file.split(isIndex()? ice.PT: ice.PS).pop(), text: file, _menu: shy([
|
can.onimport.tabs(can, [{name: can.base.beginWith(file, "http://")? file.split(ice.QS)[0]: file.split(isIndex()? ice.PT: ice.PS).pop(), text: file, _menu: shy([
|
||||||
nfs.SAVE, nfs.TRASH,
|
nfs.SAVE, nfs.TRASH, web.REFRESH,
|
||||||
], function(event, button, meta) {
|
], function(event, button, meta) {
|
||||||
can.onaction[button](event, can, button)
|
can.onaction[button](event, can, button)
|
||||||
})}], function(event, tabs) {
|
})}], function(event, tabs) {
|
||||||
@ -180,7 +183,8 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) { can.onmotion.cl
|
|||||||
var height = can.onexport.size(can, can.db.display_size[can.onexport.keys(can)]||0.5, can.ui.content.offsetHeight||can.ConfHeight())
|
var height = can.onexport.size(can, can.db.display_size[can.onexport.keys(can)]||0.5, can.ui.content.offsetHeight||can.ConfHeight())
|
||||||
can.page.style(can, can.ui.display, html.MAX_HEIGHT, can.ConfHeight()/2)
|
can.page.style(can, can.ui.display, html.MAX_HEIGHT, can.ConfHeight()/2)
|
||||||
can.onimport.process(can, msg, can.ui.display, height, width, function(sub) {
|
can.onimport.process(can, msg, can.ui.display, height, width, function(sub) {
|
||||||
var _height = can.base.Max(sub._target.offsetHeight, height); if (_height == sub.ConfHeight()) { return }
|
var _height = can.base.Max(sub._target.offsetHeight, height)
|
||||||
|
// ; if (_height == sub.ConfHeight()) { return }
|
||||||
if (sub.ConfHeight() < can.ui.content.offsetHeight-100) { can.page.style(can, sub._output, html.MAX_HEIGHT, "") }
|
if (sub.ConfHeight() < can.ui.content.offsetHeight-100) { can.page.style(can, sub._output, html.MAX_HEIGHT, "") }
|
||||||
can.db.display_size[can.onexport.keys(can)] = _height, can.onimport.layout(can), sub.onimport.size(sub, _height, width, true)
|
can.db.display_size[can.onexport.keys(can)] = _height, can.onimport.layout(can), sub.onimport.size(sub, _height, width, true)
|
||||||
})
|
})
|
||||||
@ -193,9 +197,9 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) { can.onmotion.cl
|
|||||||
sub.onaction.close = function() { can.onmotion.hidden(can, target), can.onimport.layout(can) }
|
sub.onaction.close = function() { can.onmotion.hidden(can, target), can.onimport.layout(can) }
|
||||||
sub.onexport.output = function(_sub, _msg) { can.onmotion.delay(can, function() { can.base.isFunc(cb) && cb(_sub, _msg) }) }
|
sub.onexport.output = function(_sub, _msg) { can.onmotion.delay(can, function() { can.base.isFunc(cb) && cb(_sub, _msg) }) }
|
||||||
sub.run = function(event, cmds, cb) { can.runActionCommand(can.request(event, can.Option()), item.index, cmds, function(msg) {
|
sub.run = function(event, cmds, cb) { can.runActionCommand(can.request(event, can.Option()), item.index, cmds, function(msg) {
|
||||||
if (sub == (msg._can._fields? msg._can.sup: msg._can)) {
|
if (sub == (msg._can._fields? msg._can.sup: msg._can)) { if (cmds && cmds[0] == ctx.ACTION) {
|
||||||
if (cmds && cmds[0] == ctx.ACTION) { if (can.base.isIn(cmds[1], mdb.IMPORT, mdb.EXPORT, "imports", "exports")) { return can.user.toastSuccess(can, cmds[1]), sub.Update() } }
|
if (can.base.isIn(cmds[1], mdb.IMPORT, mdb.EXPORT, "imports", "exports")) { return can.user.toastSuccess(can, cmds[1]), sub.Update() }
|
||||||
} can.base.isFunc(cb) && cb(msg)
|
} } can.base.isFunc(cb) && cb(msg)
|
||||||
}) }
|
}) }
|
||||||
}, target)
|
}, target)
|
||||||
})
|
})
|
||||||
@ -235,6 +239,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) { can.onmotion.cl
|
|||||||
},
|
},
|
||||||
layout: function(can) { if (can.isSimpleMode()) { return can.page.style(can, can.ui.content, html.WIDTH, can.ConfWidth()) }
|
layout: function(can) { if (can.isSimpleMode()) { return can.page.style(can, can.ui.content, html.WIDTH, can.ConfWidth()) }
|
||||||
if (can.isCmdMode()) { can.ConfHeight(can.page.height()), can.ConfWidth(can.page.width()) }
|
if (can.isCmdMode()) { can.ConfHeight(can.page.height()), can.ConfWidth(can.page.width()) }
|
||||||
|
can.isCmdMode() && can.misc.sessionStorage(can, "web.code.inner:project", can.page.isDisplay(can.ui.project)? "": html.HIDE)
|
||||||
// can.ui.size = {profile: can.db.profile_size[can.onexport.keys(can)]||0.5, display: can.db.display_size[can.onexport.keys(can)]||3*html.ACTION_HEIGHT}
|
// can.ui.size = {profile: can.db.profile_size[can.onexport.keys(can)]||0.5, display: can.db.display_size[can.onexport.keys(can)]||3*html.ACTION_HEIGHT}
|
||||||
can.ui.size = {profile: can.db.profile_size[can.onexport.keys(can)]||0.5, display: can.db.display_size[can.onexport.keys(can)]}
|
can.ui.size = {profile: can.db.profile_size[can.onexport.keys(can)]||0.5, display: can.db.display_size[can.onexport.keys(can)]}
|
||||||
can.ui.layout(can.ConfHeight(), can.ConfWidth(), 0, function(content_height, content_width) {
|
can.ui.layout(can.ConfHeight(), can.ConfWidth(), 0, function(content_height, content_width) {
|
||||||
@ -407,6 +412,13 @@ Volcanos(chat.ONACTION, {list: ["调试", "首页", "官网", "源码", "百度"
|
|||||||
if (can.page.isDisplay(can.ui.display)) { return can.onmotion.hidden(can, can.ui.display), can.onimport.layout(can) }
|
if (can.page.isDisplay(can.ui.display)) { return can.onmotion.hidden(can, can.ui.display), can.onimport.layout(can) }
|
||||||
if (can.page.isDisplay(can.ui.profile)) { return can.onmotion.hidden(can, can.ui.profile), can.onimport.layout(can) }
|
if (can.page.isDisplay(can.ui.profile)) { return can.onmotion.hidden(can, can.ui.profile), can.onimport.layout(can) }
|
||||||
},
|
},
|
||||||
|
refresh: function(event, can, button) {
|
||||||
|
can.run(event, [can.Option(nfs.PATH), can.Option(nfs.FILE)], function(msg) { can._msg.result = msg.result
|
||||||
|
can.onmotion.clear(can, can.ui.content)
|
||||||
|
can.db.max = 0, can.core.List(msg.Result().split(ice.NL), function(item) { can.onaction.appendLine(can, item) })
|
||||||
|
can.user.toastSuccess(can)
|
||||||
|
})
|
||||||
|
},
|
||||||
reback: function(can) {
|
reback: function(can) {
|
||||||
var last = can.db._history.pop(); last && can.onimport.tabview(can, last.path, last.file, last.line)
|
var last = can.db._history.pop(); last && can.onimport.tabview(can, last.path, last.file, last.line)
|
||||||
},
|
},
|
||||||
|
@ -44,8 +44,8 @@ Volcanos(chat.ONFIGURE, {
|
|||||||
))
|
))
|
||||||
}) },
|
}) },
|
||||||
favor: function(can, target, zone) { can.onimport._zone(can, zone, web.CHAT_FAVOR, function(sub, msg) {
|
favor: function(can, target, zone) { can.onimport._zone(can, zone, web.CHAT_FAVOR, function(sub, msg) {
|
||||||
sub.onexport.record = function(sub, value, key, item) { switch (item.type) {
|
sub.onexport.record = function(sub, value, key, item, event) { switch (item.type) {
|
||||||
case mdb.LINK: can.onimport.tabview(can, "", item.text, web.DREAM); break
|
case mdb.LINK: event.shiftKey? can.user.open(item.text): can.onimport.tabview(can, "", item.text, web.DREAM); break
|
||||||
case nfs.FILE: var ls = can.onexport.split(can, item.text); can.onimport.tabview(can, ls[0], ls[1]); break
|
case nfs.FILE: var ls = can.onexport.split(can, item.text); can.onimport.tabview(can, ls[0], ls[1]); break
|
||||||
case ctx.INDEX: can.onimport.tabview(can, "", item.text, ctx.INDEX); break
|
case ctx.INDEX: can.onimport.tabview(can, "", item.text, ctx.INDEX); break
|
||||||
case ssh.SHELL: can.onimport.tabview(can, "", [web.CODE_XTERM, item.text].join(","), ctx.INDEX); break
|
case ssh.SHELL: can.onimport.tabview(can, "", [web.CODE_XTERM, item.text].join(","), ctx.INDEX); break
|
||||||
@ -60,7 +60,7 @@ Volcanos(chat.ONFIGURE, {
|
|||||||
sub.onexport.record = function(sub, value, key) { can.onimport.tabview(can, can.Option(nfs.PATH), value, web.DREAM) }
|
sub.onexport.record = function(sub, value, key) { can.onimport.tabview(can, can.Option(nfs.PATH), value, web.DREAM) }
|
||||||
}) },
|
}) },
|
||||||
})
|
})
|
||||||
Volcanos(chat.ONACTION, {list: ["编译", "调试", "首页", "收藏", "提交", "计划"],
|
Volcanos(chat.ONACTION, {list: ["编译", "调试", "首页", "提交", "收藏", "计划"],
|
||||||
_daemon: function(event, can, arg) { switch (arg[0]) {
|
_daemon: function(event, can, arg) { switch (arg[0]) {
|
||||||
case web.DREAM: can.runAction({}, arg[0], arg.slice(1), function(msg) { can.onimport.tabview(can, can.Option(nfs.PATH), can.core.Keys(can.misc.Search(can, ice.POD), msg.Option(mdb.NAME)), web.DREAM) }); break
|
case web.DREAM: can.runAction({}, arg[0], arg.slice(1), function(msg) { can.onimport.tabview(can, can.Option(nfs.PATH), can.core.Keys(can.misc.Search(can, ice.POD), msg.Option(mdb.NAME)), web.DREAM) }); break
|
||||||
case code.XTERM: can.runAction({}, arg[0], arg.slice(1), function(msg) { can.onimport.tabview(can, ctx.COMMAND, code.XTERM, msg.Result()) }); break
|
case code.XTERM: can.runAction({}, arg[0], arg.slice(1), function(msg) { can.onimport.tabview(can, ctx.COMMAND, code.XTERM, msg.Result()) }); break
|
||||||
@ -112,12 +112,12 @@ Volcanos(chat.ONACTION, {list: ["编译", "调试", "首页", "收藏", "提交"
|
|||||||
var sub = can.db.toolkit[list[0]]; sub? sub.select(): can.onimport.exts(can, list[0])
|
var sub = can.db.toolkit[list[0]]; sub? sub.select(): can.onimport.exts(can, list[0])
|
||||||
}) },
|
}) },
|
||||||
|
|
||||||
"编译": function(event, can) { can.onaction.compile(event, can, "compile") },
|
"编译": function(event, can) { can.onaction.compile(event, can, code.COMPILE) },
|
||||||
"调试": function(event, can) { can.user.opens(location.href.replace("debug=true", "debug=false")) },
|
"调试": function(event, can) { can.onimport.tabview(can, "", can.base.MergeURL(location.href, log.DEBUG, ice.TRUE), web.DREAM) },
|
||||||
"首页": function(event, can) { can.user.open(location.origin+(can.misc.Search(can, log.DEBUG) == ice.TRUE? "?debug=true": "")) },
|
"首页": function(event, can) { can.onimport.tabview(can, "", location.origin+(can.misc.Search(can, log.DEBUG) == ice.TRUE? "?debug=true": ""), web.DREAM) },
|
||||||
"收藏": function(event, can) { can.onimport.tabview(can, can.Option(nfs.PATH), "web.chat.favor", ctx.INDEX) },
|
"提交": function(event, can) { can.onimport.tabview(can, "", web.CODE_GIT_STATUS, ctx.INDEX) },
|
||||||
"提交": function(event, can) { can.onimport.tabview(can, can.Option(nfs.PATH), "web.code.git.status", ctx.INDEX) },
|
"收藏": function(event, can) { can.onimport.tabview(can, "", web.CHAT_FAVOR, ctx.INDEX) },
|
||||||
"计划": function(event, can) { can.onimport.tabview(can, can.Option(nfs.PATH), "web.team.plan", ctx.INDEX) },
|
"计划": function(event, can) { can.onimport.tabview(can, "", web.TEAM_PLAN, ctx.INDEX) },
|
||||||
|
|
||||||
"全屏": function(event, can) { can._target.requestFullScreen() },
|
"全屏": function(event, can) { can._target.requestFullScreen() },
|
||||||
"录屏": function(event, can) { window.openapp("QuickTime Player") },
|
"录屏": function(event, can) { window.openapp("QuickTime Player") },
|
||||||
@ -275,9 +275,8 @@ Volcanos(chat.ONKEYMAP, {
|
|||||||
}),
|
}),
|
||||||
J: shy("合并两行", function(can) { var next = can.current.next(); if (!next) { return }
|
J: shy("合并两行", function(can) { var next = can.current.next(); if (!next) { return }
|
||||||
var line = can.onaction.selectLine(can), text = can.current.text(), rest = can.onexport.text(can, next)
|
var line = can.onaction.selectLine(can), text = can.current.text(), rest = can.onexport.text(can, next)
|
||||||
can.ui.current.value = can.current.text(text.trimRight()+(
|
can.ui.current.value = can.current.text(text.trimRight()+(can.base.endWith(text.trim(), "(", "[")||can.base.beginWith(rest.trim(), ",", "]", ")")? "": ice.SP)+rest.trimLeft())
|
||||||
can.base.endWith(text.trim(), "(", "[")||can.base.beginWith(rest.trim(), ",", "]", ")")?
|
can.onkeymap.cursorMove(can.ui.current, text.length, 0), can.onaction.deleteLine(can, next)
|
||||||
"": ice.SP)+rest.trimLeft()), can.onaction.deleteLine(can, next)
|
|
||||||
can.db.undo.push(function() { can.onaction.modifyLine(can, line, text), can.onaction.insertLine(can, rest, line+1) })
|
can.db.undo.push(function() { can.onaction.modifyLine(can, line, text), can.onaction.insertLine(can, rest, line+1) })
|
||||||
}),
|
}),
|
||||||
".": shy("重复操作", function(can) { var cb = can.db.redo.pop(); cb && cb() }),
|
".": shy("重复操作", function(can) { var cb = can.db.redo.pop(); cb && cb() }),
|
||||||
@ -300,7 +299,7 @@ Volcanos(chat.ONKEYMAP, {
|
|||||||
insert_ctrl: {
|
insert_ctrl: {
|
||||||
f: shy("光标右移", function(can, target) { can.user.isWindows && can.onkeymap.cursorMove(target, 1) }),
|
f: shy("光标右移", function(can, target) { can.user.isWindows && can.onkeymap.cursorMove(target, 1) }),
|
||||||
b: shy("光标左移", function(can, target) { can.user.isWindows && can.onkeymap.cursorMove(target, -1) }),
|
b: shy("光标左移", function(can, target) { can.user.isWindows && can.onkeymap.cursorMove(target, -1) }),
|
||||||
a: shy("光标行首", function(can, target) { can.user.isWindows && can.onkeymap.cursorMove(target, 0, 0) }),
|
a: shy("光标行首", function(can, target) { for (var i = 0; i < target.value.length; i++) { if (target.value[i] != "\t") { break } } can.onkeymap.cursorMove(target, i, 0), can.onkeymap.prevent(event) }),
|
||||||
e: shy("光标行尾", function(can, target) { can.user.isWindows && can.onkeymap.cursorMove(target, 0, -1) }),
|
e: shy("光标行尾", function(can, target) { can.user.isWindows && can.onkeymap.cursorMove(target, 0, -1) }),
|
||||||
d: shy("删除字符", function(can, target) { can.user.isWindows && can.onkeymap.deleteText(target, target.selectionStart, 1) }),
|
d: shy("删除字符", function(can, target) { can.user.isWindows && can.onkeymap.deleteText(target, target.selectionStart, 1) }),
|
||||||
},
|
},
|
||||||
|
@ -84,7 +84,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(
|
|||||||
sub.run = function(event, cmds, cb, silent) { var msg = sub.request(event)
|
sub.run = function(event, cmds, cb, silent) { var msg = sub.request(event)
|
||||||
if (msg.Option(nfs.PATH) == can.Option(nfs.PATH)) { msg.Option(nfs.PATH, "") }
|
if (msg.Option(nfs.PATH) == can.Option(nfs.PATH)) { msg.Option(nfs.PATH, "") }
|
||||||
can.runAction(event, chat.STORY, [meta.type, meta.name, meta.text].concat(cmds), function(msg) {
|
can.runAction(event, chat.STORY, [meta.type, meta.name, meta.text].concat(cmds), function(msg) {
|
||||||
cb(msg), can.sup.onexport.output(can.sup, msg)
|
cb(msg), can.sup.onexport.output && can.sup.onexport.output(can.sup, msg)
|
||||||
}, true)
|
}, true)
|
||||||
}, can._plugins = (can._plugins||[]).concat([sub])
|
}, can._plugins = (can._plugins||[]).concat([sub])
|
||||||
|
|
||||||
|
@ -31,7 +31,9 @@ Volcanos(chat.ONIMPORT, {
|
|||||||
}, document.body) }) },
|
}, document.body) }) },
|
||||||
_hold: function(can, msg, arg) { arg && can.user.toast(can, arg) },
|
_hold: function(can, msg, arg) { arg && can.user.toast(can, arg) },
|
||||||
_back: function(can) { can._history.pop(); for (var index = 0, his = can._history.pop(); his; his = can._history.pop()) { if (his[0] == ctx.ACTION) { continue }
|
_back: function(can) { can._history.pop(); for (var index = 0, his = can._history.pop(); his; his = can._history.pop()) { if (his[0] == ctx.ACTION) { continue }
|
||||||
can.page.SelectArgs(can, can._option, "", function(item) { item.value = his[index++]||"" })
|
can.page.SelectArgs(can, can._option, "", function(item) { item.value = his[index++]||""
|
||||||
|
can.page.Select(can, item.parentNode, "span.value", function(target) { target.innerText = target.value||"" })
|
||||||
|
})
|
||||||
can.page.SelectArgs(can, can._action, "", function(item) { item.value = his[index++]||"" })
|
can.page.SelectArgs(can, can._action, "", function(item) { item.value = his[index++]||"" })
|
||||||
can.Update(); break
|
can.Update(); break
|
||||||
} !his && can.Update() },
|
} !his && can.Update() },
|
||||||
@ -52,8 +54,9 @@ Volcanos(chat.ONIMPORT, {
|
|||||||
var sub = can.core.Value(can, chat._OUTPUTS_CURRENT); if (!sub) { return auto } sub.ConfHeight(can.ConfHeight()), sub.ConfWidth(can.ConfWidth())
|
var sub = can.core.Value(can, chat._OUTPUTS_CURRENT); if (!sub) { return auto } sub.ConfHeight(can.ConfHeight()), sub.ConfWidth(can.ConfWidth())
|
||||||
if (mode) { sub.Mode(can.Mode(mode)), sub.onlayout[mode](sub) } else { sub.onlayout._init(sub) } return auto
|
if (mode) { sub.Mode(can.Mode(mode)), sub.onlayout[mode](sub) } else { sub.onlayout._init(sub) } return auto
|
||||||
},
|
},
|
||||||
change: function(event, can, name, value, cb) { return can.page.SelectArgs(can, can._option, "", function(input) {
|
change: function(event, can, name, value, cb) { 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
|
can.page.Select(can, input.parentNode, "span.value", function(target) { target.innerText = value })
|
||||||
|
return input.value = value, can.Update(event, can.Input([], true), cb), input
|
||||||
})[0] },
|
})[0] },
|
||||||
})
|
})
|
||||||
Volcanos(chat.ONACTION, {list: [
|
Volcanos(chat.ONACTION, {list: [
|
||||||
|
@ -8,8 +8,8 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(
|
|||||||
can.page.Select(can, can.page.Create(can, html.DIV, value.action), html.INPUT, function(target) {
|
can.page.Select(can, can.page.Create(can, html.DIV, value.action), html.INPUT, function(target) {
|
||||||
action.push(target.name), target.name != target.value && can.user.trans(can, kit.Dict(target.name, target.value))
|
action.push(target.name), target.name != target.value && can.user.trans(can, kit.Dict(target.name, target.value))
|
||||||
})
|
})
|
||||||
can.onimport.item(can, {name: can.page.Color(value[can.Conf(mdb.FIELD)||mdb.VIEW]||value[mdb.NAME]||value[mdb.TEXT]), title: value[mdb.TEXT]}, function() {
|
can.onimport.item(can, {name: can.page.Color(value[can.Conf(mdb.FIELD)||mdb.VIEW]||value[mdb.NAME]||value[mdb.TEXT]), title: value[mdb.TEXT]}, function(event) {
|
||||||
can.sup.onexport.record(can, value.name, mdb.NAME, value)
|
can.sup.onexport.record(can, value.name, mdb.NAME, value, event)
|
||||||
}, function() { return shy(action, function(event, button, meta, carte) { can.misc.Event(event, can, function(msg) {
|
}, function() { return shy(action, function(event, button, meta, carte) { can.misc.Event(event, can, function(msg) {
|
||||||
can.sup.onexport.action(can, button, value) || can.run(event, [ctx.ACTION, button], function(msg) { can.sup.onimport._process(can.sup, msg) || can.Update() }), carte.close()
|
can.sup.onexport.action(can, button, value) || can.run(event, [ctx.ACTION, button], function(msg) { can.sup.onimport._process(can.sup, msg) || can.Update() }), carte.close()
|
||||||
}, value) }) })
|
}, value) }) })
|
||||||
|
11
proto.js
11
proto.js
@ -72,7 +72,7 @@ var mdb = {
|
|||||||
}
|
}
|
||||||
var web = {CHAT: "chat",
|
var web = {CHAT: "chat",
|
||||||
SHARE: "share", SPACE: "space", DREAM: "dream",
|
SHARE: "share", SPACE: "space", DREAM: "dream",
|
||||||
WEBSITE: "website", DRAW: "draw", CLEAR: "clear", REFRESH: "refresh", RESIZE: "resize", FILTER: "filter",
|
WEBSITE: "website", DRAW: "draw", PLAY: "play", CLEAR: "clear", REFRESH: "refresh", RESIZE: "resize", FILTER: "filter",
|
||||||
CANCEL: "cancel", SUBMIT: "submit", UPLOAD: "upload", DOWNLOAD: "download", TOIMAGE: "toimage",
|
CANCEL: "cancel", SUBMIT: "submit", UPLOAD: "upload", DOWNLOAD: "download", TOIMAGE: "toimage",
|
||||||
SHARE_CACHE: "/share/cache/", SHARE_LOCAL: "/share/local/",
|
SHARE_CACHE: "/share/cache/", SHARE_LOCAL: "/share/local/",
|
||||||
|
|
||||||
@ -80,11 +80,13 @@ var web = {CHAT: "chat",
|
|||||||
Accept: "Accept", ContentType: "Content-Type", ContentJSON: "application/json", ContentFORM: "application/x-www-form-urlencoded",
|
Accept: "Accept", ContentType: "Content-Type", ContentJSON: "application/json", ContentFORM: "application/x-www-form-urlencoded",
|
||||||
VIDEO_WEBM: "video/webm",
|
VIDEO_WEBM: "video/webm",
|
||||||
|
|
||||||
CODE_INNER: "web.code.inner",
|
CODE_XTERM: "web.code.git.status",
|
||||||
CODE_VIMER: "web.code.vimer",
|
|
||||||
CODE_XTERM: "web.code.xterm",
|
CODE_XTERM: "web.code.xterm",
|
||||||
WIKI_WORD: "web.wiki.word",
|
CODE_VIMER: "web.code.vimer",
|
||||||
|
CODE_INNER: "web.code.inner",
|
||||||
CHAT_FAVOR: "web.chat.favor",
|
CHAT_FAVOR: "web.chat.favor",
|
||||||
|
WIKI_WORD: "web.wiki.word",
|
||||||
|
TEAM_PLAN: "web.team.plan",
|
||||||
}
|
}
|
||||||
var aaa = {
|
var aaa = {
|
||||||
LOGIN: "login", LOGOUT: "logout", INVITE: "invite", TOKEN: "token",
|
LOGIN: "login", LOGOUT: "logout", INVITE: "invite", TOKEN: "token",
|
||||||
@ -124,6 +126,7 @@ var cli = {
|
|||||||
COLOR: "color", BLACK: "black", WHITE: "white", BLUE: "blue", RED: "red", GRAY: "gray", CYAN: "cyan", GREEN: "green", PURPLE: "purple", YELLOW: "yellow",
|
COLOR: "color", BLACK: "black", WHITE: "white", BLUE: "blue", RED: "red", GRAY: "gray", CYAN: "cyan", GREEN: "green", PURPLE: "purple", YELLOW: "yellow",
|
||||||
MAGENTA: "magenta", SILVER: "silver", ALICEBLUE: "aliceblue", TRANSPARENT: "transparent",
|
MAGENTA: "magenta", SILVER: "silver", ALICEBLUE: "aliceblue", TRANSPARENT: "transparent",
|
||||||
MAKE: "make", MAIN: "main", EXEC: "exec", DONE: "done", COST: "cost", FROM: "from", CLEAR: "clear",
|
MAKE: "make", MAIN: "main", EXEC: "exec", DONE: "done", COST: "cost", FROM: "from", CLEAR: "clear",
|
||||||
|
PLAY: "play",
|
||||||
}
|
}
|
||||||
var log = {
|
var log = {
|
||||||
INFO: "info", WARN: "warn", ERROR: "error", DEBUG: "debug", TRACE: "trace",
|
INFO: "info", WARN: "warn", ERROR: "error", DEBUG: "debug", TRACE: "trace",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user