mirror of
https://github.com/simonw/datasette.git
synced 2026-06-13 04:27:00 +02:00
Simplify the JavaScript a bit
This commit is contained in:
parent
dfe70ac611
commit
069b0d9dc3
4 changed files with 14 additions and 14 deletions
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<h2>Parameters</h2>
|
||||
{% for parameter in parameter_names %}
|
||||
{% set parameter_id = (sql_parameter_id_prefix|default("qp")) ~ loop.index %}
|
||||
<p class="sql-parameter-row"><label for="{{ parameter_id }}">{{ parameter }}</label> <input type="text" id="{{ parameter_id }}" name="{{ sql_parameter_name_prefix }}{{ parameter }}" value="{{ parameter_values.get(parameter, "") }}" data-parameter-control{% if sql_parameter_name_prefix %} data-parameter-name="{{ parameter }}"{% endif %}>{% if sql_parameters_allow_expand|default(false) %} <button type="button" class="sql-parameter-toggle" data-parameter-toggle aria-controls="{{ parameter_id }}" aria-expanded="false">Expand</button>{% endif %}</p>
|
||||
<p class="sql-parameter-row"><label for="{{ parameter_id }}">{{ parameter }}</label> <input type="text" id="{{ parameter_id }}" name="{{ sql_parameter_name_prefix }}{{ parameter }}" value="{{ parameter_values.get(parameter, "") }}" data-parameter-control data-parameter-name="{{ parameter }}">{% if sql_parameters_allow_expand|default(false) %} <button type="button" class="sql-parameter-toggle" data-parameter-toggle aria-controls="{{ parameter_id }}" aria-expanded="false">Expand</button>{% endif %}</p>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -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 (
|
||||
'<label for="qp1">name</label> <input type="text" id="qp1" name="name" value="" data-parameter-control>'
|
||||
'<label for="qp1">name</label> <input type="text" id="qp1" name="name" value="" data-parameter-control data-parameter-name="name">'
|
||||
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 (
|
||||
'<label for="qp1">name</label> <input type="text" id="qp1" name="name" value="hello" data-parameter-control>'
|
||||
'<label for="qp1">name</label> <input type="text" id="qp1" name="name" value="hello" data-parameter-control data-parameter-name="name">'
|
||||
in response2.text
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -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 (
|
||||
'<input type="text" id="qp3" name="extra" value="foo" data-parameter-control>'
|
||||
'<input type="text" id="qp3" name="extra" value="foo" data-parameter-control data-parameter-name="extra">'
|
||||
in response.text
|
||||
)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue