This commit is contained in:
Vanessa 2022-07-22 09:52:36 +08:00
parent 802ed4f0b6
commit bd50e43dbb

View file

@ -209,12 +209,16 @@ ${accountHTML}
${window.siyuan.languages.dataRepoKey}
<div class="fn__hr"></div>
<div class="${window.siyuan.config.repo.key ? "fn__none" : ""}">
<button class="b3-button b3-button--outline fn__block" id="importKey">
<svg><use xlink:href="#iconDownload"></use></svg>${window.siyuan.languages.importKey}
</button>
<div class="fn__hr"></div>
<button class="b3-button b3-button--outline fn__block" id="initKey">
<svg><use xlink:href="#iconLock"></use></svg>${window.siyuan.languages.genKey}
</button>
<div class="fn__hr"></div>
<button class="b3-button b3-button--outline fn__block" id="importKey">
<svg><use xlink:href="#iconDownload"></use></svg>${window.siyuan.languages.importKey}
<button class="b3-button b3-button--outline fn__block" id="initKeyByPW">
${window.siyuan.languages.genKeyByPW}
</button>
</div>
<div class="${window.siyuan.config.repo.key ? "" : "fn__none"}">
@ -323,6 +327,42 @@ ${accountHTML}
});
});
});
modelMainElement.querySelector("#initKeyByPW").addEventListener("click", () => {
const initDialog = new Dialog({
title: "🔑 " + window.siyuan.languages.genKeyByPW,
content: `<div class="b3-dialog__content">
<input class="b3-text-field fn__block" placeholder="${window.siyuan.languages.password}">
</div>
<div class="b3-dialog__action">
<button class="b3-button b3-button--cancel">${window.siyuan.languages.cancel}</button><div class="fn__space"></div>
<button class="b3-button b3-button--text">${window.siyuan.languages.confirm}</button>
</div>`,
width: "520px",
});
const inputElement = initDialog.element.querySelector(".b3-text-field") as HTMLInputElement;
inputElement.focus();
const btnsElement = initDialog.element.querySelectorAll(".b3-button");
initDialog.bindInput(inputElement, () => {
(btnsElement[1] as HTMLButtonElement).click();
});
btnsElement[0].addEventListener("click", () => {
initDialog.destroy();
});
btnsElement[1].addEventListener("click", () => {
if (!inputElement.value) {
showMessage(window.siyuan.languages._kernel[142]);
return;
}
confirmDialog("🔑 " + window.siyuan.languages.genKeyByPW, window.siyuan.languages.initRepoKeyTip, () => {
initDialog.destroy();
fetchPost("/api/repo/InitRepoKeyFromPassphrase", {pass: inputElement.value}, (response) => {
window.siyuan.config.repo.key = response.data.key;
importKeyElement.parentElement.classList.add("fn__none");
importKeyElement.parentElement.nextElementSibling.classList.remove("fn__none");
});
});
});
});
modelMainElement.querySelector("#copyKey").addEventListener("click", () => {
showMessage(window.siyuan.languages.copied);
writeText(window.siyuan.config.repo.key);