diff --git a/app/src/card/openCard.ts b/app/src/card/openCard.ts
index c2041ef2d..a83374b9a 100644
--- a/app/src/card/openCard.ts
+++ b/app/src/card/openCard.ts
@@ -49,7 +49,7 @@ export const openCardByData = (cardsData: ICard[], html = "") => {
@@ -110,8 +110,12 @@ export const openCardByData = (cardsData: ICard[], html = "") => {
dialog.element.addEventListener("click", (event) => {
const viewElement = hasClosestByAttribute(event.target as HTMLElement, "data-type", "view");
if (viewElement) {
- // TODO 文档卡
- viewCards(selectElement.value, selectElement.options[selectElement.selectedIndex].text);
+ if (selectElement) {
+ viewCards(selectElement.value, selectElement.options[selectElement.selectedIndex].text);
+ } else {
+ viewCards(countElement.previousElementSibling.getAttribute("data-id"),
+ countElement.previousElementSibling.textContent, undefined, true);
+ }
event.preventDefault();
event.stopPropagation();
return;
diff --git a/app/src/card/viewCards.ts b/app/src/card/viewCards.ts
index 9c3e35dad..1e371250a 100644
--- a/app/src/card/viewCards.ts
+++ b/app/src/card/viewCards.ts
@@ -11,10 +11,13 @@ import {Constants} from "../constants";
import {onGet} from "../protyle/util/onGet";
import {genCardItem} from "./makeCard";
-export const viewCards = (deckID: string, title: string, sourceElement?: HTMLElement) => {
+export const viewCards = (deckID: string, title: string, sourceElement?: HTMLElement, isDoc = false) => {
let pageIndex = 1;
let edit: Protyle;
- fetchPost("/api/riff/getRiffCards", {deckID, page: pageIndex}, (response) => {
+ fetchPost(isDoc ? "/api/riff/getTreeRiffCards" : "/api/riff/getRiffCards", {
+ id: deckID,
+ page: pageIndex
+ }, (response) => {
const dialog = new Dialog({
content: `
@@ -73,7 +76,7 @@ export const viewCards = (deckID: string, title: string, sourceElement?: HTMLEle
if (pageIndex <= 1) {
previousElement.setAttribute("disabled", "disabled");
}
- fetchPost("/api/riff/getRiffCards", {deckID, page: pageIndex}, (cardsResponse) => {
+ fetchPost("/api/riff/getRiffCards", {id: deckID, page: pageIndex}, (cardsResponse) => {
if (pageIndex === cardsResponse.data.pageCount) {
nextElement.setAttribute("disabled", "disabled");
} else if (cardsResponse.data.pageCount > 1) {
@@ -92,7 +95,7 @@ export const viewCards = (deckID: string, title: string, sourceElement?: HTMLEle
}
pageIndex++;
previousElement.removeAttribute("disabled");
- fetchPost("/api/riff/getRiffCards", {deckID, page: pageIndex}, (cardsResponse) => {
+ fetchPost("/api/riff/getRiffCards", {id: deckID, page: pageIndex}, (cardsResponse) => {
if (pageIndex === cardsResponse.data.pageCount) {
nextElement.setAttribute("disabled", "disabled");
} else if (cardsResponse.data.pageCount > 1) {
diff --git a/app/src/menus/navigation.ts b/app/src/menus/navigation.ts
index 79ffa3a63..6053ee000 100644
--- a/app/src/menus/navigation.ts
+++ b/app/src/menus/navigation.ts
@@ -26,6 +26,8 @@ import {deleteFiles} from "../editor/deleteFile";
import {getDockByType} from "../layout/util";
import {Files} from "../layout/dock/Files";
import {openNewWindowById} from "../window/openNewWindow";
+import {openCardByData} from "../card/openCard";
+import {escapeHtml} from "../util/escape";
const initMultiMenu = (selectItemElements: NodeListOf) => {
const fileItemElement = Array.from(selectItemElements).find(item => {
@@ -295,7 +297,15 @@ export const initFileMenu = (notebookId: string, pathString: string, liElement:
});
}
}).element);
-
+ window.siyuan.menus.menu.append(new MenuItem({
+ label: window.siyuan.languages.riffCard,
+ icon: "iconRiffCard",
+ click: () => {
+ fetchPost("/api/riff/getTreeRiffDueCards", {rootID: id}, (response) => {
+ openCardByData(response.data, `${escapeHtml(name)}`);
+ });
+ }
+ }).element);
/// #if !MOBILE
window.siyuan.menus.menu.append(new MenuItem({
label: window.siyuan.languages.search,
diff --git a/app/src/protyle/header/Title.ts b/app/src/protyle/header/Title.ts
index 226aa4404..adfbffe4f 100644
--- a/app/src/protyle/header/Title.ts
+++ b/app/src/protyle/header/Title.ts
@@ -361,7 +361,7 @@ export class Title {
icon: "iconRiffCard",
click: () => {
fetchPost("/api/riff/getTreeRiffDueCards", {rootID: protyle.block.rootID}, (response) => {
- openCardByData(response.data, `${escapeHtml(this.editElement.textContent)}`);
+ openCardByData(response.data, `${escapeHtml(this.editElement.textContent)}`);
});
}
}).element);