fix: side peek = document seul en edition + bouton Open calendrier/Kanban (v7.50.0)
- Les 4 peeks (library.js, local_workspace.js, my_tasks.js, database_table.js)
chargent /pages/{id}?embed=1 : le panneau ne montre plus que le document en
mode edition, sans sidebar ni barre (regression v7.49.0). Le cadre du
panneau (close/full/resize partages fdWirePeekResize) est inchange.
- Calendrier My Tasks : le handler testait e.target.dataset.openRow mais les
boutons .mt-cal-open ne contiennent que leur <svg> -> clic sur l'icone =
e.target = <svg>, rien ne partait. cause racine corrigee par
t.closest('[data-open-row]') : un seul chemin tableau/calendrier/Kanban.
- Kanban My Tasks : meme bouton Open ajoute sur les tuiles (openButton(t),
overlay absolu revele au survol de la carte .mt-card).
- Menu contextuel global « Open in side peek » : etait un toast d'erreur ;
route maintenant vers le peek de la page courante (_libData.openPeekById /
_wsData.openSidePeek), repli nouvel onglet ailleurs.
- /pages/{id}?embed=1 sur une page de base (content_format=collection)
rendait un editeur de blocs vide : le template collection est garde en
embed (body.embed-mode retire sidebar+barre, le tableau reste). Bouton
pleine page des peeks de bases : navigue via dataset.page (URL propre)
au lieu du src ?embed=1.
- Tests : garde de coherence inversee (?embed=1 exige sur les 4 fichiers),
+3 nouveaux (closest, tuiles Kanban, collection embed). Fix d'un test
pre-existant casse (assertion panel.style.display, reecriture vanilla JS
v7.49.0). Suite 1264 passed / 0 failed (-n auto) + ruff 0.
- Bump VERSION/main.py 7.50.0, CHANGELOG, WORKLOAD, OpenAPI regenere.
This commit is contained in:
+12
-6
@@ -152,9 +152,10 @@ function flowDeckMyTasks() {
|
||||
f.style.display = '';
|
||||
// `about:blank` d'abord : ouvrir une autre tâche doit REcharger
|
||||
// l'éditeur, sinon l'URL identique laisse le document précédent
|
||||
// affiché. `/pages/{id}` sans `?embed=1` = l'éditeur plein écran.
|
||||
// affiché. `?embed=1` = le document en édition seule, sans
|
||||
// sidebar ni barre de navigation (le cadre du panneau suffit).
|
||||
f.src = 'about:blank';
|
||||
f.src = '/pages/' + pid;
|
||||
f.src = '/pages/' + pid + '?embed=1';
|
||||
}).catch(function (e) {
|
||||
if (loading) {
|
||||
loading.textContent = 'Impossible d’ouvrir le contenu : ' + e.message;
|
||||
@@ -389,6 +390,7 @@ function flowDeckMyTasks() {
|
||||
h += '<div class="mt-card" draggable="true" data-id="' + t.id + '">' +
|
||||
'<span class="mt-icon">' + esc(rowIcon(t.icon)) + '</span>' +
|
||||
'<span class="mt-card-title">' + esc(t.title) + '</span>' +
|
||||
openButton(t) +
|
||||
(t.due ? '<span class="mt-card-due mt-due-' + esc(t.due_state) + '">📅 ' +
|
||||
esc(t.due) + '</span>' : '') +
|
||||
'<span class="mt-card-src">' + esc(t.collection_icon) + ' ' +
|
||||
@@ -878,17 +880,21 @@ function flowDeckMyTasks() {
|
||||
var t = e.target;
|
||||
|
||||
if (t.id === 'mt-new-btn') { openNewModal(); return; }
|
||||
if (t.dataset && t.dataset.openRow) {
|
||||
var opener = t.closest ? t.closest('[data-open-row]') : null;
|
||||
if (opener) {
|
||||
// `closest` : dans le calendrier le bouton ne contient que son
|
||||
// SVG — un clic sur l'icone donnait `e.target` = <svg> sans
|
||||
// dataset, et le bouton ne faisait rien.
|
||||
e.preventDefault();
|
||||
// Le titre vient de l'attribut : il est disponible aussi bien dans
|
||||
// le tableau que dans le calendrier ou la vue Jour.
|
||||
var label = t.dataset.openTitle;
|
||||
var label = opener.dataset.openTitle;
|
||||
if (!label) {
|
||||
var row = t.closest('.mt-row');
|
||||
var row = opener.closest('.mt-row');
|
||||
var cell = row && row.querySelector('.mt-title-text');
|
||||
label = cell ? cell.textContent : '';
|
||||
}
|
||||
openRowContent(Number(t.dataset.openRow), label);
|
||||
openRowContent(Number(opener.dataset.openRow), label);
|
||||
return;
|
||||
}
|
||||
if (t.dataset && t.dataset.fixSource) {
|
||||
|
||||
Reference in New Issue
Block a user