refactor(collab): remove live document collaboration and enforce strictly read-only sharing
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m2s

This commit is contained in:
sandrodach committed 2026-10-27 17:08:38 +01:00
1 parent aea05e868a
commit 04fa774d10
16 files changed
+179 -3556

No files matched your search

-44
View File
@@ -5,10 +5,6 @@ import {
Document,
DocumentBlock,
DocShare,
DocLockInfo,
BlockLockInfo,
LiveSessionInfo,
DocLocksResponse,
KanbanColumn,
ListItem,
ListShare,
@@ -641,46 +637,6 @@ export const api = {
await request(`/api/v1/documents/${id}`, { method: 'DELETE' });
},
async getDocLocks(docId: string): Promise<DocLocksResponse> {
const res = await request<DocLocksResponse>(`/api/v1/documents/${docId}/locks`);
return {
liveSession: res.liveSession || null,
blockLocks: ensureArray(res.blockLocks),
};
},
async lockBlock(docId: string, blockId: string, userColor?: string, ttlSeconds: number = 30): Promise<BlockLockInfo> {
console.log(`[MindSift Lock] Lock anfordern für Block "${blockId}" in Notiz "${docId}"...`);
const res = await request<any>(`/api/v1/documents/${docId}/blocks/${encodeURIComponent(blockId)}/lock`, {
method: 'POST',
body: JSON.stringify({ userColor, ttlSeconds, ttl: ttlSeconds }),
});
console.log(`[MindSift Lock] Lock erfolgreich erhalten für "${blockId}":`, res?.lock || res);
return res?.lock || res;
},
async unlockBlock(docId: string, blockId: string): Promise<{ status: string }> {
console.log(`[MindSift Lock] Lock freigeben für Block "${blockId}" in Notiz "${docId}"...`);
const res = await request<{ status: string }>(`/api/v1/documents/${docId}/blocks/${encodeURIComponent(blockId)}/unlock`, {
method: 'POST',
});
console.log(`[MindSift Lock] Lock freigegeben für "${blockId}"`);
return res;
},
async startLiveSession(docId: string): Promise<LiveSessionInfo> {
const res = await request<any>(`/api/v1/documents/${docId}/live/start`, {
method: 'POST',
});
return res?.session || res;
},
async endLiveSession(docId: string): Promise<{ status: string }> {
return request<{ status: string }>(`/api/v1/documents/${docId}/live/end`, {
method: 'POST',
});
},
async moveDocument(id: string, folderPath: string): Promise<Document> {
const d = await request<Document>(`/api/v1/documents/${id}/move`, {
method: 'PUT',