🎨 Show import/export settings in "About" on mobile https://github.com/siyuan-note/siyuan/issues/12699

This commit is contained in:
Daniel 2024-10-08 17:53:40 +08:00
parent 0a05713163
commit a1ee66ab5e
No known key found for this signature in database
GPG key ID: 86211BA83DF03017

View file

@ -111,6 +111,25 @@ export const initAbout = () => {
</button>
<div class="b3-label__text">${window.siyuan.languages.importDataTip}</div>
</div>
<div class="b3-label">
${window.siyuan.languages.exportConf}
<div class="fn__hr"></div>
<button class="b3-button b3-button--outline fn__block" id="exportConf">
<svg><use xlink:href="#iconUpload"></use></svg>${window.siyuan.languages.export}
</button>
<div class="b3-label__text">${window.siyuan.languages.exportConfTip}</div>
</div>
<div class="b3-label${window.siyuan.config.readonly ? " fn__none" : ""}">
<div class="fn__flex">
${window.siyuan.languages.importConf}
</div>
<div class="fn__hr"></div>
<button class="b3-button b3-button--outline fn__block" style="position: relative">
<input id="importConf" class="b3-form__upload" type="file">
<svg><use xlink:href="#iconDownload"></use></svg> ${window.siyuan.languages.import}
</button>
<div class="b3-label__text">${window.siyuan.languages.importConfTip}</div>
</div>
<div class="b3-label${(!window.siyuan.config.readonly && (isInAndroid() || isInIOS())) ? "" : " fn__none"}">
${window.siyuan.languages.workspaceList}
<div class="fn__hr"></div>
@ -247,6 +266,13 @@ export const initAbout = () => {
event.preventDefault();
event.stopPropagation();
break;
} else if (target.id === "exportConf") {
fetchPost("/api/system/exportConf", {}, response => {
openByMobile(response.data.zip);
});
event.preventDefault();
event.stopPropagation();
break;
} else if (target.id === "exportLog") {
fetchPost("/api/system/exportLog", {}, (response) => {
openByMobile(response.data.zip);
@ -357,6 +383,20 @@ export const initAbout = () => {
formData.append("file", event.target.files[0]);
fetchPost("/api/import/importData", formData);
});
modelMainElement.querySelector("#importConf").addEventListener("change", (event: InputEvent & {
target: HTMLInputElement
}) => {
const formData = new FormData();
formData.append("file", event.target.files[0]);
fetchPost("/api/system/importConf", formData, (response) => {
if (response.code !== 0) {
showMessage(response.msg);
return;
}
exitSiYuan();
});
});
const networkServeElement = modelMainElement.querySelector("#networkServe") as HTMLInputElement;
networkServeElement.addEventListener("change", () => {
fetchPost("/api/system/setNetworkServe", {networkServe: networkServeElement.checked}, () => {