fix: auto-save met à jour le titre du sidebar sans recharger la page
- sidebar items: attribut data-page-id ajouté pour ciblage DOM - save(): après PUT réussi, met à jour .page-name dans le sidebar - saveTitle(): reload la page (changement de titre = reload ok)
This commit is contained in:
@@ -56,7 +56,8 @@
|
||||
{% for page in recent_pages %}
|
||||
<li class="sidebar-item {% if page.active %}active{% endif %} {% if page.indent %}indent-{{ page.indent }}{% endif %}"
|
||||
@click="navigateTo('{{ page.url }}')"
|
||||
@contextmenu.prevent="showContextMenu($event, '{{ page.id }}', '{{ page.name }}')">
|
||||
@contextmenu.prevent="showContextMenu($event, '{{ page.id }}', '{{ page.name }}')"
|
||||
data-page-id="{{ page.id }}">
|
||||
<span class="page-icon">{{ page.icon }}</span>
|
||||
<span class="page-name">{{ page.name }}</span>
|
||||
<span class="item-actions">
|
||||
@@ -89,7 +90,8 @@
|
||||
{% for page in private_pages %}
|
||||
<li class="sidebar-item {% if page.active %}active{% endif %} {% if page.indent %}indent-{{ page.indent }}{% endif %}"
|
||||
@click="navigateTo('{{ page.url }}')"
|
||||
@contextmenu.prevent="showContextMenu($event, '{{ page.id }}', '{{ page.name }}')">
|
||||
@contextmenu.prevent="showContextMenu($event, '{{ page.id }}', '{{ page.name }}')"
|
||||
data-page-id="{{ page.id }}">
|
||||
<span class="page-icon">{{ page.icon }}</span>
|
||||
<span class="page-name">{{ page.name }}</span>
|
||||
<span class="item-actions">
|
||||
@@ -134,7 +136,8 @@
|
||||
{% for page in favorite_pages %}
|
||||
<li class="sidebar-item {% if page.active %}active{% endif %}"
|
||||
@click="navigateTo('{{ page.url }}')"
|
||||
@contextmenu.prevent="showContextMenu($event, '{{ page.id }}', '{{ page.name }}')">
|
||||
@contextmenu.prevent="showContextMenu($event, '{{ page.id }}', '{{ page.name }}')"
|
||||
data-page-id="{{ page.id }}">
|
||||
<span class="page-icon">{{ page.icon }}</span>
|
||||
<span class="page-name">{{ page.name }}</span>
|
||||
<span class="item-actions">
|
||||
|
||||
@@ -138,7 +138,8 @@
|
||||
const title = document.querySelector('.page-title h1')?.textContent || 'New page';
|
||||
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)}`, {
|
||||
const pageId = '{{ page.id }}';
|
||||
fetch(`/board/api/pages/${pageId}?title=${encodeURIComponent(title)}&content=${encodeURIComponent(this.content)}`, {
|
||||
method: 'PUT',
|
||||
headers: { 'X-CSRF-Token': token }
|
||||
})
|
||||
@@ -147,6 +148,12 @@
|
||||
this.dirty = false;
|
||||
this.saving = false;
|
||||
this.lastSaved = new Date().toLocaleTimeString();
|
||||
// Update sidebar title without reloading
|
||||
const sidebarItem = document.querySelector(`.sidebar-item[data-page-id="page/${pageId}"]`);
|
||||
if (sidebarItem) {
|
||||
const nameEl = sidebarItem.querySelector('.page-name');
|
||||
if (nameEl) nameEl.textContent = title;
|
||||
}
|
||||
});
|
||||
},
|
||||
saveTitle(newTitle) {
|
||||
|
||||
Reference in New Issue
Block a user