forked from 0x2620/pandora
0xDB info view: move reload button into menu
This commit is contained in:
parent
3c4e5f266c
commit
208161ecdb
1 changed files with 114 additions and 33 deletions
|
@ -7,6 +7,7 @@ pandora.ui.infoView = function(data) {
|
||||||
|
|
||||||
var ui = pandora.user.ui,
|
var ui = pandora.user.ui,
|
||||||
canEdit = pandora.site.capabilities.canEditMetadata[pandora.user.level],
|
canEdit = pandora.site.capabilities.canEditMetadata[pandora.user.level],
|
||||||
|
canRemove = pandora.site.capabilities.canRemoveItems[pandora.user.level],
|
||||||
canSeeAllMetadata = pandora.user.level != 'guest',
|
canSeeAllMetadata = pandora.user.level != 'guest',
|
||||||
css = {
|
css = {
|
||||||
marginTop: '4px',
|
marginTop: '4px',
|
||||||
|
@ -27,7 +28,90 @@ pandora.ui.infoView = function(data) {
|
||||||
margin = 16,
|
margin = 16,
|
||||||
statisticsWidth = 128,
|
statisticsWidth = 128,
|
||||||
|
|
||||||
that = Ox.Element(),
|
$bar = Ox.Bar({size: 16})
|
||||||
|
.bindEvent({
|
||||||
|
doubleclick: function(e) {
|
||||||
|
if ($(e.target).hasClass('OxBar')) {
|
||||||
|
$data.animate({scrollTop: 0}, 250);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
|
||||||
|
$options = Ox.MenuButton({
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
id: 'embed',
|
||||||
|
title: Ox._('Embed...'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'update',
|
||||||
|
title: Ox._('Update Metadata'),
|
||||||
|
disabled: !canEdit || isEditable
|
||||||
|
},
|
||||||
|
{},
|
||||||
|
{
|
||||||
|
id: 'delete',
|
||||||
|
title: Ox._('Delete {0}...', [pandora.site.itemName.singular]),
|
||||||
|
disabled: !canRemove
|
||||||
|
}
|
||||||
|
],
|
||||||
|
style: 'square',
|
||||||
|
title: 'set',
|
||||||
|
tooltip: Ox._('Options'),
|
||||||
|
type: 'image',
|
||||||
|
})
|
||||||
|
.css({
|
||||||
|
float: 'left',
|
||||||
|
borderColor: 'rgba(0, 0, 0, 0)',
|
||||||
|
background: 'rgba(0, 0, 0, 0)'
|
||||||
|
})
|
||||||
|
.bindEvent({
|
||||||
|
click: function(data) {
|
||||||
|
if (data.id == 'embed') {
|
||||||
|
// ...
|
||||||
|
} else if (data.id == 'update') {
|
||||||
|
updateMetadata();
|
||||||
|
} else if (data.id == 'delete') {
|
||||||
|
pandora.$ui.deleteItemDialog = pandora.ui.deleteItemDialog(data).open();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.appendTo($bar),
|
||||||
|
|
||||||
|
$edit = Ox.MenuButton({
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
id: 'insert',
|
||||||
|
title: Ox._('Insert HTML...'),
|
||||||
|
disabled: true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
style: 'square',
|
||||||
|
title: 'edit',
|
||||||
|
tooltip: Ox._('Edit'),
|
||||||
|
type: 'image',
|
||||||
|
})
|
||||||
|
.css({
|
||||||
|
float: 'right',
|
||||||
|
borderColor: 'rgba(0, 0, 0, 0)',
|
||||||
|
background: 'rgba(0, 0, 0, 0)'
|
||||||
|
})
|
||||||
|
.bindEvent({
|
||||||
|
click: function(data) {
|
||||||
|
// ...
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.appendTo($bar),
|
||||||
|
|
||||||
|
$main = Ox.Element(),
|
||||||
|
|
||||||
|
that = Ox.SplitPanel({
|
||||||
|
elements: [
|
||||||
|
{element: $bar, size: 16},
|
||||||
|
{element: $main}
|
||||||
|
],
|
||||||
|
orientation: 'vertical'
|
||||||
|
}),
|
||||||
|
|
||||||
$list,
|
$list,
|
||||||
|
|
||||||
|
@ -38,7 +122,7 @@ pandora.ui.infoView = function(data) {
|
||||||
top: 0,
|
top: 0,
|
||||||
right: 0
|
right: 0
|
||||||
})
|
})
|
||||||
.appendTo(that.$element),
|
.appendTo($main),
|
||||||
|
|
||||||
$data = Ox.Container()
|
$data = Ox.Container()
|
||||||
.css({
|
.css({
|
||||||
|
@ -139,6 +223,14 @@ pandora.ui.infoView = function(data) {
|
||||||
|
|
||||||
$browserImages = [];
|
$browserImages = [];
|
||||||
|
|
||||||
|
[$options, $edit].forEach(function($element) {
|
||||||
|
$element.find('input').css({
|
||||||
|
borderWidth: 0,
|
||||||
|
borderRadius: 0,
|
||||||
|
padding: '3px'
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
pandora.createLinks($text); // FIXME: this is wrong for editables that already have clickLink
|
pandora.createLinks($text); // FIXME: this is wrong for editables that already have clickLink
|
||||||
|
|
||||||
// Title -------------------------------------------------------------------
|
// Title -------------------------------------------------------------------
|
||||||
|
@ -461,18 +553,6 @@ pandora.ui.infoView = function(data) {
|
||||||
|
|
||||||
$('<div>').css({height: '16px'}).appendTo($text);
|
$('<div>').css({height: '16px'}).appendTo($text);
|
||||||
|
|
||||||
if (canEdit && !isEditable) {
|
|
||||||
$reloadButton = Ox.Button({
|
|
||||||
title: 'Reload Metadata',
|
|
||||||
width: 128
|
|
||||||
})
|
|
||||||
.css({marginBottom: '4px'})
|
|
||||||
.bindEvent({
|
|
||||||
click: reloadMetadata
|
|
||||||
})
|
|
||||||
.appendTo($statistics);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Mainstream Score, Arthouse Score ----------------------------------------
|
// Mainstream Score, Arthouse Score ----------------------------------------
|
||||||
|
|
||||||
['votes', 'likes'].forEach(function(key) {
|
['votes', 'likes'].forEach(function(key) {
|
||||||
|
@ -682,23 +762,6 @@ pandora.ui.infoView = function(data) {
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
function reloadMetadata() {
|
|
||||||
var item = ui.item;
|
|
||||||
// fixme: maybe there's a better method name for this?
|
|
||||||
$reloadButton.options({disabled: true, title: 'Reloading Metadata'});
|
|
||||||
pandora.api.updateExternalData({
|
|
||||||
id: ui.item
|
|
||||||
}, function(result) {
|
|
||||||
pandora.updateItemContext();
|
|
||||||
Ox.Request.clearCache();
|
|
||||||
if (ui.item == item && ui.itemView == 'info') {
|
|
||||||
pandora.$ui.contentPanel.replaceElement(
|
|
||||||
1, pandora.$ui.item = pandora.ui.item()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function renderCapabilities(rightsLevel) {
|
function renderCapabilities(rightsLevel) {
|
||||||
var capabilities = [].concat(
|
var capabilities = [].concat(
|
||||||
canEdit ? [{name: 'canSeeItem', symbol: 'Find'}] : [],
|
canEdit ? [{name: 'canSeeItem', symbol: 'Find'}] : [],
|
||||||
|
@ -823,7 +886,7 @@ pandora.ui.infoView = function(data) {
|
||||||
left: 0,
|
left: 0,
|
||||||
top: 0,
|
top: 0,
|
||||||
width: listWidth + 'px',
|
width: listWidth + 'px',
|
||||||
height: pandora.$ui.contentPanel.size(1) + 'px'
|
height: pandora.$ui.contentPanel.size(1) - 16 + 'px'
|
||||||
})
|
})
|
||||||
.bindEvent({
|
.bindEvent({
|
||||||
select: function(event) {
|
select: function(event) {
|
||||||
|
@ -969,6 +1032,24 @@ pandora.ui.infoView = function(data) {
|
||||||
pandora.UI.set({infoIconSize: iconSize});
|
pandora.UI.set({infoIconSize: iconSize});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function updateMetadata() {
|
||||||
|
var item = ui.item;
|
||||||
|
$options.disableItem('update');
|
||||||
|
// fixme: maybe there's a better method name for this?
|
||||||
|
pandora.api.updateExternalData({
|
||||||
|
id: ui.item
|
||||||
|
}, function(result) {
|
||||||
|
pandora.updateItemContext();
|
||||||
|
Ox.Request.clearCache();
|
||||||
|
if (ui.item == item && ui.itemView == 'info') {
|
||||||
|
pandora.$ui.contentPanel.replaceElement(
|
||||||
|
1, pandora.$ui.item = pandora.ui.item()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
$options.enableItem('update');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
that.reload = function() {
|
that.reload = function() {
|
||||||
var src = src = '/' + data.id + '/' + (
|
var src = src = '/' + data.id + '/' + (
|
||||||
ui.icons == 'posters'
|
ui.icons == 'posters'
|
||||||
|
@ -984,7 +1065,7 @@ pandora.ui.infoView = function(data) {
|
||||||
};
|
};
|
||||||
|
|
||||||
that.resize = function() {
|
that.resize = function() {
|
||||||
var height = pandora.$ui.contentPanel.size(1);
|
var height = pandora.$ui.contentPanel.size(1) - 16;
|
||||||
$list && $list.css({height: height + 'px'});
|
$list && $list.css({height: height + 'px'});
|
||||||
$data.css({height: height + 'px'});
|
$data.css({height: height + 'px'});
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue