forked from 0x2620/pandora
merge
This commit is contained in:
commit
57308697ec
7 changed files with 67 additions and 7 deletions
|
@ -280,6 +280,47 @@ def moveFiles(request):
|
||||||
return render_to_json_response(response)
|
return render_to_json_response(response)
|
||||||
actions.register(moveFiles, cache=False)
|
actions.register(moveFiles, cache=False)
|
||||||
|
|
||||||
|
@login_required_json
|
||||||
|
def editFiles(request):
|
||||||
|
'''
|
||||||
|
change file / item link
|
||||||
|
param data {
|
||||||
|
ids: ids of files
|
||||||
|
part:
|
||||||
|
language:
|
||||||
|
ignore: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
status: {'code': int, 'text': string},
|
||||||
|
data: {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'''
|
||||||
|
data = json.loads(request.POST['data'])
|
||||||
|
files = models.File.objects.filter(oshash__in=data['ids'])
|
||||||
|
response = json_response()
|
||||||
|
#FIXME: only editable files!
|
||||||
|
if True:
|
||||||
|
if 'ignore' in data:
|
||||||
|
models.Instance.objects.filter(file__in=files).update(ignore=data['ignore'])
|
||||||
|
files.update(auto=True)
|
||||||
|
#FIXME: is this to slow to run sync?
|
||||||
|
for i in Item.objects.filter(files__in=files).distinct():
|
||||||
|
i.update_selected()
|
||||||
|
i.update_wanted()
|
||||||
|
response = json_response(status=200, text='updated')
|
||||||
|
updates = {}
|
||||||
|
for key in ('part', 'language'):
|
||||||
|
if key in data:
|
||||||
|
updates[key] = data[key]
|
||||||
|
if updates:
|
||||||
|
files.update(**updates)
|
||||||
|
response = json_response(status=200, text='updated')
|
||||||
|
else:
|
||||||
|
response = json_response(status=403, text='permissino denied')
|
||||||
|
return render_to_json_response(response)
|
||||||
|
actions.register(editFiles, cache=False)
|
||||||
|
|
||||||
@login_required_json
|
@login_required_json
|
||||||
def editFile(request):
|
def editFile(request):
|
||||||
|
|
|
@ -947,7 +947,8 @@ class Item(models.Model):
|
||||||
if settings.USE_IMDB:
|
if settings.USE_IMDB:
|
||||||
if len(self.itemId) == 7:
|
if len(self.itemId) == 7:
|
||||||
cmd += ['-i', self.itemId]
|
cmd += ['-i', self.itemId]
|
||||||
cmd += ['-o', self.oxdbId]
|
oxdbId = self.oxdbId or self.oxdb_id() or self.ItemId
|
||||||
|
cmd += ['-o', oxdbId]
|
||||||
else:
|
else:
|
||||||
cmd += ['-i', self.itemId]
|
cmd += ['-i', self.itemId]
|
||||||
ox.makedirs(os.path.join(settings.MEDIA_ROOT,self.path()))
|
ox.makedirs(os.path.join(settings.MEDIA_ROOT,self.path()))
|
||||||
|
|
|
@ -690,7 +690,7 @@ def poster(request, id, size=None):
|
||||||
if item.poster:
|
if item.poster:
|
||||||
return image_to_response(item.poster, size)
|
return image_to_response(item.poster, size)
|
||||||
else:
|
else:
|
||||||
poster_path = os.path.join(settings.STATIC_ROOT, 'png/posterDark.48.png')
|
poster_path = os.path.join(settings.STATIC_ROOT, 'png/poster.png')
|
||||||
response = HttpFileResponse(poster_path, content_type='image/jpeg')
|
response = HttpFileResponse(poster_path, content_type='image/jpeg')
|
||||||
response['Cache-Control'] = 'no-cache'
|
response['Cache-Control'] = 'no-cache'
|
||||||
return response
|
return response
|
||||||
|
|
|
@ -33,15 +33,27 @@ pandora.ui.filesView = function(options, self) {
|
||||||
})
|
})
|
||||||
.appendTo(self.$toolbar);
|
.appendTo(self.$toolbar);
|
||||||
|
|
||||||
self.$moveButton = Ox.Button({
|
self.$ignoreButton = Ox.Button({
|
||||||
disabled: 'true',
|
disabled: 'true',
|
||||||
title: 'Move Selected Files...'
|
title: 'Ignore Selected Files...'
|
||||||
})
|
})
|
||||||
.css({
|
.css({
|
||||||
float: 'right',
|
float: 'right',
|
||||||
margin: '4px'
|
margin: '4px'
|
||||||
})
|
})
|
||||||
.appendTo(self.$toolbar);
|
.appendTo(self.$toolbar)
|
||||||
|
.bindEvent({
|
||||||
|
click: function() {
|
||||||
|
var data = {
|
||||||
|
ids: self.selected,
|
||||||
|
ignore: true
|
||||||
|
};
|
||||||
|
pandora.api.editFiles(data, function(result) {
|
||||||
|
Ox.Request.clearCache();
|
||||||
|
self.$filesList.reloadList();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
self.$filesList = Ox.TextList({
|
self.$filesList = Ox.TextList({
|
||||||
columns: [
|
columns: [
|
||||||
|
@ -417,6 +429,9 @@ pandora.ui.filesView = function(options, self) {
|
||||||
self.$moveButton.options({
|
self.$moveButton.options({
|
||||||
disabled: self.selected.length === 0
|
disabled: self.selected.length === 0
|
||||||
});
|
});
|
||||||
|
self.$ignoreButton.options({
|
||||||
|
disabled: self.selected.length === 0
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return that;
|
return that;
|
||||||
|
|
|
@ -66,8 +66,11 @@ pandora.ui.info = function() {
|
||||||
previousView == 'video' && resizeInfo();
|
previousView == 'video' && resizeInfo();
|
||||||
});
|
});
|
||||||
} else if (view == 'video') {
|
} else if (view == 'video') {
|
||||||
pandora.api.get({id: id, keys: ['duration', 'videoRatio']}, function(result) {
|
pandora.api.get({
|
||||||
if (result.data) {
|
id: id,
|
||||||
|
keys: ['duration', 'rendered', 'videoRatio']
|
||||||
|
}, function(result) {
|
||||||
|
if (result.data && result.data.rendered) {
|
||||||
pandora.$ui.videoPreview && pandora.$ui.videoPreview.removeElement();
|
pandora.$ui.videoPreview && pandora.$ui.videoPreview.removeElement();
|
||||||
pandora.$ui.videoPreview = pandora.ui.videoPreview({
|
pandora.$ui.videoPreview = pandora.ui.videoPreview({
|
||||||
duration: result.data.duration,
|
duration: result.data.duration,
|
||||||
|
|
BIN
static/png/poster.png
Normal file
BIN
static/png/poster.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 110 B |
Binary file not shown.
Before Width: | Height: | Size: 180 B |
Loading…
Reference in a new issue