forked from 0x2620/pandora
merge
This commit is contained in:
commit
7b94b9ad2c
13 changed files with 199 additions and 148 deletions
|
@ -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,
|
||||||
|
|
|
@ -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')),
|
||||||
|
|
|
@ -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()
|
||||||
|
);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
});
|
});
|
||||||
|
|
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -115,6 +115,7 @@ pandora.ui.contactForm = function() {
|
||||||
}).bindEvent({
|
}).bindEvent({
|
||||||
click: function() {
|
click: function() {
|
||||||
$dialog.close();
|
$dialog.close();
|
||||||
|
$form.values({subject: '', message: ''});
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
],
|
],
|
||||||
|
|
|
@ -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...')
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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
|
||||||
});
|
});
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -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();
|
||||||
|
|
Loading…
Reference in a new issue