diff --git a/datasette/templates/_execute_write_analysis_styles.html b/datasette/templates/_execute_write_analysis_styles.html
new file mode 100644
index 00000000..f20e67b2
--- /dev/null
+++ b/datasette/templates/_execute_write_analysis_styles.html
@@ -0,0 +1,37 @@
+
diff --git a/datasette/templates/execute_write.html b/datasette/templates/execute_write.html
index 46f58c3b..414d4af7 100644
--- a/datasette/templates/execute_write.html
+++ b/datasette/templates/execute_write.html
@@ -40,42 +40,8 @@
border-radius: 0.25rem;
min-width: 13rem;
}
-.execute-write-analysis {
- border-collapse: collapse;
- font-size: 0.9rem;
- margin: 0.25rem 0 1rem;
- min-width: 44rem;
-}
-.execute-write-analysis th,
-.execute-write-analysis td {
- border-bottom: 1px solid #d7dde5;
- padding: 0.45rem 0.7rem;
- text-align: left;
- vertical-align: top;
-}
-.execute-write-analysis th {
- background-color: #edf6fb;
- border-top: 1px solid #d7dde5;
- color: #39445a;
- font-weight: 700;
-}
-.execute-write-analysis tbody tr:nth-child(even) {
- background-color: rgba(39, 104, 144, 0.05);
-}
-.execute-write-analysis code {
- background: transparent;
- font-size: 0.9em;
- white-space: nowrap;
-}
-.execute-write-analysis-allowed {
- color: #267a3e;
- font-weight: 700;
-}
-.execute-write-analysis-denied {
- color: #b00020;
- font-weight: 700;
-}
+{% include "_execute_write_analysis_styles.html" %}
{% include "_sql_parameter_styles.html" %}
{% endblock %}
diff --git a/datasette/templates/query_create.html b/datasette/templates/query_create.html
index 686d971e..2d8a9122 100644
--- a/datasette/templates/query_create.html
+++ b/datasette/templates/query_create.html
@@ -5,6 +5,7 @@
{% block extra_head %}
{{- super() -}}
{% include "_codemirror.html" %}
+{% include "_execute_write_analysis_styles.html" %}
{% endblock %}
{% block body_class %}query-create db-{{ database|to_css_class }}{% endblock %}
@@ -32,30 +33,28 @@
Execute write SQL
{% endif %}
- Analysis
+ Query operations
{% if analysis_error %}
{{ analysis_error }}
{% elif analysis_rows %}
-
+
| Operation |
Database |
Table |
- required permission |
+ Required permission |
Allowed |
- Source |
{% for row in analysis_rows %}
- | {{ row.operation }} |
- {{ row.database }} |
- {{ row.table }} |
- {{ row.required_permission }} |
- {% if row.allowed is none %}{% elif row.allowed %}yes{% else %}no{% endif %} |
- {{ row.source or "" }} |
+ {{ row.operation }} |
+ {{ row.database }} |
+ {{ row.table }} |
+ {% if row.required_permission %}{{ row.required_permission }}{% endif %} |
+ {% if row.allowed is none %}{% elif row.allowed %}yes{% else %}no{% endif %} |
{% endfor %}
diff --git a/tests/test_queries.py b/tests/test_queries.py
index 36f7107a..c27c23da 100644
--- a/tests/test_queries.py
+++ b/tests/test_queries.py
@@ -998,7 +998,11 @@ async def test_create_query_ui_and_arbitrary_sql_save_link():
assert "Create query" in create_response.text
assert "Read-only" in create_response.text
assert "Writable" in create_response.text
- assert "required permission" in create_response.text
+ assert "Query operations
" in create_response.text
+ assert '' in create_response.text
+ assert '| Required permission | ' in create_response.text
+ assert 'Source | ' not in create_response.text
+ assert "read | " in create_response.text
assert query_response.status_code == 200
assert "Save query" in query_response.text
assert "/data/-/queries/-/create?sql=select+%2A+from+dogs" in query_response.text