diff --git a/amadeus/static/js/themes.js b/amadeus/static/js/themes.js index 78f16a8..2b41211 100644 --- a/amadeus/static/js/themes.js +++ b/amadeus/static/js/themes.js @@ -30,10 +30,47 @@ function Init() { // file selection function FileSelectHandler(e) { var files = e.target.files || e.dataTransfer.files, - parent = $(e.target.offsetParent); + parent = $(e.target.offsetParent), + file_id = parent.data('file_id'), + submit_btn = $("#theme-form").find("input[type='submit']"), + max_size = 2*1024*1024; + parent.removeClass('alert-file'); + + var alerts_open = $("#theme-form").find(".alert-file").length; + + console.log(alerts_open); + + if (alerts_open == 0) { + $(submit_btn).prop('disable', false); + $(submit_btn).prop('disabled', false); + } + + $("." + file_id + "-file-errors").hide(); + $("." + file_id + "-file-errors .size").hide(); + $("." + file_id + "-file-errors .format").hide(); // process all File objects for (var i = 0, f; f = files[i]; i++) { + if (f.size > max_size) { + $(submit_btn).prop('disable', true); + $(submit_btn).prop('disabled', true); + + $("." + file_id + "-file-errors").show(); + $("." + file_id + "-file-errors .size").show(); + + parent.addClass('alert-file'); + } + + if (!f.type.match(/^image\//)) { + $(submit_btn).prop('disable', true); + $(submit_btn).prop('disabled', true); + + $("." + file_id + "-file-errors").show(); + $("." + file_id + "-file-errors .format").show(); + + parent.addClass('alert-file'); + } + parent.find('.filedrag').html(f.name); } } \ No newline at end of file diff --git a/themes/forms.py b/themes/forms.py index af0142b..c00cde4 100644 --- a/themes/forms.py +++ b/themes/forms.py @@ -1,6 +1,8 @@ # coding=utf-8 from django import forms +from resubmit.widgets import ResubmitFileWidget + from .models import Themes class BasicElemetsForm(forms.ModelForm): @@ -45,6 +47,11 @@ class BasicElemetsForm(forms.ModelForm): class Meta: model = Themes fields = ['title', 'favicon', 'small_logo', 'large_logo', 'footer_note'] + widgets = { + 'favicon': ResubmitFileWidget(attrs={'accept':'image/*'}), + 'small_logo': ResubmitFileWidget(attrs={'accept':'image/*'}), + 'larger_logo': ResubmitFileWidget(attrs={'accept':'image/*'}), + } class CSSStyleForm(forms.ModelForm): diff --git a/themes/templates/themes/basic_update.html b/themes/templates/themes/basic_update.html index 9abe7f2..01e64d1 100644 --- a/themes/templates/themes/basic_update.html +++ b/themes/templates/themes/basic_update.html @@ -15,10 +15,10 @@