backups: upload and restore backup in-app
This commit is contained in:
@@ -56,6 +56,15 @@ export const _download = (url: string, fname: string): void => {
|
||||
req.send();
|
||||
};
|
||||
|
||||
export const _upload = (url: string, formData: FormData): void => {
|
||||
let req = new XMLHttpRequest();
|
||||
if (window.URLBase) { url = window.URLBase + url; }
|
||||
req.open("POST", url, true);
|
||||
req.setRequestHeader("Authorization", "Bearer " + window.token);
|
||||
// req.setRequestHeader('Content-Type', 'multipart/form-data');
|
||||
req.send(formData);
|
||||
};
|
||||
|
||||
export const _post = (url: string, data: Object, onreadystatechange: (req: XMLHttpRequest) => void, response?: boolean, statusHandler?: (req: XMLHttpRequest) => void): void => {
|
||||
let req = new XMLHttpRequest();
|
||||
req.open("POST", window.URLBase + url, true);
|
||||
|
||||
+16
-1
@@ -1,4 +1,4 @@
|
||||
import { _get, _post, _delete, _download, toggleLoader, addLoader, removeLoader, insertText, toClipboard, toDateString } from "../modules/common.js";
|
||||
import { _get, _post, _delete, _download, _upload, toggleLoader, addLoader, removeLoader, insertText, toClipboard, toDateString } from "../modules/common.js";
|
||||
import { Marked } from "@ts-stack/markdown";
|
||||
import { stripMarkdown } from "../modules/stripmd.js";
|
||||
|
||||
@@ -830,6 +830,21 @@ export class settingsList {
|
||||
};
|
||||
this._backupSortDirection.onclick = () => this.setBackupSort(!(this._backupSortAscending));
|
||||
const advancedEnableToggle = document.getElementById("settings-advanced-enabled") as HTMLInputElement;
|
||||
|
||||
const filedlg = document.getElementById("backups-file") as HTMLInputElement;
|
||||
document.getElementById("settings-backups-upload").onclick = () => {
|
||||
filedlg.click();
|
||||
};
|
||||
filedlg.addEventListener("change", () => {
|
||||
if (filedlg.files.length == 0) return;
|
||||
const form = new FormData();
|
||||
form.append("backups-file", filedlg.files[0], filedlg.files[0].name);
|
||||
_upload("/backups/restore", form);
|
||||
window.modals.backups.close();
|
||||
window.modals.settingsRefresh.modal.querySelector("span.heading").textContent = window.lang.strings("settingsRestarting");
|
||||
window.modals.settingsRefresh.show();
|
||||
});
|
||||
|
||||
advancedEnableToggle.onchange = () => {
|
||||
document.dispatchEvent(new CustomEvent("settings-advancedState", { detail: advancedEnableToggle.checked }));
|
||||
const parent = advancedEnableToggle.parentElement;
|
||||
|
||||
Reference in New Issue
Block a user