summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Grassberger <petertheone@gmail.com>2016-07-15 19:22:55 (GMT)
committerPeter Grassberger <petertheone@gmail.com>2016-07-15 19:22:55 (GMT)
commite7071e58293c926553e9fbfcad5cc261a189aa6a (patch)
tree805d024d49e5bb82d8b8b7326163b36d75187733
parent54b03eaeeea23b91bb5555f4292c77e8e46eeca9 (diff)
add multiple files upload
-rw-r--r--www/js/importer.js32
-rw-r--r--www/js/jingles.js2
-rw-r--r--www/js/musicpools.js2
-rw-r--r--www/js/shows.js2
4 files changed, 27 insertions, 11 deletions
diff --git a/www/js/importer.js b/www/js/importer.js
index fc2e462..4c6ddb9 100644
--- a/www/js/importer.js
+++ b/www/js/importer.js
@@ -129,13 +129,19 @@ Rdxport.Importer.prototype.resetModal = function() {
$('.modal-body .drop form input[type="file"]', this.$el).val('');
$('.modal-body #sourceUri', this.$el).val('');
$('#uploadModal-confirm', this.$el).attr('disabled','disabled').off('click');
+ $('form input[type="file"]', this.$el).removeAttr('multiple');
};
-Rdxport.Importer.prototype.openModal = function(group, groupView, cartNumber, useMetadata) {
+Rdxport.Importer.prototype.openModal = function(group, groupView, cartNumber, useMetadata, multifiles) {
this.resetModal();
var $drop = $('.modal-body .drop', this.$el);
var $form = $('form', $drop);
var $fileInput = $('input[type="file"]', $form);
+ if (multifiles) {
+ $fileInput.attr('multiple', 'multiple');
+ } else {
+ $fileInput.removeAttr('multiple');
+ }
$drop.off('click').on('click', function(event) {
$fileInput.get(0).click();
@@ -159,8 +165,6 @@ Rdxport.Importer.prototype.openModal = function(group, groupView, cartNumber, us
var self = this;
function handleFiles(files) {
- var file = files[0];
-
/*if (!Dropzone.isValidFile(file, dropzone.options.acceptedFiles)) {
$('div.modal-header h4', self.$el).text('Nicht unterstützter Dateityp.');
$('.modal-body .drop', this.$el).css("background-image", "url('/img/dz-backdrop.png')");
@@ -168,13 +172,25 @@ Rdxport.Importer.prototype.openModal = function(group, groupView, cartNumber, us
return;
}*/
- $('div.modal-header h4', self.$el).text(file.name);
+ if (multifiles && files.length > 1) {
+ $('div.modal-header h4', self.$el).text(files.length + ' files.');
+ } else {
+ $('div.modal-header h4', self.$el).text(files[0].name);
+ }
$('div.modal-body .drop', self.$el).css("background-image", "url('/img/audio_file.png')");
$('.modal-body #sourceUri', self.$el).val('');
$('#uploadModal-confirm', self.$el).off('click').on('click', function() {
- var upload = new Rdxport.Upload(file, group, groupView, cartNumber, useMetadata);
- upload.import();
- self.uploads.push(upload);
+ if (!multifiles) {
+ var upload = new Rdxport.Upload(files[0], group, groupView, cartNumber, useMetadata);
+ upload.import();
+ self.uploads.push(upload);
+ } else {
+ $.each(files, function(index, file) {
+ var upload = new Rdxport.Upload(file, group, groupView, cartNumber, useMetadata);
+ upload.import();
+ self.uploads.push(upload);
+ });
+ }
self.$el.off('hide.bs.modal');
self.$el.modal('hide');
@@ -194,7 +210,7 @@ Rdxport.Importer.prototype.openModal = function(group, groupView, cartNumber, us
return;
}
$('.modal-body .drop', self.$el).css("background-image", "url('/img/dz-backdrop.png')");
- $('.modal-body .drop form input[type="file"]', this.$el).val('');
+ $('.modal-body .drop form input[type="file"]', self.$el).val('');
$form.off('submit').on('submit', function(event) {
event.preventDefault();
handleSource();
diff --git a/www/js/jingles.js b/www/js/jingles.js
index 6457b5a..6f0d10c 100644
--- a/www/js/jingles.js
+++ b/www/js/jingles.js
@@ -108,7 +108,7 @@ Rdxport.JingleGroupView.prototype.render = function() {
$('table tbody tr', this.$el).remove();
$('.uploadButton', this.$el).on('click', function() {
- importer.openModal(self.model, self, self.model.carts[0].number, false);
+ importer.openModal(self.model, self, self.model.carts[0].number, false, true);
});
};
diff --git a/www/js/musicpools.js b/www/js/musicpools.js
index c56ab78..3bd905a 100644
--- a/www/js/musicpools.js
+++ b/www/js/musicpools.js
@@ -186,7 +186,7 @@ Rdxport.MusicpoolView.prototype.render = function() {
$('.uploadButton', this.$el).on('click', function() {
- importer.openModal(self.model, self, null, true);
+ importer.openModal(self.model, self, null, true, true);
});
};
diff --git a/www/js/shows.js b/www/js/shows.js
index ccea2e5..8f837ba 100644
--- a/www/js/shows.js
+++ b/www/js/shows.js
@@ -385,7 +385,7 @@ Rdxport.ShowCartView.renderEmpty = function(group, groupView, cartNumber) {
var $uploadButton = $('<button class="uploadButton btn btn-primary btn-xs"><span class="glyphicon glyphicon-upload"></span>&nbsp;&nbsp;Importieren</button>');
$uploadButton.off('click').on('click', function() {
- importer.openModal(group, groupView, cartNumber, true);
+ importer.openModal(group, groupView, cartNumber, true, false);
});
return $('<tr>')