From 1d492c1b118636136eb6c75b05a78491e2ebeeb6 Mon Sep 17 00:00:00 2001 From: Karl Hobley Date: Wed, 16 Jul 2014 17:31:09 +0100 Subject: [PATCH] Moved URL generator into separate view --- wagtail/wagtailimages/admin_urls.py | 3 +- .../wagtailimages/js/image-url-generator.js | 3 ++ .../wagtailimages/images/_url_generator.html | 12 ------- .../templates/wagtailimages/images/edit.html | 13 +++----- .../wagtailimages/images/url_generator.html | 31 +++++++++++++++++++ wagtail/wagtailimages/views/images.py | 29 ++++++++++++----- 6 files changed, 62 insertions(+), 29 deletions(-) delete mode 100644 wagtail/wagtailimages/templates/wagtailimages/images/_url_generator.html create mode 100644 wagtail/wagtailimages/templates/wagtailimages/images/url_generator.html diff --git a/wagtail/wagtailimages/admin_urls.py b/wagtail/wagtailimages/admin_urls.py index ed73f19ef..c13c22d1e 100644 --- a/wagtail/wagtailimages/admin_urls.py +++ b/wagtail/wagtailimages/admin_urls.py @@ -5,7 +5,8 @@ urlpatterns = [ url(r'^$', images.index, name='wagtailimages_index'), url(r'^(\d+)/$', images.edit, name='wagtailimages_edit_image'), url(r'^(\d+)/delete/$', images.delete, name='wagtailimages_delete_image'), - url(r'^(\d+)/generate_url/(.*)/', images.generate_url, name='wagtailimages_generate_url'), + url(r'^(\d+)/generate_url/$', images.url_generator, name='wagtailimages_url_generator'), + url(r'^(\d+)/generate_url/(.*)/$', images.generate_url, name='wagtailimages_generate_url'), url(r'^add/$', images.add, name='wagtailimages_add_image'), url(r'^chooser/$', chooser.chooser, name='wagtailimages_chooser'), diff --git a/wagtail/wagtailimages/static/wagtailimages/js/image-url-generator.js b/wagtail/wagtailimages/static/wagtailimages/js/image-url-generator.js index c75bb44e5..d1ec89bea 100644 --- a/wagtail/wagtailimages/static/wagtailimages/js/image-url-generator.js +++ b/wagtail/wagtailimages/static/wagtailimages/js/image-url-generator.js @@ -6,6 +6,7 @@ $(function() { var $widthField = $form.find('input#id_width'); var $heightField = $form.find('input#id_height'); var $result = $this.find('div.result'); + var $preview = $this.find('img.preview'); var generatorUrl = $this.data('generatorUrl'); @@ -33,9 +34,11 @@ $(function() { $.getJSON(generatorUrl.replace('__filterspec__', filterSpec)) .done(function(data) { $result.text(data['url']); + $preview.attr('src', data['url']); }) .fail(function(data) { $result.text(data.responseJSON['error']); + $preview.attr('src', ''); }); } diff --git a/wagtail/wagtailimages/templates/wagtailimages/images/_url_generator.html b/wagtail/wagtailimages/templates/wagtailimages/images/_url_generator.html deleted file mode 100644 index 21535722b..000000000 --- a/wagtail/wagtailimages/templates/wagtailimages/images/_url_generator.html +++ /dev/null @@ -1,12 +0,0 @@ -
-

URL generator

- -
- {% for field in form %} - {% include "wagtailadmin/shared/field_as_li.html" %} - {% endfor %} -
- - URL: -
-
diff --git a/wagtail/wagtailimages/templates/wagtailimages/images/edit.html b/wagtail/wagtailimages/templates/wagtailimages/images/edit.html index 5d179ce9b..a2c02b736 100644 --- a/wagtail/wagtailimages/templates/wagtailimages/images/edit.html +++ b/wagtail/wagtailimages/templates/wagtailimages/images/edit.html @@ -1,6 +1,5 @@ {% extends "wagtailadmin/base.html" %} {% load wagtailimages_tags %} -{% load static compress %} {% load i18n %} {% block titletag %}{% blocktrans with title=image.title %}Editing image {{ title }}{% endblocktrans %}{% endblock %} {% block bodyclass %}menu-images{% endblock %} @@ -10,10 +9,6 @@ {% block extra_js %} {% include "wagtailadmin/shared/tag_field_js.html" %} - - {% compress js %} - + {% endcompress %} +{% endblock %} + +{% block content %} + {% trans "Generating URL" as title_str %} + {% include "wagtailadmin/shared/header.html" with title=title_str subtitle=image.title icon="image" %} + +
+
+ {% for field in form %} + {% include "wagtailadmin/shared/field_as_li.html" %} + {% endfor %} +
+ +

URL

+
+ +

Preview

+ Preview +
+{% endblock %} diff --git a/wagtail/wagtailimages/views/images.py b/wagtail/wagtailimages/views/images.py index fdfa2e4f6..48f31b60d 100644 --- a/wagtail/wagtailimages/views/images.py +++ b/wagtail/wagtailimages/views/images.py @@ -107,18 +107,33 @@ def edit(request, image_id): # Check if we should enable the frontend url generator try: reverse('wagtailimages_serve', args=('foo', '1', 'bar')) - url_generator_form = URLGeneratorForm(initial={ - 'filter_method': 'original', - 'width': image.width, - 'height': image.height, - }) + url_generator_enabled = True except NoReverseMatch: - url_generator_form = None + url_generator_enabled = False return render(request, "wagtailimages/images/edit.html", { 'image': image, 'form': form, - 'url_generator_form': url_generator_form, + 'url_generator_enabled': url_generator_enabled, + }) + + +@permission_required('wagtailadmin.access_admin') # more specific permission tests are applied within the view +def url_generator(request, image_id): + image = get_object_or_404(get_image_model(), id=image_id) + + if not image.is_editable_by_user(request.user): + raise PermissionDenied + + form = URLGeneratorForm(initial={ + 'filter_method': 'original', + 'width': image.width, + 'height': image.height, + }) + + return render(request, "wagtailimages/images/url_generator.html", { + 'image': image, + 'form': form, })