From dd2ab725901e4f967d512d896e7c4e18de6905e8 Mon Sep 17 00:00:00 2001 From: Stijn Peeters Date: Tue, 4 Feb 2025 18:16:59 +0100 Subject: [PATCH] Highlight missing fields in CSV preview --- webtool/static/css/dataset-page.css | 19 +++++++++++++++++++ webtool/templates/preview/csv.html | 17 ++++++++++++++--- webtool/views/views_dataset.py | 4 ++-- 3 files changed, 35 insertions(+), 5 deletions(-) diff --git a/webtool/static/css/dataset-page.css b/webtool/static/css/dataset-page.css index 9eae3229b..f5eca93b4 100644 --- a/webtool/static/css/dataset-page.css +++ b/webtool/static/css/dataset-page.css @@ -625,6 +625,25 @@ body.csv-preview table tr:nth-child(2n+1) { background: var(--contrast-bright); } +.colour-preview i { + display: inline-block; + width: 1em; + height: 1em; + border: 1px solid var(--gray-dark); + position: relative; + top: -0.1em; + vertical-align: bottom; +} + +body.csv-preview .missing-field { + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcBAMAAACAI8KnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAElBMVEXu7u7v7O3z3uf11eP4y978wNnbft+uAAAARElEQVQY09XJUQmAQBQAwRUrGMASRrDAwfav4seDg43g5zAAwKWqa3S8w/sXSZPkSfIhKcnhzuFOSUpSkpKUpCQlKUk/jndCArsTDbwAAAAASUVORK5CYII='); + background-attachment: fixed; +} + +body.csv-preview .missing-field:hover { + outline: 1px solid var(--accent); +} + .child.focus:not(.card) > .sub-controls > .query-result > .query-result-iframe { display: none; } diff --git a/webtool/templates/preview/csv.html b/webtool/templates/preview/csv.html index d2473735a..cf725c056 100644 --- a/webtool/templates/preview/csv.html +++ b/webtool/templates/preview/csv.html @@ -2,6 +2,8 @@ Tabulated preview - {{ dataset.get_results_path().name }} + + {% if dataset.num_rows > max_items %} @@ -12,18 +14,27 @@ {% for row in rows %} {% set outer_loop = loop %} - {% for cell in row %} + {% for column, cell in row.items() %} {% set inner_loop = loop %} {% if outer_loop.index == 1 %} {% if "link" in cell or "url" in cell %} {% set ns.links = ns.links + [inner_loop.index] %} {% endif %} {% endif %} - - {{ cell|e|add_ahref(ellipsiate=50)|safe }} + + {{ cell|e|add_ahref(ellipsiate=50)|add_colour|safe }} {% endfor %} {% endfor %} + + + \ No newline at end of file diff --git a/webtool/views/views_dataset.py b/webtool/views/views_dataset.py index 1720b3a84..1b8234d21 100644 --- a/webtool/views/views_dataset.py +++ b/webtool/views/views_dataset.py @@ -327,9 +327,9 @@ def preview_items(key): break if len(rows) == 0: - rows.append(list(row.keys())) + rows.append({k: k for k in list(row.keys())}) - rows.append(list(row.values())) + rows.append(row) except NotImplementedError: return error(404)