KodExplorer修改增加保存工作空间
简述
经常在线修改PHP代码,但是关了浏览器就没了历史打开的文件记录,因此,增加一个保存工作空间的功能。
可道云是使用sea.js来进行控制JS模块管理的,具体请搜索相关内容。
- kodApp的对象它的源文件是appBase.js,
- desktop目录是可道云桌面环境中的管理器
我们需要关注的一般只有几点:
- editor - 这是编辑器窗口
- explorer - 用于管理文件
修改方法
修改文件edit/main.js
// 搜索关键字
// sep3: "---------",
// 添加
,
sep4: "---------",
workspace: {
name: '工作空间',
items: {
"backup-workspace": {
name: '保存',
extra: 'DJ'
},
"restore-workspace": {
name: '恢复',
items: makeSubmenus
}
}
}
// 关键词
// selector: ".menu-view-setting",
var workspaceSubmenus = window.localStorage.getItem('KOD_EXPLORER_WORKSPACE');
if (!workspaceSubmenus) workspaceSubmenus = [];
else workspaceSubmenus = JSON.parse(workspaceSubmenus);
var makeSubmenus = {};
for (var submenu in workspaceSubmenus) {
makeSubmenus['restore-workspace-' + submenu] = { name: workspaceSubmenus[submenu].name };
}
if (Object.keys(makeSubmenus).length > 0) makeSubmenus['sep1'] = '---------';
makeSubmenus['clean-workspace'] = { name: '清空' };
// 上面加入
$.contextMenu({
// 关键词
// case "help-more"
// 加入
case "backup-workspace":
Editor.backupAll();
setTimeout(function () {
if (confirm('是否重新加载页面?')) {
window.location.reload();
}
}, 1500);
break;
case "clean-workspace":
if (confirm('您确定要清空所有工作空间吗?')) {
window.localStorage.removeItem('KOD_EXPLORER_WORKSPACE');
Tips.tips('工作空间已清空');
setTimeout(function () {
if (confirm('是否重新加载页面?')) {
window.location.reload();
}
}, 1500);
}
break;
// default中加入:
if (0 === a.indexOf('restore-workspace-')) {
var index = a.replace("restore-workspace-", "");
var savedItems = window.localStorage.getItem('KOD_EXPLORER_WORKSPACE');
if (!savedItems) {
Tips.tips('本地存储中没有备份过的工作空间', 0)
} else {
savedItems = JSON.parse(savedItems);
var items = savedItems[index];
for (var item in items.items) {
// kodApp.open(items[item].filename, items[item].mode, 'aceEditor');
// 这里没法直接使用kodApp对象,因为想打开文件需要在最外层使用kodApp,内层是嵌套了个iframe,这里尤其需要注意啊!
// kodApp.getApp()[0].callback(items[item].filename, items[item].mode, 'aceEditor');
window.parent.kodApp.open(items.items[item].filename, items.items[item].mode, 'aceEditor');
}
}
}
// 关键词
// saveall: K,
// 添加
backupAll: K2,
// 关键词
// c[a].kod.filename && J(a)
K = function () {
for (var a in c)
"" != c[a].kod.filename && J(a)
}
// 添加下面的
, K2 = function () {
// var items = window.localStorage.getItem('KOD_EXPLORER_WORKSPACE');
// if (!items) items = [];
// else items = JSON.parse(items);
var name = prompt('请输入要保存的工作空间名称');
if (!name) {
Tips.tips('工作空间名称不能为空', 0)
} else {
// Type: Array
var savedItems = window.localStorage.getItem('KOD_EXPLORER_WORKSPACE');
if (!savedItems) savedItems = [];
else savedItems = JSON.parse(savedItems);
var items = [];
for (var a in c) {
if ("" != c[a].kod.filename) {
items.push({ filename: c[a].kod.filename, mode: c[a].kod.mode });
}
}
savedItems.push({ name: name, items: items });
window.localStorage.setItem('KOD_EXPLORER_WORKSPACE', JSON.stringify(savedItems));
Tips.tips('工作空间已保存')
}
}
标签:savedItems,items,KodExplorer,保存,修改,window,workspace,var,name
From: https://www.cnblogs.com/codeshif/p/16968934.html