summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pyload/plugins/Request.py5
-rw-r--r--pyload/web/app/scripts/collections/FileList.js10
-rw-r--r--pyload/web/app/scripts/views/dashboard/dashboardView.js14
-rw-r--r--pyload/web/app/scripts/views/dashboard/filterView.js1
4 files changed, 25 insertions, 5 deletions
diff --git a/pyload/plugins/Request.py b/pyload/plugins/Request.py
index 8e8e0cc6b..5652b6425 100644
--- a/pyload/plugins/Request.py
+++ b/pyload/plugins/Request.py
@@ -38,6 +38,11 @@ class Request(object):
# TODO: content encoding? Could be handled globally
+ @property
+ def http(self):
+ print "Deprecated usage of req.http, just use req instead"
+ return self
+
def initContext(self):
""" Should be used to initialize everything from given context and options """
pass
diff --git a/pyload/web/app/scripts/collections/FileList.js b/pyload/web/app/scripts/collections/FileList.js
index 873f4c0e3..112dc5e51 100644
--- a/pyload/web/app/scripts/collections/FileList.js
+++ b/pyload/web/app/scripts/collections/FileList.js
@@ -9,6 +9,16 @@ define(['jquery', 'backbone', 'underscore', 'models/File'], function($, Backbone
return file.get('fileorder');
},
+ isEqual: function(fileList) {
+ if (this.length !== fileList.length) return false;
+
+ // Assuming same order would be faster in false case
+ var diff = _.difference(this.models, fileList.models);
+
+ // If there is a difference models are unequal
+ return diff.length > 0;
+ },
+
initialize: function() {
}
diff --git a/pyload/web/app/scripts/views/dashboard/dashboardView.js b/pyload/web/app/scripts/views/dashboard/dashboardView.js
index a7779230b..8a0446203 100644
--- a/pyload/web/app/scripts/views/dashboard/dashboardView.js
+++ b/pyload/web/app/scripts/views/dashboard/dashboardView.js
@@ -1,6 +1,6 @@
-define(['jquery', 'backbone', 'underscore', 'app', 'models/TreeCollection',
+define(['jquery', 'backbone', 'underscore', 'app', 'models/TreeCollection', 'collections/FileList',
'./packageView', './fileView', 'hbs!tpl/dashboard/layout', 'select2'],
- function($, Backbone, _, App, TreeCollection, PackageView, FileView, template) {
+ function($, Backbone, _, App, TreeCollection, FileList, PackageView, FileView, template) {
'use strict';
// Renders whole dashboard
return Backbone.Marionette.ItemView.extend({
@@ -159,10 +159,14 @@ define(['jquery', 'backbone', 'underscore', 'app', 'models/TreeCollection',
// this works with ids and object TODO: not anymore
var file = this.files.get(fid);
if (file)
- if (_.isObject(data)) // update directly
+ if (_.isObject(data)) { // update directly
file.set(data);
- else // fetch from server
- file.fetch();
+ App.vent.trigger('dashboard:updated');
+ } else { // fetch from server
+ file.fetch({success: function() {
+ App.vent.trigger('dashboard:updated');
+ }});
+ }
}
});
}); \ No newline at end of file
diff --git a/pyload/web/app/scripts/views/dashboard/filterView.js b/pyload/web/app/scripts/views/dashboard/filterView.js
index 79257547c..ad72cf926 100644
--- a/pyload/web/app/scripts/views/dashboard/filterView.js
+++ b/pyload/web/app/scripts/views/dashboard/filterView.js
@@ -38,6 +38,7 @@ define(['jquery', 'backbone', 'underscore', 'app', 'utils/apitypes', 'models/Pac
// Apply the filter before the content is shown
this.listenTo(App.vent, 'dashboard:contentReady', this.apply_filter);
+ this.listenTo(App.vent, 'dashboard:updated', this.apply_filter);
this.listenTo(App.vent, 'dashboard:updated', this.updateName);
},