This commit is contained in:
j 2011-11-10 00:11:12 +01:00
commit 7b94b9ad2c
13 changed files with 199 additions and 148 deletions

View file

@ -569,7 +569,7 @@
"sitePages": [ "sitePages": [
{"id": "about", "title": "About"}, {"id": "about", "title": "About"},
{"id": "news", "title": "News"}, {"id": "news", "title": "News"},
{"id": "tour", "title": "Take a Tour"}, // {"id": "tour", "title": "Take a Tour"},
{"id": "faq", "title": "Frequently Asked Questions"}, {"id": "faq", "title": "Frequently Asked Questions"},
{"id": "terms", "title": "Terms of Service"}, {"id": "terms", "title": "Terms of Service"},
{"id": "rights", "title": "Rights Management"}, {"id": "rights", "title": "Rights Management"},
@ -617,6 +617,7 @@
"lists": {}, "lists": {},
"mapFind": "", "mapFind": "",
"mapSelection": "", "mapSelection": "",
"page": "",
"section": "items", "section": "items",
"showAnnotations": true, "showAnnotations": true,
"showBrowser": true, "showBrowser": true,

View file

@ -24,6 +24,7 @@ urlpatterns = patterns('',
(r'^api/upload/$', 'archive.views.firefogg_upload'), (r'^api/upload/$', 'archive.views.firefogg_upload'),
(r'^url=(?P<url>.*)$', 'app.views.redirect_url'), (r'^url=(?P<url>.*)$', 'app.views.redirect_url'),
(r'^file/(?P<oshash>.*)$', 'archive.views.lookup_file'), (r'^file/(?P<oshash>.*)$', 'archive.views.lookup_file'),
(r'^api$', include('api.urls')),
(r'^api/$', include('api.urls')), (r'^api/$', include('api.urls')),
(r'^resetUI$', 'user.views.reset_ui'), (r'^resetUI$', 'user.views.reset_ui'),
(r'', include('item.urls')), (r'', include('item.urls')),

View file

@ -6,9 +6,13 @@ pandora.URL = (function() {
var self = {}, that = {}; var self = {}, that = {};
function getState(keys) { function getState() {
Ox.Log('GET STATE, UI', pandora.user.ui) Ox.Log('', 'GET STATE, UI', pandora.user.ui)
if (pandora.user.ui.page) {
return {page: pandora.user.ui.page};
}
var state = {}; var state = {};
@ -45,7 +49,7 @@ pandora.URL = (function() {
); );
} }
Ox.Log('URL', 'STATE ...', state) Ox.Log('', 'URL', 'STATE ...', state)
return state; return state;
@ -66,39 +70,7 @@ pandora.URL = (function() {
} else if (state.page) { } else if (state.page) {
if (state.page == 'home') { pandora.UI.set(state);
// if we're on page load, show screen immediately
pandora.$ui.home = pandora.ui.home()[
!pandora.$ui.appPanel ? 'showScreen' : 'fadeInScreen'
]();
} else if (
Ox.getPositionById(pandora.site.sitePages, state.page) > -1
|| state.page == 'software'
) {
if (pandora.$ui.siteDialog) {
pandora.$ui.siteDialog.select(state.page);
} else {
pandora.$ui.siteDialog = pandora.ui.siteDialog(state.page).open();
}
} else if (state.page == 'help') {
pandora.$ui.helpDialog = pandora.ui.helpDialog().open();
} else if (['signup', 'signin'].indexOf(state.page) > -1) {
if (pandora.user.level == 'guest') {
pandora.$ui.accountDialog = pandora.ui.accountDialog(state.page).open();
} else {
pandora.URL.replace('/');
}
} else if (['preferences', 'signout'].indexOf(state.page) > -1) {
if (pandora.user.level == 'guest') {
pandora.URL.replace('/');
} else if (state.page == 'preferences') {
pandora.ui.preferencesDialog().open();
} else {
pandora.ui.accountSignoutDialog().open();
}
} else if (state.page == 'api') {
document.location.href = '/api/';
}
callback && callback(); callback && callback();
} else { } else {
@ -270,17 +242,21 @@ pandora.URL = (function() {
Ox.Request.cancel(); Ox.Request.cancel();
self.isPopState = true; self.isPopState = true;
$('.OxDialog:visible').each(function() { $('.OxDialog:visible').each(function() {
Ox.UI.elements[$(this).data('oxid')].close().remove(); Ox.UI.elements[$(this).data('oxid')].close();
}); });
if (pandora.$ui.home) {
pandora.UI.set({page: ''});
pandora.$ui.home.fadeOutScreen();
}
if ( if (
pandora.user.ui.item pandora.user.ui.item
&& pandora.user.ui.itemView == 'video' && pandora.user.ui.itemView == 'video'
&& pandora.$ui.player
&& pandora.$ui.player.options('fullscreen') && pandora.$ui.player.options('fullscreen')
) { ) {
//pandora.$ui.player.options({fullscreen: false}); pandora.$ui.player.remove();
$('body > .OxVideoPlayer').remove();
} }
if (!Ox.isEmpty(e.state)) { if (e.state && !Ox.isEmpty(e.state)) {
Ox.Log('', 'E.STATE', e.state) Ox.Log('', 'E.STATE', e.state)
document.title = e.state.title; document.title = e.state.title;
setState(e.state); setState(e.state);
@ -307,28 +283,36 @@ pandora.URL = (function() {
// sets the URL to the previous URL // sets the URL to the previous URL
that.pop = function() { that.pop = function() {
self.URL.pop(); self.URL.pop() || that.update();
}; };
// pushes a new URL (as string or from state) // pushes a new URL (as string or from state)
that.push = function(url) { that.push = function(stateOrURL) {
if (url) { var state,
self.URL.push(null, pandora.getPageTitle(), url, setState); title = pandora.getPageTitle(stateOrURL)
|| pandora.getDocumentTitle(),
url;
if (Ox.isObject(stateOrURL)) {
state = stateOrURL;
} else { } else {
// fixme url = stateOrURL;
//alert('DO YOU REALLY WANT TO CALL PUSH WITHOUT URL?')
//self.URL.push(getState());
} }
self.URL.push(state, title, url, setState);
return that; return that;
}; };
// replaces the current URL (as string or from state) // replaces the current URL (as string or from state)
that.replace = function(url) { that.replace = function(stateOrURL, title) {
if (url) { var state,
self.URL.replace(null, pandora.getPageTitle(), url, setState) title = pandora.getPageTitle(stateOrURL)
|| pandora.getDocumentTitle(),
url;
if (Ox.isObject(stateOrURL)) {
state = stateOrURL;
} else { } else {
self.URL.replace(getState()); url = stateOrURL;
} }
self.URL.replace(state, title, url, setState);
return that; return that;
}; };
@ -360,7 +344,10 @@ pandora.URL = (function() {
action = 'push'; action = 'push';
} }
state = getState(); state = getState();
self.URL[action](state, pandora.getPageTitle(), state); self.URL[action](
state,
pandora.getPageTitle(state) || pandora.getDocumentTitle()
);
} }
}; };

View file

@ -7,6 +7,7 @@ pandora.ui.accountDialog = function(action) {
fixedSize: true, fixedSize: true,
height: 192, height: 192,
id: 'accountDialog', id: 'accountDialog',
removeOnClose: true,
width: 432 width: 432
}, pandora.ui.accountDialogOptions(action))) }, pandora.ui.accountDialogOptions(action)))
.bindEvent({ .bindEvent({
@ -56,8 +57,8 @@ pandora.ui.accountDialogOptions = function(action, value) {
id: 'cancel' + Ox.toTitleCase(action), id: 'cancel' + Ox.toTitleCase(action),
title: 'Cancel' title: 'Cancel'
}).bindEvent('click', function() { }).bindEvent('click', function() {
pandora.$ui.accountDialog.close().remove(); pandora.$ui.accountDialog.close();
pandora.URL.update(); pandora.UI.set({page: ''});
}); });
} else if (type == 'submit') { } else if (type == 'submit') {
return Ox.Button({ return Ox.Button({
@ -72,13 +73,12 @@ pandora.ui.accountDialogOptions = function(action, value) {
id: type, id: type,
title: buttonTitle[type] + '...' title: buttonTitle[type] + '...'
}).bindEvent('click', function() { }).bindEvent('click', function() {
pandora.$ui.accountDialog.options(pandora.ui.accountDialogOptions(type));
pandora.$ui.accountForm.find('input')[0].focus();
if (['signin', 'signup'].indexOf(type) > -1) { if (['signin', 'signup'].indexOf(type) > -1) {
// fixme: similar problem as in siteDialog, pandora.UI.set({page: type});
// the URL controller should handle this } else {
history.replaceState({}, '', '/' + type); pandora.$ui.accountDialog.options(pandora.ui.accountDialogOptions(type));
} }
pandora.$ui.accountForm.find('input.OxInput')[0].focus();
}); });
} }
} }
@ -147,7 +147,7 @@ pandora.ui.accountForm = function(action, value) {
if (action == 'signin') { if (action == 'signin') {
pandora.api.signin(data, function(result) { pandora.api.signin(data, function(result) {
if (!result.data.errors) { if (!result.data.errors) {
pandora.$ui.accountDialog.close().remove(); pandora.$ui.accountDialog.close();
pandora.signin(result.data); pandora.signin(result.data);
} else { } else {
pandora.$ui.accountDialog.enableButtons(); pandora.$ui.accountDialog.enableButtons();
@ -157,7 +157,7 @@ pandora.ui.accountForm = function(action, value) {
} else if (action == 'signup') { } else if (action == 'signup') {
pandora.api.signup(data, function(result) { pandora.api.signup(data, function(result) {
if (!result.data.errors) { if (!result.data.errors) {
pandora.$ui.accountDialog.close().remove(); pandora.$ui.accountDialog.close();
pandora.signin(result.data); pandora.signin(result.data);
pandora.ui.accountWelcomeDialog().open(); pandora.ui.accountWelcomeDialog().open();
} else { } else {
@ -181,7 +181,7 @@ pandora.ui.accountForm = function(action, value) {
} else if (action == 'resetAndSignin') { } else if (action == 'resetAndSignin') {
pandora.api.resetPassword(data, function(result) { pandora.api.resetPassword(data, function(result) {
if (!result.data.errors) { if (!result.data.errors) {
pandora.$ui.accountDialog.close().remove(); pandora.$ui.accountDialog.close();
pandora.signin(result.data); pandora.signin(result.data);
} else { } else {
pandora.$ui.accountDialog.enableButtons(); pandora.$ui.accountDialog.enableButtons();
@ -318,14 +318,14 @@ pandora.ui.accountSignoutDialog = function() {
id: 'stay', id: 'stay',
title: 'Stay Signed In' title: 'Stay Signed In'
}).bindEvent('click', function() { }).bindEvent('click', function() {
that.close().remove(); that.close();
pandora.URL.update(); pandora.UI({page: ''});
}), }),
Ox.Button({ Ox.Button({
id: 'signout', id: 'signout',
title: 'Sign Out' title: 'Sign Out'
}).bindEvent('click', function() { }).bindEvent('click', function() {
that.close().remove(); that.close();
pandora.api.signout({}, function(result) { pandora.api.signout({}, function(result) {
pandora.signout(result.data); pandora.signout(result.data);
}); });
@ -345,6 +345,7 @@ pandora.ui.accountSignoutDialog = function() {
fixedSize: true, fixedSize: true,
height: 128, height: 128,
keys: {enter: 'signout', escape: 'stay'}, keys: {enter: 'signout', escape: 'stay'},
removeOnClose: true,
title: 'Sign Out', title: 'Sign Out',
width: 304 width: 304
}); });
@ -358,7 +359,7 @@ pandora.ui.accountWelcomeDialog = function() {
id: 'preferences', id: 'preferences',
title: 'Preferences...' title: 'Preferences...'
}).bindEvent('click', function() { }).bindEvent('click', function() {
that.close().remove(); that.close();
pandora.$ui.preferencesDialog = pandora.ui.preferencesDialog().open(); pandora.$ui.preferencesDialog = pandora.ui.preferencesDialog().open();
}), }),
{}, {},
@ -366,7 +367,7 @@ pandora.ui.accountWelcomeDialog = function() {
id: 'close', id: 'close',
title: 'Close' title: 'Close'
}).bindEvent('click', function() { }).bindEvent('click', function() {
that.close().remove(); that.close();
}) })
], ],
content: Ox.Element() content: Ox.Element()
@ -383,6 +384,7 @@ pandora.ui.accountWelcomeDialog = function() {
fixedSize: true, fixedSize: true,
height: 128, height: 128,
keys: {enter: 'close', escape: 'close'}, keys: {enter: 'close', escape: 'close'},
removeOnClose: true,
title: 'Welcome to ' + pandora.site.site.name, title: 'Welcome to ' + pandora.site.site.name,
width: 304 width: 304
}); });

View file

@ -13,6 +13,7 @@ pandora.ui.appPanel = function() {
], ],
orientation: 'vertical' orientation: 'vertical'
}); });
setPage(pandora.user.ui.page);
that.display = function() { that.display = function() {
// fixme: move animation into Ox.App // fixme: move animation into Ox.App
var animate = $('.OxScreen').length == 0; var animate = $('.OxScreen').length == 0;
@ -27,6 +28,48 @@ pandora.ui.appPanel = function() {
pandora.$ui.appPanel = pandora.ui.appPanel().appendTo(pandora.$ui.body); pandora.$ui.appPanel = pandora.ui.appPanel().appendTo(pandora.$ui.body);
return that; return that;
} }
that.bindEvent({
pandora_page: function(data) {
setPage(data.value);
}
});
function setPage(page) {
if (page == 'home') {
// if we're on page load, show screen immediately
pandora.$ui.home = pandora.ui.home()[
!pandora.$ui.appPanel ? 'showScreen' : 'fadeInScreen'
]();
} else if (
Ox.getPositionById(pandora.site.sitePages, page) > -1
|| page == 'software'
) {
if (pandora.$ui.siteDialog && pandora.$ui.siteDialog.is(':visible')) {
pandora.$ui.siteDialog.select(page);
} else {
pandora.$ui.siteDialog = pandora.ui.siteDialog(page).open();
}
} else if (page == 'help') {
pandora.$ui.helpDialog = pandora.ui.helpDialog().open();
} else if (['signup', 'signin'].indexOf(page) > -1) {
if (pandora.user.level == 'guest') {
if (pandora.$ui.accountDialog && pandora.$ui.accountDialog.is(':visible')) {
pandora.$ui.accountDialog.options(pandora.ui.accountDialogOptions(page));
} else {
pandora.$ui.accountDialog = pandora.ui.accountDialog(page).open();
}
} else {
pandora.URL.replace('/');
}
} else if (['preferences', 'signout'].indexOf(page) > -1) {
if (pandora.user.level == 'guest') {
pandora.URL.replace('/');
} else if (page == 'preferences') {
pandora.ui.preferencesDialog().open();
} else {
pandora.ui.accountSignoutDialog().open();
}
}
}
return that; return that;
}; };

View file

@ -115,6 +115,7 @@ pandora.ui.contactForm = function() {
}).bindEvent({ }).bindEvent({
click: function() { click: function() {
$dialog.close(); $dialog.close();
$form.values({subject: '', message: ''});
} }
}) })
], ],

View file

@ -3,31 +3,33 @@
pandora.ui.helpDialog = function() { pandora.ui.helpDialog = function() {
var content = Ox.Element().css({margin: '16px'}), var content = Ox.Element().css({margin: '16px'}),
that = Ox.Dialog({ that = Ox.Dialog({
buttons: [ buttons: [
Ox.Button({ Ox.Button({
id: 'close', id: 'close',
title: 'Close' title: 'Close'
}).bindEvent({ }).bindEvent({
click: function() { click: function() {
that.close().remove(); that.close();
//fixme: this should be using URL.push / UI.set }
//but that currenlty causes a reload })
history.pushState({}, '', '/'); ],
} closeButton: true,
}) content: content,
], height: Math.round((window.innerHeight - 24) * 0.75),
//closeButton: true, keys: {
content: content, 'escape': 'close'
height: Math.round((window.innerHeight - 24) * 0.75), },
keys: { maximizeButton: true,
'escape': 'close' minHeight: 256,
}, minWidth: 640,
//maximizeButton: true, title: 'Help',
minHeight: 256, width: Math.round(window.innerWidth * 0.75)
minWidth: 640, })
title: 'Help', .bindEvent({
width: Math.round(window.innerWidth * 0.75) close: function(data) {
}); pandora.UI.set({page: ''});
}
});
pandora.api.getPage({name: 'help'}, function(result) { pandora.api.getPage({name: 'help'}, function(result) {
//content.html(response.data.body); //content.html(response.data.body);
content.html('Help is coming soon...') content.html('Help is coming soon...')

View file

@ -134,7 +134,7 @@ pandora.ui.home = function() {
}) })
.bindEvent({ .bindEvent({
click: function() { click: function() {
pandora.URL.update(); pandora.UI.set({page: ''});
that.fadeOutScreen(); that.fadeOutScreen();
} }
}) })
@ -154,7 +154,7 @@ pandora.ui.home = function() {
}) })
.bindEvent({ .bindEvent({
click: function() { click: function() {
pandora.URL.push('/signup'); pandora.UI.set({page: 'signup'});
that.fadeOutScreen(); that.fadeOutScreen();
} }
}), }),
@ -173,7 +173,7 @@ pandora.ui.home = function() {
}) })
.bindEvent({ .bindEvent({
click: function() { click: function() {
pandora.URL.push('/signin'); pandora.UI.set({page :'signin'});
that.fadeOutScreen(); that.fadeOutScreen();
} }
}), }),
@ -192,7 +192,7 @@ pandora.ui.home = function() {
}) })
.bindEvent({ .bindEvent({
click: function() { click: function() {
pandora.URL.push('/preferences'); pandora.UI.set({page: 'preferences'});
that.fadeOutScreen(); that.fadeOutScreen();
} }
}), }),
@ -211,7 +211,7 @@ pandora.ui.home = function() {
}) })
.bindEvent({ .bindEvent({
click: function() { click: function() {
pandora.URL.push('/about'); pandora.UI.set({page: 'about'});
that.fadeOutScreen(); that.fadeOutScreen();
} }
}) })

View file

@ -11,8 +11,10 @@ pandora.ui.item = function() {
}, pandora.user.ui.itemView == 'info' && pandora.site.capabilities.canEditMetadata[pandora.user.level] ? 0 : -1, function(result) { }, pandora.user.ui.itemView == 'info' && pandora.site.capabilities.canEditMetadata[pandora.user.level] ? 0 : -1, function(result) {
if (result.status.code == 200) { if (result.status.code == 200) {
// fixme: can the history state title get updated too? // we want to cache the title in any way, so that after closing
document.title = pandora.getPageTitle(result.data.title); // a dialog and getting to this item, the title is correct
var documentTitle = pandora.getDocumentTitle(result.data.title);
document.title = pandora.getPageTitle(document.location.pathname) || documentTitle;
} }
/*if (result.status.code != 200) { /*if (result.status.code != 200) {

View file

@ -94,7 +94,7 @@ pandora.ui.listDialog = function(section) {
}) })
.bindEvent({ .bindEvent({
click: function() { click: function() {
$dialog.close().remove(); $dialog.close();
} }
}) })
], ],
@ -104,6 +104,7 @@ pandora.ui.listDialog = function(section) {
minWidth: width, minWidth: width,
height: 312, height: 312,
// keys: {enter: 'save', escape: 'cancel'}, // keys: {enter: 'save', escape: 'cancel'},
removeOnClose: true,
title: 'List - ' + listData.name, title: 'List - ' + listData.name,
width: width width: width
}); });

View file

@ -230,7 +230,7 @@ pandora.ui.mainMenu = function() {
'home', 'about', 'news', 'tour', 'faq', 'terms', 'rights', 'contact', 'software', 'home', 'about', 'news', 'tour', 'faq', 'terms', 'rights', 'contact', 'software',
'signup', 'signin', 'signout', 'preferences', 'help' 'signup', 'signin', 'signout', 'preferences', 'help'
].indexOf(data.id) > -1) { ].indexOf(data.id) > -1) {
pandora.URL.push('/' + data.id); pandora.UI.set({page: data.id});
} else if ([ } else if ([
'newlist', 'newlistfromselection', 'newsmartlist', 'newsmartlistfromresults' 'newlist', 'newlistfromselection', 'newsmartlist', 'newsmartlistfromresults'
].indexOf(data.id) > -1) { ].indexOf(data.id) > -1) {

View file

@ -5,12 +5,10 @@
pandora.ui.siteDialog = function(section) { pandora.ui.siteDialog = function(section) {
var tabs = Ox.merge( var tabs = Ox.merge(
Ox.clone(pandora.site.sitePages), Ox.clone(pandora.site.sitePages, true),
[{id: 'software', title: 'Software'}] [{id: 'software', title: 'Software'}]
); );
//Ox.getObjectById(tabs, section).selected = true; Ox.getObjectById(tabs, section).selected = true;
tabs[Ox.getPositionById(tabs, section)].selected = true;
//Ox.print('SITE DIALOG', section, Ox.getObjectById(tabs, section), Ox.getObjectById(tabs, section).selected)
var $tabPanel = Ox.TabPanel({ var $tabPanel = Ox.TabPanel({
content: function(id) { content: function(id) {
var $content = Ox.Element().css({padding: '16px', overflowY: 'auto'}); var $content = Ox.Element().css({padding: '16px', overflowY: 'auto'});
@ -82,8 +80,6 @@ pandora.ui.siteDialog = function(section) {
+ 'Legal Action</div>' + 'Legal Action</div>'
) )
.appendTo($column); .appendTo($column);
})
pandora.site.rightsLevels.forEach(function(rightsLevel) {
}); });
} }
}); });
@ -113,37 +109,38 @@ pandora.ui.siteDialog = function(section) {
}) })
.bindEvent({ .bindEvent({
change: function(data) { change: function(data) {
$dialog.options({ that.options({
title: Ox.getObjectById(tabs, data.selected).title title: Ox.getObjectById(tabs, data.selected).title
}); });
//pandora.URL.replace('/' + data.selected); pandora.UI.set({page: data.selected});
//fixme: this should be using URL.push / UI.set
//but that currenlty causes another dialog to be opened
history.pushState({/*page: data.selected*/}, '', '/' + data.selected);
} }
}); });
var $dialog = Ox.Dialog({
var that = Ox.Dialog({
buttons: [ buttons: [
Ox.Button({ Ox.Button({
id: 'close', id: 'close',
title: 'Close' title: 'Close'
}).bindEvent({ }).bindEvent({
click: function() { click: function() {
$dialog.close().remove(); that.close();
pandora.URL.update();
} }
}) })
], ],
//closeButton: true, closeButton: true,
content: $tabPanel, content: $tabPanel,
height: Math.round((window.innerHeight - 24) * 0.75), height: Math.round((window.innerHeight - 24) * 0.75),
//maximizeButton: true, maximizeButton: true,
minHeight: 256, minHeight: 256,
minWidth: 688, // 16 + 256 + 16 + 384 + 16 minWidth: 688, // 16 + 256 + 16 + 384 + 16
title: 'About', removeOnClose: true,
title: Ox.getObjectById(tabs, section).title,
width: Math.round(window.innerWidth * 0.75), width: Math.round(window.innerWidth * 0.75),
}) })
.bindEvent({ .bindEvent({
close: function(data) {
pandora.UI.set({page: ''});
},
resize: function(data) { resize: function(data) {
if ($tabPanel.selected() == 'contact') { if ($tabPanel.selected() == 'contact') {
pandora.$ui.contactForm.resize(); pandora.$ui.contactForm.resize();
@ -151,11 +148,11 @@ pandora.ui.siteDialog = function(section) {
} }
}); });
$dialog.select = function(id) { that.select = function(id) {
$tabPanel.select(id); $tabPanel.select(id);
return $dialog; return that;
}; };
return $dialog; return that;
}; };

View file

@ -492,6 +492,25 @@ pandora.getClipsQuery = function() {
return clipsQuery; return clipsQuery;
}; };
(function() {
var itemTitles = {};
pandora.getDocumentTitle = function(itemTitle) {
Ox.Log('', 'ITEM TITLES', itemTitles)
if (itemTitle) {
itemTitles[pandora.user.ui.item] = itemTitle
}
var parts = [pandora.site.site.name];
if (!pandora.user.ui.item) {
pandora.user.ui._list && parts.push('List ' + pandora.user.ui._list);
parts.push(Ox.toTitleCase(pandora.user.ui.listView) + ' View');
} else {
parts.push(itemTitles[pandora.user.ui.item] || pandora.user.ui.item);
parts.push(Ox.toTitleCase(pandora.user.ui.itemView) + ' View');
}
return parts.join(' - ');
};
}());
pandora.getFilterSizes = function() { pandora.getFilterSizes = function() {
return Ox.divideInt( return Ox.divideInt(
window.innerWidth - pandora.user.ui.showSidebar * pandora.user.ui.sidebarSize - 1, 5 window.innerWidth - pandora.user.ui.showSidebar * pandora.user.ui.sidebarSize - 1, 5
@ -664,24 +683,26 @@ pandora.getMetadataByIdOrName = function(item, view, str, callback) {
} }
}; };
(function() { pandora.getPageTitle = function(stateOrURL) {
var itemTitles = {}; var pages = Ox.merge([
pandora.getPageTitle = function(itemTitle) { {id: '', title: ''},
Ox.Log('', 'ITEM TITLES', itemTitles) {id: 'help', title: 'Help'},
if (itemTitle) { {id: 'home', title: ''},
itemTitles[pandora.user.ui.item] = itemTitle {id: 'preferences', title: 'Preferences'},
} {id: 'signin', title: 'Sign In'},
var parts = [pandora.site.site.name]; {id: 'signout', title: 'Sign Out'},
if (!pandora.user.ui.item) { {id: 'signup', title: 'Sign Up'},
pandora.user.ui._list && parts.push('List ' + pandora.user.ui._list); {id: 'software', title: 'Software'}
parts.push(Ox.toTitleCase(pandora.user.ui.listView) + ' View'); ], pandora.site.sitePages),
} else { page = Ox.getObjectById(
parts.push(itemTitles[pandora.user.ui.item] || pandora.user.ui.item); pages,
parts.push(Ox.toTitleCase(pandora.user.ui.itemView) + ' View'); Ox.isObject(stateOrURL) ? stateOrURL.page : stateOrURL.substr(1)
} );
return parts.join(' - '); return page
}; ? pandora.site.site.name
}()); + (page.title ? ' - ' + page.title : '')
: null;
};
pandora.getSortKeyData = function(key) { pandora.getSortKeyData = function(key) {
return Ox.getObjectById(pandora.site.itemKeys, key) return Ox.getObjectById(pandora.site.itemKeys, key)
@ -856,15 +877,9 @@ pandora.resizeFolders = function() {
}; };
pandora.resizeWindow = function() { pandora.resizeWindow = function() {
// FIXME: a lot of this throws errors on load
pandora.$ui.leftPanel.size(2, pandora.getInfoHeight(true)); pandora.$ui.leftPanel.size(2, pandora.getInfoHeight(true));
pandora.resizeFolders(); pandora.resizeFolders();
/*
var infoHeight = pandora.getInfoHeight(true);
pandora.$ui.leftPanel.size(2, infoHeight);
!pandora.user.ui.showInfo && pandora.$ui.leftPanel.css({bottom: -infoHeight});
pandora.resizeFolders();
pandora.$ui.info.resizeInfo();
*/
if (!pandora.user.ui.item) { if (!pandora.user.ui.item) {
pandora.resizeFilters(pandora.$ui.rightPanel.width()); pandora.resizeFilters(pandora.$ui.rightPanel.width());
if (pandora.user.ui.listView == 'clips') { if (pandora.user.ui.listView == 'clips') {
@ -893,7 +908,6 @@ pandora.resizeWindow = function() {
pandora.$ui.list.size(); pandora.$ui.list.size();
} }
} else { } else {
//Ox.Log('', 'pandora.$ui.window.resize');
pandora.$ui.browser.scrollToSelection(); pandora.$ui.browser.scrollToSelection();
if (pandora.user.ui.itemView == 'info') { if (pandora.user.ui.itemView == 'info') {
pandora.$ui.item.resize(); pandora.$ui.item.resize();