Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7dbaefb381 | ||
|
|
15b6b163f4 | ||
|
|
2e5efcfe07 |
@@ -1,5 +1,34 @@
|
||||
# Changelog - FlowDeck
|
||||
|
||||
## v7.49.2 (2026-10-05) — Pages de base : titre au-dessus, tableau à gauche
|
||||
|
||||
### Fixed
|
||||
|
||||
- **Le tableau d'une page de base commençait au 1/3 de la page** — une base
|
||||
créée depuis un document est un bloc `embed collection` rendu dans la
|
||||
colonne éditeur `.blocks-container` (`max-width: 900px; margin: 0 auto`) :
|
||||
centrée sur un grand écran, donc décalée loin du sidebar (mesuré x=694 sur
|
||||
1920 px). Nouvelle classe `.db-first` sur le wrapper éditeur quand le
|
||||
premier bloc est une base : titre et blocs passent à `margin: 0` +
|
||||
`padding-left: var(--space-lg)` (liseré de la topbar) — tableau au ras du
|
||||
sidebar (x=256 mesuré), titre au-dessus, plus de débordement de l'embed
|
||||
(`max-width: 100%`, le scroll horizontal reste géré par `.db-table-wrapper`).
|
||||
- **Les pages de base dédiées (`content_format='collection'`) n'avaient pas
|
||||
de titre** — `page_editor_collection.html` rend le tableau sans en-tête de
|
||||
page. Un `<h1 class="database-page-title">` est ajouté au-dessus du
|
||||
conteneur, avec le même liseré gauche que le tableau.
|
||||
|
||||
## v7.49.1 (2026-10-05) — Tableau des bases aligné sur le titre
|
||||
|
||||
### Fixed
|
||||
|
||||
- **Le tableau d'une page de base était décalé sous le titre** — le conteneur
|
||||
`.database-table-container` avait `padding: 0 24px` tandis que la topbar
|
||||
(fil d'Ariane/titre) est à `var(--space-lg)` = 16 px : deux marges gauches
|
||||
différentes. Le conteneur passe à la même valeur que la topbar, `margin: 0`
|
||||
conservé — le bord gauche du tableau s'aligne désormais au ras du titre et
|
||||
de la marge.
|
||||
|
||||
## v7.49.0 (2026-10-05) — Side peek : l'éditeur plein écran, et un calendrier complet
|
||||
|
||||
### Added
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
# WORKLOAD — FlowDeck Notion Clone
|
||||
|
||||
> **Début**: 2026-07-08 | **Version**: v7.49.0 (side peek bases réparé + largeur standard 1100px alignée sur Library + calendrier My Tasks cinq vues) | **Statut**: EN COURS 🔄
|
||||
> **Début**: 2026-07-08 | **Version**: v7.49.2 (pages de base : titre au-dessus du tableau, tableau calé à gauche au ras du sidebar) | **Statut**: EN COURS 🔄
|
||||
> **Cible**: parité Notion + intégration forge · **Follow-ups v7.3 livrés**: sidebar teamspaces, notif `page.updated`, charts `number` + dashboards multi-DB, unfurl forge, UI Settings → Audit — voir `ROADMAP.md § v7.3.0`
|
||||
|
||||
## Avancement Global
|
||||
|
||||
+1
-1
@@ -185,7 +185,7 @@ async def lifespan(_app: FastAPI):
|
||||
|
||||
app = FastAPI(
|
||||
title="FlowDeck",
|
||||
version="7.49.0",
|
||||
version="7.49.2",
|
||||
docs_url="/docs",
|
||||
redoc_url="/redoc",
|
||||
lifespan=lifespan,
|
||||
|
||||
@@ -5,6 +5,7 @@ page_title %}{{ page.title }}{% endblock %} {% block topbar %}
|
||||
{% set right_actions %}<span class="topbar-edited" style="cursor:pointer;" @click="edCall('toggleActivityOpen')">Edited <span x-text="edTimeAgo()"></span> ▾</span><button class="topbar-btn share-btn" @click="edCall('toggleShareOpen')"><span x-show="!edShared()">{{ fd_icon("lock",14) }} Share ▾</span><span x-show="edShared()" title="This page is shared">👥 Shared ▾</span></button><button class="topbar-btn" @click="edCall('copyPageLink')" title="Copy link">{{ fd_icon("link",14) }}</button><button class="topbar-btn star-btn" @click="edCall('toggleFavorite')" x-init="bindStar($el)"></button><button class="topbar-btn relative" @click="edCall('toggleMoreOpen')">⋯</button>{% endset %}
|
||||
{% include '_header.html' %}
|
||||
{% endblock %} {% block content %}
|
||||
<h1 class="database-page-title">{{ page.title }}</h1>
|
||||
{% include "_database_table.html" %}
|
||||
{% endblock %} {% block scripts %}
|
||||
<script data-cfasync="false" nonce="{{ csp_nonce() }}">
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
fix: side peek des bases repasse en vanilla JS + largeur 1100px standard (v7.49.0)
|
||||
|
||||
- Panneau peek: les bindings Alpine (x-data absent du conteneur) rendaient
|
||||
loovverture et le redimensionnement inoperants -> cblage direct sur le document.
|
||||
- Helper unique window.fdWirePeekResize (app.js): pointer capture, 300px-90vw,
|
||||
clic=fermer, largeur persiste fd_peek_width partagee entre les 4 peeks.
|
||||
- database-table-container margin:0 (tableau colle a gauche, marge Library).
|
||||
- .lib-container remonte dans app.css (trash etait pleine largeur), .db-index 1100px.
|
||||
- ObsiGate verifie sans code: creation .xlsx OK (openpyxl, #186).
|
||||
@@ -2,7 +2,7 @@
|
||||
"openapi": "3.1.0",
|
||||
"info": {
|
||||
"title": "FlowDeck",
|
||||
"version": "7.49.0"
|
||||
"version": "7.49.2"
|
||||
},
|
||||
"paths": {
|
||||
"/auth/register": {
|
||||
|
||||
+29
-1
@@ -2244,6 +2244,32 @@ button.breadcrumb-current { max-width: 260px; }
|
||||
min-height: 300px;
|
||||
}
|
||||
|
||||
/* Page de base (premier bloc = embed collection) : le titre et le tableau
|
||||
s'alignent sur la marge gauche de la topbar (16px) au lieu d'être centrés
|
||||
dans la colonne 900px — le tableau démarre au ras du sidebar. */
|
||||
.page-editor-wrapper.db-first .page-cover-area,
|
||||
.page-editor-wrapper.db-first .page-title-block,
|
||||
.page-editor-wrapper.db-first .blocks-container {
|
||||
max-width: 1100px;
|
||||
margin: 0;
|
||||
padding-left: var(--space-lg);
|
||||
}
|
||||
|
||||
/* Une base embarquée ne doit jamais déborder de sa colonne de blocs :
|
||||
.db-table-wrapper interne gère déjà le scroll horizontal. */
|
||||
.block-embed-collection { max-width: 100%; overflow: hidden; }
|
||||
|
||||
/* Titre des pages de base dédiées (page_editor_collection.html) — même
|
||||
liseré gauche que .database-table-container. */
|
||||
.database-page-title {
|
||||
max-width: 1100px;
|
||||
margin: 0;
|
||||
padding: 28px var(--space-lg) 0;
|
||||
font-size: 30px;
|
||||
font-weight: 700;
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.blocks-empty {
|
||||
padding: 40px 0;
|
||||
text-align: center;
|
||||
@@ -3879,7 +3905,9 @@ button.breadcrumb-current { max-width: 260px; }
|
||||
width: 100%;
|
||||
max-width: 1100px;
|
||||
margin: 0;
|
||||
padding: 0 24px;
|
||||
/* var(--space-lg) = padding de .topbar : le bord gauche du tableau
|
||||
s'aligne sur le titre du fil d'ariane, au ras de la marge. */
|
||||
padding: 0 var(--space-lg);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
|
||||
@@ -1124,6 +1124,10 @@ const PD=(()=>{try{const el=document.getElementById('page-data');return el?JSON.
|
||||
if(!wrap)return;
|
||||
wrap.classList.toggle('full-width',!!this.fullWidth);
|
||||
wrap.classList.toggle('small-text',!!this.fontSmall);
|
||||
// Page dont le premier bloc est une base : layout « page de base »
|
||||
// Notion — titre et tableau calés à gauche, pas centrés.
|
||||
const b0=this.blocks&&this.blocks[0];
|
||||
wrap.classList.toggle('db-first',!!(b0&&b0.type==='embed'&&b0.embed_type==='collection'));
|
||||
},
|
||||
closeInviteSuggest(){ this.inviteSuggestOpen = false; this.inviteUsers = []; },
|
||||
setSharePerm(a, perm){ this.updateShare(a.id, perm); a.permOpen = false; },
|
||||
|
||||
Reference in New Issue
Block a user