mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-24 02:20:13 +01:00
This commit is contained in:
parent
1cc2a66714
commit
f27c285373
2 changed files with 66 additions and 24 deletions
|
|
@ -30,8 +30,8 @@ export const openCard = () => {
|
|||
});
|
||||
};
|
||||
|
||||
export const openCardByData = (cardsData: ICard[], html = "") => {
|
||||
let blocks = cardsData;
|
||||
export const openCardByData = (cardsData: { cards: ICard[], unreviewedCount: number }, html = "") => {
|
||||
let blocks = cardsData.cards;
|
||||
let index = 0;
|
||||
if (blocks.length > 0) {
|
||||
html += `<div class="fn__flex" style="align-items: center" data-type="count">
|
||||
|
|
@ -136,21 +136,8 @@ export const openCardByData = (cardsData: ICard[], html = "") => {
|
|||
const actionElements = dialog.element.querySelectorAll(".card__action");
|
||||
const selectElement = dialog.element.querySelector("select");
|
||||
dialog.element.addEventListener("click", (event) => {
|
||||
const fullscreenElement = hasClosestByAttribute(event.target as HTMLElement, "data-type", "fullscreen");
|
||||
if (fullscreenElement) {
|
||||
fullscreen(dialog.element.querySelector(".card__main"),
|
||||
dialog.element.querySelector('[data-type="fullscreen"]'));
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
return;
|
||||
}
|
||||
const closeElement = hasClosestByAttribute(event.target as HTMLElement, "data-type", "close");
|
||||
if (closeElement) {
|
||||
dialog.destroy();
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
return;
|
||||
}
|
||||
const target = event.target as HTMLElement;
|
||||
const titleElement = countElement.previousElementSibling;
|
||||
let type = "";
|
||||
if (typeof event.detail === "string") {
|
||||
if (event.detail === "1" || event.detail === "j") {
|
||||
|
|
@ -168,9 +155,47 @@ export const openCardByData = (cardsData: ICard[], html = "") => {
|
|||
} else if (event.detail === "0") {
|
||||
type = "-3";
|
||||
}
|
||||
} else {
|
||||
const fullscreenElement = hasClosestByAttribute(target, "data-type", "fullscreen");
|
||||
if (fullscreenElement) {
|
||||
fullscreen(dialog.element.querySelector(".card__main"),
|
||||
dialog.element.querySelector('[data-type="fullscreen"]'));
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
return;
|
||||
}
|
||||
const closeElement = hasClosestByAttribute(target, "data-type", "close");
|
||||
if (closeElement) {
|
||||
dialog.destroy();
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
return;
|
||||
}
|
||||
const newroundElement = hasClosestByAttribute(target, "data-type", "newround");
|
||||
if (newroundElement) {
|
||||
fetchPost(selectElement ? "/api/riff/getRiffDueCards" :
|
||||
(titleElement.getAttribute("data-id") ? "/api/riff/getTreeRiffDueCards" : "/api/riff/getNotebookRiffDueCards"), {
|
||||
rootID: titleElement.getAttribute("data-id"),
|
||||
deckID: selectElement?.value,
|
||||
notebook: titleElement.getAttribute("data-notebookid"),
|
||||
}, (treeCards) => {
|
||||
index = 0;
|
||||
blocks = treeCards.data.cards;
|
||||
nextCard({
|
||||
countElement,
|
||||
editor,
|
||||
actionElements,
|
||||
index,
|
||||
blocks
|
||||
});
|
||||
})
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (!type) {
|
||||
const buttonElement = hasClosestByClassName(event.target as HTMLElement, "b3-button");
|
||||
const buttonElement = hasClosestByClassName(target, "b3-button");
|
||||
if (buttonElement) {
|
||||
type = buttonElement.getAttribute("data-type");
|
||||
}
|
||||
|
|
@ -227,7 +252,6 @@ export const openCardByData = (cardsData: ICard[], html = "") => {
|
|||
/// #endif
|
||||
index++;
|
||||
if (index > blocks.length - 1) {
|
||||
const titleElement = countElement.previousElementSibling;
|
||||
fetchPost(selectElement ? "/api/riff/getRiffDueCards" :
|
||||
(titleElement.getAttribute("data-id") ? "/api/riff/getTreeRiffDueCards" : "/api/riff/getNotebookRiffDueCards"), {
|
||||
rootID: titleElement.getAttribute("data-id"),
|
||||
|
|
@ -236,9 +260,13 @@ export const openCardByData = (cardsData: ICard[], html = "") => {
|
|||
reviewedCards: blocks
|
||||
}, (treeCards) => {
|
||||
index = 0;
|
||||
blocks = treeCards.data;
|
||||
if (treeCards.data.length === 0) {
|
||||
allDone(countElement, editor, actionElements);
|
||||
blocks = treeCards.data.cards;
|
||||
if (blocks.length === 0) {
|
||||
if (treeCards.data.unreviewedCount > 0) {
|
||||
newRound(countElement, editor, actionElements);
|
||||
} else {
|
||||
allDone(countElement, editor, actionElements);
|
||||
}
|
||||
} else {
|
||||
nextCard({
|
||||
countElement,
|
||||
|
|
@ -266,7 +294,7 @@ export const openCardByData = (cardsData: ICard[], html = "") => {
|
|||
}
|
||||
selectElement.addEventListener("change", () => {
|
||||
fetchPost("/api/riff/getRiffDueCards", {deckID: selectElement.value}, (cardsChangeResponse) => {
|
||||
blocks = cardsChangeResponse.data;
|
||||
blocks = cardsChangeResponse.data.blocks;
|
||||
index = 0;
|
||||
if (blocks.length > 0) {
|
||||
nextCard({
|
||||
|
|
@ -319,7 +347,20 @@ const nextCard = (options: {
|
|||
const allDone = (countElement: Element, editor: Protyle, actionElements: NodeListOf<Element>) => {
|
||||
countElement.classList.add("fn__none");
|
||||
editor.protyle.element.classList.add("fn__none");
|
||||
editor.protyle.element.nextElementSibling.classList.remove("fn__none");
|
||||
const emptyElement = editor.protyle.element.nextElementSibling
|
||||
emptyElement.innerHTML = `<div>🔮</div>${window.siyuan.languages.noDueCard}`
|
||||
emptyElement.classList.remove("fn__none");
|
||||
actionElements[0].classList.add("fn__none");
|
||||
actionElements[1].classList.add("fn__none");
|
||||
};
|
||||
|
||||
const newRound = (countElement: Element, editor: Protyle, actionElements: NodeListOf<Element>) => {
|
||||
countElement.classList.add("fn__none");
|
||||
editor.protyle.element.classList.add("fn__none");
|
||||
const emptyElement = editor.protyle.element.nextElementSibling;
|
||||
emptyElement.innerHTML = `<div>🆕</div>
|
||||
<button data-type="newround" class="b3-button">Start</button>`;
|
||||
emptyElement.classList.remove("fn__none");
|
||||
actionElements[0].classList.add("fn__none");
|
||||
actionElements[1].classList.add("fn__none");
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue