{# vim: set ts=2 et sts=2 sw=2: #} {% from "layout/errorlist.html" import errorlist %} {# these macros are only used here so it's better to define them locally #} {% macro raw_row(html, classes, label) %}
{{ html|safe }}
{% endmacro %} {% macro row(field, classes, label=None) %} {% if not label %} {% set label = field.label %} {% endif %} {{ row_custom(field, field.name + ' ' + classes, label) }} {% endmacro %} {% macro form_row(form, field_name, classes='') %} {% set html = form[field_name] %} {% if form[field_name].help_text %} {% set html = '{old_html}
{details}
'|f( old_html=html, details=form[field_name].help_text) %} {% endif %} {{ raw_row(html, field_name + ' ' + classes, form[field_name].label) }} {% endmacro %} {% macro submit_row(form, type) %}
{% endmacro %} {% macro image_preview(form, type, name) %} {% set classes = 'preview ' + name %} {% if form.instance.pk and (type == 'image' or form.instance.thumbnail) %} {% set html = '
'|fe( type=type, name=name, thumbnail_url=form.instance.thumbnail_url_if_set(), action=url('gallery.cancel_draft', media_type=type), value=_('Delete this image')) %} {% set classes = classes + ' on' %} {% else %} {% set classes = classes + ' off' %} {% endif %} {{ raw_row(html, classes, _('Preview')) }} {% endmacro %} {% macro image_fields(form, type, name) %} {{ form_row(form, name, classes='upload-media') }} {{ raw_row('{text}'|fe( name=name, text=_('Cancel'), url=url('gallery.gallery', media_type=media_type)), 'progress ' + name, _('Progress')) }} {{ image_preview(form, type, name) }} {% endmacro %} {% macro video_preview(file, name) %} {% set classes = 'preview ' + name %} {% if file %} {% set html = '{file_info} '|fe( name=name, file_info=file.name.rsplit('/', 1)[-1], url=url('gallery.cancel_draft', media_type='video')|urlparams(field=name), value=_('Delete {format} file')|f(format=name)) %} {% set classes = classes + ' on' %} {% else %} {% set classes = classes + ' off' %} {% endif %} {{ raw_row(html, classes, _('Preview ({format})')|f(format=name)) }} {% endmacro %} {% if image_form.instance.pk %} {% set has_draft = True %} {% elif video_form.instance.pk %} {% set has_draft = True %} {% endif %} {# What JS needs to do: * Hide/Show progress * Show progress => Disable submit * Hide progress => Enable submit TODO: better error messages ("invalid file" means too big, or extension, etc) #}