in URL controller, get and set hash
This commit is contained in:
parent
5bfcf51a1f
commit
e7c79f512e
1 changed files with 51 additions and 38 deletions
|
@ -10,45 +10,51 @@ pandora.URL = (function() {
|
||||||
|
|
||||||
Ox.Log('URL', 'getState:, UI', pandora.user.ui)
|
Ox.Log('URL', 'getState:, UI', pandora.user.ui)
|
||||||
|
|
||||||
if (pandora.user.ui.page) {
|
|
||||||
return {page: pandora.user.ui.page};
|
|
||||||
}
|
|
||||||
|
|
||||||
var state = {};
|
var state = {};
|
||||||
|
|
||||||
state.type = pandora.user.ui.section == 'items' ? pandora.site.itemsSection : pandora.user.ui.section;
|
if (pandora.user.ui.page) {
|
||||||
state.item = pandora.user.ui[pandora.user.ui.section.slice(0, -1)];
|
|
||||||
|
|
||||||
if (pandora.user.ui.section == 'items') {
|
state.page = pandora.user.ui.page;
|
||||||
if (!pandora.user.ui.item) {
|
|
||||||
state.view = pandora.user.ui.listView;
|
} else {
|
||||||
state.sort = pandora.user.ui.listSort;
|
|
||||||
state.find = pandora.user.ui.find;
|
state.type = pandora.user.ui.section == 'items' ? pandora.site.itemsSection : pandora.user.ui.section;
|
||||||
} else {
|
state.item = pandora.user.ui[pandora.user.ui.section.slice(0, -1)];
|
||||||
state.view = pandora.user.ui.itemView;
|
|
||||||
state.sort = pandora.user.ui.itemSort;
|
if (pandora.user.ui.section == 'items') {
|
||||||
|
if (!pandora.user.ui.item) {
|
||||||
|
state.view = pandora.user.ui.listView;
|
||||||
|
state.sort = pandora.user.ui.listSort;
|
||||||
|
state.find = pandora.user.ui.find;
|
||||||
|
} else {
|
||||||
|
state.view = pandora.user.ui.itemView;
|
||||||
|
state.sort = pandora.user.ui.itemSort;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (state.view == 'map') {
|
||||||
|
state.span = pandora.user.ui.mapFind
|
||||||
|
? '@' + pandora.user.ui.mapFind
|
||||||
|
: pandora.user.ui.mapSelection
|
||||||
|
? '@' + pandora.user.ui.mapSelection
|
||||||
|
: '';
|
||||||
|
} else if (state.view == 'calendar') {
|
||||||
|
// ...
|
||||||
|
} else if (['timeline', 'player', 'editor'].indexOf(state.view) > -1) {
|
||||||
|
var videoPoints = pandora.user.ui.videoPoints[state.item] || {};
|
||||||
|
state.span = videoPoints.annotation || [].concat(
|
||||||
|
videoPoints.position
|
||||||
|
? videoPoints.position
|
||||||
|
: [],
|
||||||
|
videoPoints['in'] || videoPoints.out
|
||||||
|
? [videoPoints['in'], videoPoints.out]
|
||||||
|
: []
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (state.view == 'map') {
|
state.hash = pandora.user.ui.hash;
|
||||||
state.span = pandora.user.ui.mapFind
|
|
||||||
? '@' + pandora.user.ui.mapFind
|
|
||||||
: pandora.user.ui.mapSelection
|
|
||||||
? '@' + pandora.user.ui.mapSelection
|
|
||||||
: '';
|
|
||||||
} else if (state.view == 'calendar') {
|
|
||||||
// ...
|
|
||||||
} else if (['timeline', 'player', 'editor'].indexOf(state.view) > -1) {
|
|
||||||
var videoPoints = pandora.user.ui.videoPoints[state.item] || {};
|
|
||||||
state.span = videoPoints.annotation || [].concat(
|
|
||||||
videoPoints.position
|
|
||||||
? videoPoints.position
|
|
||||||
: [],
|
|
||||||
videoPoints['in'] || videoPoints.out
|
|
||||||
? [videoPoints['in'], videoPoints.out]
|
|
||||||
: []
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
Ox.Log('', 'URL', 'STATE ...', state)
|
Ox.Log('', 'URL', 'STATE ...', state)
|
||||||
|
|
||||||
|
@ -135,10 +141,17 @@ pandora.URL = (function() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (state.hash && state.hash.query) {
|
if (state.hash) {
|
||||||
state.hash.query.forEach(function(kv) {
|
set.hash = state.hash;
|
||||||
set[kv.key] = kv.value;
|
if (state.hash.query) {
|
||||||
});
|
if (state.hash.query.embed === true) {
|
||||||
|
|
||||||
|
} else {
|
||||||
|
state.hash.query.forEach(function(kv) {
|
||||||
|
set[kv.key] = kv.value;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Ox.Request.cancel();
|
Ox.Request.cancel();
|
||||||
|
@ -367,7 +380,7 @@ pandora.URL = (function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
that.update = function(keys) {
|
that.update = function(keys) {
|
||||||
Ox.Log('', 'update.........', keys)
|
Ox.Log('URL', 'update.........', keys)
|
||||||
// this gets called from pandora.UI
|
// this gets called from pandora.UI
|
||||||
var action, state;
|
var action, state;
|
||||||
if (!keys) {
|
if (!keys) {
|
||||||
|
|
Loading…
Reference in a new issue