diff --git a/datasette/app.py b/datasette/app.py index 871a4bf1..e449dd89 100644 --- a/datasette/app.py +++ b/datasette/app.py @@ -16,6 +16,7 @@ from markupsafe import Markup import pluggy from jinja2 import ChoiceLoader, Environment, FileSystemLoader, PrefixLoader from sanic import Sanic, response +from sanic.request import Request as SanicRequest from sanic.exceptions import InvalidUsage, NotFound from .views.base import ( @@ -498,4 +499,37 @@ class Datasette: template = self.jinja_env.select_template(templates) return response.html(template.render(info), status=status) + class AsgiApp(): + def __init__(self, scope): + self.scope = scope + + async def __call__(self, receive, send): + # Create Sanic request from scope + path = self.scope["path"].encode("utf8") + if self.scope["query_string"]: + path = b"{}?{}".format(path, self.scope["query_string"]) + request = SanicRequest( + path, + {}, '1.1', 'GET', None + ) + async def write_callback(response): + await send({ + 'type': 'http.response.start', + 'status': 200, + 'headers': [ + [key.encode("utf-8"), value.encode("utf-8")] + for key, value in response.headers.items() + ], + }) + await send({ + 'type': 'http.response.body', + 'body': response.body, + }) + + # TODO: Fix this + stream_callback = write_callback + await app.handle_request(request, write_callback, stream_callback) + + app.AsgiApp = AsgiApp + return app diff --git a/datasette/templates/_rows_and_columns.html b/datasette/templates/_rows_and_columns.html index c7a72253..06ac9bd5 100644 --- a/datasette/templates/_rows_and_columns.html +++ b/datasette/templates/_rows_and_columns.html @@ -7,9 +7,9 @@ {{ column.name }} {% else %} {% if column.name == sort %} - {{ column.name }} ▼ + {{ column.name }} ▼ {% else %} - {{ column.name }}{% if column.name == sort_desc %} ▲{% endif %} + {{ column.name }}{% if column.name == sort_desc %} ▲{% endif %} {% endif %} {% endif %} diff --git a/datasette/templates/table.html b/datasette/templates/table.html index eda37bc7..92684a71 100644 --- a/datasette/templates/table.html +++ b/datasette/templates/table.html @@ -111,7 +111,7 @@

{{ facet_info.name }} {% if facet_hideable(facet_info.name) %} - + {% endif %}