This commit is contained in:
Vanessa 2022-06-13 20:30:46 +08:00
parent dcbcf7f3a7
commit ba0aaed4f2
5 changed files with 52 additions and 26 deletions

View File

@ -1,4 +1,5 @@
{ {
"plsChoose": "Please choose first",
"clearMessage": "Read", "clearMessage": "Read",
"freeSub": "Free Trial Subscription", "freeSub": "Free Trial Subscription",
"sortByUpdateTimeDesc": "Descending by update time", "sortByUpdateTimeDesc": "Descending by update time",

View File

@ -1,4 +1,5 @@
{ {
"plsChoose": "Veuillez d'abord choisir",
"clearMessage": "Lire", "clearMessage": "Lire",
"freeSub": "Abonnement d'essai gratuit", "freeSub": "Abonnement d'essai gratuit",
"sortByUpdateTimeDesc": "Descendant par heure de mise à jour", "sortByUpdateTimeDesc": "Descendant par heure de mise à jour",

View File

@ -1,4 +1,5 @@
{ {
"plsChoose": "請先進行選擇",
"clearMessage": "已讀", "clearMessage": "已讀",
"freeSub": "免費試用訂閱", "freeSub": "免費試用訂閱",
"sortByUpdateTimeDesc": "更新時間降序", "sortByUpdateTimeDesc": "更新時間降序",

View File

@ -1,4 +1,5 @@
{ {
"plsChoose": "请先进行选择",
"clearMessage": "已读", "clearMessage": "已读",
"freeSub": "免费试用订阅", "freeSub": "免费试用订阅",
"sortByUpdateTimeDesc": "更新时间降序", "sortByUpdateTimeDesc": "更新时间降序",

View File

@ -158,20 +158,29 @@ const setE2eePassword = () => {
const dialog = new Dialog({ const dialog = new Dialog({
title: window.siyuan.languages.changeE2EEPasswd, title: window.siyuan.languages.changeE2EEPasswd,
content: `<div class="b3-dialog__content"> content: `<div class="b3-dialog__content">
<label class="fn__flex"> <ul class="b3-list b3-list--background">
<div class="fn__flex-1"> <li class="b3-list-item b3-list-item--hide-action" data-type="default">
${window.siyuan.languages.defaultPassword} <input type="radio" name="mode" class="fn__flex-center">
</div> <div class="fn__space"></div>
<span class="fn__space"></span> <span class="b3-list-item__text">${window.siyuan.languages.defaultPassword}</span>
<input class="b3-switch fn__flex-center" checked type="checkbox"> <span class="b3-list-item__action"><svg class="svg fn__flex-center ft__on-surface"><use xlink:href="#iconRight"></use></svg></span>
</li>
<li class="b3-list-item b3-list-item--hide-action" data-type="custom">
<input type="radio" name="mode" class="fn__flex-center">
<div class="fn__space"></div>
<span class="b3-list-item__text">${window.siyuan.languages.customPassword}</span>
<span class="b3-list-item__action"><svg class="svg fn__flex-center ft__on-surface"><use xlink:href="#iconRight"></use></svg></span>
</li>
</ul>
<div class="fn__none ft__error" data-type="default">
<button class="b3-button b3-button--outline"><svg><use xlink:href="#iconLeft"></use></svg>${window.siyuan.languages.back}</button>
<div class="fn__hr"></div> <div class="fn__hr"></div>
</label> ${window.siyuan.languages.defaultPasswordTip}
<div class="b3-label__text ft__error">${window.siyuan.languages.defaultPasswordTip}</div> </div>
<div class="fn__none"> <div class="fn__none" data-type="custom">
<div class="fn__hr--b"></div> <button class="b3-button b3-button--outline"><svg><use xlink:href="#iconLeft"></use></svg>${window.siyuan.languages.back}</button>
${window.siyuan.languages.customPassword}
<div class="fn__hr"></div> <div class="fn__hr"></div>
<input class="b3-text-field fn__block"> <input class="b3-text-field fn__block" placeholder="${window.siyuan.languages.customPassword}">
<div class="fn__hr"></div> <div class="fn__hr"></div>
<div class="b3-label__text ft__error">${window.siyuan.languages.changeE2EEPasswdTip}</div> <div class="b3-label__text ft__error">${window.siyuan.languages.changeE2EEPasswdTip}</div>
</div> </div>
@ -182,19 +191,27 @@ const setE2eePassword = () => {
</div>`, </div>`,
width: isMobile() ? "80vw" : "520px", width: isMobile() ? "80vw" : "520px",
}); });
const switchElement = dialog.element.querySelector(".b3-switch") as HTMLInputElement; dialog.element.querySelector(".b3-dialog__content").addEventListener("click", (event) => {
const inputElement = dialog.element.querySelector(".b3-text-field") as HTMLInputElement; let target = event.target as HTMLElement
const btnsElement = dialog.element.querySelectorAll(".b3-button"); while (target && !target.classList.contains("b3-dialog__content")) {
switchElement.addEventListener("change", () => { if (target.classList.contains("b3-list-item")) {
if (switchElement.checked) { target.parentElement.classList.add("fn__none");
inputElement.parentElement.classList.add("fn__none"); if (target.getAttribute("data-type") === "default") {
inputElement.parentElement.previousElementSibling.classList.remove("fn__none"); target.parentElement.nextElementSibling.classList.remove("fn__none")
} else { } else {
inputElement.parentElement.classList.remove("fn__none"); target.parentElement.nextElementSibling.nextElementSibling.classList.remove("fn__none")
inputElement.parentElement.previousElementSibling.classList.add("fn__none"); }
inputElement.focus(); break;
} else if (target.classList.contains("b3-button--outline")) {
target.parentElement.classList.add("fn__none")
dialog.element.querySelector(".b3-list").classList.remove("fn__none")
break;
}
target = target.parentElement
} }
}); })
const btnsElement = dialog.element.querySelectorAll(".b3-dialog__action .b3-button");
const inputElement = dialog.element.querySelector(".b3-text-field") as HTMLInputElement;
inputElement.addEventListener("keydown", (event) => { inputElement.addEventListener("keydown", (event) => {
if (event.isComposing) { if (event.isComposing) {
event.preventDefault(); event.preventDefault();
@ -214,11 +231,16 @@ const setE2eePassword = () => {
dialog.destroy(); dialog.destroy();
}); });
btnsElement[1].addEventListener("click", () => { btnsElement[1].addEventListener("click", () => {
if (!dialog.element.querySelector('.b3-list').classList.contains("fn__none")) {
showMessage(window.siyuan.languages.plsChoose);
return;
}
const mode = dialog.element.querySelector('div[data-type="default"]').classList.contains("fn__none") ? 1 : 0
fetchPost("/api/system/setE2EEPasswd", { fetchPost("/api/system/setE2EEPasswd", {
e2eePasswd: inputElement.value, e2eePasswd: inputElement.value,
mode: switchElement.checked ? 0 : 1,//0内置密码; 1自定义密码 mode //0内置密码; 1自定义密码
}, () => { }, () => {
window.siyuan.config.e2eePasswdMode = switchElement.checked ? 0 : 1; window.siyuan.config.e2eePasswdMode = mode;
dialog.destroy(); dialog.destroy();
const updateElement = repos.element.querySelector("#updatePassword").parentElement; const updateElement = repos.element.querySelector("#updatePassword").parentElement;
updateElement.classList.add("fn__none"); updateElement.classList.add("fn__none");