From 5c61c24c04f931f19f79141233368452cb5aa798 Mon Sep 17 00:00:00 2001 From: Ruud Date: Wed, 4 Sep 2013 22:39:42 +0200 Subject: [PATCH] Lazyload file list in manage tab --- .../media/movie/_base/static/movie.actions.js | 37 +++++++++++++++++-- couchpotato/core/plugins/release/main.py | 2 +- 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/couchpotato/core/media/movie/_base/static/movie.actions.js b/couchpotato/core/media/movie/_base/static/movie.actions.js index 29a8a621..7d8c37fd 100644 --- a/couchpotato/core/media/movie/_base/static/movie.actions.js +++ b/couchpotato/core/media/movie/_base/static/movie.actions.js @@ -289,7 +289,7 @@ MA.Release = new Class({ })] : null ) } - + self.last_release = null; self.next_release = null; @@ -828,16 +828,45 @@ MA.Files = new Class({ self.el = new Element('a.directory', { 'title': 'Available files', 'events': { - 'click': self.showFiles.bind(self) + 'click': self.show.bind(self) } }); }, - showFiles: function(e){ + show: function(e){ var self = this; (e).preventDefault(); + if(self.releases) + self.showFiles(); + else { + + self.movie.busy(true); + + Api.request('release.for_movie', { + 'data': { + 'id': self.movie.data.id + }, + 'onComplete': function(json){ + self.movie.busy(false, 1); + + if(json && json.releases){ + self.releases = json.releases; + self.showFiles(); + } + else + alert('Something went wrong, check the logs.'); + } + }); + + } + + }, + + showFiles: function(){ + var self = this; + if(!self.options_container){ self.options_container = new Element('div.options').adopt( self.files_container = new Element('div.files.table') @@ -850,7 +879,7 @@ MA.Files = new Class({ new Element('span.is_available', {'text': 'Available'}) ).inject(self.files_container) - Array.each(self.movie.data.releases, function(release){ + Array.each(self.releases, function(release){ var rel = new Element('div.release').inject(self.files_container); diff --git a/couchpotato/core/plugins/release/main.py b/couchpotato/core/plugins/release/main.py index fb3750bf..eb60728d 100644 --- a/couchpotato/core/plugins/release/main.py +++ b/couchpotato/core/plugins/release/main.py @@ -223,7 +223,7 @@ class Release(Plugin): .all() releases = [r.to_dict({'info':{}, 'files':{}}) for r in releases_raw] - releases = sorted(releases, key = lambda k: k['info']['score'], reverse = True) + releases = sorted(releases, key = lambda k: k['info'].get('score', 0), reverse = True) return { 'releases': releases,