forked from 0x2620/pandora
embedList.js -> embedGrid.js
This commit is contained in:
parent
4c8f87b2d0
commit
be21e64f59
2 changed files with 82 additions and 13 deletions
82
static/js/embedGrid.js
Normal file
82
static/js/embedGrid.js
Normal file
|
@ -0,0 +1,82 @@
|
|||
'use strict';
|
||||
|
||||
pandora.ui.embedGrid = function() {
|
||||
|
||||
var ui = pandora.user.ui,
|
||||
|
||||
$list = Ox.IconList({
|
||||
borderRadius: ui.icons == 'posters' ? 0 : 16,
|
||||
defaultRatio: ui.icons == 'posters' ? pandora.site.posters.ratio : 1,
|
||||
id: 'list',
|
||||
item: function(data, sort, size) {
|
||||
var ratio = ui.icons == 'posters'
|
||||
? (ui.showSitePosters ? pandora.site.posters.ratio : data.posterRatio) : 1,
|
||||
url = '/' + data.id + '/' + (
|
||||
ui.icons == 'posters'
|
||||
? (ui.showSitePosters ? 'siteposter' : 'poster') : 'icon'
|
||||
) + size + '.jpg?' + data.modified,
|
||||
format, info, sortKey = sort[0].key;
|
||||
if (['title', 'director', 'random'].indexOf(sortKey) > -1) {
|
||||
info = data['year'];
|
||||
} else {
|
||||
format = pandora.getSortKeyData(sortKey).format;
|
||||
if (format) {
|
||||
info = (
|
||||
/^color/.test(format.type.toLowerCase()) ? Ox.Theme : Ox
|
||||
)['format' + Ox.toTitleCase(format.type)].apply(
|
||||
this, [data[sortKey]].concat(format.args || [])
|
||||
);
|
||||
if (sortKey == 'rightslevel') {
|
||||
info.css({width: size * 0.75 + 'px'});
|
||||
}
|
||||
} else {
|
||||
info = data[sortKey];
|
||||
}
|
||||
}
|
||||
size = size || 128;
|
||||
return {
|
||||
height: Math.round(ratio <= 1 ? size : size / ratio),
|
||||
id: data.id,
|
||||
info: info,
|
||||
title: data.title + (data.director && data.director.length ? ' (' + data.director.join(', ') + ')' : ''),
|
||||
url: url,
|
||||
width: Math.round(ratio >= 1 ? size : size * ratio)
|
||||
};
|
||||
},
|
||||
items: function(data, callback) {
|
||||
pandora.api.find(Ox.extend(data, {
|
||||
query: ui.find
|
||||
}), callback);
|
||||
return Ox.clone(data, true);
|
||||
},
|
||||
keys: ['director', 'id', 'modified', 'posterRatio', 'title', 'year'],
|
||||
selected: ui.listSelection,
|
||||
size: 128,
|
||||
sort: ui.listSort,
|
||||
unique: 'id'
|
||||
})
|
||||
.addClass('OxMedia')
|
||||
.bindEvent({
|
||||
open: function() {
|
||||
window.open('/' + item + '', '_blank');
|
||||
}
|
||||
}),
|
||||
|
||||
$statusbar = Ox.Bar({size: 16}),
|
||||
|
||||
that = Ox.SplitPanel({
|
||||
elements: [
|
||||
{element: $list},
|
||||
{element: $statusbar, size: 16}
|
||||
],
|
||||
orientation: 'vertical'
|
||||
});
|
||||
|
||||
that.resizePanel = function() {
|
||||
$list.size();
|
||||
return that;
|
||||
};
|
||||
|
||||
return that;
|
||||
|
||||
};
|
|
@ -1,13 +0,0 @@
|
|||
'use strict';
|
||||
|
||||
pandora.ui.embedList = function() {
|
||||
|
||||
var that = Ox.Element();
|
||||
|
||||
that.resizePanel = function() {
|
||||
return that;
|
||||
};
|
||||
|
||||
return that;
|
||||
|
||||
};
|
Loading…
Reference in a new issue