some refactoring on the #URL handlers, still not complete...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2013-03-07 03:52:41 +04:00
parent f64db62e88
commit 6b36c34c91
2 changed files with 82 additions and 69 deletions

View File

@ -1,9 +1,9 @@
[_] 39% Priority work
[_] 76% general todo
[_] 0% Priority work for 10.03.13
[_] load/save from JSON
[_] add page via template
[_] change image
[_] add page via template
[_] load/save from JSON
[_] basic instructions
[_] 37% Version 1.0 checklist (migration to layout.html)
[X] page scaling for full page view
@ -24,8 +24,8 @@
[_] issue selection & related navigation
| essentially a special magazine that will load other magazines
| instead of going into a full page view...
[_] 0% #URL rework...
[_] make #URLs a configurable framework...
[_] 20% #URL rework...
[X] make #URLs a configurable framework...
| rather than being hard-coded as they are now...
[_] make #URLs magazine-specific...
[_] BUG: when #URL updates are off layer toggling breaks...

View File

@ -874,6 +874,70 @@ function prevBookmark(){
*
**********************************************************************/
URL_HANDLERS = {
// basic navigation...
home: function(){
return 0
},
end: function(){
return $('.page').length-1
},
// relative URLs...
next: function(){
nextPage()
return getPageNumber()
},
prev: function(){
prevPage()
return getPageNumber()
},
nextArticle: function(){
nextArticle()
return getPageNumber()
},
prevArticle: function(){
prevArticle()
return getPageNumber()
},
nextBookmark: function(){
nextBookmark()
return getPageNumber()
},
prevBookmark: function(){
prevBookmark()
return getPageNumber()
},
// actions...
// XXX this scrolls someplace odd...
thumbnails: function(){
n = getPageNumber()
togglePageView('off')
return n
},
bookmark: function(){
toggleBookmark()
return getPageNumber()
},
// hide all visible layers on current page...
hideLayers: function(){
$('.current.page .shown')
.addClass('hidden')
.removeClass('shown')
return getPageNumber()
},
// history...
// NOTE: these are handled by hashChangeHandler()
back: function(){
return 'back'
},
forward: function(){
return anchor
},
}
// XXX make URLs magazine-specific...
// ...for extrnal linking we'll need the magazine ID, or make each
// magazine a seporate path...
@ -899,61 +963,11 @@ function loadURLState(){
return n
}
// XXX add real external aliases...
if(anchor == 'thumbnails') {
togglePageView('off')
return getPageNumber()
if(anchor in URL_HANDLERS){
return URL_HANDLERS[anchor]()
}
} else if(anchor == 'home') {
return 0
} else if(anchor == 'end') {
return $('.page').length-1
// history...
// NOTE: these are handled by hashChangeHandler()
} else if(anchor == 'back') {
return anchor
} else if(anchor == 'forward') {
return anchor
// relative URLs...
} else if(anchor == 'next') {
nextPage()
return getPageNumber()
} else if(anchor == 'prev') {
prevPage()
return getPageNumber()
} else if(anchor == 'nextArticle') {
nextArticle()
return getPageNumber()
} else if(anchor == 'prevArticle') {
prevArticle()
return getPageNumber()
} else if(anchor == 'nextBookmark') {
nextBookmark()
return getPageNumber()
} else if(anchor == 'prevBookmark') {
prevBookmark()
return getPageNumber()
} else if(anchor == 'bookmark'){
toggleBookmark()
return getPageNumber()
// hide all visible layers on current page...
} else if(anchor == 'hideLayers') {
$('.current.page .shown')
.addClass('hidden')
.removeClass('shown')
return getPageNumber()
} else {
// show a layer...
var elem = $('[name='+anchor+']')
n = getPageNumber(elem.parents('.page'))
// toggle hidden/shown elements...
@ -968,7 +982,6 @@ function loadURLState(){
}
return n
}
}
// save current state to URL...
function saveURLState(){
var anchor = window.location.hash.split('#')[1]