@@ -167,6 +178,7 @@
0) {
@@ -467,8 +467,146 @@ export default defineComponent({
status.value = "normal";
upload_url.value = "";
},
- deleteFile(file: FileEntity) {},
- renameFile(file: FileEntity) {},
+ async onCreateNewFolder() {
+ let url = GlobalData.getInstance().createCurrentRequestUrl();
+ if (url) {
+ $q.dialog({
+ title: $t.t("create folder"),
+ message: $t.t("input folder name") + ":",
+ prompt: {
+ model: "",
+ isValid: (val: string) => val && val.trim().length > 0,
+ type: "text",
+ },
+ cancel: true,
+ persistent: true,
+ }).onOk(async (data: string) => {
+ if (url) {
+ url.pathname = HttpProtocol.RequestPathCreateDirectory;
+ let response = (
+ await api.post(url.toString(), {
+ base_dir: path.value,
+ dir_name: data,
+ })
+ ).data as NormalResult;
+ if (response && response.success) {
+ refresh_file_list();
+ $q.notify({
+ type: "positive",
+ message: $t.t("create folder") + $t.t("success") + "!",
+ position: "top",
+ timeout: 1500,
+ });
+ } else {
+ $q.notify({
+ type: "warning",
+ message:
+ $t.t("create folder") +
+ $t.t("fail") +
+ "!" +
+ (response ? response.message : ""),
+ position: "top",
+ timeout: 1500,
+ });
+ }
+ }
+ });
+ }
+ },
+ async deleteFile(file: FileEntity) {
+ let url = GlobalData.getInstance().createCurrentRequestUrl();
+ if (url) {
+ url.pathname = HttpProtocol.RequestPathDeleteFile;
+ let response = null;
+ try {
+ response = (
+ await api.delete(url.toString(), {
+ data: {
+ base_dir: path.value,
+ file_name: file.name,
+ },
+ })
+ ).data as NormalResult;
+ } catch (e) {
+ console.log(e);
+ }
+ if (response && response.success) {
+ refresh_file_list();
+ $q.notify({
+ type: "positive",
+ message: $t.t("delete file") + $t.t("success") + "!",
+ position: "top",
+ timeout: 1500,
+ });
+ } else {
+ $q.notify({
+ type: "warning",
+ message:
+ $t.t("delete file") +
+ $t.t("fail") +
+ "!" +
+ (response ? response.message : ""),
+ position: "top",
+ timeout: 1500,
+ });
+ }
+ }
+ },
+ renameFile(file: FileEntity) {
+ let url = GlobalData.getInstance().createCurrentRequestUrl();
+ if (url) {
+ $q.dialog({
+ title: $t.t("rename"),
+ message: $t.t("input new file name") + ":",
+ prompt: {
+ model: file.name,
+ isValid: (val: string) => val && val.trim().length > 0,
+ type: "text",
+ },
+ cancel: true,
+ persistent: true,
+ }).onOk(async (data: string) => {
+ if (data == file.name) {
+ return;
+ }
+ if (url) {
+ url.pathname = HttpProtocol.RequestPathRenameFile;
+ url.searchParams.append(
+ "type",
+ HttpProtocol.RequestPathRenameFile
+ );
+
+ let response = (
+ await api.put(url.toString(), {
+ base_dir: path.value,
+ file_name: file.name,
+ new_file_name: data,
+ })
+ ).data as NormalResult;
+ if (response && response.success) {
+ refresh_file_list();
+ $q.notify({
+ type: "positive",
+ message: $t.t("file rename") + $t.t("success") + "!",
+ position: "top",
+ timeout: 1500,
+ });
+ } else {
+ $q.notify({
+ type: "warning",
+ message:
+ $t.t("file rename") +
+ $t.t("fail") +
+ "!" +
+ (response ? response.message : ""),
+ position: "top",
+ timeout: 1500,
+ });
+ }
+ }
+ });
+ }
+ },
copyStringToClipboard(value: string) {
copyToClipboard(value);
},
@@ -495,27 +633,23 @@ export default defineComponent({
}
},
getUrl(file: File[]) {
- let client = GlobalData.getInstance().getCurrentClient();
- if (client) {
- let url = new URL(client.url);
- url.port =
- GlobalData.getInstance().applicationConfig?.httpserver_port ??
- HttpProtocol.DefaultHttpPort.toString();
+ let url = GlobalData.getInstance().createCurrentRequestUrl();
+ if (url) {
url.pathname = HttpProtocol.RequestUploadFile;
- url.protocol = "http:";
url.searchParams.append("type", HttpProtocol.HttpUploadTypeNormal);
url.searchParams.append("base_dir", path.value);
- console.log(url.toString());
return url.toString();
}
return "#";
},
onUploaded() {
+ refresh_file_list();
+
$q.notify({
type: "positive",
message: $t.t("file upload") + $t.t("success") + "!",
position: "top",
- timeout: 1000,
+ timeout: 1500,
});
},
onFailed(info: any) {
@@ -524,7 +658,7 @@ export default defineComponent({
type: "warning",
message: $t.t("file upload") + $t.t("fail") + "!",
position: "top",
- timeout: 1000,
+ timeout: 1500,
});
loading.value = false;
},
diff --git a/src/entities/HttpProtocol.ts b/src/entities/HttpProtocol.ts
index 9742269..c0bfd4b 100644
--- a/src/entities/HttpProtocol.ts
+++ b/src/entities/HttpProtocol.ts
@@ -4,7 +4,9 @@ export namespace HttpProtocol {
export const RequestPathUpdateDBBackupFile = "/common/update_db_backup_file";
export const RequestPathDBBackup = "/db_backup";
export const RequestPathListFile = "/list_file";
+ export const RequestPathCreateDirectory = "/create_directory";
export const RequestPathDeleteFile = "/delete_file";
+ export const RequestPathRenameFile = "/rename_file";
export const HttpUploadTypeNormal = "U_T_Normal";
export const UploadTypeBackgroundImage = "U_T_BACKGROUND_IMAGE";
diff --git a/src/entities/NormalResult.ts b/src/entities/NormalResult.ts
new file mode 100644
index 0000000..7d346a4
--- /dev/null
+++ b/src/entities/NormalResult.ts
@@ -0,0 +1,4 @@
+export default class NormalResult {
+ success = false;
+ message = "";
+}
diff --git a/src/i18n/zh-CN/index.ts b/src/i18n/zh-CN/index.ts
index 32a9992..da016a3 100644
--- a/src/i18n/zh-CN/index.ts
+++ b/src/i18n/zh-CN/index.ts
@@ -108,4 +108,10 @@ export default {
forward: "前进",
"cancel upload file": "取消文件上传",
"select file": "选择文件",
+ "file upload": "文件上传",
+ "file rename": "文件重命名",
+ "file delete": "文件删除",
+ "delete file": "文件删除",
+ "create folder": "新建文件夹",
+ "input folder name": "输入文件夹名称",
};