cleanup and refactoring...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2013-02-01 03:08:13 +04:00
parent a0a216ed3f
commit e19ea5b539

View File

@ -712,7 +712,24 @@ function updatePageNumberIndicator(){
/*********************************************************** state ***/ /*********************************************************** state ****
*
* Local state consists of:
* - current page
* - bookmarks
*
* Two types of store are used for local state:
* - #URL
* stores current page number
* is used for special URLs like #home, #next, etc.
* - localStorage
* stores current page (overriden by #URL if both are present)
* stores bookmarks
*
* NOTE: localStorage is magazine specific.
*
*
**********************************************************************/
// 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
@ -878,43 +895,52 @@ function resetState(){
/********************************************** JSON serialization ***/ /********************************************** JSON serialization ****
// JSON format state managers... *
// format: * JSON is used to load/store the magazine data and state.
// { *
// title: <magazine-title>, * This format may also include local state, like current page number
// bookmarks: [ * and bookmarks.
// <page-numer>, *
// ... * Format:
// ], * {
// // this is optional... * title: <magazine-title>,
// position: <page-number> * bookmarks: [
// pages: [ * <page-numer>,
// // root <page>... * ...
// { * ],
// type: 'page' | 'cover', * // this is optional...
// // classes set on the page element... * position: <page-number>
// class: [...] * pages: [
// content: <page-content> * // root <page>...
// }, * {
// * type: 'page' | 'cover',
// // article... * // classes set on the page element...
// { * class: [...]
// type: 'article', * content: <page-content>
// // classes set on the article element... * },
// class: [...] *
// pages: [ * // article...
// <page>, * {
// ... * type: 'article',
// ] * // classes set on the article element...
// ] * class: [...]
// ... * pages: [
// ] * <page>,
// } * ...
// * ]
// NOTE: content classes are stored in the content... * },
// NOTE: at this point all page classes will be stored, but .current * ...
// will be ignored on restore... * ]
* }
*
* NOTE: content classes are stored in the content...
* NOTE: at this point all page classes will be stored, but .current
* will be ignored on restore...
*
*
**********************************************************************/
function buildJSON(export_bookmarks, export_position){ function buildJSON(export_bookmarks, export_position){
function _getContent(_, elem){ function _getContent(_, elem){
elem = $(elem) elem = $(elem)
@ -1006,7 +1032,8 @@ function createMagazine(title, magazine_cover, article_cover){
.append(createCoverPage(magazine_cover)) .append(createCoverPage(magazine_cover))
.append(createArticle(article_cover)) .append(createArticle(article_cover))
} }
// XXX do we need a title here???
function createEmptyArticle(){ function createEmptyArticle(){
return $('<div/>') return $('<div/>')
.addClass('article') .addClass('article')
@ -1015,6 +1042,8 @@ function createArticle(template){
return createEmptyArticle() return createEmptyArticle()
.append(createCoverPage(template)) .append(createCoverPage(template))
} }
function createPage(data){ function createPage(data){
var page = $('<div/>') var page = $('<div/>')
.addClass('page') .addClass('page')
@ -1037,13 +1066,13 @@ function createCoverPage(data){
/************************************************ editor: magazine ***/ /************************************************ editor: magazine ***/
// load the data...
// NOTE: this will just load the data...
function loadMagazineData(mag){ function loadMagazineData(mag){
removeMagazine() removeMagazine()
mag.appendTo($('.aligner')) mag.appendTo($('.aligner'))
return mag return mag
} }
// load chrome elements like bookmarks and navigator....
function loadMagazineChrome(position, bookmarks){ function loadMagazineChrome(position, bookmarks){
setupBookmarkTouchZones() setupBookmarkTouchZones()
setupNavigator() setupNavigator()