diff --git a/cms/templates/import.html b/cms/templates/import.html
index 26ebc24493..be09e3f6d7 100644
--- a/cms/templates/import.html
+++ b/cms/templates/import.html
@@ -60,7 +60,6 @@ var submitBtn = $('.submit-button');
$('#fileupload').fileupload({
-
dataType: 'json',
type: 'POST',
@@ -68,18 +67,35 @@ $('#fileupload').fileupload({
autoUpload: false,
+ options: {
+ acceptFileTypes: /(\.|\/)tar\.gz$/i ,
+ processQueue: [{
+ action: 'validate',
+ acceptFileTypes: '@'
+ }]
+ },
+
add: function(e, data) {
- submitBtn.show().click(function(e){
- e.preventDefault();
- data.submit().complete(function(result, textStatus, xhr) {
- if (result.status != 200) {
- alert('${_("Your import has failed.")}\n\n' +
- JSON.parse(result.responseText)["ErrMsg"]);
- submitBtn.show();
- bar.hide();
- }
+ var file = data.files[0];
+ if (file.type == "application/x-gzip") {
+ submitBtn.click(function(e){
+ e.preventDefault();
+ data.submit().complete(function(result, textStatus, xhr) {
+ if (result.status != 200) {
+ alert('${_("Your import has failed.")}\n\n' +
+ JSON.parse(result.responseText)["ErrMsg"]);
+ submitBtn.show();
+ bar.hide();
+ } else {
+ bar.hide()
+ alert('${_("Your import was successful.")}');
+ window.location = '${successful_import_redirect_url}';
+ }
+ });
});
- });
+ } else {
+ data.files = [];
+ }
},
progressall: function(e, data){
@@ -93,6 +109,20 @@ $('#fileupload').fileupload({
alert('${_("Your import was successful.")}');
window.location = '${successful_import_redirect_url}';
},
+ processActions: {
+ validate: function(data, options) {
+ var dfdata = $.Deferred(),
+ file = data.files[data.index];
+ if (!options.acceptFileTypes.test(file.type)) {
+ file.error = 'Invalid file type: must be a tar.gz file!';
+ dfdata.rejectWith(this, [data]);
+ } else {
+ dfdata.resolveWith(this, [data]);
+ }
+ return dfdata.promise();
+ }
+ }
+
});