diff --git a/frame.js b/frame.js
index c63264e4..e96b9c71 100644
--- a/frame.js
+++ b/frame.js
@@ -111,7 +111,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
can.page.Select(can, status, [[[html.SPAN, key]]], function(target) {
if (key == web.SPACE && value) { value = can.page.Format(html.A, can.misc.MergePodCmd(can, {pod: value}), value) }
if (can.base.beginWith(value, nfs.PS, ice.HTTP)) { value = can.page.Format(html.A, value) }
- return can.base.isUndefined(value)? (value = target.innerHTML): (target.innerHTML = value.trim? value.trim(): value+"")
+ return can.base.isUndefined(value)? (value = target.innerText): (target.innerHTML = value.trim? value.trim(): value+"")
}); return value
} catch {} },
Action: function(key, value) {
@@ -795,9 +795,10 @@ Volcanos(chat.ONMOTION, {_init: function(can, target) {
}
},
slideGrow: function(can, target) {
+ if (can.page.tagis(target, html.DIV) && can.page.ClassList.has(can, target, html.INPUT)) { return }
var height = target.offsetHeight, begin = 0; if (height < 10) { return }
can.page.style(can, target, html.HEIGHT, 0)
- can.core.Timer({interval: 1, length: height/6}, function(timer, interval, index, list) {
+ can.core.Timer({interval: 1, length: height/5}, function(timer, interval, index, list) {
can.page.style(can, target, html.HEIGHT, begin += height/list.length)
}, function() {
can.page.style(can, target, html.HEIGHT, "")
diff --git a/index.css b/index.css
index 2d0105ff..5d69982e 100644
--- a/index.css
+++ b/index.css
@@ -109,7 +109,7 @@ fieldset.input.key.simple th { display:none; }
fieldset.input.key.simple td { min-width:40px; }
fieldset.input.date>div.action>div.item.next { margin-right:0; }
fieldset.input.date>div.action>div.item.today { margin-right:0; }
-fieldset.input.date>div.output table.content { text-align:center; width:100%; min-width:350px; }
+fieldset.input.date>div.output table.content { text-align:center; width:100%; min-width:350px; border:var(--notice-bg-color) solid 1px; }
fieldset.input.date>div.output td { padding:2px 10px; }
fieldset.input.date>div.output td.prev { color:var(--disable-fg-color); }
fieldset.input.date>div.output td.next { color:var(--disable-fg-color); }
@@ -138,6 +138,11 @@ body.mobile>div.carte div.item { padding:10px; }
body>div.carte div.item span.icon.next { float:right; line-height:22px; height:22px; }
body>div.carte.select.float>div.item { text-align:center; }
body>div.input { padding:20px; }
+body>div.input>legend { font-style:italic; width:100%; }
+body>div.input input[name=cancel] { border:var(--danger-bg-color) solid 1px; }
+body>div.input input[name=submit] { border:var(--notice-bg-color) solid 1px; }
+body>div.input input[name=submit]:hover { background-color:var(--notice-bg-color); color:var(--notice-fg-color); }
+body>div.input input[name=cancel]:hover { background-color:var(--danger-bg-color); color:var(--danger-fg-color); }
/* body>div.input div.output { clear:both; } */
body>div.input td { padding:10px; }
body>div.input td:nth-child(2) { padding:10px 0;}
@@ -162,8 +167,8 @@ body>div.input td:hover span.icons { visibility:visible; }
body>div.input select { width:230px !important; }
body>div.input input:not([type=button]) { width:240px; }
body>div.input textarea { height:120px; width:240px !important; }
-body>div.input div.action { width:100%; position:sticky; bottom:0; }
-body>div.input div.action>div.item { margin:5px; float:right; }
+body>div.input div.action { padding:0 10px; width:100%; position:sticky; bottom:0; }
+body>div.input div.action>div.item { margin-left:10px; float:right; }
body>div.input div.action>div.item>input[type=button] { width:110px; }
body.mobile.landscape>div.input.login { padding:0; }
body.mobile.landscape>div.input.login div.output img { max-height:280px; }
@@ -365,9 +370,11 @@ body.cmd { background-color:var(--plugin-bg-color); color:var(--body-fg-color);
legend { background-color:var(--legend-bg-color); border-radius:var(--input-radius); }
legend:hover { background-color:var(--hover-bg-color); color:var(--hover-fg-color); }
select { border-radius:var(--input-radius); }
+textarea:hover { border:var(--box-notice); }
input { background-color:var(--input-bg-color); color:var(--input-fg-color); border-radius:var(--input-radius); }
input:not([type=button]) { border:var(--input-border); }
input:not([type=button]):hover { border:var(--box-notice); }
+input.select[type=button]:hover { border:var(--box-notice); }
input:not([type=button]):focus { border:var(--box-notice); }
input[type=button]:hover { background-color:var(--hover-bg-color); color:var(--hover-fg-color); }
textarea { background-color:var(--input-bg-color); color:var(--input-fg-color); border:var(--box-border); }
diff --git a/panel/action.css b/panel/action.css
index 55b15016..3f36de1b 100644
--- a/panel/action.css
+++ b/panel/action.css
@@ -22,6 +22,7 @@ fieldset.Action.grid>div.output>fieldset.plugin>form.option input[type=text] { w
fieldset.Action>div.project.toggle { font-size:32px; cursor:pointer; padding-top:50px; height:150px; position:fixed; top:30%; border-top-right-radius:20px; border-bottom-right-radius:20px; }
fieldset.Action>div.project.toggle { background-color:#4a566e6e; color:var(--panel-fg-color); width:20px; }
fieldset.Action>div.project.toggle:hover { background-color:var(--hover-bg-color); color:var(--panel-hover-fg-color); }
+body:not(.mobile) fieldset.Action>div.project.toggle { display:none; }
fieldset.Action.tabview>div.project.toggle { display:none; }
fieldset.Action.vertical>div.project.toggle { display:none; }
fieldset.Action.horizon>div.project.toggle { display:none; }
diff --git a/panel/river.css b/panel/river.css
index 72248478..82632ea0 100644
--- a/panel/river.css
+++ b/panel/river.css
@@ -1,6 +1,9 @@
fieldset.River { width:var(--project-width); float:left; }
fieldset.River>div.action { width:100%; display:flex; justify-content:center; }
fieldset.River>div.output div.item { padding:20px 20px; border-left:#00ffae solid 3px; }
+fieldset.River>div.output div.item>i.bi-chevron-down { float:right; }
+fieldset.River>div.output div.item.open>i.bi-chevron-down { rotate:-180deg; transition:all 0.5s; }
+fieldset.River>div.output div.item:not(.open)>i.bi-chevron-down { transition:all 0.5s; }
fieldset.River>div.output div.list div.item { border-left:#ccdc4c solid 3px; }
fieldset.River>div.output div.list { margin-left:20px; }
body:not(.mobile) fieldset.River>div.output { padding:10px; }
diff --git a/panel/river.js b/panel/river.js
index 323c2c20..658d7e19 100644
--- a/panel/river.js
+++ b/panel/river.js
@@ -9,7 +9,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg) { can.onimport._main(can, msg
can._main_river = ls[0]||can.misc.SearchOrConf(can, chat.RIVER)||msg.Option(ice.MSG_RIVER)||"project"
can._main_storm = ls[1]||can.misc.SearchOrConf(can, chat.STORM)||msg.Option(ice.MSG_STORM)||"studio"
},
- _river: function(can, meta, cb) { return {view: html.ITEM, list: [{icon: meta.icon}, {text: meta.name}], _init: function(target) { can.ui.river_list[meta.hash] = target, cb(target) },
+ _river: function(can, meta, cb) { return {view: html.ITEM, list: [{icon: meta.icon}, {text: meta.name}, {icon: "bi bi-chevron-down"}], _init: function(target) { can.ui.river_list[meta.hash] = target, cb(target) },
onclick: function(event) { can.onaction.storm(event, can, meta.hash) }, oncontextmenu: function(event) { can.onaction.carte(event, can, can.onaction._menu, meta.hash) },
} },
_storm: function(can, meta, river) { return {view: html.ITEM, list: [{icon: meta.icon}, {text: meta.name}], _init: function(target) { can.ui.storm_list[can.core.Keys(river, meta.hash)] = target },
@@ -47,8 +47,11 @@ Volcanos(chat.ONACTION, {list: [mdb.CREATE, web.SHARE, web.REFRESH], _init: func
var menu = can.setFooterMenu(list, function(event, button, list) { can.onaction.action(event, can, river, button) })
can.page.SelectChild(can, menu, html.DIV_ITEM, function(target, index) { can.page.ClassList.set(can, target, html.SELECT, list[index].hash == can.Conf("storm")) })
}) }
- var list = can.ui.sublist[river]; if (list) { return can.onmotion.toggle(can, list), _menu() }
+ var list = can.ui.sublist[river]; if (list) {
+ return can.page.ClassList.set(can, can.ui.river_list[river], "open", can.onmotion.toggle(can, list)), _menu()
+ }
can.run({}, [river, chat.STORM], function(msg) { var next = can.ui.river_list[river].nextSibling
+ can.page.ClassList.set(can, can.ui.river_list[river], "open", true)
if (msg.Length() == 0) { return can.user.isLocalFile? can.user.toastFailure(can, "miss data"): can.onengine.signal(can, chat.ONACTION_NOSTORM, can.request({}, {river: river})) }
can.db.storm_list[river] = msg.Table()
var select = 0; list = can.page.Append(can, can._output, [{view: html.LIST, list: msg.Table(function(item, index) {
@@ -59,7 +62,8 @@ Volcanos(chat.ONACTION, {list: [mdb.CREATE, web.SHARE, web.REFRESH], _init: func
action: function(event, can, river, storm) { can.user.isMobile || can.misc.SearchHash(can, river, storm)
can.page.Select(can, can._output, [html.DIV_LIST, html.DIV_ITEM], function(target) { can.page.ClassList.del(can, target, html.SELECT) })
can.onmotion.select(can, can.ui.sublist[river], html.DIV_ITEM, can.ui.storm_list[can.core.Keys(river, storm)])
- can.onaction.storm({target: can.ui.river_list[river]}, can, river), can.onmotion.toggle(can, can.ui.sublist[river], true)
+ can.onaction.storm({target: can.ui.river_list[river]}, can, river)
+ can.page.ClassList.set(can, can.ui.river_list[river], "open", can.onmotion.toggle(can, can.ui.sublist[river], true))
can.onengine.signal(can, chat.ONSTORM_SELECT, can.request(event, {river: can.Conf(chat.RIVER, river), storm: can.Conf(chat.STORM, storm)}))
},
carte: function(event, can, list, river, storm) { can.onkeymap.prevent(event); if (can.core.Value(can._root, can.core.Keys(chat.RIVER, river))) { return }
diff --git a/publish/client/mp/app.wxss b/publish/client/mp/app.wxss
index a0787068..de498757 100644
--- a/publish/client/mp/app.wxss
+++ b/publish/client/mp/app.wxss
@@ -9,23 +9,25 @@ page {
}
page { padding:10px; }
page, view { box-sizing: border-box; }
-view.output { width:100%; overflow:auto; overflow-x:hidden; clear:both; }
+view.output { width:100%; overflow-x:hidden; }
view.output textarea { text-align:left; padding:10px; width:100%; }
view.output view.item { font-size:18px; text-align:center; padding:10px; border:var(--box-border); }
view.output view.list view.item { margin-left:20px; }
+view.field>view.output { overflow:auto; }
view.legend { font-size:20px; font-weight:bold; font-style:italic; margin:10px 0; }
view.action view.item { padding:0; border:0; margin-right:5px; float:left; }
view.option view.item { padding:0; border:0; margin-right:5px; float:left; }
view.option view.item.textarea { border:var(--box-border); width:calc(100% - 2px); clear:both; }
view.option view.item.select { border:var(--box-border); }
-view.option view.item picker { border:var(--box-border); height:30px; width:60px; }
-view.option view.item input { border:var(--box-border); height:30px; width:60px; }
+view.option view.item picker { border:var(--box-border); height:30px; width:80px; }
+view.option view.item input { border:var(--box-border); height:30px; width:80px; }
view.option view.item button { height:32px; }
view.output view.code { white-space:pre; border-left:cyan solid 1px; }
view.status view.item { font-size:12px; font-style:italic; padding:5px; border:none; margin:0; float:left; }
view.status view.item text.name { font-size:10px; }
view.action.submit view.item { margin-right:0; }
+view.field.cli.qrcode view.option view.item input { width:70px; }
table { display:table; border-collapse:collapse; width:100%; }
table.debug { font-family:monospace; font-style:italic; }
diff --git a/publish/client/mp/pages/action/action.wxml b/publish/client/mp/pages/action/action.wxml
index 5581030e..8813c7f9 100644
--- a/publish/client/mp/pages/action/action.wxml
+++ b/publish/client/mp/pages/action/action.wxml
@@ -3,7 +3,7 @@
-
+
{{field.name}}({{field.help}})
diff --git a/publish/client/mp/project.private.config.json b/publish/client/mp/project.private.config.json
index 38b1bb9d..23ff34ad 100644
--- a/publish/client/mp/project.private.config.json
+++ b/publish/client/mp/project.private.config.json
@@ -6,6 +6,13 @@
"condition": {
"miniprogram": {
"list": [
+ {
+ "name": "web.dream",
+ "pathName": "pages/action/action",
+ "query": "index=web.dream&debug=true",
+ "launchMode": "default",
+ "scene": 1001
+ },
{
"name": "cli.qrcode",
"pathName": "pages/action/action",
@@ -19,13 +26,6 @@
"query": "index=cli.runtime&serve=http%3A%2F%2F192.168.10.12%3A9020&debug=true",
"launchMode": "default",
"scene": null
- },
- {
- "name": "web.dream",
- "pathName": "pages/action/action",
- "query": "index=web.dream&serve=http%3A%2F%2F192.168.10.12%3A9020&debug=true",
- "launchMode": "default",
- "scene": 1001
}
]
}