diff --git a/frame.js b/frame.js index 6c0a67bd..5645d099 100644 --- a/frame.js +++ b/frame.js @@ -300,7 +300,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, var title = item.help? name+"("+item.help.split(" ")[0]+")": name return can.page.Append(can, target||can._output, [{view: [(type||"")+" "+(item.name||"")+" "+(item.pos||""), html.FIELDSET], list: [ name && {text: [title, html.LEGEND]}, - can.user.isCmd && type == "plugin" && {view: [html.LEGEND, html.DIV, title]}, + can.user.mod.isCmd && type == "plugin" && {view: [html.LEGEND, html.DIV, title]}, {view: ["option", "form"]}, {view: ["action"]}, {view: ["output"]}, {view: ["status"]}, ]}]) }, diff --git a/lib/user.js b/lib/user.js index e596b580..26644c09 100644 --- a/lib/user.js +++ b/lib/user.js @@ -27,7 +27,9 @@ Volcanos("user", {help: "用户操作", agent: { isWindows: navigator.userAgent.indexOf("Windows") > -1, isLocalFile: location && location.protocol && location.protocol == "file:", isExtension: location && location.protocol && location.protocol == "chrome-extension:", - isCmd: location && location.pathname && (location.pathname.indexOf("/cmd/") > -1 || location.pathname.indexOf("/help/") == 0), + mod: { + isCmd: location && location.pathname && (location.pathname.indexOf("/cmd/") > -1 || location.pathname.indexOf("/help/") == 0), + }, alert: function(text) { alert(JSON.stringify(text)) }, confirm: function(text) { return confirm(JSON.stringify(text)) }, @@ -277,6 +279,7 @@ Volcanos("user", {help: "用户操作", agent: { Search: shy("请求参数", function(can, key, value) { var args = {} if (value == undefined && typeof key == "string") { var ls = location.pathname.split("/") + if (ls[1] == "share") { args["share"] = ls[2] } if (ls[1] == "chat" && ls[2] == "pod") { args["pod"] = ls[3] } } diff --git a/page/index.css b/page/index.css index 20e87662..5fc5d043 100644 --- a/page/index.css +++ b/page/index.css @@ -437,16 +437,16 @@ body.white select { } body.white input[type=text] { background-color:white; color:black; - border-radius:6px 6px 6px 6px; border:2px solid #14a58e; + border-radius:6px; } body.white input[type=text]:hover { background-color:cyan; } body.white input[type=button] { background-color:#FF9900; color:white; - border-radius:10px 10px 10px 10px; border:2px solid #FF9900; + border-radius:10px; } body.white input[type=button]:hover { background-color:#FFCC33; diff --git a/panel/action.js b/panel/action.js index f48438f0..5adac639 100644 --- a/panel/action.js +++ b/panel/action.js @@ -59,7 +59,16 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg) can.user.title(can.user.Search(can, can._TITLE)||msg.Option(can._TITLE)) can.onaction.layout(can, "auto") - can.Conf({width: window.innerWidth, height: window.innerHeight}) + if (msg["index"].length == 1) { can.user.mod.isCmd = true + can.page.ClassList.add(can, can._target, "cmd") + can.require(["/panel/cmd.css"]) + can.page.Select(can, document.body, "fieldset.panel", function(item) { + item != can._target && can.onmotion.hidden(can, item) + }) + can.Conf({width: window.innerWidth+40, height: window.innerHeight}) + } else { + can.Conf({width: window.innerWidth, height: window.innerHeight}) + } can.Conf(can._RIVER, "_share"), can.Conf(can._STORM, share) can.onimport._init(can, msg) }) @@ -105,8 +114,7 @@ Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, msg, }) } - var ls = location.pathname.split("/") - can.onimport._share(can, can.user.Search(can, can._SHARE) || ls[1]=="share" && ls[2]) + can.onimport._share(can, can.user.Search(can, web.SHARE)) }, onresize: function(can, msg, width, height) { can.Conf({width: width, height: height}) }, onsearch: function(can, msg, word) { diff --git a/panel/header.css b/panel/header.css index c315c045..835eb8b5 100644 --- a/panel/header.css +++ b/panel/header.css @@ -40,10 +40,7 @@ fieldset.Header>div.output div.menu:hover { border-bottom:solid 2px red; background-color:#2e515f; } +fieldset.Header>div.output input[type=text] { + border-radius:0; +} -body.black fieldset.Header>div.output>div.search>input { - width:120px; background-color:cyan; -} -body.print fieldset.Header>div.output>div.search>input { - width:120px; background-color:white; -} diff --git a/panel/header.js b/panel/header.js index 52f0b6a0..4874f784 100644 --- a/panel/header.js +++ b/panel/header.js @@ -58,7 +58,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, }) }, _search: function(can, msg, target) { const SEARCH = "search" - var ui = can.page.Append(can, target, [{view: SEARCH, list: [{type: html.INPUT, data: {placeholder: SEARCH}, onkeydown: function(event) { + var ui = can.page.Append(can, target, [{view: SEARCH, list: [{type: "input", data: {type: "text", placeholder: SEARCH}, onkeydown: function(event) { can.onkeypop.input(event, can); switch (event.key) { case "Enter": can.search(event, ["Search.onimport.select", "*", event.target.value]); break } diff --git a/panel/river.js b/panel/river.js index 734195ce..998ecda3 100644 --- a/panel/river.js +++ b/panel/river.js @@ -131,7 +131,7 @@ Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, msg, }) }, }) -Volcanos("ondetail", {help: "菜单交互", list: ["共享群组", "添加用户", "添加应用", "添加设备", "重命名群组", "删除群组"], +Volcanos("ondetail", {help: "菜单交互", list: ["共享群组", "添加应用", "添加设备", "重命名群组", "删除群组"], sublist: ["共享应用", "添加工具", "保存参数", "重命名应用", "删除应用"], menus: [chat.RIVER, ["添加", "创建群组", "添加应用", "添加工具", "添加用户", "添加设备", "创建空间"], @@ -246,6 +246,7 @@ Volcanos("ondetail", {help: "菜单交互", list: ["共享群组", "添加用户 can.user.select(event, can, chat.USER, "time,type,name,text") }, "访问空间": function(event, can, button, river, storm) { + var msg = can.request(event, {river: river}) can.user.select(event, can, web.SPACE, "time,type,name,text") }, "工作任务": function(event, can, button, river, storm) { @@ -279,7 +280,7 @@ Volcanos("ondetail", {help: "菜单交互", list: ["共享群组", "添加用户 {name: "repos", value: "@key"}, {name: "template", value: "@key"}, ], function(event, button, data, list, args) { - can.run(event, [ctx.ACTION, cli.START].concat(args), function(msg) { + can.run(event, [ctx.ACTION, cli.START].concat(args, chat.RIVER, river), function(msg) { var link = can.user.MergeURL(can, {_path: "/chat/pod/"+can.core.Keys(can.user.Search(can, cli.POD), msg.Option(kit.MDB_NAME))}) can.user.toast(can, link), can.user.open(link) }) diff --git a/panel/search.js b/panel/search.js index e37bcef8..e007109f 100644 --- a/panel/search.js +++ b/panel/search.js @@ -9,7 +9,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, })); table && can.page.Modify(can, can.ui.display, {style: {width: table.offsetWidth}}) }, _word: function(can, msg, cmds, fields) { can.type = cmds[0] - var res = can.request({}, {word: cmds, fields: fields.join(","), sort: msg.Option("sort"), index: msg.Option("index")}) + var res = can.request({}, {word: cmds, fields: fields.join(","), sort: msg.Option("sort"), index: msg.Option("index"), river: msg.Option("river")}) if (cmds[1] == "clear") { can.onaction["清空"]({}, can); return } can.onengine.signal(can, "onsearch", res) diff --git a/plugin/local/chat/div.js b/plugin/local/chat/div.js index 68fe1aa4..3832c2c5 100644 --- a/plugin/local/chat/div.js +++ b/plugin/local/chat/div.js @@ -20,7 +20,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, can.onmotion.hidden(can, can._action) width = can.Conf("width"), height = can.Conf("height") } - if (can.user.isCmd) { + if (can.user.mod.isCmd) { width = window.innerWidth, height = window.innerHeight can.page.Modify(can, can._output, {style: {width: width, height: height}}) } diff --git a/plugin/local/code/inner.js b/plugin/local/code/inner.js index 68179ae7..3c7ee851 100644 --- a/plugin/local/code/inner.js +++ b/plugin/local/code/inner.js @@ -14,7 +14,7 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, list, cb, can.base.isFunc(cb) && cb(msg) }, _content: function(can, target) { - var height = can.Conf("height")-(can.user.isCmd? 54: 320); height < 240 && (height = 240) + var height = can.Conf("height")-(can.user.mod.isCmd? 54: 320); height < 240 && (height = 240) can.page.Modify(can, can.ui.project, {style: {"max-height": height}}) can.page.Modify(can, can.ui.content, {style: {"max-height": height}}) can.page.Modify(can, can.ui.display, {style: {display: "none"}}) diff --git a/plugin/local/wiki/word.css b/plugin/local/wiki/word.css index 4a540b92..b3914c78 100644 --- a/plugin/local/wiki/word.css +++ b/plugin/local/wiki/word.css @@ -30,6 +30,9 @@ fieldset.word>div.navmenu div.item { font-family:cursive; padding:4px 10px; } +fieldset.word>div.navmenu div.item.select { + background-color:red; +} fieldset.word>div.navmenu div.item:hover { cursor:pointer; background-color:red; diff --git a/plugin/local/wiki/word.js b/plugin/local/wiki/word.js index 83afb0ef..71f371e4 100644 --- a/plugin/local/wiki/word.js +++ b/plugin/local/wiki/word.js @@ -9,7 +9,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, // delete(data.meta) }) - if (can.user.isCmd) { + if (can.user.mod.isCmd) { can.page.ClassList.add(can, can._fields, "cmd") can.page.Modify(can, can.sup._navmenu, {style: {height: window.innerHeight}}) if (can.sup._navmenu) { @@ -18,7 +18,11 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, can.page.Modify(can, can._output, {style: {height: window.innerHeight}}) } } else { - can.sup._navmenu && can.Conf("width", can.Conf("width")-can.sup._navmenu.offsetWidth-20) + if (can.sup._navmenu) { + can.Conf("width", can.Conf("width")-can.sup._navmenu.offsetWidth-20) + can.page.Modify(can, can.sup._navmenu, {style: {height: window.innerHeight-240}}) + can.page.Modify(can, can._output, {style: {height: window.innerHeight-240}}) + } } }, navmenu: function(can, data, target) { var nav = can.sup._navmenu @@ -29,6 +33,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, can.onappend.list(can, can.base.Obj(data.data), function(event, item) { var link = item.meta.link, cmd = link.split("/").pop() + can.onmotion.select(can, nav, "div.item", event.target) if (can.onaction[cmd]) { return can.onaction[cmd](event, can) } if (!link || link == can.Option("path")) { return } @@ -51,7 +56,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, }) }, title: function(can, data, target) { - can.user.isCmd && can.user.title(data.text) + can.user.mod.isCmd && can.user.title(data.text) }, spark: function(can, data, target) { if (data["name"] == "inner") { diff --git a/plugin/story/trend.js b/plugin/story/trend.js index 38afef36..31c3c076 100644 --- a/plugin/story/trend.js +++ b/plugin/story/trend.js @@ -4,7 +4,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, if (msg.Option("branch")) { return can.onappend.table(can, msg) } can.msg = msg, can.data = msg.Table(), can.onimport._sum(can) - can.Action("height", msg.Option("height")||can.user.isCmd? "max": can.user.isMobile&&can.user.isLandscape? "200": "400") + can.Action("height", msg.Option("height")||can.user.mod.isCmd? "max": can.user.isMobile&&can.user.isLandscape? "200": "400") can.Action("speed", parseInt(msg.Option("speed")||"100")) can.onappend.plugins(can, {index: "web.wiki.draw"}, function(sub) { diff --git a/proto.js b/proto.js index 9bb00a4b..289cd9a1 100644 --- a/proto.js +++ b/proto.js @@ -43,6 +43,7 @@ const cli = { STOP: "stop", } const web = { + SHARE: "share", SPACE: "space", } const aaa = {