forked from x/volcanos
add studiolayout
This commit is contained in:
parent
d3e9a345ef
commit
2a0b5dcc29
4
const.js
4
const.js
@ -425,8 +425,10 @@ var icon = {
|
|||||||
key: "bi bi-hash", hash: "bi bi-hash", zone: "bi bi-diagram-3", id: "bi bi-sort-numeric-down",
|
key: "bi bi-hash", hash: "bi bi-hash", zone: "bi bi-diagram-3", id: "bi bi-sort-numeric-down",
|
||||||
modify: "bi bi-pencil-square", rename: "bi bi-pencil-square", remove: "bi bi-trash",
|
modify: "bi bi-pencil-square", rename: "bi bi-pencil-square", remove: "bi bi-trash",
|
||||||
enable: "bi bi-toggle-off", disable: "bi bi-toggle-on",
|
enable: "bi bi-toggle-off", disable: "bi bi-toggle-on",
|
||||||
|
expire: "bi bi-clock-history",
|
||||||
|
|
||||||
name: "bi bi-sort-alpha-down",
|
name: "bi bi-sort-alpha-down",
|
||||||
|
sess: "bi bi-telephone-forward",
|
||||||
path: "bi bi-folder2", file: "bi bi-file-earmark-text", line: "bi bi-sort-numeric-down",
|
path: "bi bi-folder2", file: "bi bi-file-earmark-text", line: "bi bi-sort-numeric-down",
|
||||||
start: "bi bi-play-circle", stop: "bi bi-stop-circle",
|
start: "bi bi-play-circle", stop: "bi bi-stop-circle",
|
||||||
load: "bi bi-folder-plus", save: "bi bi-floppy", trash: "bi bi-trash",
|
load: "bi bi-folder-plus", save: "bi bi-floppy", trash: "bi bi-trash",
|
||||||
@ -444,6 +446,7 @@ var icon = {
|
|||||||
install: "bi bi-cloud-download",
|
install: "bi bi-cloud-download",
|
||||||
runtime: "bi bi-info-square",
|
runtime: "bi bi-info-square",
|
||||||
inspect: "bi bi-info-square",
|
inspect: "bi bi-info-square",
|
||||||
|
info: "bi bi-info-square",
|
||||||
template: "bi bi-file-earmark-medical",
|
template: "bi bi-file-earmark-medical",
|
||||||
reboot: "bi bi-bootstrap-reboot",
|
reboot: "bi bi-bootstrap-reboot",
|
||||||
restart: "bi bi-bootstrap-reboot",
|
restart: "bi bi-bootstrap-reboot",
|
||||||
@ -467,6 +470,7 @@ var icon = {
|
|||||||
role: "bi bi-person-square",
|
role: "bi bi-person-square",
|
||||||
title: "bi bi-textarea-t",
|
title: "bi bi-textarea-t",
|
||||||
type: "bi bi-card-list",
|
type: "bi bi-card-list",
|
||||||
|
scan: "bi bi-card-list",
|
||||||
send: "bi bi-send-check",
|
send: "bi bi-send-check",
|
||||||
cmds: "bi bi-terminal",
|
cmds: "bi bi-terminal",
|
||||||
localCreate: "bi bi-cloud-download",
|
localCreate: "bi bi-cloud-download",
|
||||||
|
9
frame.js
9
frame.js
@ -393,7 +393,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.index||"", " .").pop()||""; can.base.isIn(name,
|
var name = can.core.Split(item.nick||item.index||"", " .").pop()||""; can.base.isIn(name,
|
||||||
tcp.SERVER, tcp.CLIENT, web.STUDIO, mdb.SEARCH, web.SERVICE, can.core.Split(can.ConfIndex(), ".").pop(), "launchTemplate",
|
tcp.SERVER, tcp.CLIENT, web.STUDIO, mdb.SEARCH, web.SERVICE, can.core.Split(can.ConfIndex(), ".").pop(), "launchTemplate",
|
||||||
) && (name = (item.index||"").split(".").slice(-2).join(".")), (type != html.PLUG && !can.base.isIn(can.ConfIndex(),
|
) && (name = (item.index||"").split(".").slice(-2).join(".")), (type != "story" && type != html.PLUG && !can.base.isIn(can.ConfIndex(),
|
||||||
web.DESKTOP, web.MESSAGE, web.VIMER,
|
web.DESKTOP, web.MESSAGE, web.VIMER,
|
||||||
)) && (name = can.core.Keys(item.space||item._space, name))
|
)) && (name = can.core.Keys(item.space||item._space, name))
|
||||||
var title = item.title || can.user.isMobile && (can.user.isEnglish(can)? name: (item.help||name)) || (!item.help || name == item.help || can.user.isEnglish(can)? name: name+"("+can.core.Split(item.help)[0]+")")
|
var title = item.title || can.user.isMobile && (can.user.isEnglish(can)? name: (item.help||name)) || (!item.help || name == item.help || can.user.isEnglish(can)? name: name+"("+can.core.Split(item.help)[0]+")")
|
||||||
@ -554,7 +554,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
if (key == mdb.STATUS && can.base.isIn(value, mdb.ENABLE, ice.TRUE)) { _value = `<i class="${icon.disable}">`
|
if (key == mdb.STATUS && can.base.isIn(value, mdb.ENABLE, ice.TRUE)) { _value = `<i class="${icon.disable}">`
|
||||||
function onclick() { run(event, mdb.MODIFY, [mdb.STATUS, mdb.DISABLE]); return true }
|
function onclick() { run(event, mdb.MODIFY, [mdb.STATUS, mdb.DISABLE]); return true }
|
||||||
}
|
}
|
||||||
return {className: option.indexOf(key) > -1? ice.MSG_OPTION: key == ctx.ACTION? ctx.ACTION: "", text: [msg.IsDetail() && key == mdb.KEY? can.user.trans(can, _value, null, html.INPUT): can.user.trans(can, _value, null, html.VALUE), html.TD], onclick: function(event) { var target = event.target
|
return {className: option.indexOf(key) > -1? ice.MSG_OPTION: key == ctx.ACTION? ctx.ACTION: "", text: [msg.IsDetail() && key == mdb.KEY? can.user.trans(can, _value, null, html.INPUT): value, html.TD], onclick: function(event) { var target = event.target
|
||||||
if (onclick()) { return }
|
if (onclick()) { return }
|
||||||
if (key == cli.QRCODE && can.page.tagis(event.target, html.IMG)) { can.user.opens(event.target.title) }
|
if (key == cli.QRCODE && can.page.tagis(event.target, html.IMG)) { can.user.opens(event.target.title) }
|
||||||
if (can.page.tagis(target, html.INPUT) && target.type == html.BUTTON) { can.requestAction(request(event), target.name)
|
if (can.page.tagis(target, html.INPUT) && target.type == html.BUTTON) { can.requestAction(request(event), target.name)
|
||||||
@ -572,6 +572,7 @@ 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 (key == mdb.TYPE) { can.onappend.style(can, value, target.parentNode) }
|
||||||
if (key == ctx.ACTION && msg.IsDetail()) { can.onappend.style(can, ctx.ACTION, target.parentNode) }
|
if (key == ctx.ACTION && msg.IsDetail()) { can.onappend.style(can, ctx.ACTION, target.parentNode) }
|
||||||
key == ctx.ACTION && can.onappend.mores(can, target, data, msg.IsDetail()? 20: html.TABLE_BUTTON)
|
key == ctx.ACTION && can.onappend.mores(can, target, data, msg.IsDetail()? 20: html.TABLE_BUTTON)
|
||||||
var list = can.page.Select(can, target, html.INPUT, function(target) {
|
var list = can.page.Select(can, target, html.INPUT, function(target) {
|
||||||
@ -723,7 +724,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
ui.layout(can.ConfHeight(), can.ConfWidth()), can.onimport._layout && can.onimport._layout(can)
|
ui.layout(can.ConfHeight(), can.ConfWidth()), can.onimport._layout && can.onimport._layout(can)
|
||||||
can.Action(html.FILTER) && can.onmotion.filter(can, can.Action(html.FILTER))
|
can.Action(html.FILTER) && can.onmotion.filter(can, can.Action(html.FILTER))
|
||||||
}
|
}
|
||||||
can.onimport._layout = can.onimport._layout||function(can) { if (!can.ui.content) { return }
|
can.onimport._layout = can.onimport._layout||function(can) { if (!can.ui.content || !can.ui.content.innerHTML) { return }
|
||||||
can.page.style(can, can.ui.content, html.HEIGHT, can._output.style[html.HEIGHT], html.MAX_HEIGHT, can._output.style[html.MAX_HEIGHT])
|
can.page.style(can, can.ui.content, html.HEIGHT, can._output.style[html.HEIGHT], html.MAX_HEIGHT, can._output.style[html.MAX_HEIGHT])
|
||||||
can.page.style(can, can.ui.project, html.HEIGHT, can.ui.content.offsetHeight+can.ui.display.offsetHeight)
|
can.page.style(can, can.ui.project, html.HEIGHT, can.ui.content.offsetHeight+can.ui.display.offsetHeight)
|
||||||
can.onlayout.expand(can, can.ui.content)
|
can.onlayout.expand(can, can.ui.content)
|
||||||
@ -913,7 +914,7 @@ Volcanos(chat.ONMOTION, {_init: function(can, target) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
scrollHold: function(can, cb, target) { target = target || can._output; var left = target.scrollLeft; cb(), target.scrollLeft = left },
|
scrollHold: function(can, cb, target) { target = target || can._output; var left = target.scrollLeft; cb(), target.scrollLeft = left },
|
||||||
scrollIntoView: function(can, target, margin) { if (!target || can._scroll) { return } can._scroll = true, margin = margin||0
|
scrollIntoView: function(can, target, margin) { if (!target || !target.parentNode || can._scroll) { return } can._scroll = true, margin = margin||0
|
||||||
var offset = (target.offsetTop-margin) - target.parentNode.scrollTop, step = offset < 0? -20: 20
|
var offset = (target.offsetTop-margin) - target.parentNode.scrollTop, step = offset < 0? -20: 20
|
||||||
if (Math.abs(offset) > 3000) {
|
if (Math.abs(offset) > 3000) {
|
||||||
return target.parentNode.scrollTop = (target.offsetTop-margin), delete(can._scroll)
|
return target.parentNode.scrollTop = (target.offsetTop-margin), delete(can._scroll)
|
||||||
|
@ -125,6 +125,7 @@ table.content th.select[data-asc="1"] i.bi-sort-down-alt { display:none; }
|
|||||||
table.content td.option { cursor:pointer; }
|
table.content td.option { cursor:pointer; }
|
||||||
table.content td { padding:var(--table-padding); }
|
table.content td { padding:var(--table-padding); }
|
||||||
table.content td i { padding:var(--input-padding); }
|
table.content td i { padding:var(--input-padding); }
|
||||||
|
table.content.detail td:first-child { word-break:keep-all; white-space:pre; }
|
||||||
table.content.detail td:first-child { text-align:center; }
|
table.content.detail td:first-child { text-align:center; }
|
||||||
table.content.detail td:first-child { background-color:var(--plugin-bg-color); position:sticky; left:0; }
|
table.content.detail td:first-child { background-color:var(--plugin-bg-color); position:sticky; left:0; }
|
||||||
table.content.detail td i { display:none; }
|
table.content.detail td i { display:none; }
|
||||||
@ -866,7 +867,7 @@ fieldset>div.output.form>div.item>span { padding:var(--input-padding); }
|
|||||||
fieldset>div.output.form>div.item>span.need { color:red; }
|
fieldset>div.output.form>div.item>span.need { color:red; }
|
||||||
fieldset>div.output.form>div.item>div.item>input { font-size:20px; height:38px; width:var(--form-width); }
|
fieldset>div.output.form>div.item>div.item>input { font-size:20px; height:38px; width:var(--form-width); }
|
||||||
fieldset>div.output.form>div.item>div.item>input[type=button] { font-size:20px; height:48px; border:var(--box-notice); }
|
fieldset>div.output.form>div.item>div.item>input[type=button] { font-size:20px; height:48px; border:var(--box-notice); }
|
||||||
fieldset.studio>div.action>div.item:not(.icons) { font-style:italic; padding:var(--input-margin) var(--button-padding); }
|
fieldset.studio>div.action>div.item:not(.icons) { font-style:italic; }
|
||||||
fieldset.studio>div.output>fieldset>form.option div.icon.delete { display:none; }
|
fieldset.studio>div.output>fieldset>form.option div.icon.delete { display:none; }
|
||||||
fieldset.studio>div.output>fieldset>form.option div.icon:nth-child(2) { margin-left:var(--plugin-margin); }
|
fieldset.studio>div.output>fieldset>form.option div.icon:nth-child(2) { margin-left:var(--plugin-margin); }
|
||||||
fieldset.studio>div.output>fieldset>div.output>table.content { width:100%; }
|
fieldset.studio>div.output>fieldset>div.output>table.content { width:100%; }
|
||||||
@ -879,8 +880,7 @@ fieldset.plug.dream.zone>div.output>div.item>span { line-height:var(--action-hei
|
|||||||
fieldset.cmd>div.item.state { line-height:22px; padding:var(--input-padding) var(--button-padding); float:right; }
|
fieldset.cmd>div.item.state { line-height:22px; padding:var(--input-padding) var(--button-padding); float:right; }
|
||||||
fieldset.cmd>div.item.avatar { padding:0; height:var(--action-height); }
|
fieldset.cmd>div.item.avatar { padding:0; height:var(--action-height); }
|
||||||
fieldset.cmd>div.item.avatar>img { height:var(--action-height); }
|
fieldset.cmd>div.item.avatar>img { height:var(--action-height); }
|
||||||
fieldset.cmd>div.action>div.tabs.select { border-bottom:var(--box-notice3); }
|
/* fieldset.cmd>div.action>div.tabs.select { border-bottom:var(--box-notice3); } */
|
||||||
fieldset.cmd>div.output>div.project div.item.select { border-right:var(--box-notice3); }
|
|
||||||
fieldset.Search div.story[data-type=spark] { margin:0; }
|
fieldset.Search div.story[data-type=spark] { margin:0; }
|
||||||
fieldset.Search>div.output>div.profile { border-left:none; width:unset; }
|
fieldset.Search>div.output>div.profile { border-left:none; width:unset; }
|
||||||
fieldset.Search>div.output>div.content>table.content td { cursor:pointer; }
|
fieldset.Search>div.output>div.content>table.content td { cursor:pointer; }
|
||||||
|
@ -134,7 +134,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { var paths = can.core.Sp
|
|||||||
"\u271A": shy({transform: "translate(0 2px)"}, function(event) { can.onaction.open(event, can, "open") }),
|
"\u271A": shy({transform: "translate(0 2px)"}, function(event) { can.onaction.open(event, can, "open") }),
|
||||||
"\u2756": shy({}, function(event) { can.onaction.plug(event, can, "plug") }),
|
"\u2756": shy({}, function(event) { can.onaction.plug(event, can, "plug") }),
|
||||||
"\u25E7": function(event) { var show = can.onmotion.toggle(can, can.ui.project); can.onimport.layout(can), can.isCmdMode() && can.onexport.session(can, PROJECT_HIDE, show? "": html.HIDE) },
|
"\u25E7": function(event) { var show = can.onmotion.toggle(can, can.ui.project); can.onimport.layout(can), can.isCmdMode() && can.onexport.session(can, PROJECT_HIDE, show? "": html.HIDE) },
|
||||||
"\u25E8": shy({transform: "rotate(90deg) translate"+(can.user.isWindows? "(-2px)": "(1px)")}, function(event) { if (can.page.isDisplay(can.ui.display)) { return can.onmotion.hidden(can, can.ui.display), can.onimport.layout(can) } can.onaction.exec(event, can) }),
|
"\u25E8": shy({transform: "rotate(90deg) translate"+(can.user.isWindows? "(-2px)": "(1px,-2px)")}, function(event) { if (can.page.isDisplay(can.ui.display)) { return can.onmotion.hidden(can, can.ui.display), can.onimport.layout(can) } can.onaction.exec(event, can) }),
|
||||||
"\u25E8 ": function(event) { if (can.page.isDisplay(can.ui.profile)) { return can.onmotion.hidden(can, can.ui.profile), can.onimport.layout(can) } can.onaction.show(event, can) },
|
"\u25E8 ": function(event) { if (can.page.isDisplay(can.ui.profile)) { return can.onmotion.hidden(can, can.ui.profile), can.onimport.layout(can) } can.onaction.show(event, can) },
|
||||||
}, function(text, cb) { return cb && {text: [text, html.SPAN, html.VIEW], style: cb.meta, onclick: cb} }))
|
}, function(text, cb) { return cb && {text: [text, html.SPAN, html.VIEW], style: cb.meta, onclick: cb} }))
|
||||||
},
|
},
|
||||||
@ -282,8 +282,8 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { var paths = can.core.Sp
|
|||||||
if (can.ui.zone && can.ui.zone.source) {
|
if (can.ui.zone && can.ui.zone.source) {
|
||||||
var p = can.ui.zone.source[can.Option(nfs.PATH)+can.Option(nfs.FILE)]
|
var p = can.ui.zone.source[can.Option(nfs.PATH)+can.Option(nfs.FILE)]
|
||||||
can.page.Select(can, can.ui.zone.source._target, "div.name", function(target) {
|
can.page.Select(can, can.ui.zone.source._target, "div.name", function(target) {
|
||||||
can.page.ClassList.del(can, target, "current")
|
can.page.ClassList.del(can, target.parentNode, "current")
|
||||||
}), p && can.page.ClassList.add(can, p, "current")
|
}), p && can.page.ClassList.add(can, p.parentNode, "current")
|
||||||
}
|
}
|
||||||
var content = can.ui.content; if (!content) { return } if (content._root) { can.ui.content = content._root }
|
var content = can.ui.content; if (!content) { return } if (content._root) { can.ui.content = content._root }
|
||||||
can.ui.size = {profile: can._msg.Option(html.WIDTH), display: can._msg.Option(html.HEIGHT)}
|
can.ui.size = {profile: can._msg.Option(html.WIDTH), display: can._msg.Option(html.HEIGHT)}
|
||||||
|
@ -15,8 +15,10 @@ fieldset.vimer>div.output.normal>div.layout>div.tabs>div.tabs>div.tabs.select {
|
|||||||
fieldset.vimer>div.output.insert>div.layout>div.tabs>div.tabs>div.tabs.select { border-top:var(--box-danger3); }
|
fieldset.vimer>div.output.insert>div.layout>div.tabs>div.tabs>div.tabs.select { border-top:var(--box-danger3); }
|
||||||
fieldset.vimer>div.output.normal>div.layout>div.path span.mode.normal { color:var(--notice-bg-color); }
|
fieldset.vimer>div.output.normal>div.layout>div.path span.mode.normal { color:var(--notice-bg-color); }
|
||||||
fieldset.vimer>div.output.insert>div.layout>div.path span.mode.insert { color:var(--danger-bg-color); }
|
fieldset.vimer>div.output.insert>div.layout>div.path span.mode.insert { color:var(--danger-bg-color); }
|
||||||
fieldset.vimer>div.output.insert>div.project div.name.current { background-color:var(--danger-bg-color); color:var(--danger-fg-color); }
|
/* fieldset.vimer>div.output.insert>div.project div.item.current { background-color:var(--danger-bg-color); color:var(--danger-fg-color); } */
|
||||||
fieldset.vimer>div.output.normal>div.project div.name.current { background-color:var(--notice-bg-color); color:var(--notice-fg-color); }
|
/* fieldset.vimer>div.output.normal>div.project div.item.current { background-color:var(--notice-bg-color); color:var(--notice-fg-color); } */
|
||||||
|
fieldset.vimer>div.output.insert>div.project div.item.current { background-color:var(--hover-bg-color); border-right:var(--box-danger3); }
|
||||||
|
fieldset.vimer>div.output.normal>div.project div.item.current { background-color:var(--hover-bg-color); border-right:var(--box-notice3); }
|
||||||
fieldset.vimer>div.output.normal>div.project div.expand.open { color:var(--notice-bg-color); }
|
fieldset.vimer>div.output.normal>div.project div.expand.open { color:var(--notice-bg-color); }
|
||||||
fieldset.vimer>div.output.insert>div.project div.expand.open { color:var(--danger-bg-color); }
|
fieldset.vimer>div.output.insert>div.project div.expand.open { color:var(--danger-bg-color); }
|
||||||
div.input.vimer.open.float input[type=text] { width:100% !important; }
|
div.input.vimer.open.float input[type=text] { width:100% !important; }
|
||||||
|
@ -67,7 +67,7 @@ Volcanos(chat.ONACTION, {list: [
|
|||||||
"后台", "桌面", "官网"], _trans: {show: "预览", exec: "展示"},
|
"后台", "桌面", "官网"], _trans: {show: "预览", exec: "展示"},
|
||||||
_run: function(event, can, button, args, cb) { can.runAction(event, button, args, cb||function(msg) {
|
_run: function(event, can, button, args, cb) { can.runAction(event, button, args, cb||function(msg) {
|
||||||
if (msg.IsErr()) { return can.user.toastFailure(can, msg.Result()) }
|
if (msg.IsErr()) { return can.user.toastFailure(can, msg.Result()) }
|
||||||
can.onimport.tabview(can, msg.Option(nfs.PATH), msg.Option(nfs.FILE)), can.user.toastSuccess(can, button), can.ui.zone.source.refresh()
|
can.onimport.tabview(can, msg.Option(nfs.PATH), msg.Option(nfs.FILE)), can.ui.zone.source.refresh()
|
||||||
}) },
|
}) },
|
||||||
_runs: function(event, can, button, cb) { var meta = can.Conf(); can.request(event, {action: button}), can.user.input(event, can, meta.feature[button], function(args) { can.onaction._run(event, can, button, args, cb) }) },
|
_runs: function(event, can, button, cb) { var meta = can.Conf(); can.request(event, {action: button}), can.user.input(event, can, meta.feature[button], function(args) { can.onaction._run(event, can, button, args, cb) }) },
|
||||||
save: function(event, can, button) { can.request(event, {file: can.Option(nfs.FILE), content: can.onexport.content(can)})
|
save: function(event, can, button) { can.request(event, {file: can.Option(nfs.FILE), content: can.onexport.content(can)})
|
||||||
@ -81,7 +81,7 @@ Volcanos(chat.ONACTION, {list: [
|
|||||||
if (can.onexport.parse(can) == nfs.GO) { var line = can.onaction.selectLine(can); can.onmotion.clear(can, can.ui.content)
|
if (can.onexport.parse(can) == nfs.GO) { var line = can.onaction.selectLine(can); can.onmotion.clear(can, can.ui.content)
|
||||||
can.ui.content._max = 0, can.core.List(msg.Result().split(lex.NL), function(item) { can.onaction.appendLine(can, item) })
|
can.ui.content._max = 0, can.core.List(msg.Result().split(lex.NL), function(item) { can.onaction.appendLine(can, item) })
|
||||||
can.onaction.selectLine(can, line+imports(msg.Result())-imports(msg.Option(nfs.CONTENT)))
|
can.onaction.selectLine(can, line+imports(msg.Result())-imports(msg.Option(nfs.CONTENT)))
|
||||||
} can.user.toastSuccess(can, button, can.Option(nfs.PATH)+can.Option(nfs.FILE))
|
} can.user.toastSuccess(can, can.Option(nfs.PATH)+can.Option(nfs.FILE), button)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
trash: function(event, can, button) { can.onaction._run(event, can, button, [can.Option(nfs.PATH)+can.Option(nfs.FILE)], function() { can._msg._tab._close() }) },
|
trash: function(event, can, button) { can.onaction._run(event, can, button, [can.Option(nfs.PATH)+can.Option(nfs.FILE)], function() { can._msg._tab._close() }) },
|
||||||
|
@ -13,13 +13,27 @@ Volcanos(chat.ONIMPORT, {
|
|||||||
_inner: function(can, sub, msg) { sub = sub||can, can.onmotion.scrollIntoView(can, can.onappend.table(sub, msg)), can.onmotion.scrollIntoView(can, can.onappend.board(sub, msg)), can.onmotion.story.auto(sub) },
|
_inner: function(can, sub, msg) { sub = sub||can, can.onmotion.scrollIntoView(can, can.onappend.table(sub, msg)), can.onmotion.scrollIntoView(can, can.onappend.board(sub, msg)), can.onmotion.story.auto(sub) },
|
||||||
_cookie: function(can, msg) { can.misc.Cookie(can, msg._arg[0], msg._arg[1]), can.Update() },
|
_cookie: function(can, msg) { can.misc.Cookie(can, msg._arg[0], msg._arg[1]), can.Update() },
|
||||||
_session: function(can, msg) { can.misc.sessionStorage(can, msg._arg[0], msg._arg[1]), can.Update() },
|
_session: function(can, msg) { can.misc.sessionStorage(can, msg._arg[0], msg._arg[1]), can.Update() },
|
||||||
_field: function(can, msg, cb) { var height = can.base.Max(html.STORY_HEIGHT, can.ConfHeight()-2*html.ACTION_HEIGHT), width = can.ConfWidth()
|
_field: function(can, msg, cb) {
|
||||||
msg.Table(function(item) { if (can.page.tagis(can._target, html.FIELDSET_STORY) || can._msg && can._msg.IsDetail()) { item.style = item.style||html.FLOAT }
|
var height = can.base.Max(html.STORY_HEIGHT, can.ConfHeight()-can.onexport.actionHeight(can)-can.onexport.statusHeight(can)), width = can.ConfWidth()
|
||||||
|
var tabs = false
|
||||||
|
if (msg.Option("field.tabs")) { height = can.ConfHeight()-can.onexport.actionHeight(can)-can.onexport.statusHeight(can)
|
||||||
|
can.sub && can.sub.onimport.tabs(can, [{name: msg.Option("field.tabs")}], function() {
|
||||||
|
can.onmotion.cache(can, function() { return msg.Option("field.tabs") })
|
||||||
|
}), tabs = true
|
||||||
|
}
|
||||||
|
msg.Table(function(item) {
|
||||||
|
// if (can.page.tagis(can._target, html.FIELDSET_STORY) || can._msg && can._msg.IsDetail()) { item.style = item.style||html.FLOAT }
|
||||||
can.onappend._plugin(can, item, {index: item.index, args: can.base.Obj(item.args||item.arg, []), height: height, width: width}, function(sub) {
|
can.onappend._plugin(can, item, {index: item.index, args: can.base.Obj(item.args||item.arg, []), height: height, width: width}, function(sub) {
|
||||||
|
can._plugins = (can._plugins||[]).concat([sub])
|
||||||
sub.run = function(event, cmds, cb) { var index = msg.Option(ice.MSG_INDEX); can.run(can.request(event, {pod: item.space}), (msg[ice.MSG_PREFIX]? msg[ice.MSG_PREFIX]: index? [ctx.RUN, index]: []).concat(cmds), cb, true) }
|
sub.run = function(event, cmds, cb) { var index = msg.Option(ice.MSG_INDEX); can.run(can.request(event, {pod: item.space}), (msg[ice.MSG_PREFIX]? msg[ice.MSG_PREFIX]: index? [ctx.RUN, index]: []).concat(cmds), cb, true) }
|
||||||
if (item.style != html.FLOAT && can.base.isIn(sub.ConfIndex(), wiki.PORTAL, chat.IFRAME, chat.DESKTOP, wiki.WORD, code.VIMER,)) { height = can.base.Max(can.onexport.outputHeight(can), can.ConfHeight(), 480) }
|
if (item.style != html.FLOAT && can.base.isIn(sub.ConfIndex(), wiki.PORTAL, chat.IFRAME, chat.DESKTOP, wiki.WORD, code.VIMER,)) { height = can.base.Max(can.onexport.outputHeight(can), can.ConfHeight(), 480) }
|
||||||
can.page.ClassList.has(can, sub._target, html.FLOAT)? can.onmotion.float(sub): sub.onimport.size(sub, height, width, true), cb && cb(sub)
|
can.page.ClassList.has(can, sub._target, html.FLOAT)? can.onmotion.float(sub): sub.onimport.size(sub, height, width, true), cb && cb(sub)
|
||||||
if (item.style == html.FLOAT) { return } can.onmotion.delay(can, function() { can.onmotion.scrollIntoView(can, sub._target) }, 300)
|
if (item.style == html.FLOAT) { return } can.onmotion.delay(can, function() { can.onmotion.scrollIntoView(can, sub._target) }, 300)
|
||||||
|
sub.onexport.output = function() {
|
||||||
|
tabs && sub.sub.onimport.tabs(can, [{name: msg.Option("field.tabs")}], function() {
|
||||||
|
tabs || can.onmotion.cache(can, function() { return msg.Option("field.tabs") })
|
||||||
|
}), tabs = false
|
||||||
|
}
|
||||||
if (can.base.isIn(sub.ConfIndex(), wiki.WORD)) { sub.onexport.output = function() { can.page.style(can, sub._output, html.HEIGHT, "", html.MAX_HEIGHT, "") } }
|
if (can.base.isIn(sub.ConfIndex(), wiki.WORD)) { sub.onexport.output = function() { can.page.style(can, sub._output, html.HEIGHT, "", html.MAX_HEIGHT, "") } }
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@ -97,6 +111,7 @@ Volcanos(chat.ONIMPORT, {
|
|||||||
(can.page.style(can, can._output, html.HEIGHT, height, html.WIDTH, width, html.MAX_HEIGHT, "", html.MAX_WIDTH, ""), can.page.style(can, can._target, html.WIDTH, width))
|
(can.page.style(can, can._output, html.HEIGHT, height, html.WIDTH, width, html.MAX_HEIGHT, "", html.MAX_WIDTH, ""), can.page.style(can, can._target, html.WIDTH, width))
|
||||||
if (can.misc.Search(can, log.DEBUG) == ice.TRUE) { can.Status(html.HEIGHT, can.base.Max(height, can._output.offsetHeight), html.WIDTH, width) }
|
if (can.misc.Search(can, log.DEBUG) == ice.TRUE) { can.Status(html.HEIGHT, can.base.Max(height, can._output.offsetHeight), html.WIDTH, width) }
|
||||||
can.page.style(can, can._status, html.MAX_WIDTH, width)
|
can.page.style(can, can._status, html.MAX_WIDTH, width)
|
||||||
|
can.core.List(can._plugins, function(sub) { sub.onimport.size(sub, height, width, false) })
|
||||||
var sub = can.sub; if (!sub) { return auto } sub.Mode(mode), sub.ConfHeight(height), sub.ConfWidth(width), can.onimport._size(can)
|
var sub = can.sub; if (!sub) { return auto } sub.Mode(mode), sub.ConfHeight(height), sub.ConfWidth(width), can.onimport._size(can)
|
||||||
mode? sub.onlayout[mode](sub, height, width): sub.onlayout._init(sub, height, width)
|
mode? sub.onlayout[mode](sub, height, width): sub.onlayout._init(sub, height, width)
|
||||||
return auto
|
return auto
|
||||||
|
17
plugin/story/studiolayout.css
Normal file
17
plugin/story/studiolayout.css
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
fieldset.studiolayout>div.output>div.project div.item { font-family:var(--code-font-family); border-left:var(--box-border3); }
|
||||||
|
fieldset.studiolayout>div.output>div.project div.item.select { border-left:var(--box-notice3); }
|
||||||
|
fieldset.studiolayout>div.output>div.layout>div.layout>div.profile>fieldset.story { box-shadow:none; margin:0px; }
|
||||||
|
fieldset.studiolayout>div.output>div.layout>div.layout>div.content>fieldset.story { box-shadow:none; margin:0px; }
|
||||||
|
fieldset.studiolayout>div.output>div.layout>div.display>fieldset.story { box-shadow:none; margin:0px; }
|
||||||
|
fieldset.studiolayout>div.output>div.layout>div.display>fieldset.story>form.option>div.item.delete { display:none; }
|
||||||
|
fieldset.studiolayout>div.output>div.layout>div.display>fieldset.story>form.option>div.item.sess { display:none; }
|
||||||
|
fieldset.studiolayout>div.output>div.layout>div.display>fieldset.story>div.action>div.item.state { display:none; }
|
||||||
|
fieldset.studiolayout>div.output>div.layout>div.layout>div.profile>fieldset.story>form.option>div.item.delete { display:none; }
|
||||||
|
fieldset.studiolayout>div.output>div.layout>div.layout>div.content>fieldset.story>form.option>div.item.delete { display:none; }
|
||||||
|
fieldset.studiolayout>div.output>div.layout>div.layout>div.profile>fieldset.story>form.option>div.item.sess { display:none; }
|
||||||
|
fieldset.studiolayout>div.output>div.layout>div.layout>div.content>fieldset.story>form.option>div.item.sess { display:none; }
|
||||||
|
fieldset.studiolayout>div.output>div.layout>div.layout>div.profile>fieldset.story>div.action>div.item.state { display:none; }
|
||||||
|
fieldset.studiolayout>div.output>div.layout>div.layout>div.content>fieldset.story>div.action>div.item.state { display:none; }
|
||||||
|
|
||||||
|
body.cmd { --box-shadow:none; }
|
||||||
|
body.cmd legend { margin-right:0; }
|
44
plugin/story/studiolayout.js
Normal file
44
plugin/story/studiolayout.js
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
Volcanos(chat.ONIMPORT, {
|
||||||
|
_init: function(can, msg) {
|
||||||
|
can.onimport.project(can, msg, aaa.SESS, function(event, sess, value) { return {
|
||||||
|
content: {index: "web.code.redis.keys", args: sess},
|
||||||
|
profile: {index: "web.code.redis.configs", args: sess, style: html.OUTPUT},
|
||||||
|
display: {index: "web.code.redis.shells", args: sess, style: html.OUTPUT},
|
||||||
|
} })
|
||||||
|
},
|
||||||
|
_nick: function(can, value) { return value.name },
|
||||||
|
project: function(can, msg, key, cb) { can.ui = can.onappend.layout(can), can.onappend.style(can, "studiolayout", can._fields)
|
||||||
|
var _select; msg.Table(function(value) { value.nick = can.onimport._nick(can, value)
|
||||||
|
var target = can.onimport.item(can, value, function(event, value) { can.misc.SearchHash(can, value[key])
|
||||||
|
if (can.onmotion.cache(can, function(save, load) {
|
||||||
|
save({
|
||||||
|
_content: can.ui._content_plugin,
|
||||||
|
_profile: can.ui._profile_plugin,
|
||||||
|
_display: can.ui._display_plugin,
|
||||||
|
}), load(value[key], function(bak) {
|
||||||
|
can.ui._content_plugin = bak._content
|
||||||
|
can.ui._profile_plugin = bak._profile
|
||||||
|
can.ui._display_plugin = bak._display
|
||||||
|
})
|
||||||
|
return value[key]
|
||||||
|
}, can.ui.content, can.ui.profile, can.ui.display)) {
|
||||||
|
can.onmotion.select(can, can._action, html.DIV_TABS, value._tabs); return
|
||||||
|
} value._tabs = can.onimport.tabs(can, [value], function() { target.click() })
|
||||||
|
can.core.Item(cb(event, value[key], value), function(key, item) { can.onmotion.toggle(can, can.ui[key], true)
|
||||||
|
can.onappend.plugin(can, item, function(sub) { can.ui["_"+key+"_plugin"] = sub
|
||||||
|
can.onimport.layout(can), sub.onexport.output = function() { can.onimport.layout(can) }
|
||||||
|
}, can.ui[key])
|
||||||
|
})
|
||||||
|
}); _select = _select||target, can.db.hash[0] == value.sess && (_select = target)
|
||||||
|
}), _select && _select.click()
|
||||||
|
},
|
||||||
|
layout: function(can) {
|
||||||
|
can.ui.layout(can.ConfHeight(), can.ConfWidth(), 0, function(height, width) {
|
||||||
|
var height = can.ConfHeight(), width = (can.ConfWidth()-can.ui.project.offsetWidth-2), margin = 0
|
||||||
|
can.ui._profile_plugin && (width /= 2), can.ui._display_plugin && (height /= 2)
|
||||||
|
can.ui._content_plugin && can.ui._content_plugin.onimport.size(can.ui._content_plugin, height-margin, width-margin, false)
|
||||||
|
can.ui._profile_plugin && can.ui._profile_plugin.onimport.size(can.ui._profile_plugin, height-margin, width-margin, false)
|
||||||
|
can.ui._display_plugin && can.ui._display_plugin.onimport.size(can.ui._display_plugin, height-margin-2, width*2-margin, false)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
}, [""])
|
@ -120,9 +120,9 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) {
|
|||||||
can.user.carteItem(event, can, item)
|
can.user.carteItem(event, can, item)
|
||||||
}
|
}
|
||||||
var icon = item.icon||item.icons
|
var icon = item.icon||item.icons
|
||||||
var ui = can.page.Append(can, target, [{view: [[html.ITEM, item.type, item.status]], list: [
|
var ui = can.page.Append(can, target, [{view: [[html.ITEM, item.type, item.role, item.status]], list: [
|
||||||
icon && (can.base.contains(icon, ice.HTTP, ".ico", ".png", ".jpg")? {img: can.misc.Resource(can, icon)}: {icon: icon}),
|
icon && (can.base.contains(icon, ice.HTTP, ".ico", ".png", ".jpg")? {img: can.misc.Resource(can, icon)}: {icon: icon}),
|
||||||
{text: item.nick||item.name||item.zone}], title: item.title, onclick: function(event) {
|
{text: item.nick||item.name||item.sess||item.zone}], title: item.title, onclick: function(event) {
|
||||||
can.onmotion.select(can, target, html.DIV_ITEM, event.currentTarget)
|
can.onmotion.select(can, target, html.DIV_ITEM, event.currentTarget)
|
||||||
cb(event, item, event.currentTarget._list && can.onmotion.toggle(can, event.currentTarget._list))
|
cb(event, item, event.currentTarget._list && can.onmotion.toggle(can, event.currentTarget._list))
|
||||||
}, oncontextmenu: oncontextmenu,
|
}, oncontextmenu: oncontextmenu,
|
||||||
@ -189,7 +189,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) {
|
|||||||
} cbs && cbs(tabs), can.page.Remove(can, target)
|
} cbs && cbs(tabs), can.page.Remove(can, target)
|
||||||
can.onexport.tabs(can)
|
can.onexport.tabs(can)
|
||||||
}
|
}
|
||||||
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) {
|
return {view: [[html.TABS, tabs.type, tabs.role, tabs.status]], 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)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user