diff options
-rw-r--r-- | www/js/importer.js | 26 | ||||
-rw-r--r-- | www/js/shows.js | 41 |
2 files changed, 62 insertions, 5 deletions
diff --git a/www/js/importer.js b/www/js/importer.js index 5f7db6f..cba7d23 100644 --- a/www/js/importer.js +++ b/www/js/importer.js @@ -113,6 +113,26 @@ Rivendell.Importer.prototype.removeUpload = function(upload) { }); }; +Rivendell.Importer.prototype.getUploadByCartId = function (cartNumber) { + var upload = null; + $.each(this.uploads, function(index, currentUpload){ + if (currentUpload.newCartNumber === cartNumber) { + upload = currentUpload; + } + }); + return upload; +}; + +Rivendell.Importer.prototype.hasUploadByCartId = function (cartNumber) { + var found = false; + $.each(this.uploads, function(index, currentUpload){ + if (currentUpload.newCartNumber === cartNumber) { + found = true; + } + }); + return found; +}; + Rivendell.Upload = function(group, groupView, createCart, newCartNumber, useMetadata, dropzone) { this.group = group; this.groupView = groupView; @@ -121,6 +141,11 @@ Rivendell.Upload = function(group, groupView, createCart, newCartNumber, useMeta this.useMetadata = useMetadata; this.dropzone = dropzone; + this.uploadprogress = { + progress: 0, + total: 0, + bytesSent: 0 + }; this.cart = null; this.cut = null; @@ -158,6 +183,7 @@ Rivendell.Upload.prototype.import = function() { var self = this; this.dropzone.off('uploadprogress').on('uploadprogress', function(file) { + self.uploadprogress = file.upload; self.groupView.uploadProgress(self, file); }); this.dropzone.off(Dropzone.SUCCESS).on(Dropzone.SUCCESS, function(file) { diff --git a/www/js/shows.js b/www/js/shows.js index 1ba86b9..b910bdb 100644 --- a/www/js/shows.js +++ b/www/js/shows.js @@ -203,7 +203,12 @@ Rivendell.ShowView.prototype.render = function() { if (cart) { var cartView = new Rivendell.ShowCartView(cart, self); self.cartViews.push(cartView); - cartView.render(); + var upload = null; + if ((upload = importer.getUploadByCartId(log.cartNumber)) !== null) { + cartView.renderUploading(upload); + } else { + cartView.render(); + } $('#app-shows table > tbody').append(cartView.$el); } else { @@ -230,11 +235,11 @@ Rivendell.ShowView.prototype.uploadProgress = function(upload, file) { $cart.addClass('uploading'); } - if(file.upload.progress < 99) { - var bytes_str = Number((file.upload.bytesSent/1024)/1024).toFixed(1) + " von " + - Number((file.upload.total/1024)/1024).toFixed(1) + " MB"; + if(upload.uploadprogress.progress < 99) { + var bytes_str = Number((upload.uploadprogress.bytesSent/1024)/1024).toFixed(1) + " von " + + Number((upload.uploadprogress.total/1024)/1024).toFixed(1) + " MB"; $cart.find('.file-bytes').text(bytes_str); - $cart.find('.progress .progress-bar').css("width", file.upload.progress + "%"); + $cart.find('.progress .progress-bar').css("width", upload.uploadprogress.progress + "%"); } else { $cart.find('.file-bytes').text('importiere...'); $cart.find('.progress .progress-bar').css('width', '100%'); @@ -313,6 +318,32 @@ Rivendell.ShowCartView.prototype.render = function() { .append($('<td>').css('text-align', 'center').append($deleteButton)); }; +Rivendell.ShowCartView.prototype.renderUploading = function(upload) { + var $progressBar = $('.progressBarTemplate.shows').clone().removeClass('progressBarTemplate'); + $('.file-name', $progressBar).text(this.model.title); + $('.cart-number', $progressBar).text(this.model.number); + + this.$el.empty() + .html($progressBar.html()) + .attr('id', 'show-cart-' + this.model.number) + .addClass('uploading'); + + $('button', this.$el).on('click', function() { + upload.cancel(); + }); + + if(upload.uploadprogress.progress < 99) { + var bytes_str = Number((upload.uploadprogress.bytesSent/1024)/1024).toFixed(1) + " von " + + Number((upload.uploadprogress.total/1024)/1024).toFixed(1) + " MB"; + this.$el.find('.file-bytes').text(bytes_str); + this.$el.find('.progress .progress-bar').css("width", upload.uploadprogress.progress + "%"); + } else { + this.$el.find('.file-bytes').text('importiere...'); + this.$el.find('.progress .progress-bar').css('width', '100%'); + this.$el.find('.progress .progress-bar').addClass('progress-bar-striped').addClass('active'); + } +}; + Rivendell.ShowCartView.renderEmpty = function(group, groupView, cartNumber) { var $uploadButton = $('<button class="uploadButton btn btn-primary btn-xs"><span class="glyphicon glyphicon-upload"></span> Importieren</button>'); |