From 5beba72d393a8240547df33fd604361c931e5139 Mon Sep 17 00:00:00 2001 From: j <0x006A@0x2620.org> Date: Sun, 23 Oct 2011 13:57:52 +0200 Subject: [PATCH] enable/disable files --- pandora/app/models.py | 7 ++++--- pandora/archive/views.py | 5 ++++- pandora/item/models.py | 4 ++-- static/js/pandora/filesView.js | 23 ++++++++++++++++++++++- static/js/pandora/folderList.js | 7 ++----- 5 files changed, 34 insertions(+), 12 deletions(-) diff --git a/pandora/app/models.py b/pandora/app/models.py index bc5cbac6d..9c6db7f3d 100644 --- a/pandora/app/models.py +++ b/pandora/app/models.py @@ -65,9 +65,10 @@ def update_static(): pandora_json = os.path.join(settings.STATIC_ROOT, 'json/pandora.json') for root, folders, files in os.walk(os.path.join(settings.STATIC_ROOT, 'js/pandora')): for f in files: - js.append(os.path.join(root, f)[len(settings.STATIC_ROOT)+1:]) - with open(os.path.join(root, f)) as j: - data += j.read() + '\n' + if f.endswith('.js'): + js.append(os.path.join(root, f)[len(settings.STATIC_ROOT)+1:]) + with open(os.path.join(root, f)) as j: + data += j.read() + '\n' print 'write', pandora_js with open(pandora_js, 'w') as f: diff --git a/pandora/archive/views.py b/pandora/archive/views.py index 3a475b78a..068f83bde 100644 --- a/pandora/archive/views.py +++ b/pandora/archive/views.py @@ -305,9 +305,12 @@ def editFile(request): update = False #FIXME: should all instances be ignored? if 'ignore' in data: - f.instances.update(ignore=True) + f.auto = True + f.instances.update(ignore=data['ignore']) + f.save() #FIXME: is this to slow to run sync? f.item.update_selected() + f.item.update_wanted() for key in ('part', 'language'): if key in data: setattr(f, key, data[key]) diff --git a/pandora/item/models.py b/pandora/item/models.py index 62699f2b2..5f9ea8ddf 100644 --- a/pandora/item/models.py +++ b/pandora/item/models.py @@ -658,7 +658,7 @@ class Item(models.Model): s.volume = None s.parts = 0 - if 'color' in self.data: + if 'color' in self.data and len(self.data['color']) == 3: s.hue, s.saturation, s.lightness = self.data['color'] else: s.hue = None @@ -878,7 +878,7 @@ class Item(models.Model): if settings.CONFIG['video']['download']: self.make_torrent() self.load_subtitles() - self.rendered = streams != [] + self.rendered = streams.count() > 0 self.save() def delete_poster(self): diff --git a/static/js/pandora/filesView.js b/static/js/pandora/filesView.js index d72cc579a..75314d1a0 100644 --- a/static/js/pandora/filesView.js +++ b/static/js/pandora/filesView.js @@ -46,6 +46,9 @@ pandora.ui.filesView = function(options, self) { self.$filesList = Ox.TextList({ columns: [ { + clickable: function(data) { + return true; + }, format: function(value, data) { Ox.print('File', value, data.wanted, data); return $('') @@ -65,6 +68,11 @@ pandora.ui.filesView = function(options, self) { title: $('').attr({ src: Ox.UI.getImageURL('symbolCheck') }), + tooltip: function (data) { + return data.instances.filter(function(i) {return i.ignore; }).length > 0 + ? 'Use this file' + : 'Dont use this file'; + }, visible: true, width: 16 }, @@ -166,8 +174,21 @@ pandora.ui.filesView = function(options, self) { sort: [{key: 'path', operator: '+'}] }) .bindEvent({ + click: function(data) { + if (data.key == 'selected') { + var ignored = self.$filesList.value(data.id, 'instances') + .filter(function(i) {return i.ignore; }).length > 0; + pandora.api.editFile({ + id: data.id, + ignore: !ignored + }, function(result) { + Ox.Request.clearCache(); + self.$filesList.reloadList(); + }); + } + }, open: openFiles, - select: selectFiles + select: selectFiles, }); self.$instancesList = Ox.TextList({ diff --git a/static/js/pandora/folderList.js b/static/js/pandora/folderList.js index 4e1918eae..6f0e842d0 100644 --- a/static/js/pandora/folderList.js +++ b/static/js/pandora/folderList.js @@ -218,15 +218,12 @@ pandora.ui.folderList = function(id) { } ]; items = function(data, callback) { - var volumes = pandora.user.volumes || [ - {"name": "Movies A-M", "path": "/Volumes/Movies A-M", "items": 1234}, - {"name": "Movies N-Z", "path": "/Volumes/Movies N-Z", "items": 987} - ]; + var volumes = pandora.user.volumes || []; if (!data.keys) { data = {items: volumes.length}; } else { data = {items: volumes.map(function(volume) { - return Ox.extend({id: volume.name, user: pandora.user.username, mounted: volume.name == 'Movies A-M'}, volume); + return Ox.extend({id: volume.name, user: pandora.user.username}, volume); })}; } // fixme: ridiculous (we're binding to init too late)