1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 08:48:06 +08:00
This commit is contained in:
IT 老营长 @云轩领航-创始人 2024-01-27 22:37:54 +08:00
parent 76a213c323
commit 983533635d
7 changed files with 24 additions and 25 deletions

View File

@ -625,8 +625,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
}); return ui._target = target, ui
},
plugin: function(can, meta, cb, target, field) { meta = meta||{}, meta.index = meta.index||can.core.Keys(meta.ctx, meta.cmd)||ice.CAN_PLUGIN
// , meta.space = meta.space||can.ConfSpace()
plugin: function(can, meta, cb, target, field) { meta = meta||{}, meta.index = meta.index||can.core.Keys(meta.ctx, meta.cmd)||ice.CAN_PLUGIN, meta._space = can.Conf("_space")
var res = {}; function _cb(sub, meta, skip) { kit.proto(res, sub), cb && cb(sub, meta, skip) }
if (meta.inputs && meta.inputs.length > 0 || meta.meta) { can.onappend._plugin(can, {meta: meta.meta, list: meta.list}, meta, _cb, target, field); return res }
function _plugin(_meta) { var value = can.onengine.plugin(can, _meta.index)
@ -702,12 +701,15 @@ Volcanos(chat.ONLAYOUT, {_init: function(can, target) { target = target||can._ro
}), can.onengine.signal(can, chat.ONSIZE, can.request({}, {height: height, width: width}))
can.user.isMobile && can.user.isLandscape() || can.page.style(can, document.body, kit.Dict(html.OVERFLOW, html.HIDDEN))
},
expand: function(can, target, width, height, item) { var margin = 2*html.PLUGIN_PADDING
expand: function(can, target, width, height, item) { var margin = 2*html.PLUGIN_PADDING; width = width||320, height = height||160
var n = parseInt(target.offsetWidth/(width+margin)); width = target.offsetWidth/n - margin
if (width+margin >= target.offsetWidth) { n = 1, width = target.offsetWidth - margin }
var m = parseInt(target.offsetHeight/(height+margin)); height = target.offsetHeight/m - margin
if (height+margin >= target.offsetHeight) { n = 1, height = target.offsetHeight - margin }
can.page.SelectChild(can, target, item||html.DIV_ITEM, function(target) {
can.page.styleHeight(can, target, height), can.page.styleWidth(can, target, width)
})
return height+margin
},
background: function(can, url, target) { can.page.style(can, target||can._root._target, "background-image", url == "" || url == "void"? "": 'url("'+url+'")') },
figure: function(event, can, target, right, min) {
@ -736,10 +738,8 @@ Volcanos(chat.ONLAYOUT, {_init: function(can, target) { target = target||can._ro
return layout
},
_float: function(can) { var target = can._fields||can._target, sup = can._fields? can.sup: can
can.onappend.style(can, html.FLOAT), can.onmotion.resize(can, target, function(height, width) { sup.onimport.size(sup, height, width, true) })
var left =
(can._root.River? can._root.River.offsetWidth: 0)
+html.PLUGIN_MARGIN+html.PLUGIN_PADDING+(can.user.mod.isCmd? 0: 120), top = can.page.height()/4; if (can.user.isMobile) { left = 0 }
can.onappend.style(can, html.FLOAT), can.onmotion.resize(can, target, function(height, width) { sup.onimport.size(sup, height, width, true) }, html.HEADER_HEIGHT, can.getRiverWidth())
var left = can.getRiverWidth()+html.PLUGIN_MARGIN+html.PLUGIN_PADDING+(can.user.mod.isCmd? 0: 120), top = can.page.height()/4; if (can.user.isMobile) { left = 0 }
can.page.style(can, target, html.LEFT, left, html.TOP, top), sup.onimport.size(sup, can.base.Max(600, can.page.height()-top-html.ACTION_HEIGHT), can.base.Max(can.user.mod.isCmd? 1200: 1000, can.page.width()-left), true)
target.onclick = function(event) { can.onkeymap.prevent(event)
can.page.Select(can, document.body, "fieldset.float,div.float", function(target) { can.page.style(can, target, "z-index", 9) }), can.page.style(can, target, "z-index", 10)
@ -864,8 +864,8 @@ Volcanos(chat.ONMOTION, {_init: function(can, target) {
var last = can._delay_list.meta[key]||0, self = can._delay_list.meta[key] = can._delay_list.list.push(cb)
return can.core.Timer(interval||30, function() { cb(self, last, can._delay_list.meta[key]) })
},
float: function(can) { var top = html.HEADER_HEIGHT, left = can._root.River? can._root.River._target.offsetWidth: 0
var height = can.base.Max(html.FLOAT_HEIGHT, can.page.height()/2), width = can.base.Max(html.FLOAT_WIDTH, can.page.width()-html.RIVER_WIDTH)
float: function(can) { var top = html.HEADER_HEIGHT, left = can.getRiverWidth()
var height = can.base.Max(html.FLOAT_HEIGHT, can.page.height()/2), width = can.base.Max(html.FLOAT_WIDTH, can.page.width()-can.getRiverWidth())
if (can.user.mod.isCmd) { height = can.base.Max(can.page.height()/2-html.ACTION_HEIGHT, can.page.height(), 320), width = can.page.width()/2, top = html.ACTION_HEIGHT, left = 0 }
if (can.user.isMobile) { if (can.user.isLandscape()) { height = can.page.height()*3/4, width = can.page.width()*3/4 } else { width = can.page.width() } }
can.onimport.size(can, height, width, true), can.onmotion.move(can, can._target, {left: can.page.width()-width, top: (can.page.height()-height)/2})
@ -881,7 +881,7 @@ Volcanos(chat.ONMOTION, {_init: function(can, target) {
if (!can.page.ClassList.set(can, target, html.HIDE, target.innerText.indexOf(value) == -1)) { return target }
}).length
can.user.toast(can, "filter out "+count+" lines")
}, 500)
}, 300)
},
cache: function(can, next) { var list = can.base.getValid(can.base.Obj(can.core.List(arguments).slice(2)), [can._output])
var data = can._cache_data = can._cache_data||{}, old = list[0]._cache_key
@ -913,6 +913,7 @@ Volcanos(chat.ONMOTION, {_init: function(can, target) {
},
move: function(can, target, layout) { layout && can.page.style(can, target, layout), can.onmotion.resize(can, target, function() {}) },
resize: function(can, target, cb, top, left) { var begin, action
top = top || html.HEADER_HEIGHT, left = left || can.getRiverWidth()
target.onmousedown = function(event) { if (event.which != 1 || event.target != target && !(can.page.ClassList.has(can, event.target, html.STATUS) && can.page.tagis(event.target, html.DIV))) { return } window._mousemove = target
begin = {left: target.offsetLeft, top: target.offsetTop, height: target.offsetHeight, width: target.offsetWidth, x: event.x, y: event.y}
}, target.onmouseup = function(event) { begin = null, delete(window._mousemove) }

View File

@ -416,7 +416,7 @@ body.mobile div.output.card { overflow-x:hidden; }
div.output.card>div.item {
background-color:var(--plugin-bg-color); padding:var(--plugin-padding); margin:var(--plugin-padding);
border:var(--box-border); border-radius:var(--plugin-radius); box-shadow:var(--box-shadow);
height:180px; min-width:320px; position:relative; float:left;
min-height:160px; min-width:320px; position:relative; float:left;
}
div.output.card>div.item.stop { color:var(--disable-fg-color); }
div.output.card>div.item>div.title { font-size:var(--legend-font-size); font-weight:bold; padding-bottom:var(--input-padding); border-bottom:var(--box-border); display:flex; align-items:center; overflow:hidden; }

View File

@ -93,7 +93,7 @@ Volcanos("base", {
for (var i = 0; i < list.length; i++) {
var yestoday = this.Time(new Date(now - (i+1)*24*60*60*1000), "%y-%m-%d ")
if (value.indexOf(yestoday) == 0) {
prefix = list[i] || ["周日", "周一", "周二", "周三", "周四", "周五", "周六", "周日"][new Date(value).getDay()]+" ", pre = yestoday; break
prefix = (list[i] || ["周日", "周一", "周二", "周三", "周四", "周五", "周六", "周日"][new Date(value).getDay()])+" ", pre = yestoday; break
}
}
}

View File

@ -32,6 +32,6 @@ Volcanos(chat.ONIMPORT, {
},
layout: function(can) { if (!can.ui.content) { return }
can.page.style(can, can.ui.content, html.HEIGHT, can.ConfHeight(), html.WIDTH, can.ConfWidth()-can.ui.project.offsetWidth)
can.onlayout.expand(can, can.ui.content, 260)
can.onlayout.expand(can, can.ui.content)
},
}, [""])

View File

@ -123,7 +123,6 @@ Volcanos(chat.ONACTION, {list: ["刷新数据", "刷新界面", "切换浮动",
function(can) { if (can.sub.ui.profile) { return "预览" } },
function(can) { if (can.sub.ui.display) { return "演示" } },
],
// ["数据", "保存参数", "清空参数", "复制数据", "下载数据", "清空数据"],
["调试",
function(can) { if (can.Conf("_help")) { return "查看文档" } },
"查看脚本", "查看源码", "查看镜像",
@ -147,9 +146,7 @@ Volcanos(chat.ONACTION, {list: ["刷新数据", "刷新界面", "切换浮动",
},
"刷新数据": function(event, can) { can.Update(event, can.Input()), can.user.toastSuccess(can) },
"刷新界面": function(event, can) { var sub = can.sub; sub.onlayout._init(sub, sub.ConfHeight(), sub.ConfWidth()), can.user.toastSuccess(can) },
"切换浮动": function(event, can, button, sub) { can.onaction._switch(can, sub, chat.FLOAT, function() { can.onmotion.hidden(can, can._action), can.onmotion.hidden(can, can._status)
can.onmotion.float(can), can.onmotion.resize(can, can._target, function(height, width) { can.onimport.size(can, height, width) })
}) },
"切换浮动": function(event, can, button, sub) { can.onaction._switch(can, sub, chat.FLOAT, function() { can.onmotion.hidden(can, can._action), can.onmotion.hidden(can, can._status), can.onmotion.float(can) }) },
"切换全屏": function(event, can, button, sub) { can.onaction._switch(can, sub, chat.FULL, function() { can.page.style(can, can._target, html.LEFT, "", html.TOP, can.onexport.marginTop(), html.BOTTOM, "")
can.ConfHeight(can.page.height()-can.onexport.marginTop()-can.onexport.marginBottom(can)), can.ConfWidth(can.page.width())
}) },

View File

@ -1,6 +1,6 @@
Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) {
can.onmotion.clear(can, target), can.onappend.style(can, can.Conf(ctx.STYLE))
if (can.isCmdMode() && can.Conf(ctx.STYLE) == "form") { can.onappend.style(can, html.OUTPUT) }
if (can.isCmdMode() && can.Conf(ctx.STYLE) == html.FORM) { can.onappend.style(can, html.OUTPUT) }
if (can.Mode() == html.ZONE) { return can.onimport._vimer_zone(can, msg, target) }
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})
@ -8,19 +8,19 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) {
can.onappend.table(can, msg, null, target), can.onappend.board(can, msg, target), can.onmotion.story.auto(can, target)
}
},
card: function(can, msg, target) { can.sup.onexport.outputMargin = function() { return 200 }
card: function(can, msg, target) {
can.page.Appends(can, target||can.ui.content||can._output, msg.Table(function(value) { value.icon = value.icon||value.image
var img = can.misc.Resource(can, value.icon, value.type == web.MASTER? "": value.name)
if (img.indexOf("/require/") == 0 && value.origin) { img = value.origin + img }
return {view: [[html.ITEM, value.type, value.status]], list: [
{view: [wiki.TITLE, html.DIV], list: [
value.icon && {img: img},
{view: wiki.TITLE, list: [{text: value.name}, can.onappend.label(can, value)]},
]},
{view: [wiki.CONTENT, html.DIV, value.text]},
value.icon && {img: img}, {view: wiki.TITLE, list: [{text: value.name}, can.onappend.label(can, value)]},
]}, {view: [wiki.CONTENT, html.DIV, value.text]},
{view: html.ACTION, inner: value.action, _init: function(target) { can.onappend.mores(can, target, value, 5) }},
]}
})), can.onimport.layout = can.onimport.layout||function() { can.onlayout.expand(can, can._output, 320) }, can.onappend.scroll(can, can._output)
})), can.onimport.layout = can.onimport.layout||function() {
var height = can.onlayout.expand(can, can._output); can.sup.onexport.outputMargin = function() { return height }
}, can.onappend.scroll(can, can._output)
},
_vimer_zone: function(can, msg, target) { msg.Table(function(value) { var action = can.page.parseAction(can, value)
can.onimport.item(can, {icon: can.misc.Resource(can, value.icon||value.avatar_url), name: can.page.Color(value[can.Conf(mdb.FIELD)||mdb.VIEW]||value[mdb.NAME]||value[mdb.TEXT]||value[mdb.TYPE]), title: value[mdb.TEXT]||value.description}, function(event) {
@ -125,7 +125,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) {
can.user.carteItem(event, can, item)
}
var ui = can.page.Append(can, target, [{view: html.ITEM, list: [
item.icon && (can.base.contains(item.icon, "http", ".png", ".jpg")? {img: item.icon}: {icon: item.icon}),
item.icon && (can.base.contains(item.icon, ice.HTTP, ".png", ".jpg")? {img: item.icon}: {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.currentTarget)
cb(event, event.currentTarget, event.currentTarget._list && can.onmotion.toggle(can, event.currentTarget._list))

View File

@ -90,6 +90,7 @@ var Volcanos = shy({iceberg: "", volcano: "", frame: chat.FRAME_JS, _cache: {},
setAction: function(key, value) { return can.set(chat.ACTION, key, value) },
getAction: function(key, cb) { return can.get(chat.ACTION, key, cb) },
getActionSize: function(cb) { return can.get(chat.ACTION, nfs.SIZE, cb) },
getRiverWidth: function() { return can._root.River? can._root.River._target.offsetWidth: 0},
isPanelType: function() { return can.page.ClassList.has(can, can._fields||can._target, chat.PANEL) },
isPluginType: function() { return can.page.ClassList.has(can, can._fields||can._target, chat.PLUGIN) },
isStoryType: function() { return can.page.ClassList.has(can, can._fields||can._target, chat.STORY) },