mirror of
https://github.com/simonw/datasette.git
synced 2025-12-10 16:51:24 +01:00
Persist show/hide state better, closes #425
This commit is contained in:
parent
db74cf0144
commit
e11cb4c664
3 changed files with 13 additions and 2 deletions
|
|
@ -1,5 +1,5 @@
|
||||||
<script>
|
<script>
|
||||||
var editor = CodeMirror.fromTextArea(document.getElementsByName("sql")[0], {
|
var editor = CodeMirror.fromTextArea(document.getElementById("sql-editor"), {
|
||||||
lineNumbers: true,
|
lineNumbers: true,
|
||||||
mode: "text/x-sql",
|
mode: "text/x-sql",
|
||||||
lineWrapping: true,
|
lineWrapping: true,
|
||||||
|
|
|
||||||
|
|
@ -29,10 +29,13 @@
|
||||||
<h3>Custom SQL query{% if display_rows %} returning {% if truncated %}more than {% endif %}{{ "{:,}".format(display_rows|length) }} row{% if display_rows|length == 1 %}{% else %}s{% endif %}{% endif %} <span class="show-hide-sql">{% if hide_sql %}(<a href="{{ path_with_removed_args(request, {'_hide_sql': '1'}) }}">show</a>){% else %}(<a href="{{ path_with_added_args(request, {'_hide_sql': '1'}) }}">hide</a>){% endif %}</span></h3>
|
<h3>Custom SQL query{% if display_rows %} returning {% if truncated %}more than {% endif %}{{ "{:,}".format(display_rows|length) }} row{% if display_rows|length == 1 %}{% else %}s{% endif %}{% endif %} <span class="show-hide-sql">{% if hide_sql %}(<a href="{{ path_with_removed_args(request, {'_hide_sql': '1'}) }}">show</a>){% else %}(<a href="{{ path_with_added_args(request, {'_hide_sql': '1'}) }}">hide</a>){% endif %}</span></h3>
|
||||||
{% if not hide_sql %}
|
{% if not hide_sql %}
|
||||||
{% if editable and config.allow_sql %}
|
{% if editable and config.allow_sql %}
|
||||||
<p><textarea name="sql">{% if query and query.sql %}{{ query.sql }}{% else %}select * from {{ tables[0].name|escape_sqlite }}{% endif %}</textarea></p>
|
<p><textarea id="sql-editor" name="sql">{% if query and query.sql %}{{ query.sql }}{% else %}select * from {{ tables[0].name|escape_sqlite }}{% endif %}</textarea></p>
|
||||||
{% else %}
|
{% else %}
|
||||||
<pre>{% if query %}{{ query.sql }}{% endif %}</pre>
|
<pre>{% if query %}{{ query.sql }}{% endif %}</pre>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% else %}
|
||||||
|
<input type="hidden" name="sql" value="{% if query and query.sql %}{{ query.sql }}{% else %}select * from {{ tables[0].name|escape_sqlite }}{% endif %}">
|
||||||
|
<input type="hidden" name="_hide_sql" value="1">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if named_parameter_values %}
|
{% if named_parameter_values %}
|
||||||
<h3>Query parameters</h3>
|
<h3>Query parameters</h3>
|
||||||
|
|
|
||||||
|
|
@ -861,3 +861,11 @@ def test_show_hide_sql_query(app_client):
|
||||||
assert not span.find("a")["href"].endswith("&_hide_sql=1")
|
assert not span.find("a")["href"].endswith("&_hide_sql=1")
|
||||||
assert "(show)" == span.getText()
|
assert "(show)" == span.getText()
|
||||||
assert soup.find("textarea") is None
|
assert soup.find("textarea") is None
|
||||||
|
# The SQL should still be there in a hidden form field
|
||||||
|
hiddens = soup.find("form").select("input[type=hidden]")
|
||||||
|
assert [
|
||||||
|
('sql', "select ('https://twitter.com/' || 'simonw') as user_url;"),
|
||||||
|
('_hide_sql', '1'),
|
||||||
|
] == [
|
||||||
|
(hidden['name'], hidden['value']) for hidden in hiddens
|
||||||
|
]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue