Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UFinder 提供纯前端接口的建议 #3

Open
techird opened this issue Jul 28, 2014 · 5 comments
Open

UFinder 提供纯前端接口的建议 #3

techird opened this issue Jul 28, 2014 · 5 comments

Comments

@techird
Copy link
Member

techird commented Jul 28, 2014

背景

目前 UFinder 是需要跟一个后端接口挂钩的,希望提供一个纯前端的接口,让其它开发者使用 UFinder 的界面。

接口建议

希望 UFinder 是一个界面组件,提供以下功能:

  • 选择文件
  • 选择目录

为了这两个功能,可能需要下面的接口。

改变当前目录

uf.execCommand('cd', '/');

获取当前目录

var pwd = uf.execCommand('pwd');
console.log(pwd); // "/myfiles/"

获取当前选中的文件列表

var selection = uf.execCommand('selection');
for (var file in selection) {
    console.log(file.isDir); // 是否为目录
    console.log(file.path); // 文件或目录的路径,如果是目录,最后的字符应该是 '/'
}

注册文件来源

uf.registerSource('fio', {
    // 请求列出某个路径的文件,返回异步 Promise 对象,值类型为 fio.file.File[]。
    // 如果指定的目录没有文件,返回空数组(不是 null)
    list: function(path) {
        return new Promise();
    },

    // 请求创建目录
    mkdir: function(path) {
        return new Promise();
    },

    // 请求删除文件
    delete: function(path) {

    },

    // 请求移动文件
    move: function(path, newPath) {

    }
});

因为 UFinder 目前缺少文档,有些接口可能已存在,FIO 只需要上述类型,上述建议可以整理后给出公开版本。

@Jinqn
Copy link

Jinqn commented Aug 4, 2014

纯前端支持计划

ufinder 提供的命令不够完善,还需要添加以下几个常用的命令。

选区访问命令

设置选中文件
uf.execCommand('setselectedfiles', ['/1', '/2']);

获取选中文件的列表
uf.execCommand('getselectedfiles');

路径访问命令

改变当前目录
uf.execCommand('cd', '/');

获取当前目录
uf.execCommand('pwd');

更改数据源

通过注册数据源的方式,对
proxy.js 做一层封装,默认使用带后端的数据来源,通过注册 registerSource 接口,改变当前 ufinder 实例的数据来源。

数据源数据格式

注册数据源至少实现 list 请求,具体格式要看请求类型。

[数据源请求格式,待完善...]

收藏夹支持

去掉根节点,由数据源来处理收藏夹的文件映射。

列表视图

要添加一个文件列表的 ui 组件,另外,adapter 之前都是针对图标视图,有些要做修改。

去除冗余

去除 server 等,纯前端不相关的代码。

进度计划

预计开发时间3天

[8月07日] 添加新增命令,改造 proxy 支持 promise 的写法,添加registerSource 接口。
[8月08,11日] 添加文件列表视图支持

@techird
Copy link
Member Author

techird commented Aug 4, 2014

收到!期待。

@lingfeng928
Copy link

您好,我想在UEditor 中加上 UFinder这个插件,且编程语言是 . net 的,请问该如何添加呢 ? 先谢谢您了

@Jinqn
Copy link

Jinqn commented Aug 13, 2014

你好,ufinder 暂时只提供了php的后端,你可以参照现有代码,实现一个 net 后端。然后参考 ueditor 源码包里的 _examples/customizeToolbarUIDemo.html 例子,做一个对话框插件,对话框里面的实现参考 dialogs/link/link.html

@lingfeng928
Copy link

您好,在IE9 中数据都读不出来。 在chrome 中,数据可以读出来,但有几个问题 :1.空文件夹无法删除,2.无法重命名,3.选择空文件夹后,文件显示的还是上一文件夹的内容,4.无法区分文件是否被选中。您看看这些是否可以解决,谢谢了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants