From 1e338a279aba747534fd1e7aedc8d7aec319f5f2 Mon Sep 17 00:00:00 2001 From: RaNaN Date: Mon, 30 Dec 2013 19:52:29 +0100 Subject: show progress of decrypting and link checking, added indicator in link grabber --- pyload/web/app/scripts/views/headerView.js | 16 +++++++--------- .../web/app/scripts/views/linkgrabber/modalView.js | 22 +++++++++++++++++++--- 2 files changed, 26 insertions(+), 12 deletions(-) (limited to 'pyload/web/app/scripts/views') diff --git a/pyload/web/app/scripts/views/headerView.js b/pyload/web/app/scripts/views/headerView.js index 7d892bf01..d4d07ac39 100644 --- a/pyload/web/app/scripts/views/headerView.js +++ b/pyload/web/app/scripts/views/headerView.js @@ -1,8 +1,8 @@ -define(['jquery', 'underscore', 'backbone', 'app', 'models/ServerStatus', 'collections/ProgressList', +define(['jquery', 'underscore', 'backbone', 'app', 'models/ServerStatus', 'views/progressView', 'views/notificationView', 'helpers/formatSize', 'hbs!tpl/header/layout', 'hbs!tpl/header/status', 'hbs!tpl/header/progressbar', 'hbs!tpl/header/progressSup', 'hbs!tpl/header/progressSub' , 'flot'], function( - $, _, Backbone, App, ServerStatus, ProgressList, ProgressView, NotificationView, formatSize, template, templateStatus, templateProgress, templateSup, templateSub) { + $, _, Backbone, App, ServerStatus, ProgressView, NotificationView, formatSize, template, templateStatus, templateProgress, templateSup, templateSub) { 'use strict'; // Renders the header with all information return Backbone.Marionette.ItemView.extend({ @@ -32,7 +32,6 @@ define(['jquery', 'underscore', 'backbone', 'app', 'models/ServerStatus', 'colle // models and data ws: null, status: null, - progressList: null, speeds: null, // sub view @@ -51,8 +50,7 @@ define(['jquery', 'underscore', 'backbone', 'app', 'models/ServerStatus', 'colle this.status = new ServerStatus(); this.listenTo(this.status, 'change', this.update); - this.progressList = new ProgressList(); - this.listenTo(this.progressList, 'add', function(model) { + this.listenTo(App.progressList, 'add', function(model) { self.ui.progress.appendWithAnimation(new ProgressView({model: model}).render().el); }); @@ -140,7 +138,7 @@ define(['jquery', 'underscore', 'backbone', 'app', 'models/ServerStatus', 'colle ); var data = {tasks: 0, downloads: 0, speed: 0, single: false}; - this.progressList.each(function(progress) { + App.progressList.each(function(progress) { if (progress.isDownload()) { data.downloads++; data.speed += progress.get('download').speed; @@ -150,7 +148,7 @@ define(['jquery', 'underscore', 'backbone', 'app', 'models/ServerStatus', 'colle // Show progress of one task if (data.tasks + data.downloads === 1) { - var progress = this.progressList.at(0); + var progress = App.progressList.at(0); data.single = true; data.eta = progress.get('eta'); data.percent = progress.getPercent(); @@ -233,9 +231,9 @@ define(['jquery', 'underscore', 'backbone', 'app', 'models/ServerStatus', 'colle prog.pid = prog.plugin + prog.name; }); - this.progressList.set(progress); + App.progressList.set(progress); // update currently open files with progress - this.progressList.each(function(prog) { + App.progressList.each(function(prog) { if (prog.isDownload() && App.dashboard.files) { var file = App.dashboard.files.get(prog.get('download').fid); if (file) { diff --git a/pyload/web/app/scripts/views/linkgrabber/modalView.js b/pyload/web/app/scripts/views/linkgrabber/modalView.js index 950c0ce2f..9bdb7f4e2 100644 --- a/pyload/web/app/scripts/views/linkgrabber/modalView.js +++ b/pyload/web/app/scripts/views/linkgrabber/modalView.js @@ -1,5 +1,5 @@ -define(['jquery', 'underscore', 'backbone', 'app', 'models/CollectorPackage', 'views/abstract/modalView', './collectorView', 'hbs!tpl/linkgrabber/modal'], - function($, _, Backbone, App, CollectorPackage, modalView, CollectorView, template) { +define(['jquery', 'underscore', 'backbone', 'app', 'utils/apitypes', 'models/CollectorPackage', 'views/abstract/modalView', './collectorView', 'hbs!tpl/linkgrabber/modal'], + function($, _, Backbone, App, Api, CollectorPackage, modalView, CollectorView, template) { 'use strict'; // Modal dialog for package adding - triggers package:added when package was added return modalView.extend({ @@ -24,6 +24,11 @@ define(['jquery', 'underscore', 'backbone', 'app', 'models/CollectorPackage', 'v // Inherit parent events this.events = _.extend({}, modalView.prototype.events, this.events); this.listenTo(App.vent, 'collectorPackage:added', _.bind(this.onAdded, this)); + + var update = _.bind(this.onProgressChange, this); + this.listenTo(App.progressList, 'add', update); + this.listenTo(App.progressList, 'remove', update); + this.listenTo(App.progressList, 'change', update); }, // sets a new models as target and render @@ -123,7 +128,18 @@ define(['jquery', 'underscore', 'backbone', 'app', 'models/CollectorPackage', 'v onDestroy: function() { if (this.collectorView) this.collectorView.close(); - } + }, + onProgressChange: function() { + var progress = App.progressList.byType(Api.ProgressType.LinkCheck | Api.ProgressType.Decrypting); + if (progress.length > 0) { + // show indicator + this.$('.status-text').html(progress[0].get('statusmsg')); + this.$('.status').fadeIn(); + } else { + // hide indicator + this.$('.status').fadeOut(); + } + } }); }); \ No newline at end of file -- cgit v1.2.3