首页 > 其他分享 >KodExplorer修改增加保存工作空间

KodExplorer修改增加保存工作空间

时间:2022-12-09 14:55:35浏览次数:26  
标签:savedItems items KodExplorer 保存 修改 window workspace var name

KodExplorer修改增加保存工作空间

image

简述

经常在线修改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

相关文章