From 2da499799d6ea5386fdaa099f3832c4a8cdde7ca Mon Sep 17 00:00:00 2001 From: HFO4 <912394456@qq.com> Date: Tue, 19 Apr 2022 16:14:53 +0800 Subject: [PATCH] feat: add new settings form in dashboard --- src/component/Admin/Index.js | 7 +- src/component/Admin/Setting/Captcha.js | 87 +++++++- src/component/Admin/Setting/Image.js | 202 ++++++++++++++---- src/component/Admin/Setting/UploadDownload.js | 45 ++-- 4 files changed, 288 insertions(+), 53 deletions(-) diff --git a/src/component/Admin/Index.js b/src/component/Admin/Index.js index 91a328b..988c859 100644 --- a/src/component/Admin/Index.js +++ b/src/component/Admin/Index.js @@ -182,7 +182,12 @@ export default function Index() { setNewsUsers(res); }) .catch((error) => { - ToggleSnackbar("top", "right", error.message, "error"); + ToggleSnackbar( + "top", + "right", + "Cloudreve 公告加载失败", + "warning" + ); }); }, []); diff --git a/src/component/Admin/Setting/Captcha.js b/src/component/Admin/Setting/Captcha.js index 72212ae..abb39db 100644 --- a/src/component/Admin/Setting/Captcha.js +++ b/src/component/Admin/Setting/Captcha.js @@ -12,6 +12,8 @@ import MenuItem from "@material-ui/core/MenuItem"; import Input from "@material-ui/core/Input"; import Link from "@material-ui/core/Link"; import { toggleSnackbar } from "../../../redux/explorer"; +import FormControlLabel from "@material-ui/core/FormControlLabel"; +import Switch from "@material-ui/core/Switch"; const useStyles = makeStyles((theme) => ({ root: { @@ -40,7 +42,14 @@ export default function Captcha() { captcha_height: "1", captcha_width: "1", captcha_mode: "3", - captcha_CaptchaLen: "", + captcha_CaptchaLen: "6", + captcha_ComplexOfNoiseText: "0", + captcha_ComplexOfNoiseDot: "0", + captcha_IsShowHollowLine: "0", + captcha_IsShowNoiseDot: "0", + captcha_IsShowNoiseText: "0", + captcha_IsShowSlimeLine: "0", + captcha_IsShowSineLine: "0", captcha_ReCaptchaKey: "", captcha_ReCaptchaSecret: "", captcha_TCaptcha_CaptchaAppId: "", @@ -100,6 +109,14 @@ export default function Captcha() { }); }; + const handleCheckChange = (name) => (event) => { + const value = event.target.checked ? "1" : "0"; + setOptions({ + ...options, + [name]: value, + }); + }; + return (
@@ -178,6 +195,25 @@ export default function Captcha() {
+
+ + + 长度 + + + +
@@ -200,6 +236,55 @@ export default function Captcha() {
+ {[ + { + name: "加强干扰文字", + field: "captcha_ComplexOfNoiseText", + }, + { + name: "加强干扰点", + field: "captcha_ComplexOfNoiseDot", + }, + { + name: "使用空心线", + field: "captcha_IsShowHollowLine", + }, + { + name: "使用噪点", + field: "captcha_IsShowNoiseDot", + }, + { + name: "使用干扰文字", + field: "captcha_IsShowNoiseText", + }, + { + name: "使用波浪线", + field: "captcha_IsShowSlimeLine", + }, + { + name: "使用正弦线", + field: "captcha_IsShowSineLine", + }, + ].map((input) => ( +
+ + + } + label={input.name} + /> + +
+ ))} )} diff --git a/src/component/Admin/Setting/Image.js b/src/component/Admin/Setting/Image.js index 98dfbba..e6a81cc 100644 --- a/src/component/Admin/Setting/Image.js +++ b/src/component/Admin/Setting/Image.js @@ -10,6 +10,9 @@ import { useDispatch } from "react-redux"; import { toggleSnackbar } from "../../../redux/explorer"; import API from "../../../middleware/Api"; import SizeInput from "../Common/SizeInput"; +import Alert from "@material-ui/lab/Alert"; +import FormControlLabel from "@material-ui/core/FormControlLabel"; +import Switch from "@material-ui/core/Switch"; const useStyles = makeStyles((theme) => ({ root: { @@ -43,6 +46,11 @@ export default function ImageSetting() { thumb_width: "", thumb_height: "", office_preview_service: "", + thumb_file_suffix: "", + thumb_max_task_count: "", + thumb_encode_method: "", + thumb_gc_after_gen: "0", + thumb_encode_quality: "", }); const handleChange = (name) => (event) => { @@ -96,6 +104,14 @@ export default function ImageSetting() { }); }; + const handleCheckChange = (name) => (event) => { + const value = event.target.checked ? "1" : "0"; + setOptions({ + ...options, + [name]: value, + }); + }; + return (
@@ -215,43 +231,6 @@ export default function ImageSetting() {
-
- - - 缩略图宽度 - - - -
-
- -
-
- - - 缩略图高度 - - - -
@@ -277,6 +256,155 @@ export default function ImageSetting() {
+
+ + 缩略图 + + +
+
+ + 以下设置只针对本机存储策略有效。 + +
+ +
+ + + 缩略图宽度 + + + +
+ +
+ + + 缩略图高度 + + + +
+ +
+ + + 缩略图文件后缀 + + + +
+ +
+ + + 缩略图生成并行数量 + + + + -1 表示不限制 + + +
+ +
+ + + 缩略图格式 + + + + 可选:png/jpg + + +
+ +
+ + + 缩略图生成并行数量 + + + + 压缩质量百分比,只针对 jpg 编码有效 + + +
+ +
+ + + } + label="生成完成后立即回收内存" + /> + +
+
+
+
@@ -206,7 +207,7 @@ export default function UploadDownload() {
- OneDrive 分片错误重试 + 分片错误重试 - OneDrive - 存储策略分片上传失败后重试的最大次数,只适用于服务端上传或中转 + 分片上传失败后重试的最大次数,只适用于服务端上传或中转 + + +
+ +
+ + + } + label="缓存流式分片文件以用于重试" + /> + + 开启后,流式中转分片上传时会将分片数据缓存在系统临时目录,以便用于分片上传失败后的重试; + 关闭后,流式中转分片上传不会额外占用硬盘空间,但分片上传失败后整个上传会立即失败。
@@ -273,10 +294,6 @@ export default function UploadDownload() { name: "Office 文档预览连接", field: "doc_preview_timeout", }, - { - name: "上传凭证", - field: "upload_credential_timeout", - }, { name: "上传会话", field: "upload_session_timeout",