mcdview 0.26.1__tar.gz → 0.26.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcdview
3
- Version: 0.26.1
3
+ Version: 0.26.2
4
4
  Summary: Turn a SQL data model into one self-contained, interactive HTML page
5
5
  Project-URL: Homepage, https://github.com/Gheop/mcdview
6
6
  Project-URL: Demo, https://gheop.github.io/mcdview/
@@ -323,6 +323,13 @@ file's header.
323
323
 
324
324
  ## Changelog
325
325
 
326
+ ### v0.26.2 — Auto-dismiss the hint banner (2026-08-30)
327
+
328
+ - The transient hint banner (e.g. "No probable missing FK", "No match", a
329
+ cycle/type/ref count) now clears itself after ~2.6 s, so it no longer sits
330
+ over the menus that open below it. The join-path prompts stay put until you
331
+ pick the two tables.
332
+
326
333
  ### v0.26.1 — Parse inline-opening multi-line CREATE TABLE (2026-08-30)
327
334
 
328
335
  - The built-in PostgreSQL parser now reads a `CREATE TABLE` whose `(` is
@@ -301,6 +301,13 @@ file's header.
301
301
 
302
302
  ## Changelog
303
303
 
304
+ ### v0.26.2 — Auto-dismiss the hint banner (2026-08-30)
305
+
306
+ - The transient hint banner (e.g. "No probable missing FK", "No match", a
307
+ cycle/type/ref count) now clears itself after ~2.6 s, so it no longer sits
308
+ over the menus that open below it. The join-path prompts stay put until you
309
+ pick the two tables.
310
+
304
311
  ### v0.26.1 — Parse inline-opening multi-line CREATE TABLE (2026-08-30)
305
312
 
306
313
  - The built-in PostgreSQL parser now reads a `CREATE TABLE` whose `(` is
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "mcdview"
7
- version = "0.26.1"
7
+ version = "0.26.2"
8
8
  description = "Turn a SQL data model into one self-contained, interactive HTML page"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -1135,8 +1135,18 @@ function arcEntre(a, b) { // the FK connecting a and b, either direction
1135
1135
  (f.de === b && f.vers === a)) || null;
1136
1136
  }
1137
1137
  const indice = document.getElementById("indice");
1138
- function montrerIndice(txt) { indice.textContent = txt; indice.hidden = false; }
1139
- function cacherIndice() { indice.hidden = true; }
1138
+ let indiceTimer = null;
1139
+ function montrerIndice(txt, persistant) {
1140
+ indice.textContent = txt; indice.hidden = false;
1141
+ if (indiceTimer) { clearTimeout(indiceTimer); indiceTimer = null; }
1142
+ // transient info (no result, no cycle…) clears itself so it never sits over
1143
+ // the menus that open below it; a persistent prompt (join mode) stays put
1144
+ if (!persistant) indiceTimer = setTimeout(cacherIndice, 2600);
1145
+ }
1146
+ function cacherIndice() {
1147
+ if (indiceTimer) { clearTimeout(indiceTimer); indiceTimer = null; }
1148
+ indice.hidden = true;
1149
+ }
1140
1150
  // French UI strings built at runtime; the EN build swaps them via TRADUCTIONS
1141
1151
  const TXT = {
1142
1152
  aucuneRelation: "Aucune table liée.",
@@ -1186,7 +1196,7 @@ function choisirJointure(cle) {
1186
1196
  jointure.premier = cle;
1187
1197
  Object.keys(elems).forEach(c => elems[c].classList.remove("depart"));
1188
1198
  elems[cle].classList.add("depart");
1189
- montrerIndice(TXT.choisirSeconde);
1199
+ montrerIndice(TXT.choisirSeconde, true);
1190
1200
  } else {
1191
1201
  const a = jointure.premier, b = cle;
1192
1202
  jointure.actif = false; jointure.premier = null;
@@ -1410,7 +1420,7 @@ document.getElementById("btnJointure").addEventListener("click", () => {
1410
1420
  sortirModes(); vueGenerale();
1411
1421
  jointure.actif = true; jointure.premier = null;
1412
1422
  btn.classList.add("actif");
1413
- montrerIndice(TXT.choisirPremiere);
1423
+ montrerIndice(TXT.choisirPremiere, true);
1414
1424
  });
1415
1425
 
1416
1426
  if (!D.fks.some(f => f.audit)) document.getElementById("labelAudit").hidden = true;
File without changes
File without changes
File without changes
File without changes