mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 08:48:06 +08:00
add some
This commit is contained in:
parent
ffd0ee57d0
commit
2fbaf9398a
17
const.js
17
const.js
@ -195,7 +195,7 @@ var chat = {
|
|||||||
OUTPUT: "output", SIMPLE: "simple", FLOAT: "float", FULL: "full", CMD: "cmd",
|
OUTPUT: "output", SIMPLE: "simple", FLOAT: "float", FULL: "full", CMD: "cmd",
|
||||||
|
|
||||||
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 "/volcanos/lib/"+p }),
|
libs: ["base.js", "core.js", "date.js", "misc.js", "page.js", "user.js"].map(function(p) { return "/lib/"+p }),
|
||||||
panel_list: [{name: "Header", style: "head"}, {name: "River", style: "left"}, {name: "Action", style: "main"}, {name: "Search", style: "auto"}, {name: "Footer", style: "foot"}],
|
panel_list: [{name: "Header", style: "head"}, {name: "River", style: "left"}, {name: "Action", style: "main"}, {name: "Search", style: "auto"}, {name: "Footer", style: "foot"}],
|
||||||
plugin_list: [
|
plugin_list: [
|
||||||
"state.js",
|
"state.js",
|
||||||
@ -216,15 +216,15 @@ var chat = {
|
|||||||
"local/wiki/word.js",
|
"local/wiki/word.js",
|
||||||
"local/team/plan.js",
|
"local/team/plan.js",
|
||||||
"local/mall/goods.js",
|
"local/mall/goods.js",
|
||||||
].map(function(p) { return "/volcanos/plugin/"+p }).concat([
|
].map(function(p) { return "/plugin/"+p }).concat([
|
||||||
"/require/modules/bootstrap-icons/font/bootstrap-icons.min.css", // https://icons.getbootstrap.com/
|
"/require/modules/bootstrap-icons/font/bootstrap-icons.min.css", // https://icons.getbootstrap.com/
|
||||||
]),
|
]),
|
||||||
PLUGIN_LOCAL: "/volcanos/plugin/local/",
|
PLUGIN_LOCAL: "/plugin/local/",
|
||||||
PLUGIN_STORY: "/volcanos/plugin/story/",
|
PLUGIN_STORY: "/plugin/story/",
|
||||||
PLUGIN_INPUT: "/volcanos/plugin/input/",
|
PLUGIN_INPUT: "/plugin/input/",
|
||||||
PLUGIN_INPUT_JS: "/volcanos/plugin/input.js",
|
PLUGIN_INPUT_JS: "/plugin/input.js",
|
||||||
PLUGIN_TABLE_JS: "/volcanos/plugin/table.js",
|
PLUGIN_TABLE_JS: "/plugin/table.js",
|
||||||
PLUGIN_STATE_JS: "/volcanos/plugin/state.js",
|
PLUGIN_STATE_JS: "/plugin/state.js",
|
||||||
FRAME_JS: "/volcanos/frame.js",
|
FRAME_JS: "/volcanos/frame.js",
|
||||||
|
|
||||||
ONENGINE: "onengine", ONDAEMON: "ondaemon", ONAPPEND: "onappend", ONLAYOUT: "onlayout", ONMOTION: "onmotion", ONKEYMAP: "onkeymap",
|
ONENGINE: "onengine", ONDAEMON: "ondaemon", ONAPPEND: "onappend", ONLAYOUT: "onlayout", ONMOTION: "onmotion", ONKEYMAP: "onkeymap",
|
||||||
@ -308,6 +308,7 @@ var html = {PLUGIN_MARGIN: 10, ACTION_HEIGHT: 32, ACTION_MARGIN: 200,
|
|||||||
DESKTOP: "desktop", DIV_DESKTOP: "div.desktop", DIV_EXPAND: "div.expand",
|
DESKTOP: "desktop", DIV_DESKTOP: "div.desktop", DIV_EXPAND: "div.expand",
|
||||||
DIV_ITEM_SELECT: "div.item.select",
|
DIV_ITEM_SELECT: "div.item.select",
|
||||||
DIV_TABS_SELECT: "div.tabs.select",
|
DIV_TABS_SELECT: "div.tabs.select",
|
||||||
|
DIV_PROFILE: "div.profile", DIV_DISPLAY: "div.display",
|
||||||
}
|
}
|
||||||
var svg = {
|
var svg = {
|
||||||
GROUP: "group", PID: "pid", GRID: "grid",
|
GROUP: "group", PID: "pid", GRID: "grid",
|
||||||
|
5
frame.js
5
frame.js
@ -11,7 +11,9 @@ Volcanos(chat.ONENGINE, {_init: function(can, meta, list, cb, target) {
|
|||||||
can.core.CallFunc([sub.onaction, chat._INIT], {can: sub, cb: next, target: sub._target}), delete(sub._history), delete(sub._conf.feature)
|
can.core.CallFunc([sub.onaction, chat._INIT], {can: sub, cb: next, target: sub._target}), delete(sub._history), delete(sub._conf.feature)
|
||||||
}, target)
|
}, target)
|
||||||
}, function() { can.onlayout._init(can, target), can.onmotion._init(can, target), can.onkeymap._init(can, target)
|
}, function() { can.onlayout._init(can, target), can.onmotion._init(can, target), can.onkeymap._init(can, target)
|
||||||
can.onengine.signal(can, chat.ONMAIN, can.request()), can.base.isFunc(cb) && cb(can), can.onengine._config(can)
|
can.onengine.signal(can, chat.ONMAIN, can.request()), can.base.isFunc(cb) && cb(can)
|
||||||
|
return
|
||||||
|
can.onengine._config(can)
|
||||||
}), can._path = location.href
|
}), can._path = location.href
|
||||||
},
|
},
|
||||||
_config: function(can) { can.require(["/require/src/conf.js"], function() {}, function(can, name, sub) {
|
_config: function(can) { can.require(["/require/src/conf.js"], function() {}, function(can, name, sub) {
|
||||||
@ -268,6 +270,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.name||"").pop()||""; can.base.isIn(name, "server", "client", "studio") && (name = (item.index||"").split(".").slice(-2).join(".")), name = can.core.Keys(item.space, name)
|
var name = can.core.Split(item.nick||item.name||"").pop()||""; can.base.isIn(name, "server", "client", "studio") && (name = (item.index||"").split(".").slice(-2).join(".")), name = can.core.Keys(item.space, name)
|
||||||
var title = item.help && item.help != name && !can.user.isEnglish(can)? name+"("+can.core.Split(item.help)[0]+")": name
|
var title = item.help && item.help != name && !can.user.isEnglish(can)? name+"("+can.core.Split(item.help)[0]+")": name
|
||||||
|
target = can.base.isFunc(target)? target(): target
|
||||||
return can.page.Append(can, target||can._output, [{view: [type, html.FIELDSET], list: [{type: html.LEGEND, list: [item.icon && {icon: item.icon}, {text: title}]}, {view: [html.OPTION, html.FORM]}, html.ACTION, html.OUTPUT, html.STATUS]}])
|
return can.page.Append(can, target||can._output, [{view: [type, html.FIELDSET], list: [{type: html.LEGEND, list: [item.icon && {icon: item.icon}, {text: title}]}, {view: [html.OPTION, html.FORM]}, html.ACTION, html.OUTPUT, html.STATUS]}])
|
||||||
},
|
},
|
||||||
input: function(can, item, value, target, style) { if ([html.BR, html.HR].indexOf(item.type) > -1) { return can.page.Append(can, target, [item]) }
|
input: function(can, item, value, target, style) { if ([html.BR, html.HR].indexOf(item.type) > -1) { return can.page.Append(can, target, [item]) }
|
||||||
|
@ -16,12 +16,12 @@ body {
|
|||||||
--status-border:var(--box-border);
|
--status-border:var(--box-border);
|
||||||
--panel-bg-color:var(--panel-output-bg-color);
|
--panel-bg-color:var(--panel-output-bg-color);
|
||||||
--panel-fg-color:var(--panel-output-fg-color);
|
--panel-fg-color:var(--panel-output-fg-color);
|
||||||
--panel-output-bg-color: var(--body-bg-color);
|
|
||||||
--panel-output-fg-color: var(--body-fg-color);
|
--panel-output-fg-color: var(--body-fg-color);
|
||||||
--panel-hover-bg-color:var(--hover-bg-color);
|
--panel-hover-bg-color:var(--hover-bg-color);
|
||||||
--panel-hover-fg-color:var(--hover-fg-color);
|
--panel-hover-fg-color:var(--hover-fg-color);
|
||||||
--plugin-border-color:var(--box-border); --plugin-radius:10px;
|
--plugin-border-color:var(--box-border); --plugin-radius:10px;
|
||||||
--plugin-bg-color:var(--body-bg-color);
|
--plugin-bg-color:var(--legend-bg-color);
|
||||||
|
--panel-output-bg-color:var(--input-bg-color);
|
||||||
--plugin-fg-color:var(--body-fg-color);
|
--plugin-fg-color:var(--body-fg-color);
|
||||||
--th-bg-color:var(--plugin-bg-color);
|
--th-bg-color:var(--plugin-bg-color);
|
||||||
--td-hover-bg-color:var(--hover-bg-color);
|
--td-hover-bg-color:var(--hover-bg-color);
|
||||||
|
@ -126,6 +126,11 @@ Volcanos("misc", {
|
|||||||
} catch (e) { can.misc.Warn(e), msg.Reply() }
|
} catch (e) { can.misc.Warn(e), msg.Reply() }
|
||||||
}) }
|
}) }
|
||||||
},
|
},
|
||||||
|
Resource(can, path) {
|
||||||
|
if (path.indexOf(nfs.PS) == 0 || path.indexOf(ice.HTTP) == 0) { return path }
|
||||||
|
return can.base.MergeURL("/require/"+path, ice.POD, can.Conf(web.SPACE)||can.Conf(ice.POD))
|
||||||
|
},
|
||||||
|
Template(can, path, file) { return can.base.Path(nfs.SRC_TEMPLATE, can.ConfIndex(), path, file) },
|
||||||
MergePath: function(can, file, path) { return file.indexOf(nfs.PS) == 0 || file.indexOf(ice.HTTP) == 0? file: can.base.Path(path, file) },
|
MergePath: function(can, file, path) { return file.indexOf(nfs.PS) == 0 || file.indexOf(ice.HTTP) == 0? file: can.base.Path(path, file) },
|
||||||
MergeCache: function(can, hash) { return can.misc.MergeURL(can, {_path: can.base.Path(web.SHARE_CACHE, hash)}, true) },
|
MergeCache: function(can, hash) { return can.misc.MergeURL(can, {_path: can.base.Path(web.SHARE_CACHE, hash)}, true) },
|
||||||
MergePodCmd: function(can, obj) {
|
MergePodCmd: function(can, obj) {
|
||||||
@ -150,7 +155,8 @@ Volcanos("misc", {
|
|||||||
for (var i = 1; i < ls.length; i += 2) { if (can.base.isIn(ls[i], [ice.POD, ice.CMD, web.WEBSITE])) { args[ls[i]] = ls[i+1] } }
|
for (var i = 1; i < ls.length; i += 2) { if (can.base.isIn(ls[i], [ice.POD, ice.CMD, web.WEBSITE])) { args[ls[i]] = ls[i+1] } }
|
||||||
return args
|
return args
|
||||||
},
|
},
|
||||||
SplitPath: function(can, path) { var ls = path.split(nfs.PS); if (ls.length == 1) { return [nfs.PWD, ls[0]] }
|
SplitPath: function(can, path) {
|
||||||
|
var ls = path.split(nfs.PS); if (ls.length == 1) { return [nfs.PWD, ls[0]] }
|
||||||
if (ls[0] == ice.USR) { return [ls.slice(0, 2).join(nfs.PS)+nfs.PS, ls.slice(2).join(nfs.PS)] }
|
if (ls[0] == ice.USR) { return [ls.slice(0, 2).join(nfs.PS)+nfs.PS, ls.slice(2).join(nfs.PS)] }
|
||||||
return [ls.slice(0, 1).join(nfs.PS)+nfs.PS, ls.slice(1).join(nfs.PS)]
|
return [ls.slice(0, 1).join(nfs.PS)+nfs.PS, ls.slice(1).join(nfs.PS)]
|
||||||
},
|
},
|
||||||
|
@ -207,6 +207,7 @@ Volcanos("page", {
|
|||||||
case html.A: return "<a href='"+arg[1]+"' target='_blank'>"+(arg[2]||arg[1])+"</a>"
|
case html.A: return "<a href='"+arg[1]+"' target='_blank'>"+(arg[2]||arg[1])+"</a>"
|
||||||
case html.IMG: return arg[2]? "<img src='"+arg[1]+"' height="+arg[2]+">": "<img src='"+arg[1]+"'>"
|
case html.IMG: return arg[2]? "<img src='"+arg[1]+"' height="+arg[2]+">": "<img src='"+arg[1]+"'>"
|
||||||
case html.SPAN:
|
case html.SPAN:
|
||||||
|
arg[2] && typeof arg[2] == code.OBJECT && (arg[2] = arg[2].join(lex.SP))
|
||||||
return arg[2]? "<span class='"+arg[2]+"'>"+arg[1]+"</span>": arg[1]
|
return arg[2]? "<span class='"+arg[2]+"'>"+arg[1]+"</span>": arg[1]
|
||||||
default: /* type inner arg... */
|
default: /* type inner arg... */
|
||||||
var list = ["<"+type]; for (var i = 2; i < arg.length; i += 2) { list.push(lex.SP+arg[i]+mdb.EQ+arg[i+1]) }
|
var list = ["<"+type]; for (var i = 2; i < arg.length; i += 2) { list.push(lex.SP+arg[i]+mdb.EQ+arg[i+1]) }
|
||||||
|
@ -1,41 +1,42 @@
|
|||||||
fieldset.can.tinymce div.tox-tinymce,
|
fieldset.tinymce div.tox-tinymce,
|
||||||
fieldset.can.tinymce div.tox:not(.tox-tinymce-inline) .tox-editor-header {
|
fieldset.tinymce div.tox:not(.tox-tinymce-inline) .tox-editor-header {
|
||||||
border:none;
|
border:none;
|
||||||
}
|
}
|
||||||
fieldset.can.tinymce div.tox-promotion { display:none; }
|
fieldset.tinymce div.tox-promotion { display:none; }
|
||||||
fieldset.can.tinymce div.tox div.tox-sidebar-wrap div.tox-edit-area iframe {
|
fieldset.tinymce div.tox div.tox-sidebar-wrap div.tox-edit-area iframe {
|
||||||
background-color:var(--output-bg-color);
|
background-color:var(--output-bg-color);
|
||||||
}
|
}
|
||||||
div.tox .tox-collection--list .tox-collection__item--active,
|
div.tox .tox-collection--list .tox-collection__item--active,
|
||||||
div.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled),
|
div.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled),
|
||||||
fieldset.can.tinymce div.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active),
|
div.tox .tox-collection--list .tox-collection__item--enabled,
|
||||||
fieldset.can.tinymce div.tox .tox-mbtn:focus:not(:disabled),
|
fieldset.tinymce div.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active),
|
||||||
fieldset.can.tinymce div.tox .tox-mbtn--active,
|
fieldset.tinymce div.tox .tox-mbtn:focus:not(:disabled),
|
||||||
fieldset.can.tinymce div.tox .tox-tbtn:hover {
|
fieldset.tinymce div.tox .tox-mbtn--active,
|
||||||
|
fieldset.tinymce div.tox .tox-tbtn:hover {
|
||||||
background-color:var(--hover-bg-color);
|
background-color:var(--hover-bg-color);
|
||||||
color:var(--hover-fg-color);
|
color:var(--hover-fg-color);
|
||||||
}
|
}
|
||||||
div.tox .tox-menu,
|
div.tox .tox-menu,
|
||||||
div.tox .tox-collection__item,
|
div.tox .tox-collection__item,
|
||||||
fieldset.can.tinymce div.tox .tox-editor-header,
|
fieldset.tinymce div.tox .tox-editor-header,
|
||||||
fieldset.can.tinymce div.tox .tox-menubar,
|
fieldset.tinymce div.tox .tox-mbtn,
|
||||||
fieldset.can.tinymce div.tox .tox-toolbar,
|
fieldset.tinymce div.tox .tox-menubar,
|
||||||
fieldset.can.tinymce div.tox .tox-toolbar-overlord,
|
fieldset.tinymce div.tox .tox-toolbar,
|
||||||
fieldset.can.tinymce div.tox .tox-toolbar__overflow,
|
fieldset.tinymce div.tox .tox-toolbar-overlord,
|
||||||
fieldset.can.tinymce div.tox .tox-toolbar__primary,
|
fieldset.tinymce div.tox .tox-toolbar__overflow,
|
||||||
fieldset.can.tinymce div.tox .tox-statusbar,
|
fieldset.tinymce div.tox .tox-toolbar__primary,
|
||||||
fieldset.can.tinymce div.tox .tox-statusbar__path-item,
|
fieldset.tinymce div.tox .tox-statusbar,
|
||||||
fieldset.can.tinymce div.tox .tox-statusbar__wordcount,
|
fieldset.tinymce div.tox .tox-statusbar__path-item,
|
||||||
fieldset.can.tinymce div.tox .tox-statusbar a,
|
fieldset.tinymce div.tox .tox-statusbar__wordcount,
|
||||||
fieldset.can.tinymce div.tox :not(svg):not(rect) {
|
fieldset.tinymce div.tox .tox-statusbar a {
|
||||||
background-color:var(--plugin-bg-color);
|
background-color:var(--plugin-bg-color);
|
||||||
color:var(--plugin-fg-color);
|
color:var(--plugin-fg-color);
|
||||||
}
|
}
|
||||||
fieldset.can.tinymce div.tox .tox-tbtn svg,
|
fieldset.tinymce div.tox .tox-tbtn svg,
|
||||||
fieldset.can.tinymce div.tox .tox-tbtn:disabled svg,
|
fieldset.tinymce div.tox .tox-tbtn:disabled svg,
|
||||||
fieldset.can.tinymce div.tox .tox-tbtn:disabled:hover svg,
|
fieldset.tinymce div.tox .tox-tbtn:disabled:hover svg,
|
||||||
fieldset.can.tinymce div.tox .tox-tbtn--disabled svg,
|
fieldset.tinymce div.tox .tox-tbtn--disabled svg,
|
||||||
fieldset.can.tinymce div.tox .tox-tbtn--disabled:hover svg,
|
fieldset.tinymce div.tox .tox-tbtn--disabled:hover svg,
|
||||||
fieldset.can.tinymce div.tox .tox-statusbar__branding svg {
|
fieldset.tinymce div.tox .tox-statusbar__branding svg {
|
||||||
fill:var(--plugin-fg-color);
|
fill:var(--plugin-fg-color);
|
||||||
}
|
}
|
||||||
|
@ -1,20 +1,28 @@
|
|||||||
Volcanos(chat.ONIMPORT, {
|
Volcanos(chat.ONIMPORT, {
|
||||||
_init: function(can, msg, cb) { can.page.requireModules(can, can.Conf("modules"), function() {
|
_init: function(can, msg, cb) {
|
||||||
var target = can.page.Appends(can, can._output, [{type: html.TEXTAREA}])._target
|
can.require(["/require/modules/tinymce/tinymce.min.js", "/plugin/local/code/vimer.js"], function(can) { can.onimport._last_init(can, msg, function(msg) {
|
||||||
can.page.style(can, can._output, html.MAX_HEIGHT, "")
|
can.onappend.style(can, "tinymce"), cb && cb(msg)
|
||||||
tinymce.init({target: target, height: can.ConfHeight(), // menubar: false,
|
}) })
|
||||||
|
},
|
||||||
|
content: function(can, text) { return can.ui.editor.setContent(text) },
|
||||||
|
layout: function(can) { can.page.style(can, can.ui.content, html.HEIGHT, can.ConfHeight(), html.WIDTH, can.ConfWidth()) },
|
||||||
|
}, [""])
|
||||||
|
Volcanos(chat.ONSYNTAX, {
|
||||||
|
_split: function(can, msg, target) {
|
||||||
|
var _target = can.page.Appends(can, target, [{type: html.TEXTAREA}])._target
|
||||||
|
tinymce.init({target: _target, height: can.ConfHeight(), // menubar: false,
|
||||||
|
save_onsavecallback: function () { can.onaction.save({}, can, nfs.SAVE) },
|
||||||
content_style: "body#tinymce { background:transparent; color:silver; }",
|
content_style: "body#tinymce { background:transparent; color:silver; }",
|
||||||
toolbar: [
|
toolbar: [[
|
||||||
[
|
"save code undo redo cut copy paste",
|
||||||
"code undo redo cut copy paste",
|
"backcolor forecolor bold italic underline strikethrough subscript superscript",
|
||||||
"backcolor forecolor bold italic underline strikethrough subscript superscript",
|
"alignleft aligncenter alignright alignjustify outdent indent",
|
||||||
"alignleft aligncenter alignright alignjustify outdent indent",
|
"bullist numlist table image media link charmap",
|
||||||
"bullist numlist table image media link charmap",
|
"blockquote removeformat hr pagebreak anchor insertdatetime",
|
||||||
"blockquote removeformat hr pagebreak anchor insertdatetime",
|
"fullscreen wordcount preview print help",
|
||||||
"fullscreen wordcount preview print help",
|
].join("|")],
|
||||||
].join("|"),
|
|
||||||
],
|
|
||||||
plugins: [
|
plugins: [
|
||||||
|
"save",
|
||||||
"code",
|
"code",
|
||||||
"lists",
|
"lists",
|
||||||
"advlist",
|
"advlist",
|
||||||
@ -32,8 +40,7 @@ Volcanos(chat.ONIMPORT, {
|
|||||||
"preview",
|
"preview",
|
||||||
"help",
|
"help",
|
||||||
|
|
||||||
"save",
|
"autosave",
|
||||||
// "autosave",
|
|
||||||
"codesample",
|
"codesample",
|
||||||
"directionality",
|
"directionality",
|
||||||
"emoticons",
|
"emoticons",
|
||||||
@ -45,17 +52,16 @@ Volcanos(chat.ONIMPORT, {
|
|||||||
"visualblocks",
|
"visualblocks",
|
||||||
"visualchars",
|
"visualchars",
|
||||||
].join(" ")
|
].join(" ")
|
||||||
}).then(function(list) { can.ui.editor = list[0], can.ui.editor.setContent(msg.Result()), cb && cb(msg) })
|
}).then(function(list) { can.ui.editor = list[0], can.ui.editor.setContent(msg.Result()) }).catch(function(err) { can.misc.Warn(err) })
|
||||||
}) },
|
},
|
||||||
content: function(can, text) { return can.ui.editor.setContent(text) },
|
})
|
||||||
}, [""])
|
|
||||||
Volcanos(chat.ONEXPORT, {
|
Volcanos(chat.ONEXPORT, {
|
||||||
content: function(can) { return can.ui.editor.getContent() },
|
content: function(can) { return can.ui.editor.getContent() },
|
||||||
})
|
})
|
||||||
Volcanos(chat.ONPLUGIN, {
|
Volcanos(chat.ONPLUGIN, {
|
||||||
tinymce: shy("富文本", {
|
tinymce: shy("富文本", {
|
||||||
save: shy(function(can, msg) { can.user.toast(can, msg.Option(nfs.CONTENT)) }),
|
save: shy(function(can, msg) { can.user.toast(can, msg.Option(nfs.CONTENT)) }),
|
||||||
}, [nfs.PATH, ice.LIST, nfs.SAVE], function(can, msg, meta) {
|
}, [nfs.PATH, nfs.FILE, nfs.LINE, ice.LIST, nfs.SAVE], function(can, msg, meta) {
|
||||||
msg.Display(meta._path)
|
msg.Display(meta._path)
|
||||||
}),
|
}),
|
||||||
})
|
})
|
||||||
|
@ -1,31 +1,27 @@
|
|||||||
Volcanos(chat.ONIMPORT, {
|
Volcanos(chat.ONIMPORT, {
|
||||||
_init: function(can, msg, cb) { var toast = can.user.toastProcess(can)
|
_init: function(can, msg, cb) {
|
||||||
can.page.requireModules(can, ["monaco-editor/min/vs/loader.js"], function() {
|
can.require(["/require/modules/monaco-editor/min/vs/loader.js"], function() {
|
||||||
require.config({paths: {vs: "/require/modules/monaco-editor/min/vs"}})
|
require.config({paths: {vs: "/require/modules/monaco-editor/min/vs"}})
|
||||||
require(["vs/editor/editor.main"], function () {
|
require(["vs/editor/editor.main"], function () {
|
||||||
can.require(["/plugin/local/code/vimer.js"], function(can) {
|
can.require(["/plugin/local/code/vimer.js"], function(can) { can.onimport._last_init(can, msg, function(msg) {
|
||||||
can.onimport._last_init(can, msg, function(msg) {
|
can.onappend.style(can, "monaco"), cb && cb(msg)
|
||||||
can.onappend.style(can, "monaco")
|
}) })
|
||||||
cb && cb(msg), toast.close()
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
_theme: function(can) {
|
_theme: function(can) { if (can.base.isIn(can.getHeaderTheme(), html.LIGHT, html.WHITE)) { monaco.editor.setTheme("vs") } else { monaco.editor.setTheme("vs-dark") } },
|
||||||
if (can.base.isIn(can.getHeaderTheme(), html.LIGHT, html.WHITE)) {
|
layout: function(can) { can.page.style(can, can.ui.content, html.HEIGHT, can.ConfHeight(), html.WIDTH, can.ConfWidth()), can.ui.editor && can.ui.editor.layout() },
|
||||||
monaco.editor.setTheme("vs")
|
content: function(can, text) { return can.ui.editor.setValue(text) },
|
||||||
} else {
|
|
||||||
monaco.editor.setTheme("vs-dark")
|
|
||||||
}
|
|
||||||
},
|
|
||||||
}, [""])
|
}, [""])
|
||||||
Volcanos(chat.ONSYNTAX, {
|
Volcanos(chat.ONSYNTAX, {
|
||||||
_split: function(can, msg, target) { can.onimport._theme(can)
|
_split: function(can, msg, target) { can.onimport._theme(can), can.onengine.listen(can, chat.ONTHEMECHANGE, function() { can.onimport._theme(can) })
|
||||||
can.onengine.listen(can, chat.ONTHEMECHANGE, function() { can.onimport._theme(can) })
|
can.ui.editor = monaco.editor.create(target, {value: msg.Result(), language: "javascript", automaticLayout: true, resize: true})
|
||||||
can.ui.editor = monaco.editor.create(target, {value: msg.Result(), language: "javascript", automaticLayout: true})
|
can.ui.editor.addCommand(monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyS, function () { can.onaction.save({}, can, nfs.SAVE) })
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
Volcanos(chat.ONEXPORT, {
|
||||||
|
content: function(can) { return can.ui.editor.getValue() },
|
||||||
|
})
|
||||||
Volcanos(chat.ONPLUGIN, {
|
Volcanos(chat.ONPLUGIN, {
|
||||||
monaco: shy("编辑器", {
|
monaco: shy("编辑器", {
|
||||||
save: shy(function(can, msg) { can.user.toast(can, msg.Option(nfs.CONTENT)) }),
|
save: shy(function(can, msg) { can.user.toast(can, msg.Option(nfs.CONTENT)) }),
|
||||||
|
@ -113,7 +113,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(
|
|||||||
}}, "", target)
|
}}, "", target)
|
||||||
},
|
},
|
||||||
item: function(can, item, cb, cbs, target) { target = target||(can.ui && can.ui.project? can.ui.project: can._output)
|
item: function(can, item, cb, cbs, target) { target = target||(can.ui && can.ui.project? can.ui.project: can._output)
|
||||||
var ui = can.page.Append(can, target, [{view: html.ITEM, list: [{icon: item.icon}, {text: item.nick||item.name||item.zone}], title: item.title, onclick: function(event) {
|
var ui = can.page.Append(can, target, [{view: html.ITEM, list: [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)
|
can.onmotion.select(can, target, html.DIV_ITEM, event.currentTarget)
|
||||||
cb(event, event.currentTarget, event.currentTarget._list && can.onmotion.toggle(can, event.currentTarget._list))
|
cb(event, event.currentTarget, event.currentTarget._list && can.onmotion.toggle(can, event.currentTarget._list))
|
||||||
}, oncontextmenu: function(event) {
|
}, oncontextmenu: function(event) {
|
||||||
@ -230,6 +230,7 @@ Volcanos(chat.ONKEYMAP, {
|
|||||||
Enter: shy("执行操作", function(event, can) { can.onaction.enter(event, can) }),
|
Enter: shy("执行操作", function(event, can) { can.onaction.enter(event, can) }),
|
||||||
" ": shy("搜索项目", function(event, can) { can.ui.filter && (can.ui.filter.focus(), can.onkeymap.prevent(event)) }),
|
" ": shy("搜索项目", function(event, can) { can.ui.filter && (can.ui.filter.focus(), can.onkeymap.prevent(event)) }),
|
||||||
f: shy("搜索项目", function(event, can) { can.ui.filter && (can.ui.filter.focus(), can.onkeymap.prevent(event)) }),
|
f: shy("搜索项目", function(event, can) { can.ui.filter && (can.ui.filter.focus(), can.onkeymap.prevent(event)) }),
|
||||||
|
a: shy("展示项目", function(event, can) { can.ui && can.ui.project && (can.onmotion.toggle(can, can.ui.project), can.onimport.layout(can)) }),
|
||||||
v: shy("展示预览", function(event, can) { can.ui && can.ui.profile && (can.onmotion.toggle(can, can.ui.profile), can.onimport.layout(can)) }),
|
v: shy("展示预览", function(event, can) { can.ui && can.ui.profile && (can.onmotion.toggle(can, can.ui.profile), can.onimport.layout(can)) }),
|
||||||
r: shy("展示输出", function(event, can) { can.ui && can.ui.display && (can.onmotion.toggle(can, can.ui.display), can.onimport.layout(can)) }),
|
r: shy("展示输出", function(event, can) { can.ui && can.ui.display && (can.onmotion.toggle(can, can.ui.display), can.onimport.layout(can)) }),
|
||||||
p: shy("添加插件", function(event, can) { can.sup.onaction["添加工具"](event, can.sup) }),
|
p: shy("添加插件", function(event, can) { can.sup.onaction["添加工具"](event, can.sup) }),
|
||||||
|
8
proto.js
8
proto.js
@ -12,7 +12,7 @@ var Volcanos = shy({
|
|||||||
var Config = name; name = Config.name||ice.CAN, _can_name = ""
|
var Config = name; name = Config.name||ice.CAN, _can_name = ""
|
||||||
meta.iceberg = Config.iceberg||meta.iceberg, meta.volcano = Config.volcano||meta.volcano
|
meta.iceberg = Config.iceberg||meta.iceberg, meta.volcano = Config.volcano||meta.volcano
|
||||||
meta.libs = (Config.libs||chat.libs).concat(Config.list), panels = Config.panels||chat.panel_list, delete(Config.panels)
|
meta.libs = (Config.libs||chat.libs).concat(Config.list), panels = Config.panels||chat.panel_list, delete(Config.panels)
|
||||||
libs = [], panels.forEach(function(p) { p && (libs = libs.concat(p.list = p.list||["/volcanos/panel/"+p.name+nfs._JS, "/volcanos/panel/"+p.name+nfs._CSS])) }), libs = libs.concat(Config.plugins||chat.plugin_list)
|
libs = [], panels.forEach(function(p) { p && (libs = libs.concat(p.list = p.list||["/panel/"+p.name+nfs._JS, "/panel/"+p.name+nfs._CSS])) }), libs = libs.concat(Config.plugins||chat.plugin_list)
|
||||||
cb = can||function(can) {
|
cb = can||function(can) {
|
||||||
can.require([can.frame], function() {
|
can.require([can.frame], function() {
|
||||||
can.onengine._init(can, can.Conf(Config), panels, Config._init||meta._init, can._target)
|
can.onengine._init(can, can.Conf(Config), panels, Config._init||meta._init, can._target)
|
||||||
@ -39,11 +39,13 @@ var Volcanos = shy({
|
|||||||
if (libs[0][0] != nfs.PS && libs[0].indexOf(web.HTTP) != 0) { libs[0] = can._path.slice(0, can._path.lastIndexOf(ice.PS)+1)+libs[0] }
|
if (libs[0][0] != nfs.PS && libs[0].indexOf(web.HTTP) != 0) { libs[0] = can._path.slice(0, can._path.lastIndexOf(ice.PS)+1)+libs[0] }
|
||||||
var name = (libs[0].indexOf(web.HTTP) == 0 || libs[0].indexOf("?pod=") > -1? libs[0]: libs[0].split(ice.QS)[0]).toLowerCase()
|
var name = (libs[0].indexOf(web.HTTP) == 0 || libs[0].indexOf("?pod=") > -1? libs[0]: libs[0].split(ice.QS)[0]).toLowerCase()
|
||||||
function next() { can._load(name, cbs), can.require(libs.slice(1), cb, cbs) }
|
function next() { can._load(name, cbs), can.require(libs.slice(1), cb, cbs) }
|
||||||
if (meta.cache[name] || name == "") { return next() }
|
if (name.indexOf("/lib/") == 0) { name = "/volcanos"+name }
|
||||||
|
if (name.indexOf("/panel/") == 0) { name = "/volcanos"+name }
|
||||||
if (name.indexOf("/plugin/") == 0) { name = "/volcanos"+name }
|
if (name.indexOf("/plugin/") == 0) { name = "/volcanos"+name }
|
||||||
if (name.indexOf("/volcanos/") == 0 && meta.volcano) { name = meta.volcano+name }
|
if (name.indexOf("/volcanos/") == 0 && meta.volcano) { name = meta.volcano+name }
|
||||||
if (name.indexOf("/require/") == 0 && meta.iceberg) { name = meta.iceberg+name }
|
if (name.indexOf("/require/") == 0 && meta.iceberg) { name = meta.iceberg+name }
|
||||||
meta._load(name, next)
|
// meta.cache[name] || name == ""? next(): meta._load(name, next)
|
||||||
|
meta.cache[name]? next(): meta._load(name, next)
|
||||||
},
|
},
|
||||||
requestPodCmd: function(event) { return can.request(event, {space: can.Conf(web.SPACE), index: can.Conf(ctx.INDEX)}) },
|
requestPodCmd: function(event) { return can.request(event, {space: can.Conf(web.SPACE), index: can.Conf(ctx.INDEX)}) },
|
||||||
request: function(event) { event = event||{}, event = event._event||event
|
request: function(event) { event = event||{}, event = event._event||event
|
||||||
|
Loading…
x
Reference in New Issue
Block a user