forked from x/volcanos
opt island
This commit is contained in:
parent
9232ee3c5d
commit
63144fe733
14
frame.js
14
frame.js
@ -80,7 +80,7 @@ Volcanos(chat.ONDAEMON, {_init: function(can, name, type, cbs) { if (can.user.is
|
|||||||
toast: function(can, sub, arg, cb) { can.core.CallFunc(can.user.toast, [sub].concat(arg)) },
|
toast: function(can, sub, arg, cb) { can.core.CallFunc(can.user.toast, [sub].concat(arg)) },
|
||||||
grow: function(can, msg, sub, arg) { var _can = sub._fields && sub.sup? sub.sup: sub; _can.onimport._grow(_can, msg, arg.join("")) },
|
grow: function(can, msg, sub, arg) { var _can = sub._fields && sub.sup? sub.sup: sub; _can.onimport._grow(_can, msg, arg.join("")) },
|
||||||
rich: function(can, msg, sub, arg) { var _can = sub._fields && sub.sup? sub.sup: sub; _can.onimport._rich(_can, msg, arg) },
|
rich: function(can, msg, sub, arg) { var _can = sub._fields && sub.sup? sub.sup: sub; _can.onimport._rich(_can, msg, arg) },
|
||||||
refresh: function(can, sub) { can.base.isFunc(sub.Update) && sub.Update(), can.user.toastSuccess(can) },
|
refresh: function(can, sub) { can.base.isFunc(sub.Update) && sub.Update() },
|
||||||
action: function(can, msg, sub, arg) {
|
action: function(can, msg, sub, arg) {
|
||||||
if (arg[0] == "ctrl") { var list = []
|
if (arg[0] == "ctrl") { var list = []
|
||||||
can.page.Select(can, can._root._target, html.INPUT, function(target, index) { list[index] = target
|
can.page.Select(can, can._root._target, html.INPUT, function(target, index) { list[index] = target
|
||||||
@ -593,10 +593,14 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
plugin: function(can, meta, cb, target, field) { meta = meta||{}, meta.index = meta.index||can.core.Keys(meta.ctx, meta.cmd)||ice.CAN_PLUGIN, meta._space = meta._space||can.ConfSpace()
|
plugin: function(can, meta, cb, target, field) { meta = meta||{}, meta.index = meta.index||can.core.Keys(meta.ctx, meta.cmd)||ice.CAN_PLUGIN, meta._space = meta._space||can.ConfSpace()
|
||||||
var res = {}; function _cb(sub, meta, skip) { kit.proto(res, sub), cb && cb(sub, meta, skip) }
|
var res = {}; function _cb(sub, meta, skip) { kit.proto(res, sub), cb && cb(sub, meta, skip) }
|
||||||
if (meta.inputs && meta.inputs.length > 0 || meta.meta) { can.onappend._plugin(can, {meta: meta.meta, list: meta.list}, meta, _cb, target, field); return res }
|
if (meta.inputs && meta.inputs.length > 0 || meta.meta) { can.onappend._plugin(can, {meta: meta.meta, list: meta.list}, meta, _cb, target, field); return res }
|
||||||
var value = can.onengine.plugin(can, meta.index); if (value) { can.onappend._plugin(can, value, meta, function(sub, meta, skip) {
|
function _plugin(_meta) { var value = can.onengine.plugin(can, _meta.index)
|
||||||
value.meta && value.meta._init && value.meta._init(sub, meta), _cb(sub, meta, skip) }, target, field); return res }
|
if (value) { can.onappend._plugin(can, value, _meta, function(sub, meta, skip) {
|
||||||
can.runAction(can.request({}, {_method: http.GET, pod: meta.space})._caller(), ctx.COMMAND, [meta.index], function(msg) {
|
value.meta && value.meta._init && value.meta._init(sub, meta), _cb(sub, meta, skip)
|
||||||
if (msg.Length() == 0) { return can.misc.Warn("not found", meta.index), can.onappend._plugin(can, {index: "can._plugin", style: html.HIDE}, meta, _cb, target, field) }
|
}, target, field); return true }
|
||||||
|
} if (_plugin(meta)) { return res }
|
||||||
|
can.runAction(can.request({}, {_method: http.GET, pod: meta.space, _failure: function() {
|
||||||
|
return can.misc.isDebug(can) && can.misc.Warn("not found", meta.index), _plugin({type: meta.type, index: "can._notfound", args: [meta.index, meta.space]})
|
||||||
|
}})._caller(), ctx.COMMAND, [meta.index], function(msg) { if (msg.Length() == 0) { return msg._failure() }
|
||||||
msg.Table(function(value) { can.onappend._plugin(can, value, meta, _cb, target, field) })
|
msg.Table(function(value) { can.onappend._plugin(can, value, meta, _cb, target, field) })
|
||||||
}); return res
|
}); return res
|
||||||
},
|
},
|
||||||
|
@ -582,6 +582,7 @@ body.print select, body.print input[type=text], body.print textarea { box-shadow
|
|||||||
body.print fieldset.draw div.output { background-color:lightgray; }
|
body.print fieldset.draw div.output { background-color:lightgray; }
|
||||||
body.print fieldset.draw div.output div.content svg { background-color:lightgray; }
|
body.print fieldset.draw div.output div.content svg { background-color:lightgray; }
|
||||||
/* misc */
|
/* misc */
|
||||||
|
body:not(.debug) fieldset.plugin.can._notfound { display:none; }
|
||||||
fieldset.inner.float>div.status { display:none; }
|
fieldset.inner.float>div.status { display:none; }
|
||||||
fieldset.inner>div.output>div.project div.item.modify { background-color:#00800036; }
|
fieldset.inner>div.output>div.project div.item.modify { background-color:#00800036; }
|
||||||
fieldset.vimer>div.output>div.project div.item.modify { background-color:#00800036; }
|
fieldset.vimer>div.output>div.project div.item.modify { background-color:#00800036; }
|
||||||
|
@ -143,8 +143,8 @@ Volcanos("misc", {
|
|||||||
if (xhr.responseText.indexOf("warn: ")) { var res = {result: [xhr.responseText]} } else { var res = {result: [xhr.responseText]} }
|
if (xhr.responseText.indexOf("warn: ")) { var res = {result: [xhr.responseText]} } else { var res = {result: [xhr.responseText]} }
|
||||||
} msg.Option("_cost", new Date() - begin)
|
} msg.Option("_cost", new Date() - begin)
|
||||||
if (xhr.status == 200) { return msg.detail || (msg.detail = res.detail), can.base.isFunc(cb) && cb(msg.Copy(res)) }
|
if (xhr.status == 200) { return msg.detail || (msg.detail = res.detail), can.base.isFunc(cb) && cb(msg.Copy(res)) }
|
||||||
can.user.toastFailure(msg._can||can, xhr.response), can.misc.Warn(xhr.status, res, url, form)
|
typeof msg._failure == code.FUNCTION && msg._failure()
|
||||||
cbs && cbs(xhr)
|
can.user.toastFailure(msg._can||can, xhr.response), can.misc.Warn(xhr.status, res, url, form), cbs && cbs(xhr)
|
||||||
}, xhr.setRequestHeader(http.Accept, msg._accept||http.ApplicationJSON)
|
}, xhr.setRequestHeader(http.Accept, msg._accept||http.ApplicationJSON)
|
||||||
if (msg._upload) { var data = new FormData(); can.core.ItemForm(form, function(v, i, k) { data.append(k, v) })
|
if (msg._upload) { var data = new FormData(); can.core.ItemForm(form, function(v, i, k) { data.append(k, v) })
|
||||||
data.append(ice.MSG_UPLOAD, web.UPLOAD), data.append(web.UPLOAD, msg._upload)
|
data.append(ice.MSG_UPLOAD, web.UPLOAD), data.append(web.UPLOAD, msg._upload)
|
||||||
|
@ -53,12 +53,13 @@ Volcanos("user", {
|
|||||||
},
|
},
|
||||||
close: function(url) { return window.close() },
|
close: function(url) { return window.close() },
|
||||||
theme: function(can, name) { can.base.isString(name) && (name = [name]) || name || []
|
theme: function(can, name) { can.base.isString(name) && (name = [name]) || name || []
|
||||||
|
name.push(html.WIDTH+parseInt((can.page.width()+32)/320))
|
||||||
|
can.misc.isDebug(can) && name.push(log.DEBUG)
|
||||||
can.user.info.userrole && name.push(can.user.info.userrole)
|
can.user.info.userrole && name.push(can.user.info.userrole)
|
||||||
can.user.language(can) && name.push(can.core.Split(can.user.language(can), "-")[0])
|
can.user.language(can) && name.push(can.core.Split(can.user.language(can), "-")[0])
|
||||||
can.user.mod.isCmd && name.push(chat.CMD), can.user.mod.cmd && name.push(can.user.mod.cmd.replaceAll(".", " "))
|
can.user.mod.isCmd && name.push(chat.CMD), can.user.mod.cmd && name.push(can.user.mod.cmd.replaceAll(".", " "))
|
||||||
can.user.isMobile && name.push(html.MOBILE) && can.user.isLandscape() && name.push(html.LANDSCAPE)
|
can.user.isMobile && name.push(html.MOBILE) && can.user.isLandscape() && name.push(html.LANDSCAPE)
|
||||||
can.user.isWebview && name.push(html.WEBVIEW), can.user.isWindows && name.push("windows")
|
can.user.isWebview && name.push(html.WEBVIEW), can.user.isWindows && name.push("windows")
|
||||||
name.push(html.WIDTH+parseInt((can.page.width()+32)/320))
|
|
||||||
can.page.styleClass(can, document.body, name.join(lex.SP))
|
can.page.styleClass(can, document.body, name.join(lex.SP))
|
||||||
},
|
},
|
||||||
title: function(text) { if (window.webview) { return title(text) } return text && (document.title = text), document.title },
|
title: function(text) { if (window.webview) { return title(text) } return text && (document.title = text), document.title },
|
||||||
|
@ -3,10 +3,10 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg) { var river = can.Conf(chat.R
|
|||||||
can.onmotion.clear(can), can.core.Next(msg.Table(), function(item, next, index) { item.type = chat.PLUGIN, item.mode = can.Mode(); if (item.deleted == ice.TRUE) { return next() }
|
can.onmotion.clear(can), can.core.Next(msg.Table(), function(item, next, index) { item.type = chat.PLUGIN, item.mode = can.Mode(); if (item.deleted == ice.TRUE) { return next() }
|
||||||
item.width = can.ConfWidth()-can.Conf(html.MARGIN_X); if (item.style == html.OUTPUT) { item.width = can.ConfWidth()-2*html.PLUGIN_MARGIN-2*html.PLUGIN_PADDING }
|
item.width = can.ConfWidth()-can.Conf(html.MARGIN_X); if (item.style == html.OUTPUT) { item.width = can.ConfWidth()-2*html.PLUGIN_MARGIN-2*html.PLUGIN_PADDING }
|
||||||
if (msg.Length() == 1) { item.height = can.ConfHeight()-can.Conf(html.MARGIN_Y) } list.length == 0 && item.index == "web.dream" && (list = [river, storm, item.index])
|
if (msg.Length() == 1) { item.height = can.ConfHeight()-can.Conf(html.MARGIN_Y) } list.length == 0 && item.index == "web.dream" && (list = [river, storm, item.index])
|
||||||
can.onappend.plugin(can, item, function(sub, meta, skip) {
|
can.onappend.plugin(can, item, function(sub, meta, skip) { if (meta.index == "can._notfound" && !can.misc.isDebug(can)) { return skip || next() }
|
||||||
sub.onexport.output = function() { can.onexport.isauto(can) && can.page.style(can, sub._output, html.HEIGHT, "", html.MAX_HEIGHT, "") }
|
sub.onexport.output = function() { can.onexport.isauto(can) && can.page.style(can, sub._output, html.HEIGHT, "", html.MAX_HEIGHT, "") }
|
||||||
sub.onaction._close = function() { can.onengine.signal(can, chat.ONACTION_REMOVE, can.request({river: river, storm: storm}, item)), can.page.Remove(can, sub._target) }
|
sub.onaction._close = function() { can.onengine.signal(can, chat.ONACTION_REMOVE, can.request({river: river, storm: storm}, item)), can.page.Remove(can, sub._target) }
|
||||||
sub.run = function(event, cmds, cb) { return can.run(can.request(event, {pod: meta.space||meta.pod}), (can.base.beginWith(meta.index, "can.")? []: [river, storm, meta.id||meta.index]).concat(cmds), cb) }
|
sub.run = function(event, cmds, cb) { return can.run(can.request(event, {pod: meta.space||meta.pod}), (can.base.beginWith(meta.index, "can.")? [meta.index]: [river, storm, meta.id||meta.index]).concat(cmds), cb) }
|
||||||
can.user.isChrome && (can.ondaemon._list[sub._daemon = can.core.Keys(river, storm, index)] = sub)
|
can.user.isChrome && (can.ondaemon._list[sub._daemon = can.core.Keys(river, storm, index)] = sub)
|
||||||
can._plugins = (can._plugins||[]).concat([sub]), can.onimport._tabs(can, sub, meta), skip || next()
|
can._plugins = (can._plugins||[]).concat([sub]), can.onimport._tabs(can, sub, meta), skip || next()
|
||||||
})
|
})
|
||||||
@ -202,21 +202,9 @@ Volcanos(chat.ONKEYMAP, {
|
|||||||
toggleLayout: function(can, layout) { can.onaction.layout(can, can.onexport.layout(can) == layout? ice.AUTO: layout) },
|
toggleLayout: function(can, layout) { can.onaction.layout(can, can.onexport.layout(can) == layout? ice.AUTO: layout) },
|
||||||
})
|
})
|
||||||
Volcanos(chat.ONPLUGIN, {
|
Volcanos(chat.ONPLUGIN, {
|
||||||
_plugin: shy("默认插件", [mdb.NAME, ice.LIST, ice.BACK]),
|
_plugin: shy("插件", [mdb.NAME, ice.LIST, ice.BACK]),
|
||||||
_filter: shy("默认插件", [web.FILTER, ice.LIST, ice.BACK]),
|
_filter: shy("表格", [web.FILTER, ice.LIST, ice.BACK]),
|
||||||
layout: shy("界面布局", {_init: function(can) { can.Option(chat.LAYOUT, can.getAction(chat.LAYOUT)) }}, ["layout:select=auto,tabs,tabview,horizon,vertical,grid,free,flow,page", ctx.RUN], function(can, msg, arg) {
|
_notfound: shy("缺失", [ctx.INDEX, web.SPACE, ice.LIST], function(can, msg, arg) { msg.Echo("not found "+arg[0]+" "+arg[1]) }),
|
||||||
can.onaction.layout(can, arg[0])
|
layout: shy("界面布局", {_init: function(can) { can.Option(chat.LAYOUT, can.getAction(chat.LAYOUT)) }}, ["layout:select=auto,tabs,tabview,horizon,vertical,grid,free,flow,page", ctx.RUN], function(can, msg, arg) { can.onaction.layout(can, arg[0]) }),
|
||||||
}),
|
|
||||||
"parse": shy("生成网页", {
|
|
||||||
"show": function(can, msg, arg) { var name = arg[1]||ice.CAN; can.isCmdMode() && can.user.title(name)
|
|
||||||
arg && arg[0] && Volcanos(name, {_follow: can.core.Keys(can._follow, name)}, [chat.PLUGIN_STORY+"parse.js"], function(sub) {
|
|
||||||
sub.run = can.run, sub.Option = function() {}
|
|
||||||
can.isCmdMode() && sub.ConfHeight(can.page.height())
|
|
||||||
can.onengine.listen(can, "menu", function(msg) { console.log(msg) })
|
|
||||||
sub.onappend.parse(sub, sub.onappend._parse(sub, arg[0], name, sub.ConfHeight()), can._output)
|
|
||||||
})
|
|
||||||
},
|
|
||||||
}, [mdb.TEXT, mdb.NAME, "show:button@auto", "clear:button"]),
|
|
||||||
"nfs.save": shy("保存文件", {"save": function(can, msg, arg) { can.user.downloads(can, arg[1], arg[0]) }}, ["file=hi.txt", "text:textarea='hello world'", "save:button"]),
|
|
||||||
})
|
})
|
||||||
})()
|
})()
|
||||||
|
4
proto.js
4
proto.js
@ -41,7 +41,9 @@ var Volcanos = shy({iceberg: "", volcano: "", frame: chat.FRAME_JS, _cache: {},
|
|||||||
},
|
},
|
||||||
request: function(event) { event = event||{}, event = event._event||event
|
request: function(event) { event = event||{}, event = event._event||event
|
||||||
var msg = event._msg||can.misc.Message(event, can); event._msg = msg
|
var msg = event._msg||can.misc.Message(event, can); event._msg = msg
|
||||||
function set(key, value) { if (key == "_method") { return msg._method = value }
|
function set(key, value) {
|
||||||
|
if (key == "_method") { return msg._method = value }
|
||||||
|
if (typeof value == code.FUNCTION) { return msg[key] = value }
|
||||||
value == "" || msg.Option(key) || msg.Option(key, value)
|
value == "" || msg.Option(key) || msg.Option(key, value)
|
||||||
}
|
}
|
||||||
can.core.List(arguments, function(item, index) { if (!item || index == 0) { return }
|
can.core.List(arguments, function(item, index) { if (!item || index == 0) { return }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user