diff options
Diffstat (limited to 'www/js/shows.js')
-rw-r--r-- | www/js/shows.js | 65 |
1 files changed, 30 insertions, 35 deletions
diff --git a/www/js/shows.js b/www/js/shows.js index 233a5c3..81d9e5a 100644 --- a/www/js/shows.js +++ b/www/js/shows.js @@ -36,7 +36,7 @@ function shows_init(subpage) { function shows_cleanup() { $('#show-carts tbody').find('tr').remove(); - importer.cancelAllUploads(); + importer.closeAllUploads(); } Rdxport.ShowListView = function(model, subpage) { @@ -48,7 +48,7 @@ Rdxport.ShowListView = function(model, subpage) { this.setCurrentShowId(subpage); var self = this; - $(this.model).on('update', function() { + $(this.model).off('update').on('update', function() { $(self.model.groups).each(function(index, show) { var showView = new Rdxport.ShowView(show); self.showViews.push(showView); @@ -202,7 +202,7 @@ Rdxport.ShowView = function(model) { this.$el = null; var self = this; - this.model.$this.on('update', function() { + this.model.$this.off('update').on('update', function() { self.render(); }); }; @@ -215,12 +215,12 @@ Rdxport.ShowView.prototype.render = function() { for(var w = 0; w < 4; w++) { if(this.model.rhythm.charAt(w) == '1') { - var s = $('#show-rhythm-w' + (w+1)).attr('class', 'label') + var s = $('#show-rhythm-w' + (w+1)).attr('class', 'label'); switch(w+1) { - case 1: s.addClass('label-info'); break; - case 2: s.addClass('label-warning'); break; - case 3: s.addClass('label-success'); break; - case 4: s.addClass('label-danger'); break; + case 1: s.addClass('label-info'); break; + case 2: s.addClass('label-warning'); break; + case 3: s.addClass('label-success'); break; + case 4: s.addClass('label-danger'); break; } } else { $('#show-rhythm-w' + (w+1)).attr('class', 'label label-disabled') @@ -234,16 +234,13 @@ Rdxport.ShowView.prototype.render = function() { var self = this; $(this.model.logs).each(function(index, log) { var cart = self.model.getCartByNumber(log.cartNumber); - if (cart) { + var upload = importer.getUploadByCartNumber(log.cartNumber); + if (upload) { + $('#app-shows table > tbody').append(Rdxport.ShowCartView.renderUploading(upload, log.cartNumber)); + } else if (cart) { var cartView = new Rdxport.ShowCartView(cart, self); self.cartViews.push(cartView); - var upload = null; - if ((upload = importer.getUploadByCartNumber(log.cartNumber)) !== null) { - cartView.renderUploading(upload); - } else { - cartView.render(); - } - + cartView.render(); $('#app-shows table > tbody').append(cartView.$el); } else { $('#app-shows table > tbody').append(Rdxport.ShowCartView.renderEmpty(self.model, self, log.cartNumber)); @@ -252,17 +249,14 @@ Rdxport.ShowView.prototype.render = function() { }; Rdxport.ShowView.prototype.uploadProgress = function(upload, file) { - if (!file.cartNumber || !file.cutNumber) { - return; - } - var $cart = $('#show-cart-' + file.cartNumber).first(); + var $cart = $('tr[data-upload-id="' + upload.uploadId + '"]').first(); if (!$cart.hasClass('uploading')) { var $progressBar = $('.progressBarTemplate.shows').clone().removeClass('progressBarTemplate'); $('.file-name', $progressBar).text(file.name); $('.cart-number', $progressBar).text(file.cartNumber); $cart.html($progressBar.html()); - $('button', $cart).on('click', function() { + $('button', $cart).off('click').on('click', function() { upload.cancel(); }); @@ -291,12 +285,12 @@ Rdxport.ShowView.prototype.uploadError = function(upload, file, msg, xhr, acknow var $errorRow = $('<tr>') .attr("id", "show-cart-" + file.cartNumber) .append($('<td>').text(file.cartNumber)) - .append($('<td>').addClass('file-name').text(file.name)) + .append($('<td>').addClass('file-name').text(upload.filename)) .append($('<td>').append($('<b>').text('Import Fehler'))) .append($('<td colspan="3">').append(reason)) .append($('<td>').css('text-align', 'center').append(dismiss_button)); - $('button', $errorRow).on('click', function() { + $('button', $errorRow).off('click').on('click', function() { acknowledge(); }); @@ -315,7 +309,7 @@ Rdxport.ShowCartView.prototype.render = function() { var $deleteButton = $('<button class="btn btn-danger btn-xs"><span class="glyphicon glyphicon-trash"></span> Löschen</button>'); var self = this; - $deleteButton.on('click', function() { + $deleteButton.off('click').on('click', function() { self.delete(); }); @@ -343,29 +337,30 @@ Rdxport.ShowCartView.prototype.render = function() { .append($('<td>').css('text-align', 'center').append($deleteButton)); }; -Rdxport.ShowCartView.prototype.renderUploading = function(upload) { +Rdxport.ShowCartView.renderUploading = function(upload, cartNumber) { var $progressBar = $('.progressBarTemplate.shows').clone().removeClass('progressBarTemplate'); - $('.file-name', $progressBar).text(this.model.title); - $('.cart-number', $progressBar).text(this.model.number); + $('.file-name', $progressBar).text(upload.filename); + $('.cart-number', $progressBar).text(cartNumber); - this.$el.empty() - .attr('id', 'show-cart-' + this.model.number) + var $el = $('<tr>') .html($progressBar.html()) - .attr('id', 'show-cart-' + this.model.number) - .addClass('uploading'); + .attr('id', 'show-cart-' + cartNumber) + .addClass('uploading') + .attr('data-upload-id', upload.uploadId); - $('button', this.$el).on('click', function() { + $('button', $el).off('click').on('click', function() { upload.cancel(); }); - updateProgressBar(this.$el, upload); + updateProgressBar($el, upload); + return $el; }; Rdxport.ShowCartView.renderEmpty = function(group, groupView, cartNumber) { var $uploadButton = $('<button class="uploadButton btn btn-primary btn-xs"><span class="glyphicon glyphicon-upload"></span> Importieren</button>'); - $uploadButton.on('click', function() { - importer.openModal(group, groupView, true, cartNumber, true); + $uploadButton.off('click').on('click', function() { + importer.openModal(group, groupView, cartNumber, null, true); }); return $('<tr>') |