Merge branch 'master' into copy-function

This commit is contained in:
niubility000 2021-11-16 00:22:54 +08:00 committed by GitHub
commit d961bafce2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 55 additions and 30 deletions

View File

@ -106,7 +106,7 @@ export default {
return filesize(this.size); return filesize(this.size);
}, },
humanTime: function () { humanTime: function () {
if (this.user.dateFormat) { if (this.readOnly == undefined && this.user.dateFormat) {
return moment(this.modified).format("L LT"); return moment(this.modified).format("L LT");
} }
return moment(this.modified).fromNow(); return moment(this.modified).fromNow();

View File

@ -167,3 +167,7 @@
} }
@import "~material-design-icons/iconfont/material-icons.css"; @import "~material-design-icons/iconfont/material-icons.css";
.material-icons {
font-size: 1.5rem;
}

View File

@ -314,11 +314,11 @@ main .spinner .bounce2 {
} }
#editor-container .breadcrumbs span { #editor-container .breadcrumbs span {
font-size: 12px; font-size: .75rem;
} }
#editor-container .breadcrumbs i { #editor-container .breadcrumbs i {
font-size: 16px; font-size: 1rem;
} }
/* * * * * * * * * * * * * * * * /* * * * * * * * * * * * * * * *
@ -334,7 +334,7 @@ main .spinner .bounce2 {
background: rgba(0, 0, 0, 0.05); background: rgba(0, 0, 0, 0.05);
border: 1px solid rgba(0,0,0,0.1); border: 1px solid rgba(0,0,0,0.1);
box-shadow: 0 0 0 0; box-shadow: 0 0 0 0;
font-size: 14px; font-size: 1rem;
} }
/* * * * * * * * * * * * * * * * /* * * * * * * * * * * * * * * *

View File

@ -8,12 +8,14 @@
"create": "创建", "create": "创建",
"delete": "删除", "delete": "删除",
"download": "下载", "download": "下载",
"hideDotfiles": "不显示隐藏的文件", "file": "文件",
"folder": "文件夹",
"hideDotfiles": "不显示隐藏文件",
"info": "信息", "info": "信息",
"more": "更多", "more": "更多",
"move": "移动", "move": "移动",
"moveFile": "移动文件", "moveFile": "移动文件",
"new": "新", "new": "新",
"next": "下一个", "next": "下一个",
"ok": "确定", "ok": "确定",
"permalink": "获取永久链接", "permalink": "获取永久链接",
@ -28,12 +30,13 @@
"select": "选择", "select": "选择",
"selectMultiple": "选择多个", "selectMultiple": "选择多个",
"share": "分享", "share": "分享",
"shell": "激活 shell", "shell": "激活 Shell",
"submit": "提交", "submit": "提交",
"switchView": "切换显示方式", "switchView": "切换显示方式",
"toggleSidebar": "切换侧边栏", "toggleSidebar": "切换侧边栏",
"update": "更新", "update": "更新",
"upload": "上传" "upload": "上传",
"openFile": "打开文件"
}, },
"download": { "download": {
"downloadFile": "下载文件", "downloadFile": "下载文件",
@ -43,7 +46,8 @@
"errors": { "errors": {
"forbidden": "你无权限访问", "forbidden": "你无权限访问",
"internal": "服务器出了点问题。", "internal": "服务器出了点问题。",
"notFound": "找不到文件。" "notFound": "找不到文件。",
"connection": "无法连接到服务器。"
}, },
"files": { "files": {
"body": "内容", "body": "内容",
@ -61,7 +65,8 @@
"size": "大小", "size": "大小",
"sortByLastModified": "按最后修改时间排序", "sortByLastModified": "按最后修改时间排序",
"sortByName": "按名称排序", "sortByName": "按名称排序",
"sortBySize": "按大小排序" "sortBySize": "按大小排序",
"noPreview": "此文件无法预览。"
}, },
"help": { "help": {
"click": "选择文件或目录", "click": "选择文件或目录",
@ -118,7 +123,7 @@
"currentlyNavigating": "当前目录:", "currentlyNavigating": "当前目录:",
"deleteMessageMultiple": "你确定要删除这 {count} 个文件吗?", "deleteMessageMultiple": "你确定要删除这 {count} 个文件吗?",
"deleteMessageSingle": "你确定要删除这个文件/文件夹吗?", "deleteMessageSingle": "你确定要删除这个文件/文件夹吗?",
"deleteMessageShare": "你确定要删除这个分享({path})吗?", "deleteMessageShare": "你确定要删除这个分享{path}吗?",
"deleteTitle": "删除文件", "deleteTitle": "删除文件",
"displayName": "名称:", "displayName": "名称:",
"download": "下载文件", "download": "下载文件",
@ -139,7 +144,7 @@
"rename": "重命名", "rename": "重命名",
"renameMessage": "请输入新名称,旧名称为:", "renameMessage": "请输入新名称,旧名称为:",
"replace": "替换", "replace": "替换",
"replaceMessage": "您尝试上传的文件中有一个与现有文件的名称存在冲突。是否替换现有的同名文件?", "replaceMessage": "您尝试上传的文件中有一个与现有文件的名称存在冲突。是否替换现有的同名文件?\n",
"schedule": "计划", "schedule": "计划",
"scheduleMessage": "请选择发布这篇帖子的日期与时间。", "scheduleMessage": "请选择发布这篇帖子的日期与时间。",
"show": "点击以显示", "show": "点击以显示",
@ -152,16 +157,16 @@
"images": "图像", "images": "图像",
"music": "音乐", "music": "音乐",
"pdf": "PDF", "pdf": "PDF",
"pressToSearch": "回车搜索...", "pressToSearch": "输入回车搜索...",
"search": "搜索...", "search": "搜索...",
"typeToSearch": "输入搜索...", "typeToSearch": "输入搜索...",
"types": "类型", "types": "类型",
"video": "视频" "video": "视频"
}, },
"settings": { "settings": {
"admin": "管理员", "admin": "管理员",
"administrator": "管理员", "administrator": "管理员",
"allowCommands": "执行命令(shell 命令)", "allowCommands": "执行命令(Shell 命令)",
"allowEdit": "编辑、重命名或删除文件/目录", "allowEdit": "编辑、重命名或删除文件/目录",
"allowNew": "创建新文件和目录", "allowNew": "创建新文件和目录",
"allowPublish": "发布新的帖子与页面", "allowPublish": "发布新的帖子与页面",
@ -169,10 +174,10 @@
"avoidChanges": "(留空以避免更改)", "avoidChanges": "(留空以避免更改)",
"branding": "品牌", "branding": "品牌",
"brandingDirectoryPath": "品牌信息文件夹路径", "brandingDirectoryPath": "品牌信息文件夹路径",
"brandingHelp": "您可以通过改变实例名称,更换Logo加入自定义样式甚至禁用到Github的外部链接来自定义File Browser的外观和给人的感觉。\n想获得更多信息请查看 {0} 。", "brandingHelp": "您可以通过改变实例名称,更换 Logo加入自定义样式甚至禁用到 Github 的外部链接来自定义 File Browser 的外观和感觉。\n想获得更多信息请查看 {0}。",
"changePassword": "更改密码", "changePassword": "更改密码",
"commandRunner": "命令执行器", "commandRunner": "命令执行器",
"commandRunnerHelp": "在这里你可以设置在下面的事件中执行的命令。每行必须写一条命令。可以在命令中使用环境变量 {0} 和 {1}。关于此功能和可用环境变量的更多信息,请阅读{2}.", "commandRunnerHelp": "你可以在此设置在下列事件中执行的命令。每行必须写一条命令。可以在命令中使用环境变量 {0} 和 {1},使 {0} 与 {1} 相关联。关于此功能和可用环境变量的更多信息,请阅读 {2}。",
"commandsUpdated": "命令已更新!", "commandsUpdated": "命令已更新!",
"createUserDir": "在添加新用户的同时自动创建用户的个人目录", "createUserDir": "在添加新用户的同时自动创建用户的个人目录",
"customStylesheet": "自定义样式表CSS", "customStylesheet": "自定义样式表CSS",
@ -180,18 +185,18 @@
"disableExternalLinks": "禁止外部链接(帮助文档除外)", "disableExternalLinks": "禁止外部链接(帮助文档除外)",
"documentation": "帮助文档", "documentation": "帮助文档",
"examples": "例子", "examples": "例子",
"executeOnShell": "在Shell中执行", "executeOnShell": "在 Shell 中执行",
"executeOnShellDescription": "默认情况下File Browser通过直接调用命令的二进制包来执行命令,如果想在shell中执行如Bash、PowerShell你可以在这里定义所使用的shell和参数。如果设置了这个选项所执行的命令会作为参数追加在后面。本选项对用户命令和事件钩子都生效。", "executeOnShellDescription": "默认情况下File Browser 通过直接调用命令的二进制包来执行命令,如果想在 Shell中 执行(如 Bash 或 PowerShell你可以在这里定义所使用的 Shell 和参数。设置后,您所执行的命令会作为参数追加。本设置对用户命令和事件钩子都生效。",
"globalRules": "这是全局允许与禁止规则。它们作用于所有用户。您可以给每个用户定义单独的特殊规则来覆盖全局规则。", "globalRules": "这是全局允许与禁止规则。它们作用于所有用户。您可以给每个用户定义单独的特殊规则来覆盖全局规则。",
"globalSettings": "全局设置", "globalSettings": "全局设置",
"hideDotfiles": "", "hideDotfiles": "不显示隐藏文件",
"insertPath": "插入路径", "insertPath": "插入路径",
"insertRegex": "插入正则表达式", "insertRegex": "插入正则表达式",
"instanceName": "实例名称", "instanceName": "实例名称",
"language": "语言", "language": "语言",
"lockPassword": "禁止用户修改密码", "lockPassword": "禁止用户修改密码",
"newPassword": "您的新密码", "newPassword": "您的新密码",
"newPasswordConfirm": "重输一遍新密码", "newPasswordConfirm": "再次输入以确认您的新密码",
"newUser": "新建用户", "newUser": "新建用户",
"password": "密码", "password": "密码",
"passwordUpdated": "密码已更新!", "passwordUpdated": "密码已更新!",
@ -206,25 +211,27 @@
"share": "分享文件" "share": "分享文件"
}, },
"permissions": "权限", "permissions": "权限",
"permissionsHelp": "您可以将该用户设置为管理员,也可以单独选择各项权限。如果选择了“管理员”,则其他的选项会被自动勾上,同时该用户可以管理其他用户。", "permissionsHelp": "您可以将该用户设置为管理员或单独选择各项权限。如果您选择了“管理员”,则其他的选项会被自动选中,同时该用户可以管理其他用户。\n",
"profileSettings": "个人设置", "profileSettings": "个人设置",
"ruleExample1": "阻止用户访问所有文件夹下任何以 . 开头的文件(隐藏文件, 例如: .git, .gitignore", "ruleExample1": "阻止用户访问所有文件夹下任何以 . 开头的文件(隐藏文件, 例如: .git, .gitignore\n",
"ruleExample2": "阻止用户访问其目录范围的根目录下名为 Caddyfile 的文件。", "ruleExample2": "阻止用户访问其目录范围的根目录下名为 Caddyfile 的文件。",
"rules": "规则", "rules": "规则",
"rulesHelp": "您可以为该用户制定一组黑名单或白名单式的规则,被屏蔽的文件将不会显示在列表中,用户也无权限访问,支持相对于目录范围的路径。", "rulesHelp": "您可以为该用户制定一组黑名单或白名单式的规则,被屏蔽的文件将不会显示在列表中,用户也无权限访问,支持正则表达式和相对于用户范围的路径。\n",
"scope": "目录范围", "scope": "目录范围",
"setDateFormat": "显示精确的日期格式",
"settingsUpdated": "设置已更新!", "settingsUpdated": "设置已更新!",
"shareDuration": "分享期限", "shareDuration": "分享期限",
"shareManagement": "分享管理", "shareManagement": "分享管理",
"singleClick": "", "shareDeleted": "分享已删除!",
"singleClick": "使用单击来打开文件和目录",
"themes": { "themes": {
"dark": "深色", "dark": "深色",
"light": "浅色", "light": "浅色",
"title": "主题" "title": "主题"
}, },
"user": "用户", "user": "用户",
"userCommands": "用户命令(shell 命令)", "userCommands": "用户命令(Shell 命令)",
"userCommandsHelp": "指定该用户可以执行的命令(shell 代码),用空格分隔。例如:", "userCommandsHelp": "指定该用户可以执行的命令(Shell 命令),用空格分隔。例如:\n",
"userCreated": "用户已创建!", "userCreated": "用户已创建!",
"userDefaults": "用户默认设置", "userDefaults": "用户默认设置",
"userDeleted": "用户已删除!", "userDeleted": "用户已删除!",
@ -235,7 +242,7 @@
}, },
"sidebar": { "sidebar": {
"help": "帮助", "help": "帮助",
"hugoNew": "Hugo New", "hugoNew": "Hugo 新建",
"login": "登录", "login": "登录",
"logout": "登出", "logout": "登出",
"myFiles": "我的文件", "myFiles": "我的文件",

View File

@ -137,6 +137,8 @@
> >
<i class="material-icons">chevron_right</i> <i class="material-icons">chevron_right</i>
</button> </button>
<link rel="prefetch" :href="previousRaw">
<link rel="prefetch" :href="nextRaw">
</div> </div>
</template> </template>
@ -146,7 +148,6 @@ import { files as api } from "@/api";
import { baseURL, resizePreview } from "@/utils/constants"; import { baseURL, resizePreview } from "@/utils/constants";
import url from "@/utils/url"; import url from "@/utils/url";
import throttle from "lodash.throttle"; import throttle from "lodash.throttle";
import HeaderBar from "@/components/header/HeaderBar"; import HeaderBar from "@/components/header/HeaderBar";
import Action from "@/components/header/Action"; import Action from "@/components/header/Action";
import ExtendedImage from "@/components/files/ExtendedImage"; import ExtendedImage from "@/components/files/ExtendedImage";
@ -172,6 +173,8 @@ export default {
navTimeout: null, navTimeout: null,
hoverNav: false, hoverNav: false,
autoPlay: false, autoPlay: false,
previousRaw: "",
nextRaw: "",
}; };
}, },
computed: { computed: {
@ -302,13 +305,14 @@ export default {
for (let j = i - 1; j >= 0; j--) { for (let j = i - 1; j >= 0; j--) {
if (mediaTypes.includes(this.listing[j].type)) { if (mediaTypes.includes(this.listing[j].type)) {
this.previousLink = this.listing[j].url; this.previousLink = this.listing[j].url;
this.previousRaw = this.prefetchUrl(this.listing[j]);
break; break;
} }
} }
for (let j = i + 1; j < this.listing.length; j++) { for (let j = i + 1; j < this.listing.length; j++) {
if (mediaTypes.includes(this.listing[j].type)) { if (mediaTypes.includes(this.listing[j].type)) {
this.nextLink = this.listing[j].url; this.nextLink = this.listing[j].url;
this.nextRaw = this.prefetchUrl(this.listing[j]);
break; break;
} }
} }
@ -316,6 +320,16 @@ export default {
return; return;
} }
}, },
prefetchUrl: function(item) {
const key = Date.parse(item.modified);
if (item.type === "image" && !this.fullSize) {
return `${baseURL}/api/preview/big${item.path}?k=${key}&inline=true`;
} else if (item.type === "image"){
return `${baseURL}/api/raw${item.path}?k=${key}&inline=true`;
} else{
return "";
}
},
openMore() { openMore() {
this.$store.commit("showHover", "more"); this.$store.commit("showHover", "more");
}, },