summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeterTheOne <petertheone@gmail.com>2016-01-29 00:46:50 (GMT)
committerPeterTheOne <petertheone@gmail.com>2016-01-29 00:46:50 (GMT)
commitdb074d0f87558ad22d8b50e5eea6f87df9f3559e (patch)
tree816921a7528a511d7c1692956f80146b0fcb6a53
parente0ad0c1481387e73b1d2b00c0c35d7ef85db2dff (diff)
musicpools: modify importer to create carts
-rw-r--r--www/js/importer.js37
-rw-r--r--www/js/jingles.js2
-rw-r--r--www/js/musicpools.js6
-rw-r--r--www/js/rivendell.js6
4 files changed, 34 insertions, 17 deletions
diff --git a/www/js/importer.js b/www/js/importer.js
index 8aa6c09..d2c1e3b 100644
--- a/www/js/importer.js
+++ b/www/js/importer.js
@@ -28,15 +28,19 @@ Rivendell.Importer = function() {
this.$el = $('#uploadModal');
};
-Rivendell.Importer.prototype.resetModal = function(group) {
+Rivendell.Importer.prototype.resetModal = function() {
$('div.modal-header h3', this.$el).text("Datei auswählen...");
$('.modal-body', this.$el).css("background-image", "url('/img/dz-backdrop.png')");
$('#uploadModal-confirm', this.$el).attr('disabled','disabled').off('click');
};
-Rivendell.Importer.prototype.openModal = function(group) {
+Rivendell.Importer.prototype.openModal = function(group, createCart) {
this.resetModal();
+ if (createCart === undefined) {
+ createCart = false;
+ }
+
var $form = $('<form>');
var self = this;
$form.dropzone({
@@ -51,7 +55,7 @@ Rivendell.Importer.prototype.openModal = function(group) {
autoProcessQueue: false,
init: function() {
this.on('addedfile', function(file) {
- self.importFileAdded(this, file, group);
+ self.importFileAdded(this, file, group, createCart);
});
this.on('error', function(file, msg) {
self.importFileSelectError(this, file, msg);
@@ -63,7 +67,7 @@ Rivendell.Importer.prototype.openModal = function(group) {
this.$el.modal({keyboard: true});
};
-Rivendell.Importer.prototype.importFileAdded = function(dropzone, file, group) {
+Rivendell.Importer.prototype.importFileAdded = function(dropzone, file, group, createCart) {
// wtf? remove accepted files?
/*$(dropzone.getAcceptedFiles()).each(function(index, elem) {
dropzone.removeFile(elem);
@@ -74,7 +78,7 @@ Rivendell.Importer.prototype.importFileAdded = function(dropzone, file, group) {
var self = this;
$('#uploadModal-confirm', this.$el).off('click').on('click', function() {
- self.importCartConfirm(dropzone, group);
+ self.importCartConfirm(dropzone, group, createCart);
}).removeAttr('disabled');
};
@@ -83,7 +87,7 @@ Rivendell.Importer.prototype.importFileSelectError = function(dropzone, file, ms
dropzone.removeFile(file);
};
-Rivendell.Importer.prototype.importCartConfirm = function(dropzone, group) {
+Rivendell.Importer.prototype.importCartConfirm = function(dropzone, group, createCart) {
this.$el.modal('hide');
//var progressBar = group.addUpload();
@@ -112,7 +116,16 @@ Rivendell.Importer.prototype.importCartConfirm = function(dropzone, group) {
/*$(files).each(function(index, file) {
self.importAddCut(dropzone, group, file);
});*/
- self.importAddCut(dropzone, group, files[0]);
+
+ if (createCart) {
+ rivendell.addCart(group.groupName, 'audio', null, function(cartXML) {
+ var cart = new Rivendell.Cart(cartXML, group);
+ self.importAddCut(dropzone, group, files[0], createCart, cart);
+ });
+ } else {
+ var cart = group.mainCart;
+ self.importAddCut(dropzone, group, files[0], createCart, cart);
+ }
};
Rivendell.Importer.prototype.uploadProgress = function(file) {
@@ -158,12 +171,11 @@ Rivendell.Importer.prototype.importFileUploadError = function(dropzone, file, ms
dropzone.disable();
};
-Rivendell.Importer.prototype.importAddCut = function(dropzone, group, file) {
- var cart = group.mainCart;
+Rivendell.Importer.prototype.importAddCut = function(dropzone, group, file, createCart, cart) {
rivendell.addAndEditCut(cart.number, {DESCRIPTION: file.name}, function(cutXml) {
group.fetchCarts();
dropzone.on('sending', function(file, xhr, formData) {
- var cutNumber = $(cutXml).find('cutNumber').text();
+ var cutNumber = $('cutNumber', cutXml).text();
var cutNumberLeading = cutNumber;
switch (cutNumber.toString().length) {
case 0: cutNumberLeading = '000' + cutNumber; break;
@@ -186,6 +198,9 @@ Rivendell.Importer.prototype.importAddCut = function(dropzone, group, file) {
});
dropzone.processQueue();
}).fail(function(xhr, status, err) {
- self.importFileUploadError(cart, dropzone, file, err, xhr);
+ self.importFileUploadError(dropzone, file, err, xhr);
+ if (createCart) {
+ rivendell.removeCart(cart.number);
+ }
});
};
diff --git a/www/js/jingles.js b/www/js/jingles.js
index 451f643..d80dd95 100644
--- a/www/js/jingles.js
+++ b/www/js/jingles.js
@@ -104,7 +104,7 @@ JingleGroupView.prototype.render = function() {
$('table tbody tr', this.$el).remove();
$('.uploadButton', this.$el).on('click', function() {
- importer.openModal(self.model);
+ importer.openModal(self.model, false);
});
};
diff --git a/www/js/musicpools.js b/www/js/musicpools.js
index 2ccd27f..00cffe3 100644
--- a/www/js/musicpools.js
+++ b/www/js/musicpools.js
@@ -139,9 +139,9 @@ Rivendell.MusicpoolView.prototype.render = function() {
$('table tbody tr', self.$el).remove();
// todo
- /*$('.uploadButton', self.$el).on('click', function() {
- importer.openModal(self.model);
- });*/
+ $('.uploadButton', self.$el).on('click', function() {
+ importer.openModal(self.model, true);
+ });
});
this.model.fetchCarts();
diff --git a/www/js/rivendell.js b/www/js/rivendell.js
index 89cf471..4a40ce0 100644
--- a/www/js/rivendell.js
+++ b/www/js/rivendell.js
@@ -110,9 +110,11 @@ Rivendell.Rivendell.prototype.addCart = function(groupName, type, cartNumber, su
LOGIN_NAME: this.username,
PASSWORD: this.token,
GROUP_NAME: groupName,
- TYPE: type,
- CART_NUMBER: cartNumber
+ TYPE: type
};
+ if (cartNumber !== null) {
+ command.CART_NUMBER = cartNumber;
+ }
return $.post(this.rdxportEndpoint, command, success, 'xml');
};