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)