fix(webpub): the published page hid columns it had room for
The page was capped at 1100px — a comfortable reading width, and the right choice for the eight default columns. Now that all 123 fields can be published, anything past about eight sat behind a horizontal scrollbar on a screen wide enough to show the lot. Worse, Windows hides overlay scrollbars until something moves, so a table that scrolled looked exactly like a table with its right-hand columns missing. That is what was reported, and the report was reasonable: nothing on screen said otherwise. The wrapper grows with its content now, up to the window, and keeps a minimum so a two-column table does not collapse on a large display. The table sizes to what its cells need rather than being squeezed to the container first — that squeeze could wrap a callsign while empty space sat further along the same row. And the scrollbar is drawn permanently, thin and in the page's own colours.
This commit is contained in:
+4
-2
@@ -4,11 +4,13 @@
|
||||
"date": "",
|
||||
"en": [
|
||||
"Bulk edit can now set mode, submode and RST. They were excluded as per-QSO fields, which missed the point: bulk edit is for repairing a batch — an import that mapped every contact to SSB, an ADIF with no mode at all — and refusing meant editing a hundred rows one at a time. Setting the mode clears the submode, since one left over from the old mode contradicts the new one. Band stays with frequency, which already sets the two together.",
|
||||
"Web publishing: the Distance column is no longer empty. Nothing computes a distance when a QSO is logged — the stored field is only ever filled by an ADIF import that carried one — so it is worked out from the two locators instead, rounded to whole kilometres."
|
||||
"Web publishing: the Distance column is no longer empty. Nothing computes a distance when a QSO is logged — the stored field is only ever filled by an ADIF import that carried one — so it is worked out from the two locators instead, rounded to whole kilometres.",
|
||||
"Web publishing: the page now widens to fit the table. It was capped at a comfortable reading width, so with more than about eight columns the rest sat behind a scrollbar on a screen wide enough to show them all — and Windows hides that scrollbar until something moves, which made a table that scrolls look like a table missing columns. Columns also take the width their contents need instead of being squeezed to fit first."
|
||||
],
|
||||
"fr": [
|
||||
"L édition groupée sait enfin régler le mode, le sous-mode et le RST. Ils étaient exclus comme champs propres à chaque QSO, ce qui manquait l essentiel : l édition groupée sert à RÉPARER un lot — un import qui a tout mis en SSB, un ADIF sans aucun mode — et refuser obligeait à corriger cent lignes une par une. Régler le mode efface le sous-mode, celui de l ancien mode contredisant le nouveau. La bande reste avec la fréquence, qui pose déjà les deux ensemble.",
|
||||
"Publication web : la colonne Distance n est plus vide. Rien ne calcule de distance à l enregistrement d un QSO — le champ stocké n est rempli que par un ADIF importé qui en portait une — elle est donc déduite des deux locators, arrondie au kilomètre."
|
||||
"Publication web : la colonne Distance n est plus vide. Rien ne calcule de distance à l enregistrement d un QSO — le champ stocké n est rempli que par un ADIF importé qui en portait une — elle est donc déduite des deux locators, arrondie au kilomètre.",
|
||||
"Publication web : la page s élargit désormais à la taille du tableau. Elle était bridée à une largeur de lecture confortable, donc au-delà de huit colonnes environ le reste passait derrière une barre de défilement sur un écran assez large pour tout montrer — et Windows masque cette barre tant que rien ne bouge, si bien qu un tableau qui défile ressemblait à un tableau amputé. Les colonnes prennent aussi la largeur qu il leur faut au lieu d être comprimées d abord."
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@@ -401,11 +401,25 @@ func renderHTML(cfg Config, cols []Column, qsos []qso.QSO, stationCall string) [
|
||||
*{box-sizing:border-box}
|
||||
body{margin:0;padding:1.5rem 1rem;background:var(--bg);color:var(--fg);
|
||||
font:14px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
|
||||
.wrap{max-width:1100px;margin:0 auto}
|
||||
/* The page grows with its table instead of being capped at a comfortable
|
||||
READING width. 1100px suits eight columns and hides the rest behind a
|
||||
scrollbar on a screen wide enough to show them all — which is how this was
|
||||
reported. max-content lets a wide table use the window; min-width keeps a
|
||||
narrow one from collapsing to nothing on a large display. */
|
||||
.wrap{max-width:max-content;min-width:min(1100px,100%);margin:0 auto}
|
||||
h1{margin:0 0 .25rem;font-size:1.35rem}
|
||||
.meta{margin:0 0 1rem;color:var(--mut);font-size:.8rem}
|
||||
.scroll{overflow-x:auto;border:1px solid var(--line);border-radius:8px}
|
||||
table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}
|
||||
/* A visible scrollbar. Windows hides overlay scrollbars until something moves,
|
||||
so a table that scrolls looks exactly like a table that is missing columns. */
|
||||
.scroll{overflow-x:auto;border:1px solid var(--line);border-radius:8px;
|
||||
scrollbar-width:thin;scrollbar-color:var(--line) transparent}
|
||||
.scroll::-webkit-scrollbar{height:10px}
|
||||
.scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:5px}
|
||||
/* width:auto, not 100%: columns take the width their contents need. With
|
||||
width:100% the browser squeezes them to fit the container first and only then
|
||||
overflows, so a callsign could end up wrapped while empty space sat further
|
||||
along the row. min-width keeps a two-column table filling the frame. */
|
||||
table{border-collapse:collapse;width:auto;min-width:100%;font-variant-numeric:tabular-nums}
|
||||
th,td{padding:.45rem .6rem;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}
|
||||
th{position:sticky;top:0;background:var(--head);font-size:.72rem;letter-spacing:.05em;
|
||||
text-transform:uppercase;color:var(--mut);cursor:pointer;user-select:none}
|
||||
|
||||
Reference in New Issue
Block a user