dreamfactory/df-filemanager-app

DreamFactory™ 文件管理器

安装次数: 35,476

依赖项: 0

建议者: 0

安全性: 0

星标: 2

关注者: 7

分支: 4

开放问题: 3

语言:JavaScript

类型:dreamfactory-app

0.3.2 2020-05-15 13:18 UTC

README

基于的独立文件管理器应用程序,用于DreamFactory文件服务。

该应用程序在管理应用的“文件”标签中的iframe内运行,或从LaunchPad打开时在新浏览器标签中运行。在LaunchPad中,可以从可用应用程序列表中选择文件管理器。文件管理器始终是默认DreamFactory安装的一部分,通过/filemanager/index.html访问。

应用程序的目的是显示可用文件存储服务的列表,允许用户浏览文件夹。您可以创建或删除文件和文件夹。您可以下载文件,它还包括用于编辑文本文件的ACE编辑器。

以下是它从管理应用的“文件”标签启动的方式

$( "#root-file-manager iframe" ).attr( "src", INSTANCE_BASE_URL + '/filemanager/index.html?path=/&allowroot=true').show();

从LaunchPad,使用应用程序URL启动文件管理器

$window.open(app.url);

这会打开一个新的浏览器标签。

应用程序首先加载文件服务并显示为顶级列表。此模式由 allowroot=true 查询参数触发。如果您从列表中选择文件服务,那么它将查询您在服务文件夹中导航时选择的服务。曾经有一个模式,它会只显示单个服务的文件和文件夹,并且 allowroot 会设置为 false。此模式不再使用。

如果您在管理应用中点击“文件”标签,并且想要在iframe中启动文件管理器并使其获取由管理应用建立的先前会话。它首先检查 session_token 作为显式查询参数,然后检查在 window.parent 中名为 'CurrentUserObj' 的cookie。文件标签是文件管理器iframe的父标签。"CurrentUserObj" 是管理应用在用户登录时存储的cookie的名称。如果您在LaunchPad中,文件管理器将在新窗口中启动,并查找 window.opener 中的cookie。在两种情况下,如果该cookie存在,它将抓取session_token出会话信息。此令牌将用于文件管理器在后续API调用中,以及硬编码的API密钥。

构建过程

此应用程序的结构和部署不是很好。所有的代码都在/js下,没有像管理应用和API文档应用那样的构建过程。换句话说,没有“app”或“dist”版本。您只是在/js下直接编辑和运行代码。

发布过程

使用git flow进行发布。这将合并develop分支的所有更改到master分支并添加标签。假设您要从0.3.0升级到0.4.0。

git flow release start 0.4.0

要发布文件管理器,您需要增加composer.json中的版本号。下一个版本将是0.4.x-dev。

"extra": {
    "branch-alias":   {
        "dev-develop": "0.4.x-dev"
    },
    "installer-name": "filemanager"
}
git add --all
git commit -m "Release 0.4.0"
git flow release finish 0.4.0
git push origin develop
git checkout master
git push origin master
git push --tags

添加新的文件存储服务类型

如果您向DreamFactory添加新的文件存储服务类型,那些服务将在文件管理器中显示,无需任何更改。当它查询服务列表时,它会查找所有group设置为'File'的服务。请注意,对于非管理员用户,/api/v2将仅返回您的角色授予权限的服务。

url: CurrentServer + '/api/v2?group=File'