2011-07-29 18:37:11 +00:00
|
|
|
// vim: et:ts=4:sw=4:sts=4:ft=javascript
|
|
|
|
|
2011-09-23 10:44:54 +00:00
|
|
|
pandora.ui.list = function() {
|
2011-10-03 16:08:08 +00:00
|
|
|
var that,
|
2011-09-23 10:44:54 +00:00
|
|
|
view = pandora.user.ui.listView,
|
2011-10-03 16:08:08 +00:00
|
|
|
preview = false;
|
2011-09-23 10:44:54 +00:00
|
|
|
|
2011-05-25 19:42:45 +00:00
|
|
|
if (view == 'list') {
|
|
|
|
/*
|
2011-09-17 17:40:15 +00:00
|
|
|
keys = Ox.unique(Ox.merge(
|
2011-06-06 15:48:11 +00:00
|
|
|
$.map(pandora.user.ui.lists[pandora.user.ui.list].columns, function(id) {
|
|
|
|
return Ox.getObjectById(pandora.site.sortKeys, id);
|
2011-05-25 19:42:45 +00:00
|
|
|
}),
|
2011-06-06 15:48:11 +00:00
|
|
|
pandora.site.sortKeys
|
2011-05-25 19:42:45 +00:00
|
|
|
));
|
|
|
|
Ox.print('$$$$', keys)
|
|
|
|
*/
|
2011-06-19 17:49:25 +00:00
|
|
|
that = Ox.TextList({
|
2011-09-04 04:15:12 +00:00
|
|
|
columns: /*Ox.merge([{
|
2011-09-04 01:52:41 +00:00
|
|
|
align: 'center',
|
|
|
|
defaultWidth: 16,
|
|
|
|
format: function(value, data) {
|
|
|
|
var icon, width, height, margin, marginCSS, borderRadius;
|
|
|
|
if (pandora.user.ui.icons == 'posters') {
|
|
|
|
icon = 'poster';
|
|
|
|
width = value < 1 ? Math.round(14 * value / 2) * 2 : 14;
|
|
|
|
height = value < 1 ? 14 : Math.round(14 / value / 2) * 2;
|
|
|
|
margin = value < 1 ? Math.floor(7 - width / 2) - 3 : Math.floor(7 - height / 2);
|
|
|
|
marginCSS = value < 1 ? '0 0 0 ' + margin + 'px' : margin + 'px 0 0 -3px';
|
|
|
|
borderRadius = 0;
|
|
|
|
} else {
|
|
|
|
icon = 'icon';
|
|
|
|
width = 14;
|
|
|
|
height = 14;
|
|
|
|
marginCSS = '0 0 0 -3px';
|
|
|
|
borderRadius = '3px';
|
|
|
|
}
|
|
|
|
return $('<img>').css({
|
|
|
|
width: width - 2 + 'px',
|
|
|
|
height: height - 2 + 'px',
|
|
|
|
border: '1px solid rgb(48, 48, 48)',
|
|
|
|
borderRadius: '2px',
|
|
|
|
margin: marginCSS,
|
|
|
|
background: '-webkit-linear-gradient(top, rgb(32, 32, 32), rgb(0, 0, 0))'
|
|
|
|
}).load(function() {
|
|
|
|
$(this).css({
|
|
|
|
width: width + 'px',
|
|
|
|
height: height + 'px',
|
|
|
|
border: 0,
|
|
|
|
borderRadius: borderRadius
|
|
|
|
//background: 'transparent'
|
|
|
|
})
|
|
|
|
}).attr({
|
|
|
|
src: '/' + data.id + '/' + icon + '14.jpg'
|
|
|
|
});
|
|
|
|
},
|
|
|
|
id: 'posterRatio',
|
|
|
|
operator: '+',
|
|
|
|
position: 0,
|
|
|
|
removable: true,
|
2011-09-04 04:15:12 +00:00
|
|
|
title: 'Poster',
|
|
|
|
*//*
|
2011-09-04 01:52:41 +00:00
|
|
|
title: $('<img>').attr({
|
|
|
|
src: Ox.UI.getImageURL(
|
|
|
|
pandora.user.ui.icons == 'posters'
|
|
|
|
? 'symbolSetPoster' : 'symbolIcon'
|
|
|
|
)
|
|
|
|
})
|
|
|
|
.css({
|
|
|
|
width: '12px',
|
|
|
|
height: '12px',
|
|
|
|
padding: '2px',
|
|
|
|
}),
|
2011-09-04 04:15:12 +00:00
|
|
|
*//*
|
2011-09-04 01:52:41 +00:00
|
|
|
visible: true,
|
|
|
|
width: 16
|
2011-09-04 04:15:12 +00:00
|
|
|
}], */Ox.map(pandora.site.sortKeys, function(key) {
|
2011-09-23 10:44:54 +00:00
|
|
|
var position = pandora.user.ui.listColumns.indexOf(key.id);
|
2011-05-25 19:42:45 +00:00
|
|
|
return {
|
|
|
|
align: ['string', 'text'].indexOf(
|
|
|
|
Ox.isArray(key.type) ? key.type[0]: key.type
|
|
|
|
) > -1 ? 'left' : 'right',
|
|
|
|
defaultWidth: key.columnWidth,
|
|
|
|
format: key.format,
|
|
|
|
id: key.id,
|
|
|
|
operator: pandora.getSortOperator(key.id),
|
|
|
|
position: position,
|
|
|
|
removable: !key.columnRequired,
|
|
|
|
title: key.title,
|
|
|
|
type: key.type,
|
|
|
|
unique: key.id == 'id',
|
|
|
|
visible: position > -1,
|
2011-09-23 10:44:54 +00:00
|
|
|
width: pandora.user.ui.listColumnWidth[key.id] || key.columnWidth
|
2011-05-25 19:42:45 +00:00
|
|
|
};
|
2011-09-04 04:15:12 +00:00
|
|
|
})/*)*/,
|
2011-05-25 19:42:45 +00:00
|
|
|
columnsMovable: true,
|
|
|
|
columnsRemovable: true,
|
|
|
|
columnsResizable: true,
|
|
|
|
columnsVisible: true,
|
2011-09-01 09:17:49 +00:00
|
|
|
draggable: true,
|
2011-05-25 19:42:45 +00:00
|
|
|
id: 'list',
|
|
|
|
items: function(data, callback) {
|
|
|
|
//Ox.print('data, pandora.Query.toObject', data, pandora.Query.toObject())
|
2011-08-24 06:32:59 +00:00
|
|
|
pandora.api.find(Ox.extend(data, {
|
2011-09-23 10:44:54 +00:00
|
|
|
query: pandora.user.ui.find
|
2011-05-25 19:42:45 +00:00
|
|
|
}), callback);
|
|
|
|
},
|
|
|
|
scrollbarVisible: true,
|
2011-09-23 10:44:54 +00:00
|
|
|
selected: pandora.user.ui.listSelection,
|
|
|
|
sort: pandora.user.ui.listSort
|
2011-05-25 19:42:45 +00:00
|
|
|
})
|
|
|
|
.bindEvent({
|
2011-08-18 07:54:46 +00:00
|
|
|
columnchange: function(data) {
|
2011-06-27 13:39:35 +00:00
|
|
|
var columnWidth = {};
|
2011-09-26 16:46:31 +00:00
|
|
|
pandora.UI.set({listColumns: data.ids});
|
2011-05-25 19:42:45 +00:00
|
|
|
/*
|
|
|
|
data.ids.forEach(function(id) {
|
|
|
|
columnWidth[id] =
|
2011-09-26 16:46:31 +00:00
|
|
|
pandora.user.ui.lists[pandora.user.ui.list].columnWidth[id]
|
|
|
|
|| Ox.getObjectById(pandora.site.sortKeys, id).width
|
2011-05-25 19:42:45 +00:00
|
|
|
});
|
2011-09-26 16:46:31 +00:00
|
|
|
pandora.UI.set({listColumnWidth: columnWidth});
|
2011-05-25 19:42:45 +00:00
|
|
|
*/
|
|
|
|
},
|
2011-08-18 07:54:46 +00:00
|
|
|
columnresize: function(data) {
|
2011-09-26 16:46:31 +00:00
|
|
|
pandora.UI.set('listColumnWidth.' + data.id, data.width);
|
2011-05-25 19:42:45 +00:00
|
|
|
},
|
2011-08-18 07:54:46 +00:00
|
|
|
resize: function(data) { // this is the resize event of the split panel
|
2011-05-25 19:42:45 +00:00
|
|
|
that.size();
|
|
|
|
},
|
2011-08-18 07:54:46 +00:00
|
|
|
sort: function(data) {
|
|
|
|
Ox.print('---- SORT ----', data)
|
2011-09-23 10:44:54 +00:00
|
|
|
pandora.UI.set({
|
|
|
|
listSort: [{key: data.key, operator: data.operator}]
|
|
|
|
});
|
2011-05-25 19:42:45 +00:00
|
|
|
}
|
|
|
|
});
|
2011-09-17 07:07:59 +00:00
|
|
|
} else if (view == 'grid') {
|
2011-06-19 17:49:25 +00:00
|
|
|
that = Ox.IconList({
|
2011-08-17 15:52:58 +00:00
|
|
|
borderRadius: pandora.user.ui.icons == 'posters' ? 0 : 16,
|
2011-08-07 20:25:33 +00:00
|
|
|
defaultRatio: pandora.user.ui.icons == 'posters' ? 5/8 : 1,
|
2011-09-01 09:17:49 +00:00
|
|
|
draggable: true,
|
2011-05-25 19:42:45 +00:00
|
|
|
id: 'list',
|
|
|
|
item: function(data, sort, size) {
|
2011-09-23 10:44:54 +00:00
|
|
|
var ui = pandora.user.ui,
|
|
|
|
ratio = ui.icons == 'posters'
|
|
|
|
? (ui.showSitePoster ? 5/8 : data.posterRatio) : 1,
|
2011-10-09 12:46:35 +00:00
|
|
|
url = '/' + data.id + '/' + (
|
|
|
|
ui.icons == 'posters'
|
|
|
|
? (ui.showSitePoster ? 'siteposter' : 'poster') : 'icon'
|
|
|
|
) + size + '.jpg',
|
2011-10-14 00:13:42 +00:00
|
|
|
format, info, sortKey = sort[0].key;
|
2011-10-09 13:13:11 +00:00
|
|
|
if (['title', 'director'].indexOf(sortKey) > -1) {
|
|
|
|
info = data['year'];
|
2011-10-09 12:46:35 +00:00
|
|
|
} else {
|
2011-10-13 12:24:13 +00:00
|
|
|
format = pandora.getSortKeyData(sortKey).format;
|
2011-10-09 12:46:35 +00:00
|
|
|
info = format
|
|
|
|
? Ox['format' + Ox.toTitleCase(format.type)]
|
|
|
|
.apply(this, Ox.merge([data[sortKey]], format.args || []))
|
|
|
|
: data[sortKey];
|
|
|
|
}
|
2011-05-25 19:42:45 +00:00
|
|
|
size = size || 128;
|
|
|
|
return {
|
2011-08-24 06:19:34 +00:00
|
|
|
height: Math.round(ratio <= 1 ? size : size / ratio),
|
2011-08-06 18:00:15 +00:00
|
|
|
id: data.id,
|
2011-09-29 06:16:54 +00:00
|
|
|
info: info,
|
2011-05-25 19:42:45 +00:00
|
|
|
title: data.title + (data.director.length ? ' (' + data.director.join(', ') + ')' : ''),
|
2011-10-09 12:46:35 +00:00
|
|
|
url: url,
|
2011-08-24 06:19:34 +00:00
|
|
|
width: Math.round(ratio >= 1 ? size : size * ratio)
|
2011-05-25 19:42:45 +00:00
|
|
|
};
|
|
|
|
},
|
|
|
|
items: function(data, callback) {
|
2011-08-24 06:32:59 +00:00
|
|
|
pandora.api.find(Ox.extend(data, {
|
2011-09-23 10:44:54 +00:00
|
|
|
query: pandora.user.ui.find
|
2011-05-25 19:42:45 +00:00
|
|
|
}), callback);
|
|
|
|
},
|
2011-08-19 12:33:02 +00:00
|
|
|
keys: ['director', 'id', 'posterRatio', 'title', 'year'],
|
2011-09-23 10:44:54 +00:00
|
|
|
selected: pandora.user.ui.listSelection,
|
2011-05-25 19:42:45 +00:00
|
|
|
size: 128,
|
2011-09-23 10:44:54 +00:00
|
|
|
sort: pandora.user.ui.listSort,
|
2011-05-25 19:42:45 +00:00
|
|
|
unique: 'id'
|
2011-06-16 20:00:10 +00:00
|
|
|
});
|
2011-06-27 13:39:35 +00:00
|
|
|
} else if (view == 'info') {
|
2011-08-19 02:13:16 +00:00
|
|
|
that = Ox.Element().css({margin: '16px'}).html(view + ' results view still missing.');
|
|
|
|
} else if (view == 'clips') {
|
2011-10-17 15:13:37 +00:00
|
|
|
that = Ox.InfoList({
|
|
|
|
borderRadius: pandora.user.ui.icons == 'posters' ? 0 : 16,
|
|
|
|
defaultRatio: pandora.user.ui.icons == 'posters' ? 5/8 : 1,
|
|
|
|
draggable: true,
|
|
|
|
id: 'list',
|
|
|
|
item: function(data, sort, size) {
|
|
|
|
size = 128;
|
|
|
|
var ui = pandora.user.ui,
|
|
|
|
ratio = ui.icons == 'posters'
|
|
|
|
? (ui.showSitePoster ? 5/8 : data.posterRatio) : 1,
|
|
|
|
url = '/' + data.id + '/' + (
|
|
|
|
ui.icons == 'posters'
|
|
|
|
? (ui.showSitePoster ? 'siteposter' : 'poster') : 'icon'
|
|
|
|
) + size + '.jpg',
|
|
|
|
format, info, sortKey = sort[0].key;
|
|
|
|
if (['title', 'director'].indexOf(sortKey) > -1) {
|
|
|
|
info = data['year'];
|
|
|
|
} else {
|
|
|
|
format = pandora.getSortKeyData(sortKey).format;
|
|
|
|
info = format
|
|
|
|
? Ox['format' + Ox.toTitleCase(format.type)]
|
|
|
|
.apply(this, Ox.merge([data[sortKey]], format.args || []))
|
|
|
|
: data[sortKey];
|
|
|
|
}
|
|
|
|
return {
|
|
|
|
icon: {
|
|
|
|
height: Math.round(ratio <= 1 ? size : size / ratio),
|
|
|
|
id: data.id,
|
|
|
|
info: info,
|
|
|
|
title: data.title + (data.director.length ? ' (' + data.director.join(', ') + ')' : ''),
|
|
|
|
url: url,
|
|
|
|
width: Math.round(ratio >= 1 ? size : size * ratio)
|
|
|
|
},
|
|
|
|
info: {
|
|
|
|
css: {height: '192px'},
|
|
|
|
element: Ox.IconList,
|
|
|
|
id: data.id,
|
|
|
|
options: {
|
|
|
|
item: function(data, sort, size) {
|
|
|
|
size = size || 128; // fixme: is this needed?
|
|
|
|
var width = data.videoRatio > 1 ? size : Math.round(size * data.videoRatio),
|
|
|
|
height = data.videoRatio > 1 ? Math.round(size / data.videoRatio) : size;
|
|
|
|
url = '/' + data.id.split('/')[0] + '/' + height + 'p' + data['in'] + '.jpg';
|
|
|
|
return {
|
|
|
|
height: height,
|
|
|
|
id: data.id,
|
|
|
|
info: Ox.formatDuration(data['in']) + ' - ' + Ox.formatDuration(data.out),
|
|
|
|
title: '',
|
|
|
|
url: url,
|
|
|
|
width: width
|
|
|
|
};
|
|
|
|
},
|
|
|
|
items: pandora.getClipPoints(data.duration, 5).map(function(points) {
|
|
|
|
return Ox.extend(points, {
|
|
|
|
id: data.id + '/' + points['in'],
|
|
|
|
videoRatio: data.videoRatio
|
|
|
|
});
|
|
|
|
}),
|
|
|
|
max: 1,
|
|
|
|
orientation: 'horizontal',
|
|
|
|
size: 128,
|
|
|
|
sort: [{key: 'in', operator: '+'}],
|
|
|
|
unique: 'id'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
},
|
|
|
|
items: function(data, callback) {
|
|
|
|
pandora.api.find(Ox.extend(data, {
|
|
|
|
query: pandora.user.ui.find,
|
|
|
|
// clipsQuery: ...
|
|
|
|
}), callback);
|
|
|
|
},
|
|
|
|
keys: ['director', 'duration', 'id', 'posterRatio', 'title', 'videoRatio', 'year'],
|
|
|
|
selected: pandora.user.ui.listSelection,
|
|
|
|
size: 192,
|
|
|
|
sort: pandora.user.ui.listSort,
|
|
|
|
unique: 'id'
|
|
|
|
})
|
|
|
|
.bindEvent({
|
|
|
|
key_left: function() {
|
|
|
|
// ...
|
|
|
|
},
|
|
|
|
key_right: function() {
|
|
|
|
// ...
|
|
|
|
}
|
|
|
|
});
|
2011-08-19 02:13:16 +00:00
|
|
|
} else if (view == 'timelines') {
|
|
|
|
that = Ox.InfoList({
|
2011-08-18 11:32:47 +00:00
|
|
|
borderRadius: pandora.user.ui.icons == 'posters' ? 0 : 16,
|
|
|
|
defaultRatio: pandora.user.ui.icons == 'posters' ? 5/8 : 1,
|
2011-10-17 11:25:55 +00:00
|
|
|
draggable: true,
|
2011-08-18 11:32:47 +00:00
|
|
|
id: 'list',
|
|
|
|
item: function(data, sort, size) {
|
2011-08-19 06:40:19 +00:00
|
|
|
size = 128;
|
2011-10-16 17:46:57 +00:00
|
|
|
var ui = pandora.user.ui,
|
|
|
|
ratio = ui.icons == 'posters'
|
|
|
|
? (ui.showSitePoster ? 5/8 : data.posterRatio) : 1,
|
|
|
|
url = '/' + data.id + '/' + (
|
|
|
|
ui.icons == 'posters'
|
|
|
|
? (ui.showSitePoster ? 'siteposter' : 'poster') : 'icon'
|
|
|
|
) + size + '.jpg',
|
|
|
|
format, info, sortKey = sort[0].key;
|
|
|
|
if (['title', 'director'].indexOf(sortKey) > -1) {
|
|
|
|
info = data['year'];
|
|
|
|
} else {
|
|
|
|
format = pandora.getSortKeyData(sortKey).format;
|
|
|
|
info = format
|
|
|
|
? Ox['format' + Ox.toTitleCase(format.type)]
|
|
|
|
.apply(this, Ox.merge([data[sortKey]], format.args || []))
|
|
|
|
: data[sortKey];
|
2011-10-17 15:13:37 +00:00
|
|
|
}
|
2011-08-18 11:32:47 +00:00
|
|
|
return {
|
2011-08-19 06:40:19 +00:00
|
|
|
icon: {
|
2011-10-16 17:46:57 +00:00
|
|
|
height: Math.round(ratio <= 1 ? size : size / ratio),
|
2011-08-19 06:40:19 +00:00
|
|
|
id: data.id,
|
2011-10-16 17:46:57 +00:00
|
|
|
info: info,
|
2011-08-19 06:40:19 +00:00
|
|
|
title: data.title + (data.director.length ? ' (' + data.director.join(', ') + ')' : ''),
|
2011-10-16 17:46:57 +00:00
|
|
|
url: url,
|
|
|
|
width: Math.round(ratio >= 1 ? size : size * ratio)
|
2011-08-19 06:40:19 +00:00
|
|
|
},
|
|
|
|
info: {
|
2011-10-17 15:13:37 +00:00
|
|
|
css: {marginTop: '2px'},
|
2011-08-19 06:40:19 +00:00
|
|
|
element: Ox.BlockVideoTimeline,
|
2011-10-17 10:19:17 +00:00
|
|
|
events: {
|
|
|
|
position: function(event) {
|
|
|
|
pandora.$ui.videoPreview.options({
|
|
|
|
position: event.position
|
|
|
|
});
|
|
|
|
pandora.UI.set('videoPoints.' + data.id + '.position', event.position);
|
|
|
|
}
|
|
|
|
},
|
2011-08-19 06:40:19 +00:00
|
|
|
id: data.id,
|
|
|
|
options: {
|
|
|
|
duration: data.duration,
|
2011-10-17 15:13:37 +00:00
|
|
|
// find: '...',
|
2011-10-17 10:19:17 +00:00
|
|
|
getImageURL: function(i) {
|
|
|
|
return '/' + data.id + '/timeline16p' + i + '.png';
|
|
|
|
},
|
|
|
|
position: pandora.user.ui.videoPoints[data.id]
|
2011-10-17 15:13:37 +00:00
|
|
|
? pandora.user.ui.videoPoints[data.id].position : 0,
|
|
|
|
// subtitles: data.subtitles
|
2011-08-19 06:40:19 +00:00
|
|
|
}
|
|
|
|
}
|
2011-08-18 11:32:47 +00:00
|
|
|
};
|
|
|
|
},
|
|
|
|
items: function(data, callback) {
|
2011-08-24 06:32:59 +00:00
|
|
|
pandora.api.find(Ox.extend(data, {
|
2011-10-17 15:13:37 +00:00
|
|
|
query: pandora.user.ui.find,
|
|
|
|
// clipsQuery: ...
|
2011-08-18 11:32:47 +00:00
|
|
|
}), callback);
|
|
|
|
},
|
2011-08-19 12:33:02 +00:00
|
|
|
keys: ['director', 'duration', 'id', 'posterRatio', 'title', 'year'],
|
2011-09-23 10:44:54 +00:00
|
|
|
selected: pandora.user.ui.listSelection,
|
2011-08-19 02:13:16 +00:00
|
|
|
size: 192,
|
2011-09-23 10:44:54 +00:00
|
|
|
sort: pandora.user.ui.listSort,
|
2011-08-18 11:32:47 +00:00
|
|
|
unique: 'id'
|
2011-10-17 15:13:37 +00:00
|
|
|
})
|
|
|
|
.bindEvent({
|
|
|
|
key_left: function() {
|
|
|
|
// ...
|
|
|
|
},
|
|
|
|
key_right: function() {
|
|
|
|
// ...
|
|
|
|
}
|
|
|
|
});
|
2011-06-27 13:39:35 +00:00
|
|
|
} else if (view == 'maps') {
|
|
|
|
that = Ox.Element().css({margin: '16px'}).html(view + ' results view still missing.');
|
|
|
|
} else if (view == 'calendars') {
|
|
|
|
that = Ox.Element().css({margin: '16px'}).html(view + ' results view still missing.');
|
2011-06-16 20:00:10 +00:00
|
|
|
} else if (view == 'clip') {
|
2011-09-30 10:33:45 +00:00
|
|
|
that = pandora.ui.clipList();
|
2011-10-07 09:59:27 +00:00
|
|
|
} else if (view == 'video') {
|
|
|
|
that = pandora.ui.clipPlayer();
|
2011-10-03 13:23:11 +00:00
|
|
|
} else if (['map', 'calendar'].indexOf(view) > -1) {
|
|
|
|
that = pandora.ui.navigationView(view);
|
2011-05-25 19:42:45 +00:00
|
|
|
} else {
|
2011-09-03 23:04:48 +00:00
|
|
|
// fixme: ???
|
2011-06-19 17:49:25 +00:00
|
|
|
$list = Ox.Element('<div>')
|
2011-05-25 19:42:45 +00:00
|
|
|
.css({
|
|
|
|
width: '100px',
|
|
|
|
height: '100px',
|
|
|
|
background: 'red'
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2011-10-17 15:13:37 +00:00
|
|
|
if (['list', 'grid', 'clips', 'timelines'].indexOf(view) > -1) {
|
2011-09-03 23:04:48 +00:00
|
|
|
|
2011-09-04 12:43:59 +00:00
|
|
|
pandora.enableDragAndDrop(that, true);
|
2011-08-28 06:24:01 +00:00
|
|
|
|
2011-09-04 12:43:59 +00:00
|
|
|
that.bindEvent({
|
|
|
|
closepreview: function(data) {
|
|
|
|
pandora.$ui.previewDialog.close();
|
|
|
|
preview = false;
|
|
|
|
//delete pandora.$ui.previewDialog;
|
|
|
|
},
|
|
|
|
copy: function(data) {
|
|
|
|
Ox.Clipboard.copy({
|
|
|
|
items: data.ids,
|
2011-09-09 12:09:05 +00:00
|
|
|
text: data.ids.map(function(id) {
|
2011-09-04 12:43:59 +00:00
|
|
|
return pandora.$ui.list.value(id, 'title');
|
|
|
|
}).join('\n')
|
2011-09-03 23:04:48 +00:00
|
|
|
});
|
2011-09-04 12:43:59 +00:00
|
|
|
},
|
|
|
|
'delete': function(data) {
|
|
|
|
pandora.getListData().editable && pandora.api.removeListItems({
|
2011-09-28 00:10:26 +00:00
|
|
|
list: pandora.user.ui._list,
|
2011-09-04 12:43:59 +00:00
|
|
|
items: data.ids
|
|
|
|
}, pandora.reloadList);
|
|
|
|
},
|
|
|
|
init: function(data) {
|
|
|
|
pandora.$ui.total.html(pandora.ui.status('total', data));
|
|
|
|
data = [];
|
2011-09-17 18:36:30 +00:00
|
|
|
pandora.site.totals.forEach(function(v) {
|
2011-09-04 12:43:59 +00:00
|
|
|
data[v.id] = 0;
|
|
|
|
});
|
|
|
|
pandora.$ui.selected.html(pandora.ui.status('selected', data));
|
|
|
|
},
|
|
|
|
open: function(data) {
|
2011-10-17 10:19:17 +00:00
|
|
|
pandora.UI.set(Ox.extend({
|
|
|
|
item: data.ids[0]
|
|
|
|
}, view == 'timelines' && data.isSpecialTarget ? {
|
|
|
|
itemView: pandora.user.ui.videoView
|
|
|
|
} : {}));
|
2011-09-04 12:43:59 +00:00
|
|
|
},
|
|
|
|
openpreview: function(data) {
|
|
|
|
pandora.requests.preview && pandora.api.cancel(pandora.requests.preview);
|
|
|
|
pandora.requests.preview = pandora.api.find({
|
|
|
|
keys: ['director', 'id', 'posterRatio', 'title'],
|
|
|
|
query: {
|
2011-09-17 18:36:30 +00:00
|
|
|
conditions: data.ids.map(function(id) {
|
2011-09-04 12:43:59 +00:00
|
|
|
return {
|
|
|
|
key: 'id',
|
|
|
|
value: id,
|
2011-09-28 01:40:36 +00:00
|
|
|
operator: '=='
|
2011-09-03 23:04:48 +00:00
|
|
|
}
|
2011-09-04 12:43:59 +00:00
|
|
|
}),
|
|
|
|
operator: '|'
|
|
|
|
}
|
|
|
|
}, function(result) {
|
|
|
|
var item = result.data.items[0],
|
|
|
|
title = item.title + ' (' + item.director + ')'
|
|
|
|
ratio = item.posterRatio,
|
|
|
|
windowWidth = window.innerWidth * 0.8,
|
|
|
|
windowHeight = window.innerHeight * 0.8,
|
|
|
|
windowRatio = windowWidth / windowHeight,
|
|
|
|
width = Math.round(ratio > windowRatio ? windowWidth : windowHeight * ratio),
|
|
|
|
height = Math.round(ratio < windowRatio ? windowHeight : windowWidth / ratio);
|
|
|
|
pandora.$ui.previewImage = $('<img>')
|
|
|
|
.attr({src: '/' + item.id + '/poster128.jpg'})
|
|
|
|
.css({width: width + 'px', height: height + 'px'})
|
|
|
|
$('<img>').load(function() {
|
|
|
|
pandora.$ui.previewImage.attr({src: $(this).attr('src')});
|
|
|
|
})
|
|
|
|
.attr({src: '/' + item.id + '/poster1024.jpg'});
|
|
|
|
if (!preview) {
|
|
|
|
if (!pandora.$ui.previewDialog) {
|
|
|
|
pandora.$ui.previewDialog = Ox.Dialog({
|
|
|
|
closeButton: true,
|
|
|
|
content: pandora.$ui.previewImage,
|
|
|
|
fixedRatio: true,
|
|
|
|
focus: false,
|
|
|
|
height: height,
|
|
|
|
maximizeButton: true,
|
|
|
|
title: title,
|
|
|
|
width: width
|
|
|
|
})
|
|
|
|
.bindEvent({
|
|
|
|
close: function() {
|
|
|
|
that.closePreview();
|
|
|
|
preview = false;
|
|
|
|
},
|
2011-09-17 17:40:15 +00:00
|
|
|
resize: function(data) {
|
2011-09-04 12:43:59 +00:00
|
|
|
pandora.$ui.previewImage.css({
|
2011-09-17 17:40:15 +00:00
|
|
|
width: data.width + 'px',
|
|
|
|
height: data.height + 'px'
|
2011-09-04 12:43:59 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
})
|
|
|
|
.open();
|
|
|
|
} else {
|
|
|
|
pandora.$ui.previewDialog.options({
|
|
|
|
content: pandora.$ui.previewImage,
|
|
|
|
height: height,
|
|
|
|
title: title,
|
|
|
|
width: width
|
|
|
|
})
|
|
|
|
.open();
|
2011-05-25 19:42:45 +00:00
|
|
|
}
|
2011-09-04 12:43:59 +00:00
|
|
|
preview = true;
|
2011-08-08 07:48:13 +00:00
|
|
|
} else {
|
2011-09-04 12:43:59 +00:00
|
|
|
pandora.$ui.previewDialog.options({
|
2011-08-08 07:48:13 +00:00
|
|
|
content: pandora.$ui.previewImage,
|
|
|
|
title: title,
|
|
|
|
})
|
2011-09-04 12:43:59 +00:00
|
|
|
.setSize(width, height);
|
2011-08-08 07:48:13 +00:00
|
|
|
}
|
2011-09-04 12:43:59 +00:00
|
|
|
});
|
|
|
|
},
|
|
|
|
paste: function(data) {
|
|
|
|
data.items && pandora.getListData().editable && pandora.api.addListItems({
|
2011-09-28 00:10:26 +00:00
|
|
|
list: pandora.user.ui._list,
|
2011-09-04 12:43:59 +00:00
|
|
|
items: data.items
|
|
|
|
}, pandora.reloadList);
|
|
|
|
},
|
|
|
|
select: function(data) {
|
|
|
|
var $still, $timeline;
|
2011-09-23 10:44:54 +00:00
|
|
|
pandora.UI.set('listSelection', data.ids);
|
2011-09-04 12:43:59 +00:00
|
|
|
if (data.ids.length) {
|
|
|
|
pandora.$ui.mainMenu.enableItem('copy');
|
|
|
|
pandora.$ui.mainMenu.enableItem('openmovie');
|
2011-05-25 19:42:45 +00:00
|
|
|
} else {
|
2011-09-04 12:43:59 +00:00
|
|
|
pandora.$ui.mainMenu.disableItem('copy');
|
|
|
|
pandora.$ui.mainMenu.disableItem('openmovie');
|
2011-05-25 19:42:45 +00:00
|
|
|
}
|
2011-09-18 21:18:05 +00:00
|
|
|
pandora.$ui.leftPanel.replaceElement(2, pandora.$ui.info = pandora.ui.info());
|
2011-09-04 12:43:59 +00:00
|
|
|
pandora.api.find({
|
|
|
|
query: {
|
2011-09-17 18:36:30 +00:00
|
|
|
conditions: data.ids.map(function(id) {
|
2011-09-04 12:43:59 +00:00
|
|
|
return {
|
|
|
|
key: 'id',
|
|
|
|
value: id,
|
2011-09-28 01:40:36 +00:00
|
|
|
operator: '=='
|
2011-09-04 12:43:59 +00:00
|
|
|
}
|
|
|
|
}),
|
|
|
|
operator: '|'
|
|
|
|
}
|
|
|
|
}, function(result) {
|
|
|
|
pandora.$ui.selected.html(pandora.ui.status('selected', result.data));
|
|
|
|
});
|
2011-10-13 12:04:27 +00:00
|
|
|
},
|
|
|
|
pandora_listsort: function(data) {
|
|
|
|
that.options({sort: data.value});
|
2011-05-25 19:42:45 +00:00
|
|
|
}
|
2011-09-04 12:43:59 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2011-10-17 10:19:17 +00:00
|
|
|
if (['grid', 'timelines'].indexOf(pandora.user.ui.listView) > -1) {
|
2011-09-27 23:30:13 +00:00
|
|
|
that.bindEvent({
|
|
|
|
pandora_icons: function(data) {
|
2011-09-23 10:44:54 +00:00
|
|
|
that.options({
|
2011-09-27 23:30:13 +00:00
|
|
|
borderRadius: data.value == 'posters' ? 0 : 16,
|
|
|
|
defaultRatio: data.value == 'posters' ? 5/8 : 1
|
2011-09-23 10:44:54 +00:00
|
|
|
}).reloadList(true);
|
|
|
|
},
|
2011-09-27 23:30:13 +00:00
|
|
|
pandora_showsiteposter: function() {
|
2011-09-28 00:10:26 +00:00
|
|
|
pandora.user.ui.icons == 'posters' && that.reloadList(true);
|
2011-09-23 10:44:54 +00:00
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2011-05-25 19:42:45 +00:00
|
|
|
return that;
|
2011-09-04 12:43:59 +00:00
|
|
|
|
2011-05-25 19:42:45 +00:00
|
|
|
};
|
|
|
|
|