1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 16:58:06 +08:00
This commit is contained in:
IT 老营长 @云轩领航-创始人 2023-08-26 21:09:17 +08:00
parent 83924c5520
commit 4068d72b80
12 changed files with 201 additions and 27 deletions

View File

@ -107,6 +107,7 @@ var web = {CHAT: "chat",
TEAM_PLAN: "web.team.plan", TEAM_PLAN: "web.team.plan",
} }
var aaa = { var aaa = {
SESS: "sess",
USER: "user", USER: "user",
EMAIL: "email", EMAIL: "email",
LOGIN: "login", LOGOUT: "logout", INVITE: "invite", TOKEN: "token", LOGIN: "login", LOGOUT: "logout", INVITE: "invite", TOKEN: "token",

View File

@ -229,8 +229,10 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
can.onmotion.clear(can, can._option), can.onappend._option(can, {inputs: can.page.inputs(can, sub.onimport.list, html.TEXT) }) can.onmotion.clear(can, can._option), can.onappend._option(can, {inputs: can.page.inputs(can, sub.onimport.list, html.TEXT) })
} }
can.core.CallFunc([sub, chat.ONIMPORT, chat._INIT], {can: sub, msg: msg, cb: function(msg) { can.core.CallFunc([sub, chat.ONIMPORT, chat._INIT], {can: sub, msg: msg, cb: function(msg) {
action === false || can.onmotion.clear(can, can._action), sub.onappend._action(sub, can.Conf(ice.MSG_ACTION)||msg.Option(ice.MSG_ACTION), action||can._action) if (action !== false) {
action === false || sub.onappend._status(sub, sub.onexport&&sub.onexport.list||msg.Option(ice.MSG_STATUS)), can.user.isMobile || sub.onappend.tools(sub, msg) can.onmotion.clear(can, can._action), sub.onappend._action(sub, can.Conf(ice.MSG_ACTION)||msg.Option(ice.MSG_ACTION), action||can._action)
sub.onappend._status(sub, sub.onexport&&sub.onexport.list||msg.Option(ice.MSG_STATUS)), can.user.isMobile || sub.onappend.tools(sub, msg)
}
can.onappend.style(sub, sub.Conf(ctx.STYLE)), can.onmotion.story.auto(can, can._output) can.onappend.style(sub, sub.Conf(ctx.STYLE)), can.onmotion.story.auto(can, can._output)
if (can.onimport.size) { if (can.isFullMode() || can.isCmdMode()) { can.ConfHeight(can.page.height()), can.ConfWidth(can.page.width()) } if (can.onimport.size) { if (can.isFullMode() || can.isCmdMode()) { can.ConfHeight(can.page.height()), can.ConfWidth(can.page.width()) }
can.onimport.size(can, can.ConfHeight(), can.ConfWidth(), can.Conf("_auto"), can.Mode()), can.onexport.output(sub, msg) can.onimport.size(can, can.ConfHeight(), can.ConfWidth(), can.Conf("_auto"), can.Mode()), can.onexport.output(sub, msg)
@ -248,7 +250,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
}, },
field: function(can, type, item, target) { type = type||html.STORY, item = item||{} field: function(can, type, item, target) { type = type||html.STORY, item = item||{}
var name = can.core.Split(item.nick||item.name||"").pop()||""; name = can.core.Keys(item.space, name) var name = can.core.Split(item.nick||item.name||"").pop()||""; can.base.isIn(name, "server", "client", "studio") && (name = (item.index||"").split(".").slice(-2).join(".")), name = can.core.Keys(item.space, name)
var title = item.help && item.help != name && !can.user.isEnglish(can)? name+"("+can.core.Split(item.help)[0]+")": name var title = item.help && item.help != name && !can.user.isEnglish(can)? name+"("+can.core.Split(item.help)[0]+")": name
return can.page.Append(can, target||can._output, [{view: [type, html.FIELDSET], list: [{type: html.LEGEND, list: [{icon: item.icon}, {text: title}]}, {view: [html.OPTION, html.FORM]}, html.ACTION, html.OUTPUT, html.STATUS]}]) return can.page.Append(can, target||can._output, [{view: [type, html.FIELDSET], list: [{type: html.LEGEND, list: [{icon: item.icon}, {text: title}]}, {view: [html.OPTION, html.FORM]}, html.ACTION, html.OUTPUT, html.STATUS]}])
}, },
@ -371,7 +373,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
if (item.index) { item._index = count++, ui.size[item._index] = item.height||item.width if (item.index) { item._index = count++, ui.size[item._index] = item.height||item.width
can.onappend.plugin(can, item, function(sub) { can._plugins = (can._plugins||[]).concat([sub]) can.onappend.plugin(can, item, function(sub) { can._plugins = (can._plugins||[]).concat([sub])
item.layout = function(height, width) { sub.onimport.size(sub, height, width) } item.layout = function(height, width) { sub.onimport.size(sub, height, width) }
}, target, ui[item._index] = can.onappend.field(can, item.type, {name: item.index.split(nfs.PT).pop(), help: item.help}, target)._target) }, target, ui[item._index] = can.onappend.field(can, item.type, {index: item.index, name: item.index.split(nfs.PT).pop(), help: item.help}, target)._target)
} else { can.page.Append(can, target, [item]) } } else { can.page.Append(can, target, [item]) }
} }
}); return list } ui.list = append(target, type, list||[html.PROJECT, [[html.CONTENT, html.PROFILE], html.DISPLAY]]) }); return list } ui.list = append(target, type, list||[html.PROJECT, [[html.CONTENT, html.PROFILE], html.DISPLAY]])

155
index.css
View File

@ -1,4 +1,159 @@
body { body {
--ui-white: #fff;
--ui-white-p: 255,255,255;
--ui-black: #101828;
--ui-black-p: 16,24,40;
--ui-red-1: #fff1f0;
--ui-red-2: #ffccc7;
--ui-red-3: #ffa39e;
--ui-red-4: #ff7875;
--ui-red-5: #ff4d4f;
--ui-red-5-p: 255,77,79;
--ui-red-base: #f5222d;
--ui-red-6: #f5222d;
--ui-red-7: #cf1322;
--ui-red-7-p: 207,19,34;
--ui-red-8: #a8071a;
--ui-red-9: #820014;
--ui-red-10: #5c0011;
--ui-yellow-1: #feffe6;
--ui-yellow-2: #ffffb8;
--ui-yellow-3: #fffb8f;
--ui-yellow-4: #fff566;
--ui-yellow-5: #ffec3d;
--ui-yellow-base: #fadb14;
--ui-yellow-6: #fadb14;
--ui-yellow-7: #d4b106;
--ui-yellow-8: #ad8b00;
--ui-yellow-9: #876800;
--ui-yellow-10: #614700;
--ui-green-1: #e8f5e9;
--ui-green-2: #c8e6c9;
--ui-green-3: #a5d6a7;
--ui-green-4: #81c784;
--ui-green-5: #66bb6a;
--ui-green-base: #4caf50;
--ui-green-6: #4caf50;
--ui-green-6-p: 76,175,80;
--ui-green-7: #43a047;
--ui-green-8: #388e3c;
--ui-green-9: #2e7d32;
--ui-green-10: #1b5e20;
--ui-cyan-1: #e6fffb;
--ui-cyan-2: #b5f5ec;
--ui-cyan-3: #87e8de;
--ui-cyan-4: #5cdbd3;
--ui-cyan-5: #36cfc9;
--ui-cyan-base: #13c2c2;
--ui-cyan-6: #13c2c2;
--ui-cyan-7: #08979c;
--ui-cyan-8: #006d75;
--ui-cyan-9: #00474f;
--ui-cyan-10: #002329;
--ui-blue-1: #e6f7ff;
--ui-blue-2: #bae7ff;
--ui-blue-3: #91d5ff;
--ui-blue-4: #69c0ff;
--ui-blue-5: #40a9ff;
--ui-blue-base: #1890ff;
--ui-blue-6: #1890ff;
--ui-blue-6-p: 24,144,255;
--ui-blue-7: #096dd9;
--ui-blue-8: #0050b3;
--ui-blue-9: #003a8c;
--ui-blue-10: #002766;
--ui-purple-1: #f4f1fd;
--ui-purple-1-p: 244,241,253;
--ui-purple-2: #e5ddfb;
--ui-purple-3: #d1c3f8;
--ui-purple-4: #bba7f4;
--ui-purple-5: #9e81f0;
--ui-purple-base: #9373ee;
--ui-purple-6: #9373ee;
--ui-purple-6-p: 147,115,238;
--ui-purple-7: #7d62ca;
--ui-purple-8: #6852a9;
--ui-purple-9: #544288;
--ui-purple-10: #42346b;
--ui-magenta-1: #fff0f6;
--ui-magenta-2: #ffd6e7;
--ui-magenta-3: #ffadd2;
--ui-magenta-4: #ff85c0;
--ui-magenta-5: #f759ab;
--ui-magenta-base: #eb2f96;
--ui-magenta-6: #eb2f96;
--ui-magenta-7: #c41d7f;
--ui-magenta-8: #9e1068;
--ui-magenta-9: #780650;
--ui-magenta-10: #520339;
--ui-pink-base: #eb2f96;
--ui-pink-1: #fff0f6;
--ui-pink-2: #ffd6e7;
--ui-pink-3: #ffadd2;
--ui-pink-4: #ff85c0;
--ui-pink-5: #f759ab;
--ui-pink-6: #eb2f96;
--ui-pink-7: #c41d7f;
--ui-pink-8: #9e1068;
--ui-pink-9: #780650;
--ui-pink-10: #520339;
--ui-orange-1: #fff7e6;
--ui-orange-2: #ffe7ba;
--ui-orange-3: #ffd591;
--ui-orange-4: #ffc069;
--ui-orange-5: #ffa940;
--ui-orange-base: #fa8c16;
--ui-orange-6: #fa8c16;
--ui-orange-7: #d46b08;
--ui-orange-8: #ad4e00;
--ui-orange-9: #873800;
--ui-orange-10: #612500;
--ui-volcano-1: #fff2e8;
--ui-volcano-2: #ffd8bf;
--ui-volcano-3: #ffbb96;
--ui-volcano-4: #ff9c6e;
--ui-volcano-5: #ff7a45;
--ui-volcano-base: #fa541c;
--ui-volcano-6: #fa541c;
--ui-volcano-7: #d4380d;
--ui-volcano-8: #ad2102;
--ui-volcano-9: #871400;
--ui-volcano-10: #610b00;
--ui-geekblue-1: #f0f5ff;
--ui-geekblue-2: #d6e4ff;
--ui-geekblue-3: #adc6ff;
--ui-geekblue-4: #85a5ff;
--ui-geekblue-5: #597ef7;
--ui-geekblue-base: #2f54eb;
--ui-geekblue-6: #2f54eb;
--ui-geekblue-7: #1d39c4;
--ui-geekblue-8: #10239e;
--ui-geekblue-9: #061178;
--ui-geekblue-10: #030852;
--ui-lime-1: #fcffe6;
--ui-lime-2: #f4ffb8;
--ui-lime-3: #eaff8f;
--ui-lime-4: #d3f261;
--ui-lime-5: #bae637;
--ui-lime-base: #a0d911;
--ui-lime-6: #a0d911;
--ui-lime-7: #7cb305;
--ui-lime-8: #5b8c00;
--ui-lime-9: #3f6600;
--ui-lime-10: #254000;
--ui-gold-1: #fffbe6;
--ui-gold-2: #fff1b8;
--ui-gold-3: #ffe58f;
--ui-gold-4: #ffd666;
--ui-gold-5: #ffc53d;
--ui-gold-base: #faad14;
--ui-gold-6: #faad14;
--ui-gold-6-p: 250,173,20;
--ui-gold-7: #d48806;
--ui-gold-8: #ad6800;
--ui-gold-9: #874d00;
--ui-gold-10: #613400;
--body-bg-color:black; --body-fg-color:silver; --body-bg-color:black; --body-fg-color:silver;
--danger-bg-color:red; --danger-fg-color:white; --danger-bg-color:red; --danger-fg-color:white;
--notice-bg-color:blue; --notice-fg-color:white; --notice-bg-color:blue; --notice-fg-color:white;

View File

@ -117,7 +117,16 @@ Volcanos("base", {
if (arg[i] && str.replace) { while (str.indexOf(arg[i]) > -1) { str = str.replace(arg[i], arg[i+1]) } } if (arg[i] && str.replace) { while (str.indexOf(arg[i]) > -1) { str = str.replace(arg[i], arg[i+1]) } }
} return str }, } return str },
contains: function(str) { var arg = arguments; for (var i = 1; i < arg.length; i++) { if (!arg[i] || str.indexOf(arg[i]) > -1) { return true } } }, contains: function(str) { var arg = arguments; for (var i = 1; i < arg.length; i++) { if (!arg[i] || str.indexOf(arg[i]) > -1) { return true } } },
beginWith: function(str) { for (var i = 1; i < arguments.length; i++) { if (typeof str == code.STRING && str.trim().indexOf(arguments[i]) == 0) { return true } } }, beginWith: function(str) {
for (var i = 1; i < arguments.length; i++) {
if (typeof str == code.STRING && str.trim().indexOf(arguments[i]) == 0) { return true }
if (typeof str == code.OBJECT) { var begin = true
for (var j = 0; j < arguments[i].length; j++) {
if (str[j] != arguments[i][j]) { begin = false; break }
} if (begin) { return true }
}
}
},
endWith: function(str) { var arg = arguments; for (var i = 1; i < arg.length; i++) { if (typeof str == code.STRING && str.lastIndexOf(arg[i]) > 0 && str.lastIndexOf(arg[i]) + arg[i].length == str.length) { return true } } }, endWith: function(str) { var arg = arguments; for (var i = 1; i < arg.length; i++) { if (typeof str == code.STRING && str.lastIndexOf(arg[i]) > 0 && str.lastIndexOf(arg[i]) + arg[i].length == str.length) { return true } } },
trimPrefix: function(str, pre) { if (typeof str != code.STRING) { return str } var arg = arguments, callee = arg.callee trimPrefix: function(str, pre) { if (typeof str != code.STRING) { return str } var arg = arguments, callee = arg.callee
if (arg.length > 2) { for (var i = 1; i < arg.length; i++) { str = callee(str, arg[i]) } return str } if (arg.length > 2) { for (var i = 1; i < arg.length; i++) { str = callee(str, arg[i]) } return str }

View File

@ -195,7 +195,10 @@ Volcanos("misc", {
}, },
sessionStorage: function(can, key, value) { sessionStorage: function(can, key, value) {
if (can.base.isUndefined(key)) { var res = {}; can.core.Item(sessionStorage, function(name, value) { can.base.isFunc(value) || name == "length" || (res[name] = value) }); return res } if (can.base.isUndefined(key)) { var res = {}; can.core.Item(sessionStorage, function(name, value) { can.base.isFunc(value) || name == "length" || (res[name] = value) }); return res }
if (!can.base.isUndefined(value)) { if (value === "") { return sessionStorage.removeItem(key) } sessionStorage.setItem(key, value) } return can.base.Obj(sessionStorage.getItem(key)) if (can.base.isArray(key)) { key = key.join(":") }
if (!can.base.isUndefined(value)) {
if (value === "") { return sessionStorage.removeItem(key) } sessionStorage.setItem(key, value)
} return can.base.Obj(sessionStorage.getItem(key))
}, },
Log: function() { var args = this._args("", arguments) Log: function() { var args = this._args("", arguments)
if (arguments[0].indexOf && arguments[0].indexOf("on") == 0) { args[1] = this.FileLine((arguments[0] == "onremote"? 4: 2)+this._skip) } if (arguments[0].indexOf && arguments[0].indexOf("on") == 0) { args[1] = this.FileLine((arguments[0] == "onremote"? 4: 2)+this._skip) }

View File

@ -178,7 +178,7 @@ Volcanos("page", {
can.page.Append(can, ui.thead, [{data: {dataset: {index: -1}}, th: can.core.List(list, function(key) { if (key[0] != "_") { return key } }) }]) can.page.Append(can, ui.thead, [{data: {dataset: {index: -1}}, th: can.core.List(list, function(key) { if (key[0] != "_") { return key } }) }])
can.page.Append(can, ui.tbody, can.core.List(msg.Table(), function(item, index, array) { can.page.Append(can, ui.tbody, can.core.List(msg.Table(), function(item, index, array) {
return {dataset: {index: index}, className: item["status"], td: can.core.List(list, function(key) { if (key[0] != "_") { return cb(can.page.Color(item[key]).trim(), key, index, item, array) } }) } return {dataset: {index: index}, className: item["status"], td: can.core.List(list, function(key) { if (key[0] != "_") { return cb(can.page.Color(item[key]).trim(), key, index, item, array) } }) }
})); return can.page.OrderTable(can, ui.table) })); return can.page.OrderTable(can, ui._target)
}, },
OrderTable: function(can, table) { can.page.Select(can, table, html.TH, function(th, index) { th.onclick = function(event) { var dataset = event.target.dataset OrderTable: function(can, table) { can.page.Select(can, table, html.TH, function(th, index) { th.onclick = function(event) { var dataset = event.target.dataset
can.page.RangeTable(can, table, index, (dataset["asc"] = (dataset["asc"] == "1") ? 0: 1) == "1") can.page.RangeTable(can, table, index, (dataset["asc"] = (dataset["asc"] == "1") ? 0: 1) == "1")

View File

@ -123,7 +123,8 @@ Volcanos("user", {
meta = meta||can.ondetail||can.onaction||{}, list = can.base.getValid(list, meta.list, can.core.Item(meta)); if (!list || list.length == 0) { return } meta = meta||can.ondetail||can.onaction||{}, list = can.base.getValid(list, meta.list, can.core.Item(meta)); if (!list || list.length == 0) { return }
function click(event, button) { can.misc.Event(event, can, function() { can.onkeymap.prevent(event), can.request(event, {action: button}) function click(event, button) { can.misc.Event(event, can, function() { can.onkeymap.prevent(event), can.request(event, {action: button})
meta[button]? can.core.CallFunc([meta, button], {event: event, can: can, msg: msg, button: button}): can.base.isFunc(cb)? cb(event, button, meta, carte): meta[button]? can.core.CallFunc([meta, button], {event: event, can: can, msg: msg, button: button}): can.base.isFunc(cb)? cb(event, button, meta, carte):
can.onaction && can.onaction[button] && can.core.CallFunc([can.onaction, button], [event, can, button]) can.Update(event, [ctx.ACTION, button])
// can.onaction && can.onaction[button] && can.core.CallFunc([can.onaction, button], [event, can, button])
// meta._style == nfs.PATH || can.onmotion.clearCarte(can) // meta._style == nfs.PATH || can.onmotion.clearCarte(can)
}) } }) }
var ui = can.page.Append(can, document.body, [{view: [[chat.CARTE, meta._style||can.base.replaceAll(can._index||"", nfs.PT, lex.SP)||"", chat.FLOAT]], list: can.core.List(list, function(item, index) { var ui = can.page.Append(can, document.body, [{view: [[chat.CARTE, meta._style||can.base.replaceAll(can._index||"", nfs.PT, lex.SP)||"", chat.FLOAT]], list: can.core.List(list, function(item, index) {
@ -135,7 +136,7 @@ Volcanos("user", {
function subs(event) { var sub = can.user.carte(event, can, meta, item.slice(1), cb||function(event, button) { function subs(event) { var sub = can.user.carte(event, can, meta, item.slice(1), cb||function(event, button) {
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), carte._sub = sub } }, carte, trans); can.onlayout.figure(event, can, sub._target, true), 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, meta._style == ice.CMD? item: 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, item], html.DIV, meta._style == ice.CMD? item: 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: [lex.SP+can.page.unicode.next, "", [html.ICON, "next"]]}], 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: [lex.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, 200), close: function() { can.page.Remove(can, ui._target) }} var carte = {_target: ui._target, _parent: parent, layout: can.onlayout.figure(event, can, ui._target, false, 200), close: function() { can.page.Remove(can, ui._target) }}

View File

@ -25,7 +25,7 @@ fieldset.inner>div.output>div.project>div.zone div.action>div.item>span.delete {
fieldset.inner>div.output>div.project>div.zone fieldset.plug { position:static; } fieldset.inner>div.output>div.project>div.zone fieldset.plug { position:static; }
fieldset.inner>div.output>div.layout>div.tabs { font-size:14px; display:none; } fieldset.inner>div.output>div.layout>div.tabs { font-size:14px; display:none; }
fieldset.inner>div.output>div.layout>div.path { font-size:14px; display:none; } fieldset.inner>div.output>div.layout>div.path { font-size:14px; display: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.layout>div.content * { font-family:monospace; font-size:14px; outline:none; }
fieldset.inner>div.output>div.layout>div.layout>div.profile { max-width:unset; box-shadow:var(--box-shadow); } fieldset.inner>div.output>div.layout>div.layout>div.profile { max-width:unset; box-shadow:var(--box-shadow); }
fieldset.inner>div.output>div.layout>div.layout>div.profile h1 { text-align:left; padding:10px 0; margin:20px 0; border-bottom:var(--box-border); } fieldset.inner>div.output>div.layout>div.layout>div.profile h1 { text-align:left; padding:10px 0; margin:20px 0; border-bottom:var(--box-border); }
fieldset.inner>div.output>div.layout>div.layout>div.profile h2 { padding:10px 0; margin:20px 0; border-bottom:var(--box-border); } fieldset.inner>div.output>div.layout>div.layout>div.profile h2 { padding:10px 0; margin:20px 0; border-bottom:var(--box-border); }

View File

@ -334,6 +334,9 @@ Volcanos(chat.ONSYNTAX, {_init: function(can, msg, cb) { var key = can.onexport.
p.keyword = p.keyword||{}, can.core.Item(can.onsyntax[from].keyword, function(key, value) { p.keyword[key] = p.keyword[key] || value }) p.keyword = p.keyword||{}, can.core.Item(can.onsyntax[from].keyword, function(key, value) { p.keyword[key] = p.keyword[key] || value })
can.core.Item(can.onsyntax[from], function(key, value) { p[key] = p[key] || value }) can.core.Item(can.onsyntax[from], function(key, value) { p[key] = p[key] || value })
}) })
p && p.prepare && can.core.ItemForm(p.prepare, function(value, index, key) {
p.keyword = p.keyword||{}, p.keyword[value] = key
})
if (!content._root && can.db.history.length > 1) { content = can.ui.content = can.page.insertBefore(can, [{view: html.CONTENT, style: {width: can.ui.content.offsetWidth}}], can.ui._profile), content._cache_key = key } if (!content._root && can.db.history.length > 1) { content = can.ui.content = can.page.insertBefore(can, [{view: html.CONTENT, style: {width: can.ui.content.offsetWidth}}], can.ui._profile), content._cache_key = key }
content._max = 0, content._msg = msg, msg.__content = content, can.page.Appends(can, content, [{view: ["tips", "", msg.Option(nfs.FILE)]}]) content._max = 0, content._msg = msg, msg.__content = content, can.page.Appends(can, content, [{view: ["tips", "", msg.Option(nfs.FILE)]}])
if (msg.Length() > 0) { can.onsyntax._change(can, msg), can.onaction.rerankLine(can, "tr.line:not(.delete)>td.line") if (msg.Length() > 0) { can.onsyntax._change(can, msg), can.onaction.rerankLine(can, "tr.line:not(.delete)>td.line")

View File

@ -62,11 +62,8 @@ Volcanos(chat.ONACTION, {list: [
"生成脚本", "生成图片", "生成脚本", "生成图片",
["视图", "参数", "操作", "状态", "专注", "项目", "预览", "演示"], ["视图", "参数", "操作", "状态", "专注", "项目", "预览", "演示"],
["数据", "保存参数", "清空参数", "复制数据", "下载数据", "清空数据", "删除工具"], ["数据", "保存参数", "清空参数", "复制数据", "下载数据", "清空数据", "删除工具"],
["调试", "打包页面", "查看文档", "查看脚本", "查看源码", "_config", "查看日志"], ["调试", "打包页面", "查看文档", "查看脚本", "查看源码", "查看配置", "查看日志"],
], ],
_trans: {
"_config": "查看配置",
},
_engine: function(event, can, button) { can.Update(event, [ctx.ACTION, button].concat(can.Input())) }, _engine: function(event, can, button) { can.Update(event, [ctx.ACTION, button].concat(can.Input())) },
_switch: function(can, sub, mode, save, load) { _switch: function(can, sub, mode, save, load) {
if (can.page.ClassList.neg(can, can._target, mode)) { if (can.page.ClassList.neg(can, can._target, mode)) {
@ -124,8 +121,8 @@ Volcanos(chat.ONACTION, {list: [
"打包页面": function(event, can) { can.onengine.signal(can, "onwebpack", can.request(event)) }, "打包页面": function(event, can) { can.onengine.signal(can, "onwebpack", can.request(event)) },
"查看文档": function(event, can) { can.onengine.signal(can, "ondebugs", can.request(event, {action: ice.HELP, index: can.Conf(ctx.INDEX)})) }, "查看文档": function(event, can) { can.onengine.signal(can, "ondebugs", can.request(event, {action: ice.HELP, index: can.Conf(ctx.INDEX)})) },
"查看脚本": function(event, can) { can.onengine.signal(can, "ondebugs", can.request(event, {action: nfs.SCRIPT, index: can.Conf(ctx.INDEX)})) }, "查看脚本": function(event, can) { can.onengine.signal(can, "ondebugs", can.request(event, {action: nfs.SCRIPT, index: can.Conf(ctx.INDEX)})) },
"查看源码": function(event, can) { can.onengine.signal(can, "ondebugs", can.request(event, {action: nfs.SOURCE, index: can.Conf(ctx.INDEX)})) }, "查看源码": function(event, can) { can.request(event).Option(ctx.ACTION, nfs.SOURCE), can.onengine.signal(can, "ondebugs", can.requestPodCmd(event)) },
"_config": function(event, can) { can.onengine.signal(can, "ondebugs", can.requestPodCmd(event)) }, "查看配置": function(event, can) { can.request(event).Option(ctx.ACTION, ctx.CONFIG), can.onengine.signal(can, "ondebugs", can.requestPodCmd(event)) },
"查看日志": function(event, can) { var sub = can.sub; sub.onimport.tool(sub, ["can.debug"], function(sub) { sub.select() }) }, "查看日志": function(event, can) { var sub = can.sub; sub.onimport.tool(sub, ["can.debug"], function(sub) { sub.select() }) },
refresh: function(event, can) { can.onimport.size(can, can.ConfHeight(), can.ConfWidth(), true, can.Mode()) }, refresh: function(event, can) { can.onimport.size(can, can.ConfHeight(), can.ConfWidth(), true, can.Mode()) },

View File

@ -1,6 +1,5 @@
Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(can, target) Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(can, target)
if (can.Mode() == html.ZONE) { return can.onimport._vimer_zone(can, msg, target) } if (can.Mode() == html.ZONE) { return can.onimport._vimer_zone(can, msg, target) }
can.sup.onimport.size(can.sup, can.sup.ConfHeight(), can.sup.ConfWidth(), true) can.sup.onimport.size(can.sup, can.sup.ConfHeight(), can.sup.ConfWidth(), true)
var cbs = can.onimport[can.Conf(ctx.STYLE)||msg.Option(ctx.STYLE)]; if (can.base.isFunc(cbs)) { var cbs = can.onimport[can.Conf(ctx.STYLE)||msg.Option(ctx.STYLE)]; if (can.base.isFunc(cbs)) {
can.onappend.style(can, can._args[ctx.STYLE], target), can.core.CallFunc(cbs, {can: can, msg: msg, target: target}) can.onappend.style(can, can._args[ctx.STYLE], target), can.core.CallFunc(cbs, {can: can, msg: msg, target: target})
@ -105,8 +104,9 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(
}}, "", target) }}, "", target)
}, },
item: function(can, item, cb, cbs, target) { target = target||(can.ui && can.ui.project? can.ui.project: can._output) item: function(can, item, cb, cbs, target) { target = target||(can.ui && can.ui.project? can.ui.project: can._output)
var ui = can.page.Append(can, target, [{view: html.ITEM, list: [{icon: item.icon}, {text: item.nick||item.name||item.zone}], title: item.title, onclick: function(event) { can.onmotion.select(can, target, html.DIV_ITEM, event.target) var ui = can.page.Append(can, target, [{view: html.ITEM, list: [{icon: item.icon}, {text: item.nick||item.name||item.zone}], title: item.title, onclick: function(event) {
cb(event, event.target, event.target._list && can.onmotion.toggle(can, event.target._list)) can.onmotion.select(can, target, html.DIV_ITEM, event.currentTarget)
cb(event, event.currentTarget, event.currentTarget._list && can.onmotion.toggle(can, event.currentTarget._list))
}, oncontextmenu: function(event) { }, oncontextmenu: function(event) {
if (can.base.isFunc(cbs)) { var menu = cbs(event, ui._target); if (menu) { can.user.carteRight(event, can, menu.meta, menu.list, menu) } return } if (can.base.isFunc(cbs)) { var menu = cbs(event, ui._target); if (menu) { can.user.carteRight(event, can, menu.meta, menu.list, menu) } return }
can.user.carteItem(event, can, item) can.user.carteItem(event, can, item)
@ -115,7 +115,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(
}, },
itemlist: function(can, list, cb, cbs, target) { itemlist: function(can, list, cb, cbs, target) {
return target._list = can.page.insertBefore(can, [{view: html.LIST, list: can.core.List(list, function(item) { return target._list = can.page.insertBefore(can, [{view: html.LIST, list: can.core.List(list, function(item) {
return {view: [html.ITEM, html.DIV, item.name], onclick: function(event) { return {view: [html.ITEM, html.DIV, item.nick||item.name], onclick: function(event) {
cb(event, item, event.target._list && can.page.ClassList.neg(can, event.target._list, html.HIDE)) cb(event, item, event.target._list && can.page.ClassList.neg(can, event.target._list, html.HIDE))
}, oncontextmenu: function(event) { if (can.base.isFunc(cbs)) { var menu = cbs(event, ui._target); if (menu) { can.user.carteRight(event, can, menu.meta, menu.list, menu) } } }} }, oncontextmenu: function(event) { if (can.base.isFunc(cbs)) { var menu = cbs(event, ui._target); if (menu) { can.user.carteRight(event, can, menu.meta, menu.list, menu) } } }}
}) }], target.nextSibling, target.parentNode) }) }], target.nextSibling, target.parentNode)
@ -133,11 +133,13 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(
var next = target.nextSibling||target.previousSibling; if (!next) { return } next.click() var next = target.nextSibling||target.previousSibling; if (!next) { return } next.click()
} cbs && cbs(tabs), can.page.Remove(can, target) } cbs && cbs(tabs), can.page.Remove(can, target)
} }
return {view: html.TABS, title: tabs.text, list: [{text: [tabs.name, html.SPAN, mdb.NAME]}, {icon: mdb.DELETE, onclick: function(event) { return {view: html.TABS, title: tabs.title||tabs.text, list: [{text: [tabs.nick||tabs.name, html.SPAN, mdb.NAME]}, {icon: mdb.DELETE, onclick: function(event) {
close(tabs._target), can.onkeymap.prevent(event) close(tabs._target), can.onkeymap.prevent(event)
}}], onclick: function(event) { }}], onclick: function(event) {
can.onmotion.select(can, action, html.DIV_TABS, tabs._target), can.base.isFunc(cb) && cb(event, tabs) can.onmotion.select(can, action, html.DIV_TABS, tabs._target), can.base.isFunc(cb) && cb(event, tabs)
}, _init: function(target) { var menu = tabs._menu||shy(); tabs._target = target, target._close = function() { close(target) } }, _init: function(target) { var menu = tabs._menu||shy(function(event, button) { can.Update(event, [ctx.ACTION, button]) })
target._item = tabs, tabs._target = target, target._close = function() { close(target) }
var action = can.page.parseAction(can, tabs)
can.page.Modify(can, target, {draggable: true, _close: function() { close(target) }, can.page.Modify(can, target, {draggable: true, _close: function() { close(target) },
ondragstart: function(event) { action._drop = function(before) { before.parentNode == action && action.insertBefore(target, before) } }, ondragstart: function(event) { action._drop = function(before) { before.parentNode == action && action.insertBefore(target, before) } },
ondragover: function(event) { event.preventDefault(), action._drop(event.target) }, ondragover: function(event) { event.preventDefault(), action._drop(event.target) },
@ -147,7 +149,9 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(
"Rename Tabs", function(event) { can.user.input(event, can, [mdb.NAME], function(list) { "Rename Tabs", function(event) { can.user.input(event, can, [mdb.NAME], function(list) {
can.page.Select(can, target, "span.name", function(target) { can.page.Modify(can, target, list[0]||tabs.name) }) can.page.Select(can, target, "span.name", function(target) { can.page.Modify(can, target, list[0]||tabs.name) })
}) }, menu.meta, }) }, menu.meta,
), ["Close", "Close Other", "Rename Tabs", ""].concat(can.base.getValid(menu.list, can.core.Item(menu.meta))), function(event, button, meta) { (meta[button]||menu)(event, button, meta) }) }, ), ["Close", "Close Other", "Rename Tabs", ""].concat(can.base.getValid(menu.list, can.core.Item(menu.meta)), action), function(event, button, meta) {
(meta[button]||menu)(can.request(event, tabs), button, meta)
}) },
}), target.click() }), target.click()
}} }}
}))._target }, }))._target },
@ -195,8 +199,5 @@ Volcanos(chat.ONEXPORT, {
}, },
board: function(can) { var msg = can._msg; return msg.Result() }, board: function(can) { var msg = can._msg; return msg.Result() },
session: function(can, key, value) { return can.misc[can.user.isWebview? "localStorage": "sessionStorage"](can, [can.Conf(ctx.INDEX), key, location.pathname].join(":"), value == ""? "": JSON.stringify(value)) }, session: function(can, key, value) { return can.misc[can.user.isWebview? "localStorage": "sessionStorage"](can, [can.Conf(ctx.INDEX), key, location.pathname].join(":"), value == ""? "": JSON.stringify(value)) },
action_value: function(can, key, def) { var value = can.Action(key) action_value: function(can, key, def) { var value = can.Action(key); return can.base.isIn(value, ice.AUTO, key)? def: value },
if (can.base.isIn(value, ice.AUTO, key)) { value = def }
return value
},
}) })

View File

@ -101,6 +101,8 @@ var Volcanos = shy({
ConfDefault: function(value) { can.core.Item(value, function(k, v) { can.Conf(k) || can.Conf(k, v) }) }, ConfDefault: function(value) { can.core.Item(value, function(k, v) { can.Conf(k) || can.Conf(k, v) }) },
ConfHeight: function(value) { return can.Conf(html.HEIGHT, value) }, ConfHeight: function(value) { return can.Conf(html.HEIGHT, value) },
ConfWidth: function(value) { return can.Conf(html.WIDTH, value) }, ConfWidth: function(value) { return can.Conf(html.WIDTH, value) },
ConfSpace: function() { return can.Conf(web.SPACE) },
ConfIndex: function() { return can.Conf(ctx.INDEX) },
Conf: function(key, value) { var res = can._conf Conf: function(key, value) { var res = can._conf
for (var i = 0; i < arguments.length; i += 2) { for (var i = 0; i < arguments.length; i += 2) {
if (typeof key == code.OBJECT) { res = can.core.Value(can._conf, arguments[i]), i--; continue } if (typeof key == code.OBJECT) { res = can.core.Value(can._conf, arguments[i]), i--; continue }