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 [_] 39% Priority work
[_] 76% general todo [_] 76% general todo
[_] 0% Priority work for 10.03.13 [_] 0% Priority work for 10.03.13
[_] load/save from JSON
[_] add page via template
[_] change image [_] change image
[_] add page via template
[_] load/save from JSON
[_] basic instructions [_] basic instructions
[_] 37% Version 1.0 checklist (migration to layout.html) [_] 37% Version 1.0 checklist (migration to layout.html)
[X] page scaling for full page view [X] page scaling for full page view
@ -24,8 +24,8 @@
[_] issue selection & related navigation [_] issue selection & related navigation
| essentially a special magazine that will load other magazines | essentially a special magazine that will load other magazines
| instead of going into a full page view... | instead of going into a full page view...
[_] 0% #URL rework... [_] 20% #URL rework...
[_] make #URLs a configurable framework... [X] make #URLs a configurable framework...
| rather than being hard-coded as they are now... | rather than being hard-coded as they are now...
[_] make #URLs magazine-specific... [_] make #URLs magazine-specific...
[_] BUG: when #URL updates are off layer toggling breaks... [_] 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... // XXX make URLs magazine-specific...
// ...for extrnal linking we'll need the magazine ID, or make each // ...for extrnal linking we'll need the magazine ID, or make each
// magazine a seporate path... // magazine a seporate path...
@ -899,75 +963,24 @@ function loadURLState(){
return n return n
} }
// XXX add real external aliases... if(anchor in URL_HANDLERS){
if(anchor == 'thumbnails') { return URL_HANDLERS[anchor]()
togglePageView('off') }
return getPageNumber()
} else if(anchor == 'home') { // show a layer...
return 0 var elem = $('[name='+anchor+']')
n = getPageNumber(elem.parents('.page'))
} else if(anchor == 'end') { // toggle hidden/shown elements...
return $('.page').length-1 if(elem.hasClass('hidden')){
elem
// history... .addClass('shown')
// NOTE: these are handled by hashChangeHandler() .removeClass('hidden')
} else if(anchor == 'back') { } else if(elem.hasClass('shown')){
return anchor elem
} 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') .addClass('hidden')
.removeClass('shown') .removeClass('shown')
return getPageNumber()
} else {
var elem = $('[name='+anchor+']')
n = getPageNumber(elem.parents('.page'))
// toggle hidden/shown elements...
if(elem.hasClass('hidden')){
elem
.addClass('shown')
.removeClass('hidden')
} else if(elem.hasClass('shown')){
elem
.addClass('hidden')
.removeClass('shown')
}
return n
} }
return n
} }
// save current state to URL... // save current state to URL...
function saveURLState(){ function saveURLState(){