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": "",
|
"date": "",
|
||||||
"en": [
|
"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.",
|
"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": [
|
"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.",
|
"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}
|
*{box-sizing:border-box}
|
||||||
body{margin:0;padding:1.5rem 1rem;background:var(--bg);color:var(--fg);
|
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}
|
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}
|
h1{margin:0 0 .25rem;font-size:1.35rem}
|
||||||
.meta{margin:0 0 1rem;color:var(--mut);font-size:.8rem}
|
.meta{margin:0 0 1rem;color:var(--mut);font-size:.8rem}
|
||||||
.scroll{overflow-x:auto;border:1px solid var(--line);border-radius:8px}
|
/* A visible scrollbar. Windows hides overlay scrollbars until something moves,
|
||||||
table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}
|
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,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;
|
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}
|
text-transform:uppercase;color:var(--mut);cursor:pointer;user-select:none}
|
||||||
|
|||||||
Reference in New Issue
Block a user