fix: context menu implémenté + page editor CSRF + workspace context
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped

- Context menu: toutes les actions fonctionnelles (favorite, copyLink, duplicate, rename, move, delete, openTab)
- Page editor: CSRF token ajouté dans save() et saveTitle()
- Page editor: workspace context restauré (owner/repo extrait de pages.workspace)
- Route /pages/{id}: utilise board._sidebar_data pour préserver le contexte projet
This commit is contained in:
2026-07-08 15:51:24 -04:00
parent 92dad6db1f
commit 1d2c2c0919
3 changed files with 62 additions and 9 deletions
+12 -2
View File
@@ -136,7 +136,12 @@
save() {
this.saving = true;
const title = document.querySelector('.page-title h1')?.textContent || 'New page';
fetch(`/board/api/pages/{{ page.id }}?title=${encodeURIComponent(title)}&content=${encodeURIComponent(this.content)}`, { method: 'PUT' })
const csrf = document.cookie.match(/csrf_token=([^;]+)/);
const token = csrf ? csrf[1] : '';
fetch(`/board/api/pages/{{ page.id }}?title=${encodeURIComponent(title)}&content=${encodeURIComponent(this.content)}`, {
method: 'PUT',
headers: { 'X-CSRF-Token': token }
})
.then(() => {
this.saved = true;
this.dirty = false;
@@ -145,7 +150,12 @@
});
},
saveTitle(newTitle) {
fetch(`/board/api/pages/{{ page.id }}?title=${encodeURIComponent(newTitle)}`, { method: 'PUT' });
const csrf = document.cookie.match(/csrf_token=([^;]+)/);
const token = csrf ? csrf[1] : '';
fetch(`/board/api/pages/{{ page.id }}?title=${encodeURIComponent(newTitle)}`, {
method: 'PUT',
headers: { 'X-CSRF-Token': token }
});
},
handleSlash(e) {
if (e.key === '/' && !e.ctrlKey && !e.metaKey) {