43 lines
1.8 KiB
JavaScript
43 lines
1.8 KiB
JavaScript
// vim: et:ts=4:sw=4:sts=4:ft=javascript
|
|
'use strict';
|
|
pandora.ui.folderBrowser = function(id, section) {
|
|
// Yes, we have to wait for the lists init event to decide if it is shown.
|
|
// This run-once init handler runs *after* the list's own init handler.
|
|
var i = Ox.getIndexById(pandora.site.sectionFolders[section], id),
|
|
that = Ox.Element();
|
|
pandora.site.sectionFolders[section][i].hasItems = null;
|
|
pandora.$ui.folderList[id] = pandora.ui.folderBrowserList(id, section)
|
|
.bindEventOnce({
|
|
init: function(data) {
|
|
pandora.site.sectionFolders[section][i].hasItems = !!data.items;
|
|
if (data.items) {
|
|
that.setElement(
|
|
Ox.SplitPanel({
|
|
elements: [
|
|
{
|
|
element: pandora.ui.folderBrowserBar(id, section),
|
|
size: 24
|
|
},
|
|
{
|
|
element: pandora.$ui.folderList[id]
|
|
},
|
|
{
|
|
element: Ox.Element().append(
|
|
pandora.ui.folderPlaceholder(id, section).updateText('public', true)
|
|
),
|
|
size: 0
|
|
}
|
|
],
|
|
orientation: 'vertical'
|
|
})
|
|
);
|
|
pandora.resizeFolders();
|
|
} else {
|
|
// if there are no items, then the placeholder is already there
|
|
pandora.$ui.folderPlaceholder[id].updateText('public');
|
|
}
|
|
}
|
|
});
|
|
return that;
|
|
};
|
|
|