mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-01-27 10:46:09 +01:00
88 lines
4.7 KiB
TypeScript
88 lines
4.7 KiB
TypeScript
import {fetchPost} from "../util/fetch";
|
|
|
|
export const flashcard = {
|
|
element: undefined as Element,
|
|
genHTML: () => {
|
|
let responsiveHTML = "";
|
|
/// #if MOBILE
|
|
responsiveHTML = `<div class="b3-label">
|
|
${window.siyuan.languages.flashcardNewCardLimit}
|
|
<div class="fn__hr"></div>
|
|
<input class="b3-text-field fn__flex-center fn__block" id="newCardLimit" step="1" min="0" type="number"${window.siyuan.config.flashcard.newCardLimit ? " checked" : "" } value="${window.siyuan.config.flashcard.newCardLimit}"/>
|
|
<div class="b3-label__text">${window.siyuan.languages.flashcardNewCardLimitTip}</div>
|
|
</div>
|
|
<div class="b3-label">
|
|
${window.siyuan.languages.flashcardReviewCardLimit}
|
|
<div class="fn__hr"></div>
|
|
<input class="b3-text-field fn__flex-center fn__block" id="reviewCardLimit" step="1" min="0" type="number"${window.siyuan.config.flashcard.reviewCardLimit ? " checked" : ""} value="${window.siyuan.config.flashcard.reviewCardLimit}"/>
|
|
<div class="b3-label__text">${window.siyuan.languages.flashcardReviewCardLimitTip}</div>
|
|
</div>`;
|
|
/// #else
|
|
responsiveHTML = `<label class="fn__flex b3-label">
|
|
<div class="fn__flex-1">
|
|
${window.siyuan.languages.flashcardNewCardLimit}
|
|
<div class="b3-label__text">${window.siyuan.languages.flashcardNewCardLimitTip}</div>
|
|
</div>
|
|
<span class="fn__space"></span>
|
|
<input class="b3-text-field fn__flex-center fn__size200" id="newCardLimit" step="1" min="0" type="number"${window.siyuan.config.flashcard.newCardLimit ? " checked" : "" } value="${window.siyuan.config.flashcard.newCardLimit}"/>
|
|
</label>
|
|
<label class="fn__flex b3-label">
|
|
<div class="fn__flex-1">
|
|
${window.siyuan.languages.flashcardReviewCardLimit}
|
|
<div class="b3-label__text">${window.siyuan.languages.flashcardReviewCardLimitTip}</div>
|
|
</div>
|
|
<span class="fn__space"></span>
|
|
<input class="b3-text-field fn__flex-center fn__size200" id="reviewCardLimit" step="1" min="0" type="number"${window.siyuan.config.flashcard.reviewCardLimit ? " checked" : ""} value="${window.siyuan.config.flashcard.reviewCardLimit}"/>
|
|
</label>`;
|
|
/// #endif
|
|
return `${responsiveHTML}
|
|
<label class="fn__flex b3-label">
|
|
<div class="fn__flex-1">
|
|
${window.siyuan.languages.flashcardMark}
|
|
<div class="b3-label__text">${window.siyuan.languages.flashcardMarkTip}</div>
|
|
</div>
|
|
<span class="fn__space"></span>
|
|
<input class="b3-switch fn__flex-center" id="mark" type="checkbox"${window.siyuan.config.flashcard.mark ? " checked" : ""}/>
|
|
</label>
|
|
<label class="fn__flex b3-label">
|
|
<div class="fn__flex-1">
|
|
${window.siyuan.languages.flashcardList}
|
|
<div class="b3-label__text">${window.siyuan.languages.flashcardListTip}</div>
|
|
</div>
|
|
<span class="fn__space"></span>
|
|
<input class="b3-switch fn__flex-center" id="list" type="checkbox"${window.siyuan.config.flashcard.list ? " checked" : ""}/>
|
|
</label>
|
|
<label class="fn__flex b3-label">
|
|
<div class="fn__flex-1">
|
|
${window.siyuan.languages.flashcardSuperBlock}
|
|
<div class="b3-label__text">${window.siyuan.languages.flashcardSuperBlockTip}</div>
|
|
</div>
|
|
<span class="fn__space"></span>
|
|
<input class="b3-switch fn__flex-center" id="superBlock" type="checkbox"${window.siyuan.config.flashcard.superBlock ? " checked" : ""}/>
|
|
</label>
|
|
<label class="fn__flex b3-label">
|
|
<div class="fn__flex-1">
|
|
${window.siyuan.languages.flashcardDeck}
|
|
<div class="b3-label__text">${window.siyuan.languages.flashcardDeckTip}</div>
|
|
</div>
|
|
<span class="fn__space"></span>
|
|
<input class="b3-switch fn__flex-center" id="deck" type="checkbox"${window.siyuan.config.flashcard.deck ? " checked" : ""}/>
|
|
</label>`;
|
|
},
|
|
bindEvent: () => {
|
|
flashcard.element.querySelectorAll("input").forEach((item) => {
|
|
item.addEventListener("change", () => {
|
|
fetchPost("/api/setting/setFlashcard", {
|
|
newCardLimit: parseInt((flashcard.element.querySelector("#newCardLimit") as HTMLInputElement).value),
|
|
reviewCardLimit: parseInt((flashcard.element.querySelector("#reviewCardLimit") as HTMLInputElement).value),
|
|
mark: (flashcard.element.querySelector("#mark") as HTMLInputElement).checked,
|
|
list: (flashcard.element.querySelector("#list") as HTMLInputElement).checked,
|
|
superBlock: (flashcard.element.querySelector("#superBlock") as HTMLInputElement).checked,
|
|
deck: (flashcard.element.querySelector("#deck") as HTMLInputElement).checked,
|
|
}, response => {
|
|
window.siyuan.config.flashcard = response.data;
|
|
});
|
|
});
|
|
});
|
|
},
|
|
};
|