summaryrefslogtreecommitdiffstats
path: root/pyload/web/app/scripts
diff options
context:
space:
mode:
authorGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2013-12-12 21:02:50 +0100
committerGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2013-12-12 21:02:50 +0100
commitdddd69ed3d9ad89efc3149197893a40f6892d25f (patch)
treeaecae00c4f69269fa0836ce931f0053516c3059f /pyload/web/app/scripts
parentremote only disable with start option (diff)
downloadpyload-dddd69ed3d9ad89efc3149197893a40f6892d25f.tar.xz
plugin selection for linkgrabber, partial closes #182
Diffstat (limited to 'pyload/web/app/scripts')
-rw-r--r--pyload/web/app/scripts/models/CollectorPackage.js45
-rw-r--r--pyload/web/app/scripts/views/linkgrabber/packageView.js15
2 files changed, 49 insertions, 11 deletions
diff --git a/pyload/web/app/scripts/models/CollectorPackage.js b/pyload/web/app/scripts/models/CollectorPackage.js
index 17a3a1551..216e6be9d 100644
--- a/pyload/web/app/scripts/models/CollectorPackage.js
+++ b/pyload/web/app/scripts/models/CollectorPackage.js
@@ -9,11 +9,13 @@ define(['jquery', 'backbone', 'underscore', 'app', 'utils/apitypes', 'collection
password: null,
new_name: null,
links: null,
- pid: null
+ pid: null,
+ ignored: null // list of ignored plugins
},
initialize: function() {
this.set('links', new LinkList());
+ this.set('ignored', {});
},
destroy: function() {
@@ -39,7 +41,13 @@ define(['jquery', 'backbone', 'underscore', 'app', 'utils/apitypes', 'collection
// Add the package to pyload
add: function() {
var self = this;
- var links = this.get('links').pluck('url');
+ // Filter the ignored links and retrieve urls
+ var links = _.map(this.get('links').filter(function(link) {
+ return !_.has(self.get('ignored'), link.get('plugin'));
+ }), function(link) {
+ return link.get('url');
+ });
+
var pid = this.get('pid');
if (pid !== null && _.isNumber(pid)) {
@@ -87,24 +95,41 @@ define(['jquery', 'backbone', 'underscore', 'app', 'utils/apitypes', 'collection
name: this.getName(),
links: this.get('links').toJSON()
};
- var links = this.get('links');
- data.length = links.length;
+ // Summary
+ data.length = data.links.length;
data.size = 0;
data.online = 0;
data.offline = 0;
data.unknown = 0;
+ data.plugins = {};
- // Summary
- links.each(function(link) {
- if (link.get('status') === Api.DownloadStatus.Online)
+ // map of ignored plugins
+ var ignored = this.get('ignored');
+
+ _.each(data.links, function(link) {
+
+ link.ignored = _.has(ignored, link.plugin);
+
+ if (link.status === Api.DownloadStatus.Online)
data.online++;
- else if (link.get('status') === Api.DownloadStatus.Offline)
+ else if (link.status === Api.DownloadStatus.Offline)
data.offline++;
else
data.unknown++;
- if (link.get('size') > 0)
- data.size += link.get('size');
+ if (link.size > 0)
+ data.size += link.size;
+
+ if (_.has(data.plugins, link.plugin))
+ data.plugins[link.plugin].count++;
+ else {
+ data.plugins[link.plugin] = {
+ count: 1,
+ ignored: link.ignored
+ };
+
+ }
+
});
return data;
diff --git a/pyload/web/app/scripts/views/linkgrabber/packageView.js b/pyload/web/app/scripts/views/linkgrabber/packageView.js
index a9d04ced6..00b784844 100644
--- a/pyload/web/app/scripts/views/linkgrabber/packageView.js
+++ b/pyload/web/app/scripts/views/linkgrabber/packageView.js
@@ -24,7 +24,8 @@ define(['jquery', 'underscore', 'backbone', 'app', 'hbs!tpl/linkgrabber/package'
'click .btn-add': 'addPackage',
'click .btn-password': 'togglePassword',
'click .btn-delete': 'deletePackage',
- 'click .btn-mini': 'deleteLink'
+ 'click .btn-mini': 'deleteLink',
+ 'click .plugin-item': 'togglePlugin'
},
expanded: false,
@@ -89,6 +90,18 @@ define(['jquery', 'underscore', 'backbone', 'app', 'hbs!tpl/linkgrabber/package'
var el = $(e.target);
el.find('i').toggleClass('icon-lock icon-unlock');
this.ui.password.toggle();
+ },
+
+ togglePlugin: function(e) {
+ var el = $(e.target);
+ var plugin = el.data('plugin');
+ var ignored = this.model.get('ignored');
+ if (_.has(ignored, plugin))
+ delete ignored[plugin];
+ else
+ ignored[plugin] = true;
+
+ this.render();
}
});