From 069b0d9dc31f5a206cfb5397186941115ea8ce17 Mon Sep 17 00:00:00 2001 From: Simon Willison Date: Wed, 10 Jun 2026 20:06:45 -0700 Subject: [PATCH] Simplify the JavaScript a bit --- .../templates/_sql_parameter_scripts.html | 20 +++++++++---------- datasette/templates/_sql_parameters.html | 2 +- tests/test_html.py | 4 ++-- tests/test_stored_queries.py | 2 +- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/datasette/templates/_sql_parameter_scripts.html b/datasette/templates/_sql_parameter_scripts.html index ec095cdf..9b83889e 100644 --- a/datasette/templates/_sql_parameter_scripts.html +++ b/datasette/templates/_sql_parameter_scripts.html @@ -22,16 +22,15 @@ window.datasetteSqlParameters = (() => { }; } - function parameterName(control) { - return control.dataset.parameterName || control.name; - } - function syncParameterState(manager) { manager.parameterState = new Map(); manager.section .querySelectorAll("[data-parameter-control]") .forEach((control) => { - manager.parameterState.set(parameterName(control), controlState(control)); + manager.parameterState.set( + control.dataset.parameterName, + controlState(control) + ); }); } @@ -41,9 +40,7 @@ window.datasetteSqlParameters = (() => { control.name = `${namePrefix || ""}${parameter}`; control.value = state.value; control.setAttribute("data-parameter-control", ""); - if (namePrefix) { - control.dataset.parameterName = parameter; - } + control.dataset.parameterName = parameter; if (state.expanded) { control.rows = 5; } else { @@ -60,7 +57,7 @@ window.datasetteSqlParameters = (() => { value, selectionStart ) { - const parameter = parameterName(control); + const parameter = control.dataset.parameterName; const replacement = createControl( parameter, control.id, @@ -137,7 +134,10 @@ window.datasetteSqlParameters = (() => { if (!control.matches || !control.matches("[data-parameter-control]")) { return; } - manager.parameterState.set(parameterName(control), controlState(control)); + manager.parameterState.set( + control.dataset.parameterName, + controlState(control) + ); }); if (!manager.allowExpand) { diff --git a/datasette/templates/_sql_parameters.html b/datasette/templates/_sql_parameters.html index 62cea3db..b5c1bde8 100644 --- a/datasette/templates/_sql_parameters.html +++ b/datasette/templates/_sql_parameters.html @@ -4,7 +4,7 @@

Parameters

{% for parameter in parameter_names %} {% set parameter_id = (sql_parameter_id_prefix|default("qp")) ~ loop.index %} -

{% if sql_parameters_allow_expand|default(false) %} {% endif %}

+

{% if sql_parameters_allow_expand|default(false) %} {% endif %}

{% endfor %} {% endif %} diff --git a/tests/test_html.py b/tests/test_html.py index bb7f612e..20ab22bc 100644 --- a/tests/test_html.py +++ b/tests/test_html.py @@ -342,7 +342,7 @@ async def test_query_parameter_form_fields(ds_client): response = await ds_client.get("/fixtures/-/query?sql=select+:name") assert response.status_code == 200 assert ( - ' ' + ' ' in response.text ) assert 'data-parameters-url="/fixtures/-/query/parameters"' in response.text @@ -351,7 +351,7 @@ async def test_query_parameter_form_fields(ds_client): response2 = await ds_client.get("/fixtures/-/query?sql=select+:name&name=hello") assert response2.status_code == 200 assert ( - ' ' + ' ' in response2.text ) diff --git a/tests/test_stored_queries.py b/tests/test_stored_queries.py index 2c648d5f..46420749 100644 --- a/tests/test_stored_queries.py +++ b/tests/test_stored_queries.py @@ -201,7 +201,7 @@ def test_error_in_on_success_message_sql(stored_write_client): def test_custom_params(stored_write_client): response = stored_write_client.get("/data/update_name?extra=foo") assert ( - '' + '' in response.text )