fix bugs in timelines view

This commit is contained in:
rolux 2011-10-20 13:33:18 +00:00
parent 96f60e4184
commit fd116dbb70
2 changed files with 22 additions and 14 deletions

View file

@ -104,7 +104,9 @@ pandora.ui.item = function() {
} else if (pandora.user.ui.itemView == 'video') { } else if (pandora.user.ui.itemView == 'video') {
pandora.api.get({id: pandora.user.ui.item, keys: ['layers']}, function(r) { pandora.api.get({id: pandora.user.ui.item, keys: ['layers']}, function(r) {
// fixme: duplicated // fixme: duplicated
var layers = [], var clipsQuery = pandora.getClipsQuery(),
isClipsQuery = !!clipsQuery.conditions.length,
layers = [],
video = {}; video = {};
pandora.site.layers.forEach(function(layer, i) { pandora.site.layers.forEach(function(layer, i) {
layers[i] = Ox.extend({}, layer, {items: r.data.layers[layer.id]}); layers[i] = Ox.extend({}, layer, {items: r.data.layers[layer.id]});
@ -120,6 +122,7 @@ pandora.ui.item = function() {
annotationsSize: pandora.user.ui.annotationsSize, annotationsSize: pandora.user.ui.annotationsSize,
cuts: result.data.cuts || [], cuts: result.data.cuts || [],
duration: result.data.duration, duration: result.data.duration,
find: isClipsQuery ? clipsQuery.conditions[0].value : '',
getTimelineImageURL: function(i) { getTimelineImageURL: function(i) {
return '/' + pandora.user.ui.item + '/timeline64p' + i + '.png'; return '/' + pandora.user.ui.item + '/timeline64p' + i + '.png';
}, },
@ -170,7 +173,9 @@ pandora.ui.item = function() {
} else if (pandora.user.ui.itemView == 'timeline') { } else if (pandora.user.ui.itemView == 'timeline') {
pandora.api.get({id: pandora.user.ui.item, keys: ['layers']}, function(r) { pandora.api.get({id: pandora.user.ui.item, keys: ['layers']}, function(r) {
var layers = [], var clipsQuery = pandora.getClipsQuery(),
isClipsQuery = !!clipsQuery.conditions.length,
layers = [],
video = {}; video = {};
pandora.site.layers.forEach(function(layer) { pandora.site.layers.forEach(function(layer) {
layers.push(Ox.extend({items: r.data.layers[layer.id]}, layer)); layers.push(Ox.extend({items: r.data.layers[layer.id]}, layer));
@ -185,7 +190,7 @@ pandora.ui.item = function() {
annotationsSize: pandora.user.ui.annotationsSize, annotationsSize: pandora.user.ui.annotationsSize,
cuts: result.data.cuts || [], cuts: result.data.cuts || [],
duration: result.data.duration, duration: result.data.duration,
find: '', find: isClipsQuery ? clipsQuery.conditions[0].value : '',
getFrameURL: function(position) { getFrameURL: function(position) {
return '/' + pandora.user.ui.item + '/' + Ox.last(pandora.site.video.resolutions) + 'p' + position + '.jpg'; return '/' + pandora.user.ui.item + '/' + Ox.last(pandora.site.video.resolutions) + 'p' + position + '.jpg';
}, },

View file

@ -253,8 +253,6 @@ pandora.ui.list = function() {
} }
}); });
} else if (view == 'timelines') { } else if (view == 'timelines') {
var clipsQuery = pandora.getClipsQuery(),
isClipsQuery = clipsQuery.conditions.length;
that = Ox.InfoList({ that = Ox.InfoList({
borderRadius: pandora.user.ui.icons == 'posters' ? 0 : 16, borderRadius: pandora.user.ui.icons == 'posters' ? 0 : 16,
defaultRatio: pandora.user.ui.icons == 'posters' ? 5/8 : 1, defaultRatio: pandora.user.ui.icons == 'posters' ? 5/8 : 1,
@ -262,7 +260,9 @@ pandora.ui.list = function() {
id: 'list', id: 'list',
item: function(data, sort, size) { item: function(data, sort, size) {
size = 128; size = 128;
var ui = pandora.user.ui, var clipsQuery = pandora.getClipsQuery(),
isClipsQuery = !!clipsQuery.conditions.length,
ui = pandora.user.ui,
ratio = ui.icons == 'posters' ratio = ui.icons == 'posters'
? (ui.showSitePoster ? 5/8 : data.posterRatio) : 1, ? (ui.showSitePoster ? 5/8 : data.posterRatio) : 1,
url = '/' + data.id + '/' + ( url = '/' + data.id + '/' + (
@ -296,22 +296,26 @@ pandora.ui.list = function() {
pandora.$ui.videoPreview.options({ pandora.$ui.videoPreview.options({
position: event.position position: event.position
}); });
pandora.UI.set('videoPoints.' + data.id + '.position', event.position); if (pandora.user.ui.videoPoints[data.id]) {
pandora.UI.set('videoPoints.' + data.id + '.position', event.position);
} else {
pandora.UI.set('videoPoints.' + data.id, {'in': 0, out: 0, position: event.position});
}
} }
}, },
id: data.id, id: data.id,
options: { options: {
duration: data.duration, duration: data.duration,
find: 'cinema', find: isClipsQuery ? clipsQuery.conditions[0].value : '',
getImageURL: function(i) { getImageURL: function(i) {
return '/' + data.id + '/timeline16p' + i + '.png'; return '/' + data.id + '/timeline16p' + i + '.png';
}, },
position: pandora.user.ui.videoPoints[data.id] position: pandora.user.ui.videoPoints[data.id]
? pandora.user.ui.videoPoints[data.id].position : 0, ? pandora.user.ui.videoPoints[data.id].position : 0,
results: data.clips ? data.clips.map(function(clip) { results: isClipsQuery ? data.clips.map(function(clip) {
return {'in': clip['in'], out: clip.out}; return {'in': clip['in'], out: clip.out};
}) : [], }) : [],
subtitles: data.clips ? data.clips.map(function(clip) { subtitles: isClipsQuery ? data.clips.map(function(clip) {
return {'in': clip['in'], out: clip.out, text: clip.annotations[0].value}; return {'in': clip['in'], out: clip.out, text: clip.annotations[0].value};
}) : [] }) : []
} }
@ -319,6 +323,8 @@ pandora.ui.list = function() {
}; };
}, },
items: function(data, callback) { items: function(data, callback) {
var clipsQuery = pandora.getClipsQuery(),
isClipsQuery = !!clipsQuery.conditions.length;
pandora.api.find(Ox.extend(data, Ox.extend({ pandora.api.find(Ox.extend(data, Ox.extend({
query: pandora.user.ui.find query: pandora.user.ui.find
}, isClipsQuery ? {clips: { }, isClipsQuery ? {clips: {
@ -327,10 +333,7 @@ pandora.ui.list = function() {
keys: [] keys: []
}} : {})), callback); }} : {})), callback);
}, },
keys: Ox.merge( keys: ['clips', 'director', 'duration', 'id', 'posterRatio', 'title', 'year'],
['director', 'duration', 'id', 'posterRatio', 'title', 'year'],
isClipsQuery ? ['clips'] : []
),
selected: pandora.user.ui.listSelection, selected: pandora.user.ui.listSelection,
size: 192, size: 192,
sort: pandora.user.ui.listSort, sort: pandora.user.ui.listSort,