feat(materials): Фаза 5 — заметка в флешкарты

Кнопка «В флешкарты» на карточке-заметке: выбор колоды (или новая «Из материалов») →
создание карточки (front=заголовок, back=текст) через существующий API флешкард.
Хелперы fcListDecks/fcCreateDeck/fcAddCard в js/api.js.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Maxim Dolgolyov
2026-06-04 12:23:19 +03:00
parent d3a64ac682
commit e793b4ec09
2 changed files with 39 additions and 1 deletions
+4
View File
@@ -1050,6 +1050,7 @@ window.LS = {
crAdminGetAllHistory, crAdminGetTeachersList,
listMaterials, saveMaterial, updateMaterial, deleteMaterial,
createMaterialCollection, updateMaterialCollection, deleteMaterialCollection,
fcListDecks, fcCreateDeck, fcAddCard,
escapeHtml, esc,
parseDate, fmtRelTime, safeHref,
initPage,
@@ -1251,6 +1252,9 @@ async function deleteMaterial(id) { return req('DELETE', `/materials/${id}`)
async function createMaterialCollection(d) { return req('POST', '/materials/collections', d); }
async function updateMaterialCollection(id,d){ return req('PATCH', `/materials/collections/${id}`, d); }
async function deleteMaterialCollection(id) { return req('DELETE', `/materials/collections/${id}`); }
async function fcListDecks() { return req('GET', '/flashcards/decks'); }
async function fcCreateDeck(d) { return req('POST', '/flashcards/decks', d); }
async function fcAddCard(deckId, d) { return req('POST', `/flashcards/decks/${deckId}/cards`, d); }
async function deleteFile(id) { return req('DELETE', `/files/${id}`); }
async function getFileAccess(id) { return req('GET', `/files/${id}/access`); }
async function assignFile(id, data) { return req('POST', `/files/${id}/assign`, data); }