pandora/static/js/pandora/allItems.js

130 lines
4.1 KiB
JavaScript

'use strict';
pandora.ui.allItems = function() {
var canAddItems = !pandora.site.itemRequiresVideo && pandora.site.capabilities.canAddItems[pandora.user.level],
canUploadVideo = pandora.site.capabilities.canAddItems[pandora.user.level],
that = Ox.Element()
.addClass('OxSelectableElement' + (pandora.user.ui._list ? '' : ' OxSelected'))
.css({
height: '16px',
cursor: 'default',
overflow: 'hidden'
})
.on({
click: function() {
that.gainFocus();
if (pandora.user.ui.section == 'items') {
pandora.user.ui._list && pandora.UI.set('find', {conditions: [], operator: '&'});
} else {
pandora.UI.set(pandora.user.ui.section.slice(0, -1), '');
}
}
})
.bindEvent({
pandora_find: updateSelected,
pandora_section: updateSelected,
pandora_text: updateSelected
}),
$icon = $('<img>')
.attr({src: '/static/png/icon.png'})
.css({float: 'left', width: '14px', height: '14px', margin: '1px'})
.appendTo(that),
$name = $('<div>')
.css({
float: 'left',
height: '14px',
margin: '1px 4px 1px 3px',
textOverflow: 'ellipsis',
overflow: 'hidden',
whiteSpace: 'nowrap'
})
.html(
pandora.user.ui.section == 'items'
? 'All ' + pandora.site.itemName.plural
: pandora.site.site.name + ' ' + Ox.toTitleCase(pandora.user.ui.section)
)
.appendTo(that),
$items;
if (pandora.user.ui.section == 'items') {
$items = $('<div>')
.css({
float: 'left',
width: '42px',
margin: '1px 4px 1px 3px',
textAlign: 'right'
})
.appendTo(that);
Ox.Button({
style: 'symbol',
title: 'add',
tooltip: canAddItems ? 'Add ' + pandora.site.itemName.singular : '',
type: 'image'
})
.css({opacity: canAddItems ? 1 : 0.25})
.bindEvent({
click: pandora.addItem
})
.appendTo(that);
Ox.Button({
style: 'symbol',
title: 'upload',
tooltip: canUploadVideo ? 'Upload Video...' : '',
type: 'image'
})
.css({opacity: canUploadVideo ? 1 : 0.25})
.bindEvent({
click: function() {
pandora.$ui.uploadDialog = pandora.ui.uploadDialog().open();
}
})
.appendTo(that);
pandora.api.find({
query: {conditions: [], operator: '&'}
}, function(result) {
that.update(result.data.items);
});
} else if (pandora.user.ui.section == 'texts') {
Ox.Button({
style: 'symbol',
title: 'file',
tooltip: 'HTML',
type: 'image'
})
.appendTo(that);
Ox.Button({
style: 'symbol',
title: 'help',
tooltip: 'Help',
type: 'image'
})
.bindEvent({
click: function() {
pandora.UI.set({page: 'help'});
}
})
.appendTo(that);
}
updateSelected();
function updateSelected() {
that[
(pandora.user.ui.section == 'items' && pandora.user.ui._list)
|| (pandora.user.ui.section == 'texts' && pandora.user.ui.text)
? 'removeClass' : 'addClass'
]('OxSelected');
}
that.update = function(items) {
$items && $items.html(Ox.formatNumber(items));
};
that.resizeElement = function(width) {
$name.css({width: width + 'px'});
};
return that;
};