1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 08:48:06 +08:00

add tutor

This commit is contained in:
IT 老营长 @云轩领航-创始人 2024-05-13 20:33:29 +08:00
parent 12de0b692a
commit 54a7872244
12 changed files with 69 additions and 23 deletions

View File

@ -269,6 +269,7 @@ var chat = {
OUTPUT: "output", SIMPLE: "simple", FLOAT: "float", FULL: "full", CMD: "cmd", OUTPUT: "output", SIMPLE: "simple", FLOAT: "float", FULL: "full", CMD: "cmd",
MESSAGE: "message", MESSAGE: "message",
MATRIX: "matrix", MATRIX: "matrix",
TUTOR: "tutor",
HEADER: "Header", ACTION: "Action", FOOTER: "Footer", HEADER: "Header", ACTION: "Action", FOOTER: "Footer",
libs: ["base.js", "core.js", "date.js", "misc.js", "page.js", "user.js"].map(function(p) { return "/lib/"+p }), libs: ["base.js", "core.js", "date.js", "misc.js", "page.js", "user.js"].map(function(p) { return "/lib/"+p }),

View File

@ -162,6 +162,9 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
}, },
Option: function(key, value) { value && (value = can.user.trans(sub, value, null, html.INPUT)); return can.page.SelectArgs(can, option, key, value)[0] }, Option: function(key, value) { value && (value = can.user.trans(sub, value, null, html.INPUT)); return can.page.SelectArgs(can, option, key, value)[0] },
Update: function(event, cmds, cb, silent) { event = event||{} Update: function(event, cmds, cb, silent) { event = event||{}
if (event.isTrusted) {
can.onengine.signal(can, "onevent", can.request(event, {query: can.page.getquery(can, event.target)}))
}
event.metaKey && sub.request(event, {metaKey: ice.TRUE}) event.metaKey && sub.request(event, {metaKey: ice.TRUE})
sub.request(event)._caller() sub.request(event)._caller()
var msg = sub.request(event), list = can.core.Value(sub, "sub.db._checkbox") var msg = sub.request(event), list = can.core.Value(sub, "sub.db._checkbox")
@ -187,6 +190,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
sub.onappend._output(sub, msg, meta.display||msg.Option(ice.MSG_DISPLAY)||meta.feature.display) sub.onappend._output(sub, msg, meta.display||msg.Option(ice.MSG_DISPLAY)||meta.feature.display)
}), meta.inputs && sub.onappend._option(sub, meta, sub._option, meta.msg) }), meta.inputs && sub.onappend._option(sub, meta, sub._option, meta.msg)
sub._legend && (sub._legend.onclick = function(event) { sub._legend && (sub._legend.onclick = function(event) {
can.onengine.signal(can, "onevent", can.request(event, {query: `fieldset.${sub.ConfIndex()}>legend`}))
can.user.carte(event, sub, sub.onaction, sub.onaction.list.concat([["操作"].concat(can.core.Item(meta.feature._trans))]), function(event, button) { can.misc.Event(event, sub, function(msg) { can.user.carte(event, sub, sub.onaction, sub.onaction.list.concat([["操作"].concat(can.core.Item(meta.feature._trans))]), function(event, button) { can.misc.Event(event, sub, function(msg) {
can.misc.Inputs(sub, msg, [ctx.ACTION, button], null, meta) || msg.RunAction(event, sub.sub, [ctx.ACTION, button]) || msg.RunAction(event, sub, [ctx.ACTION, button]) || sub.runAction(event, button, [], function(msg) { can.onappend._output(sub, msg) }) can.misc.Inputs(sub, msg, [ctx.ACTION, button], null, meta) || msg.RunAction(event, sub.sub, [ctx.ACTION, button]) || msg.RunAction(event, sub, [ctx.ACTION, button]) || sub.runAction(event, button, [], function(msg) { can.onappend._output(sub, msg) })
}) }) }) })
@ -608,6 +612,9 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
}, onmouseover: function(event) { }, onmouseover: function(event) {
can.page.SelectChild(can, can._option, html.DIV_ITEM_TEXT, function(target) { can.page.ClassList.set(can, target, "will", can.page.ClassList.has(can, target, key)) }) can.page.SelectChild(can, can._option, html.DIV_ITEM_TEXT, function(target) { can.page.ClassList.set(can, target, "will", can.page.ClassList.has(can, target, key)) })
}, _init: function(target) { }, _init: function(target) {
if (can.Option(key) === "") {
can.onappend.style(can, value, target.parentNode)
}
if (key == mdb.TYPE) { can.onappend.style(can, value, target.parentNode) } if (key == mdb.TYPE) { can.onappend.style(can, value, target.parentNode) }
if (key == mdb.STATUS) { can.onappend.style(can, value, target.parentNode) } if (key == mdb.STATUS) { can.onappend.style(can, value, target.parentNode) }
if (key == mdb.ENABLE) { can.onappend.style(can, value == ice.TRUE? mdb.ENABLE: mdb.DISABLE, target.parentNode) } if (key == mdb.ENABLE) { can.onappend.style(can, value == ice.TRUE? mdb.ENABLE: mdb.DISABLE, target.parentNode) }

View File

@ -252,8 +252,8 @@ div.item>i.bi-chevron-down { float:right; transition:all .5s; }
div.item.open>i.bi-chevron-down { rotate:-180deg; transition:all .3s; } div.item.open>i.bi-chevron-down { rotate:-180deg; transition:all .3s; }
div.item.text.trans input:not([type=button]) { transition:all 1s; } div.item.text.trans input:not([type=button]) { transition:all 1s; }
div.item.text.trans input:not([type=button]):focus { width:var(--river-width); transition:all .5s; } div.item.text.trans input:not([type=button]):focus { width:var(--river-width); transition:all .5s; }
div.toggle { background-color:#4a566e6e; color:var(--panel-fg-color); font-size:var(--action-height); padding-top:38px; height:120px; position:absolute; } div.toggle { background-color:var(--hover-bg-color); color:var(--hover-fg-color); font-size:var(--action-height); padding-top:38px; height:120px; position:absolute; }
div.toggle:hover { background-color:var(--hover-bg-color); color:var(--panel-hover-fg-color); } // div.toggle:hover { background-color:var(--hover-bg-color); color:var(--panel-hover-fg-color); }
div.toggle.project { top:20%; left:0; border-top-right-radius:var(--plugin-radius); border-bottom-right-radius:var(--plugin-radius); } div.toggle.project { top:20%; left:0; border-top-right-radius:var(--plugin-radius); border-bottom-right-radius:var(--plugin-radius); }
div.content>div.toggle.profile { top:20%; right:0; border-top-left-radius:var(--plugin-radius); border-bottom-left-radius:var(--plugin-radius); } div.content>div.toggle.profile { top:20%; right:0; border-top-left-radius:var(--plugin-radius); border-bottom-left-radius:var(--plugin-radius); }
div.content>div.toggle.display { left:20%; bottom:-52px; rotate:90deg; border-top-left-radius:var(--plugin-radius); border-bottom-left-radius:var(--plugin-radius); } div.content>div.toggle.display { left:20%; bottom:-52px; rotate:90deg; border-top-left-radius:var(--plugin-radius); border-bottom-left-radius:var(--plugin-radius); }
@ -735,9 +735,9 @@ fieldset>form.option>div.text>span.value {
fieldset>form.option>div.text._icon>span.value { padding-left:24px; border:var(--box-border); } fieldset>form.option>div.text._icon>span.value { padding-left:24px; border:var(--box-border); }
fieldset.plug>form.option>div.text>span.value { display:none; } fieldset.plug>form.option>div.text>span.value { display:none; }
fieldset:not(.float)>form.option>div.text>span.value { display:none; } fieldset:not(.float)>form.option>div.text>span.value { display:none; }
fieldset.float:not(.plug)>form.option>div.text:not(.filter)>input { display:none; } fieldset.story.float:not(.plug)>form.option>div.text:not(.filter)>input { display:none; }
fieldset.float:not(.plug)>form.option>div.text.filter>span.value { display:none; } fieldset.story.float:not(.plug)>form.option>div.text.filter>span.value { display:none; }
fieldset.float:not(.plug)>form.option>div.text>span.icon { display:none; } fieldset.story.float:not(.plug)>form.option>div.text>span.icon { display:none; }
fieldset.float>div.action>div.item.button._space.icons { margin-left:0; } fieldset.float>div.action>div.item.button._space.icons { margin-left:0; }
/* svg */ /* svg */
svg text { font-size:var(--svg-font-size); font-family:var(--svg-font-family); stroke:var(--body-fg-color); fill:var(--body-fg-color); cursor:pointer; } svg text { font-size:var(--svg-font-size); font-family:var(--svg-font-family); stroke:var(--body-fg-color); fill:var(--body-fg-color); cursor:pointer; }

View File

@ -81,9 +81,16 @@ Volcanos("misc", {
msg.append = can.base.AddUniq(msg.append, key), msg[key] = msg[key]||[] msg.append = can.base.AddUniq(msg.append, key), msg[key] = msg[key]||[]
msg[key].push(can.base.isString(value)||can.base.isFunc(value)? value: JSON.stringify(value)); return msg msg[key].push(can.base.isString(value)||can.base.isFunc(value)? value: JSON.stringify(value)); return msg
}, },
PushAction: function(button) { can.core.List(msg.Length(), function() { PushAction: function(button) {
msg.Push(ctx.ACTION, can.page.Format(html.INPUT, "", mdb.TYPE, html.BUTTON, mdb.NAME, button, mdb.VALUE, can.user.trans(can, button))) var args = can.core.List(arguments)
}); return msg }, can.core.List(msg.Length(), function() {
msg.Push(ctx.ACTION,
can.core.List(args, function(button) {
return can.page.Format(html.INPUT, "", mdb.TYPE, html.BUTTON, mdb.NAME, button, mdb.VALUE, can.user.trans(can, button))
}).join("")
)
}); return msg
},
Echo: function(res) { msg.result = (msg.result||[]).concat(can.core.List(arguments)); return msg._hand = true, msg }, Echo: function(res) { msg.result = (msg.result||[]).concat(can.core.List(arguments)); return msg._hand = true, msg },
Dump: function(can) { can = can||msg._can; if (can.user.isNodejs) { return } Dump: function(can) { can = can||msg._can; if (can.user.isNodejs) { return }
can.onmotion.clear(can), can.onappend.table(can, msg), can.onappend.board(can, msg), can.onmotion.story.auto(can) can.onmotion.clear(can), can.onappend.table(can, msg), can.onappend.board(can, msg), can.onmotion.story.auto(can)

View File

@ -412,6 +412,18 @@ Volcanos("page", {
return canvas.toDataURL(html.IMAGE_PNG, 1) return canvas.toDataURL(html.IMAGE_PNG, 1)
}, },
position: function(event, target) { var p = target.getBoundingClientRect(); return {x: event.clientX - p.x, y: event.clientY - p.y} }, position: function(event, target) { var p = target.getBoundingClientRect(); return {x: event.clientX - p.x, y: event.clientY - p.y} },
getquery: function(can, target) {
var list = []; for (var p = target; p; p = p.parentNode) {
if (can.page.tagis(p, "body")) { list.pop(); break }
list.push(can.core.Keys(p.tagName, can.core.List(p.classList).join(".")))
if (can.page.tagis(p, html.FIELDSET)) {
if (can.page.tagis(p, "fieldset.story.web.chat.tutor.float")) { return "" }
break
}
list.push(">")
}
return list.reverse().join("").toLowerCase()
},
theme: function(cb) { var themeMedia = window.matchMedia("(prefers-color-scheme: dark)") theme: function(cb) { var themeMedia = window.matchMedia("(prefers-color-scheme: dark)")
cb && themeMedia.addListener(function(event) { cb(event.matches? html.DARK: html.LIGHT) }) cb && themeMedia.addListener(function(event) { cb(event.matches? html.DARK: html.LIGHT) })
cb && cb(themeMedia.matches? html.DARK: html.LIGHT) cb && cb(themeMedia.matches? html.DARK: html.LIGHT)

View File

@ -169,7 +169,7 @@ Volcanos("user", {
} }
if (can.base.isArray(item)) { if (can.base.isArray(item)) {
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): click(event, button, index) can.onimport && can.onimport[item[0]]? can.onimport[item[0]](can, button, event): click(event, button, index)
}, carte, trans); carte._sub = sub } }, carte, trans); carte._sub = sub }
return {view: html.ITEM, list: [ return {view: html.ITEM, list: [
{text: can.user.trans(can, item[0], trans)}, {text: can.user.trans(can, item[0], trans)},
@ -214,7 +214,9 @@ Volcanos("user", {
var action = can.onappend._action(can, button||[html.SUBMIT, html.CANCEL], ui.action, { var action = can.onappend._action(can, button||[html.SUBMIT, html.CANCEL], ui.action, {
_trans: {submit: msg.Option(web.SUBMIT)}, _trans: {submit: msg.Option(web.SUBMIT)},
focus: function() { can.onmotion.focus(can, can.page.Select(can, ui._target, html.INPUT_ARGS)[0]) }, focus: function() { can.onmotion.focus(can, can.page.Select(can, ui._target, html.INPUT_ARGS)[0]) },
cancel: function() { can.page.Remove(can, ui._target) }, cancel: function(event) {
can.onengine.signal(can, "onremove", can.request(event, {query: can.page.getquery(can, ui._target)}))
can.page.Remove(can, ui._target) },
submit: function(event, can, button) { var args = [], data = {}, err = false submit: function(event, can, button) { var args = [], data = {}, err = false
var list = can.page.Select(can, ui.table, html.OPTION_ARGS, function(item) { var list = can.page.Select(can, ui.table, html.OPTION_ARGS, function(item) {
if (item.value == "" && need[item.name] == "must") { err = true, item.focus(), can.user.toast(can, item.name+" 是必选字段, 请重新输入") } if (item.value == "" && need[item.name] == "must") { err = true, item.focus(), can.user.toast(can, item.name+" 是必选字段, 请重新输入") }
@ -226,8 +228,7 @@ Volcanos("user", {
}, _target: ui._target, _engine: function(event, can, button) { action.submit(event, can, button) }, }, _target: ui._target, _engine: function(event, can, button) { action.submit(event, can, button) },
}); });
title && can.page.Select(can, action._target, "input[name=submit]", function(target) { target.value = can.user.trans(can, title) }) title && can.page.Select(can, action._target, "input[name=submit]", function(target) { target.value = can.user.trans(can, title) })
if (event && event.target) { if (event && event.target) { can.onlayout.figure(event, can, ui._target)
can.onlayout.figure(event, can, ui._target)
can.user.isMobile && can.page.style(can, ui._target, html.LEFT, (can.page.width()-ui._target.offsetWidth)/2, html.TOP, can.getHeaderHeight(can)) can.user.isMobile && can.page.style(can, ui._target, html.LEFT, (can.page.width()-ui._target.offsetWidth)/2, html.TOP, can.getHeaderHeight(can))
} else { } else {
can.getActionSize(function(left, top, height) { can.page.style(can, ui._target, html.LEFT, left||0, html.TOP, (height/4||0)) }) can.getActionSize(function(left, top, height) { can.page.style(can, ui._target, html.LEFT, left||0, html.TOP, (height/4||0)) })

View File

@ -17,7 +17,7 @@ body.mobile fieldset.Footer>div.output { font-style:italic; height:var(--footer-
body.mobile fieldset.Footer>div.output div.toast { display:none; } body.mobile fieldset.Footer>div.output div.toast { display:none; }
body.mobile fieldset.Footer>div.output div.cmd { display:none; } body.mobile fieldset.Footer>div.output div.cmd { display:none; }
.picker { box-shadow:#626bd0 0px 2px 10px 5px !important; } .picker { box-shadow:#626bd0 0px 2px 10px 5px !important; position:relative; top: -5px; transition:all 0.5s; }
div.view span.string { color:#f29766; } div.view span.string { color:#f29766; }
div.view span.keyword { color:#5cadd4; } div.view span.keyword { color:#5cadd4; }
div.item:not(.string):not(.number):not(.boolean)>span.value { color:var(--disable-fg-color); font-style:italic; } div.item:not(.string):not(.number):not(.boolean)>span.value { color:var(--disable-fg-color); font-style:italic; }

View File

@ -8,9 +8,15 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can._wss = can.onda
can.onimport._title(can, msg, target), can.onimport._command(can, msg, target), can.onimport._storm(can, msg, target) can.onimport._title(can, msg, target), can.onimport._command(can, msg, target), can.onimport._storm(can, msg, target)
can.misc.isDebug(can) && can.onimport._state(can, msg, target), can.onimport._toast(can, msg, target) can.misc.isDebug(can) && can.onimport._state(can, msg, target), can.onimport._toast(can, msg, target)
if (!can.user.isTechOrRoot(can)) { return } if (!can.user.isTechOrRoot(can)) { return }
can.onappend.input(can, {type: html.BUTTON, name: code.XTERM, onclick: function(event) { can.onappend._float(can, code.XTERM, cli.SH) }}, "", can._output) can.core.List([
can.onappend.input(can, {type: html.BUTTON, name: cli.RUNTIME, onclick: function(event) { can.onappend._float(can, cli.RUNTIME) }}, "", can._output) {index: code.XTERM, args: [cli.SH]},
can.onappend.input(can, {type: html.BUTTON, name: chat.MESSAGE, onclick: function(event) { can.onappend._float(can, chat.MESSAGE) }}, "", can._output) {index: cli.RUNTIME},
{index: chat.MESSAGE},
{index: chat.TUTOR},
], function(value) { value.type = html.BUTTON, value.name = value.index
value.onclick = function() { can.onappend._float(can, value.index, value.args) }
can.onappend.input(can, value, "", can._output)
})
}, },
_title: function(can, msg, target) { can.user.isMobile || can.core.List(can.Conf(chat.TITLE)||msg.result, function(item) { _title: function(can, msg, target) { can.user.isMobile || can.core.List(can.Conf(chat.TITLE)||msg.result, function(item) {
if (can.base.contains(item, ice.AT)) { item = '<a href="mailto:'+item+'">'+item+'</a>' } if (can.base.contains(item, ice.AT)) { item = '<a href="mailto:'+item+'">'+item+'</a>' }
@ -59,11 +65,22 @@ Volcanos(chat.ONACTION, {_init: function(can) {},
ontoast: function(can, msg) { can.core.CallFunc(can.onimport.ntip, {can: can, msg: msg}) }, ontoast: function(can, msg) { can.core.CallFunc(can.onimport.ntip, {can: can, msg: msg}) },
onremote: function(can, msg) { can.core.CallFunc(can.onimport.ncmd, {can: can, msg: msg}) }, onremote: function(can, msg) { can.core.CallFunc(can.onimport.ncmd, {can: can, msg: msg}) },
onunload: function(can) { can._wss && can._wss.close() }, onunload: function(can) { can._wss && can._wss.close() },
onrecord: function(can, msg) { onrecord: function(can, msg) { var zone = can.misc.sessionStorage(can, "web.chat.script:zone")
var zone = can.misc.sessionStorage(can, "web.chat.script:zone")
zone && can.runAction(can.request(), nfs.SCRIPT, [zone].concat(msg.cmds[0])) zone && can.runAction(can.request(), nfs.SCRIPT, [zone].concat(msg.cmds[0]))
}, },
onaction_cmd: function(can) { can.onappend.style(can, html.HIDE) }, onaction_cmd: function(can) { can.onappend.style(can, html.HIDE) },
onstorm_select: function(event, can, river, storm) {
event.isTrusted != undefined && can.onimport._data(can, chat.TUTOR, {type: chat.STORM, text: [river, storm].join(",")})
},
onremove: function(event, can, query) {
event.isTrusted != undefined && query && can.onimport._data(can, chat.TUTOR, {type: "remove", text: query})
},
onevent: function(event, can, query) {
event.isTrusted != undefined && query && can.onimport._data(can, chat.TUTOR, {type: event.type, text: query})
},
ontheme: function(event, can, theme) {
event.isTrusted != undefined && can.onimport._data(can, chat.TUTOR, {type: chat.THEME, text: theme})
},
oncommand_focus: function(can) { can.page.Select(can, can._output, ["div.cmd", html.INPUT], function(target) { can.onmotion.focus(can, target) }) }, oncommand_focus: function(can) { can.page.Select(can, can._output, ["div.cmd", html.INPUT], function(target) { can.onmotion.focus(can, target) }) },
onlayout: function(can, layout, before) { if (can.user.isMobile) { return } onlayout: function(can, layout, before) { if (can.user.isMobile) { return }
can.page.ClassList.del(can, can._target, before), can.page.ClassList.add(can, can._target, layout) can.page.ClassList.del(can, can._target, before), can.page.ClassList.add(can, can._target, layout)

View File

@ -49,7 +49,8 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) {
background: function(event, can, background) { can.user.isExtension || can.user.isLocalFile || can.runAction(event, aaa.BACKGROUND, [background], function(msg) { background: function(event, can, background) { can.user.isExtension || can.user.isLocalFile || can.runAction(event, aaa.BACKGROUND, [background], function(msg) {
can.user.info.background = background, can.onimport._background(can, msg), can.user.toastSuccess(can) can.user.info.background = background, can.onimport._background(can, msg), can.user.toastSuccess(can)
}) }, }) },
theme: function(can, theme) { theme && theme != ice.AUTO && can.runAction({}, chat.THEME, [theme]) theme: function(can, theme, event) { theme && theme != ice.AUTO && can.runAction({}, chat.THEME, [theme])
if (theme) { can.onengine.signal(can, "ontheme", can.request(event, {theme: theme})) }
theme && can.require(["/chat/theme/"+theme+".css"]) theme && can.require(["/chat/theme/"+theme+".css"])
theme && can.misc.localStorage(can, "can.theme", can._theme = theme == ice.AUTO? "": theme) && can.onengine.signal(can, chat.ONTHEMECHANGE, can.request(event, {theme: theme})) theme && can.misc.localStorage(can, "can.theme", can._theme = theme == ice.AUTO? "": theme) && can.onengine.signal(can, chat.ONTHEMECHANGE, can.request(event, {theme: theme}))
theme = can.onexport.theme(can); var list = [html.LIGHT, html.WHITE] theme = can.onexport.theme(can); var list = [html.LIGHT, html.WHITE]
@ -135,7 +136,7 @@ Volcanos(chat.ONACTION, {_init: function(can) {},
usernick: function(event, can) { can.onaction.carte(can.request(event, {_style: "header usernick"}), can, can.onaction._menus) }, usernick: function(event, can) { can.onaction.carte(can.request(event, {_style: "header usernick"}), can, can.onaction._menus) },
shareuser: function(event, can) { can.user.share(can, can.request(event), [ctx.ACTION, chat.SHARE, mdb.TYPE, aaa.LOGIN, mdb.NAME, can.user.title()]) }, shareuser: function(event, can) { can.user.share(can, can.request(event), [ctx.ACTION, chat.SHARE, mdb.TYPE, aaa.LOGIN, mdb.NAME, can.user.title()]) },
theme: function(event, can) { can.page.Select(can, can._output, "div.item.theme>i:first-child", function(target) { theme: function(event, can) { can.page.Select(can, can._output, "div.item.theme>i:first-child", function(target) {
can.onimport.theme(can, can.onimport._theme(can, target.className == icon.SUN? html.DARK: html.LIGHT)) can.onimport.theme(can, can.onimport._theme(can, target.className == icon.SUN? html.DARK: html.LIGHT), event)
}) }, }) },
qrcode: function(event, can) { can.user.share(can, can.request(event, {_handle: ice.TRUE}), [ctx.ACTION, cli.QRCODE]) }, qrcode: function(event, can) { can.user.share(can, can.request(event, {_handle: ice.TRUE}), [ctx.ACTION, cli.QRCODE]) },
language: function(event, can) { can.onimport.language(can, can.user.info.language.indexOf("zh") == 0? "en-us": "zh-cn") }, language: function(event, can) { can.onimport.language(can, can.user.info.language.indexOf("zh") == 0? "en-us": "zh-cn") },

View File

@ -20,7 +20,7 @@ fieldset.River>div.toggle.next { bottom:-52px; }
fieldset.River:not(:hover)>div.toggle { visibility:hidden; } fieldset.River:not(:hover)>div.toggle { visibility:hidden; }
fieldset.River.page { display:none; } fieldset.River.page { display:none; }
fieldset.River:not(.all):not(.tabs):not(.page) { width:var(--header-height); } fieldset.River:not(.all):not(.tabs):not(.page) { width:var(--header-height); }
fieldset.River:not(.all):not(.tabs):not(.page)>div.action { flex-direction:column; overflow:hidden; } fieldset.River:not(.all):not(.tabs):not(.page)>div.action { flex-direction:column; overflow:hidden; visibility:hidden; }
fieldset.River:not(.all):not(.tabs):not(.page)>div.action div.item { margin-right:0; } fieldset.River:not(.all):not(.tabs):not(.page)>div.action div.item { margin-right:0; }
fieldset.River:not(.all):not(.tabs):not(.page)>div.action div.item.share { display:none; } fieldset.River:not(.all):not(.tabs):not(.page)>div.action div.item.share { display:none; }
fieldset.River:not(.all):not(.tabs):not(.page)>div.action div.item.refresh { display:none; } fieldset.River:not(.all):not(.tabs):not(.page)>div.action div.item.refresh { display:none; }

View File

@ -74,6 +74,7 @@ Volcanos(chat.ONACTION, {list: [mdb.CREATE, web.SHARE, web.REFRESH], _init: func
action: function(event, can, river, storm) { action: function(event, can, river, storm) {
can._scrollTop = can._output.scrollTop can._scrollTop = can._output.scrollTop
can.page.Select(can, can._output, [html.DIV_LIST, html.DIV_ITEM], function(target) { can.page.ClassList.del(can, target, html.SELECT) }) can.page.Select(can, can._output, [html.DIV_LIST, html.DIV_ITEM], function(target) { can.page.ClassList.del(can, target, html.SELECT) })
can.onmotion.toggle(can, can.ui.sublist[river], true)
can.onmotion.select(can, can.ui.sublist[river], html.DIV_ITEM, can.ui.storm_list[can.core.Keys(river, storm)]) can.onmotion.select(can, can.ui.sublist[river], html.DIV_ITEM, can.ui.storm_list[can.core.Keys(river, storm)])
can.onmotion.select(can, can._output, html.DIV_ITEM, can.ui.river_list[river]) can.onmotion.select(can, can._output, html.DIV_ITEM, can.ui.river_list[river])
var list = can.db.storm_list[river]; var list = can.db.storm_list[river];

View File

@ -426,7 +426,6 @@ Volcanos(chat.ONSYNTAX, {_init: function(can, msg, cb) { if (!msg) { return }
} }
can.onengine.signal(can, VIEW_CREATE, msg), can.base.isFunc(cb) && cb(msg._content = content._root? content._root: content) can.onengine.signal(can, VIEW_CREATE, msg), can.base.isFunc(cb) && cb(msg._content = content._root? content._root: content)
can.onmotion.delay(can, function() { can.onappend.scroll(can, can.ui.content) }) can.onmotion.delay(can, function() { can.onappend.scroll(can, can.ui.content) })
// can.onmotion.orderShow(can, can.ui.content, "tr")
} can.require([chat.PLUGIN_LOCAL+"code/inner/syntax.js"], function() { var parse = can.onexport.parse(can); can.Conf(chat.PLUG) && (can.onsyntax[parse] = can.Conf(chat.PLUG)) } can.require([chat.PLUGIN_LOCAL+"code/inner/syntax.js"], function() { var parse = can.onexport.parse(can); can.Conf(chat.PLUG) && (can.onsyntax[parse] = can.Conf(chat.PLUG))
var p = can.onsyntax[parse]; !p? can.runAction({}, mdb.PLUGIN, [parse, file, path], function(msg) { var p = can.onsyntax[parse]; !p? can.runAction({}, mdb.PLUGIN, [parse, file, path], function(msg) {
p = can.base.Obj(msg.Result()) p = can.base.Obj(msg.Result())