pandora/static/js/pandora/ui/siteDialog.js

79 lines
2.7 KiB
JavaScript
Raw Normal View History

2011-08-24 21:21:25 +00:00
pandora.ui.siteDialog = function(section) {
var tabs = [
{id: 'about', title: 'About'},
{id: 'news', title: 'News'},
{id: 'tour', title: 'Take a Tour'},
{id: 'faq', title: 'Frequently Asked Questions'},
{id: 'tos', title: 'Terms of Service'},
{id: 'contact', title: 'Contact'},
{id: 'software', title: 'Software'}
];
Ox.getObjectById(tabs, section).selected = true;
var $tabPanel = Ox.TabPanel({
content: function(id) {
var content = Ox.Element().css({padding: '16px', overflowY: 'auto'});
pandora.api.getPage({name:id}, function(result) {
content.html(result.data.body);
});
2011-08-24 21:21:25 +00:00
return Ox.SplitPanel({
elements: [
{
element: Ox.Element()
.css({padding: '16px'})
.append(
$('<img>')
2011-08-26 00:22:26 +00:00
.attr({src: '/static/png/' + (
id == 'software' ? 'pandora' : 'logo'
) + '256.png'})
.css({width: '256px'})
2011-08-24 21:21:25 +00:00
),
size: 272
2011-08-24 21:21:25 +00:00
},
{
element: content
2011-08-24 21:21:25 +00:00
}
],
orientation: 'horizontal'
});
},
tabs: tabs
})
.bindEvent({
change: function(data) {
$dialog.options({
title: Ox.getObjectById(tabs, data.selected).title
});
2011-09-30 10:33:45 +00:00
//fixme: this should be using URL.push / UI.set
//but that currenlty causes another dialog to be opened
history.pushState({}, '', '/' + data.selected);
2011-08-24 21:21:25 +00:00
}
});
var $dialog = Ox.Dialog({
buttons: [
Ox.Button({
id: 'close',
title: 'Close'
}).bindEvent({
click: function() {
$dialog.close();
2011-09-30 10:33:45 +00:00
//fixme: this should be using URL.push / UI.set
//but that currenlty causes a reload
history.pushState({}, '', '/');
2011-08-24 21:21:25 +00:00
}
})
],
//closeButton: true,
content: $tabPanel,
height: Math.round((window.innerHeight - 24) * 0.75),
//maximizeButton: true,
minHeight: 256,
minWidth: 640,
title: 'About',
width: Math.round(window.innerWidth * 0.75),
});
return $dialog;
};