Skip to content

Commit

Permalink
[#1262] Adds support for different field names for image upload
Browse files Browse the repository at this point in the history
  • Loading branch information
johnmartin committed Oct 15, 2013
1 parent 0f74db8 commit 7d15d59
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 10 deletions.
13 changes: 7 additions & 6 deletions ckan/public/base/javascript/modules/image-upload.js
Expand Up @@ -7,6 +7,9 @@ this.ckan.module('image-upload', function($, _) {
options: {
is_url: true,
has_image: false,
field_upload: 'input[name="image_upload"]',
field_url: 'input[name="image_url"]',
field_clear: 'input[name="clear_upload"]',
i18n: {
upload: _('From computer'),
url: _('From web'),
Expand Down Expand Up @@ -35,12 +38,12 @@ this.ckan.module('image-upload', function($, _) {
var options = this.options;

// firstly setup the fields
this.input = $('input[name="image_upload"]', this.el);
this.field_url = $('input[name="image_url"]', this.el).parents('.control-group');
this.input = $(options.field_upload, this.el);
this.field_url = $(options.field_url, this.el).parents('.control-group');
this.field_image = this.input.parents('.control-group');

// Is there a clear checkbox on the form already?
var checkbox = $('input[name="clear_upload"]', this.el);
var checkbox = $(options.field_clear, this.el);
if (checkbox.length > 0) {
options.has_image = true;
checkbox.parents('.control-group').remove();
Expand Down Expand Up @@ -148,9 +151,7 @@ this.ckan.module('image-upload', function($, _) {
_onRemove: function() {
this.changeState(this.state.blank);
$('input', this.field_url).val('');
if (this.options.has_image) {
this.field_clear.val('true');
}
this.field_clear.val('true');
},

/* Event listener for when someone chooses a file to upload
Expand Down
8 changes: 4 additions & 4 deletions ckan/templates/macros/form.html
Expand Up @@ -403,19 +403,19 @@
{{ form.image_upload(data, errors, is_upload_enabled=true) }}

#}
{% macro image_upload(data, errors, image_url=false, is_upload_enabled=false, placeholder=false) %}
{% macro image_upload(data, errors, field_url='image_url', field_upload='image_upload', field_clear='clear_upload', image_url=false, is_upload_enabled=false, placeholder=false) %}
{% set placeholder = placeholder if placeholder else _('http://example.com/my-image.jpg') %}
{% set has_uploaded_data = data.image_url and not data.image_url.startswith('http') %}
{% set is_url = data.image_url and data.image_url.startswith('http') %}

{% if is_upload_enabled %}<div class="image-upload" data-module="image-upload" data-module-is_url="{{ 'true' if is_url else 'false' }}" data-module-image_url="{{ image_url }}">{% endif %}

{{ input('image_url', label=_('Image URL'), id='field-image-url', placeholder=placeholder, value=data.image_url, error=errors.image_url, classes=['control-full']) }}
{{ input(field_url, label=_('Image URL'), id='field-image-url', placeholder=placeholder, value=data.image_url, error=errors.image_url, classes=['control-full']) }}

{% if is_upload_enabled %}
{{ input('image_upload', label=_('Image Upload'), id='field-image-upload', type='file', placeholder='', value='', error='', classes=['control-full']) }}
{{ input(field_upload, label=_('Image Upload'), id='field-image-upload', type='file', placeholder='', value='', error='', classes=['control-full']) }}
{% if has_uploaded_data %}
{{ checkbox('clear_upload', label=_('Clear Upload'), id='field-clear-upload', value='true', error='', classes=['control-full']) }}
{{ checkbox(field_clear, label=_('Clear Upload'), id='field-clear-upload', value='true', error='', classes=['control-full']) }}
{% endif %}
{% endif %}

Expand Down

0 comments on commit 7d15d59

Please sign in to comment.