Some fixes on SAS upload form

This commit is contained in:
Skia
2017-01-05 10:05:13 +01:00
parent 72685618a6
commit a90a553939
3 changed files with 34 additions and 10 deletions

View File

@ -80,7 +80,7 @@
{% if edit_mode %}
</form>
{% endif %}
<form action="" method="post" enctype="multipart/form-data">
<form id="upload_form" action="" method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p() }}
<p><input type="submit" value="{% trans %}Upload{% endtrans %}" /></p>
@ -91,20 +91,20 @@
{% block script %}
{{ super() }}
<script>
$("form").submit(function (event) {
$("form#upload_form").submit(function (event) {
var formData = new FormData($(this)[0]);
if(formData.get('album_name') === '' && formData.get('images').name === '')
if(!formData.get('album_name') && !formData.get('images').name)
return false;
if(formData.get('images').name === '') {
if(!formData.get('images').name) {
return true;
}
event.preventDefault();
var errorlist;
if((errorlist = this.querySelector('ul.errorlist.nonfield')) === null) {
if((errorlist = this.querySelector('#upload_form ul.errorlist.nonfield')) === null) {
errorlist = document.createElement('ul');
errorlist.classList.add('errorlist', 'nonfield');
this.insertBefore(errorlist, this.firstElementChild);
@ -124,12 +124,13 @@ $("form").submit(function (event) {
var dataHolder;
if(formData.get('album_name') !== '') {
if(formData.get('album_name')) {
dataHolder = new FormData();
dataHolder.set('csrfmiddlewaretoken', '{{ csrf_token }}');
dataHolder.set('album_name', formData.get('album_name'));
$.ajax({
method: 'POST',
url: "{{ url('sas:album_upload', album_id=object.id) }}",
data: dataHolder,
processData: false,
contentType: false,
@ -157,10 +158,12 @@ $("form").submit(function (event) {
$.ajax({
method: 'POST',
url: "{{ url('sas:album_upload', album_id=object.id) }}",
data: dataHolder,
processData: false,
contentType: false,
})
.fail(onSuccess.bind(undefined, image))
.done(onSuccess.bind(undefined, image))
.always(next.bind(undefined, image));
}
@ -179,8 +182,8 @@ $("form").submit(function (event) {
}
function onSuccess(image, data, status, jqXHR) {
if ($(data).find('.errorlist.nonfield')[0])
var errors = Array.from($(data).find('.errorlist.nonfield')[0].children);
if ($(data.responseText).find('.errorlist.nonfield')[0])
var errors = Array.from($(data.responseText).find('.errorlist.nonfield')[0].children);
else
var errors = []
while(errors.length > 0)