mirror of
				https://github.com/flynx/PortableMag.git
				synced 2025-11-03 21:40:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			421 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			421 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
[_] 37% Priority work
 | 
						|
	[_] 65% general todo
 | 
						|
		[_] 37% Version 1.0 checklist (migration to layout.html)
 | 
						|
			[X] page scaling for full page view
 | 
						|
			[X] top/bottom toolbars
 | 
						|
			[X] splash screen w. logo
 | 
						|
			[_] logo on splash screen
 | 
						|
			[_] 33% bells 'n' whistles
 | 
						|
				[_] navigator
 | 
						|
				[_] bookmarks
 | 
						|
				[X] article navigation
 | 
						|
			[_] URL navigation
 | 
						|
			[_] layers (URL-activated)
 | 
						|
			[_] 0% overlay pages
 | 
						|
				[_] credits & copyright
 | 
						|
				[_] basic user config
 | 
						|
				[_] help and instructions
 | 
						|
			[_] issue selection & related navigation
 | 
						|
			| essentially a special magazine that will load other magazines 
 | 
						|
			| instead of going into a full page view...
 | 
						|
		[_] 50% Editor version 1.0 checklist
 | 
						|
			[_] editor toolbar
 | 
						|
			| this can take two forms:
 | 
						|
			| 	- global
 | 
						|
			| 	- relative to page
 | 
						|
			| 	- mixed (preferred)
 | 
						|
			[X] save/load JSON
 | 
						|
		[_] 60% build a custom scroll lib...
 | 
						|
			[X] 100% features:
 | 
						|
				[X] drag/scroll
 | 
						|
				[X] inertial
 | 
						|
				[X] snap
 | 
						|
				| if enabled, on release, detect nearest snap-point and scroll to it.
 | 
						|
			[X] 100% tragets
 | 
						|
				[X] smooth scroll on devices (iscroll)
 | 
						|
				| adaptive transitions, etc.
 | 
						|
				[X] snap scroll to markers (a-la iscroll)
 | 
						|
					[X] snap align
 | 
						|
						[X] left (iscroll)
 | 
						|
						[X] center
 | 
						|
						[X] right
 | 
						|
				[X] flexible event system
 | 
						|
					[X] pre/post events
 | 
						|
					[X] ability to cancel current action
 | 
						|
					| like stop scrolling at a given point.
 | 
						|
				[X] both x and y axis support (x is a priority)
 | 
						|
			[X] scroll phases
 | 
						|
				[X] user scroll phase
 | 
						|
				| from mousedown/touchstart and to mouseup/touchend
 | 
						|
				[X] auto scroll phase
 | 
						|
				| from mouseup/touchend and untill scrollend
 | 
						|
				|
 | 
						|
				| must account for speed...
 | 
						|
					[X] momentum
 | 
						|
					[X] snap
 | 
						|
			[_] 0% actions
 | 
						|
				[_] 0% .scrollTo(target)
 | 
						|
				| must accept:
 | 
						|
					[_] element
 | 
						|
					[_] px
 | 
						|
					[_] name
 | 
						|
			[_] 0% events
 | 
						|
				basic anatomy
 | 
						|
				|
 | 
						|
				| 	user scroll				+-------------------+
 | 
						|
				| +-------------------------+		auto scroll
 | 
						|
				|
 | 
						|
				| touchstart				touchend
 | 
						|
				| |							|
 | 
						|
				| scrollstart				userscrollend		scrollend
 | 
						|
				| userscrollstart			|					|
 | 
						|
				| |							|					|
 | 
						|
				| v							v					v
 | 
						|
				| o----+--+-+-+--+-+---+-+--o----+--+-+-+---+---+
 | 
						|
				|	   ^  ^ ^ ^	 ^ ^   ^ ^		 ^	^ ^ ^	^
 | 
						|
				| 	   +-----------------+		 +----------+
 | 
						|
				| 	   scroll					 scroll
 | 
						|
				|
 | 
						|
				[_] 0% scroll
 | 
						|
					[_] scrollstart / userscrollstart
 | 
						|
					| on mousedown/touchstart
 | 
						|
					[_] scroll
 | 
						|
					| mousemove/touchmove
 | 
						|
					|
 | 
						|
					| also triggered by lib on auto-scroll...
 | 
						|
					[_] userscrollend
 | 
						|
					| on mouseup/touchend
 | 
						|
					[_] scrollend
 | 
						|
				[_] 0% snap
 | 
						|
					[_] snapped
 | 
						|
		[_] BUG: full-page-view-mode class does not apply to some elements...
 | 
						|
		| - toolbars
 | 
						|
		| - bookmarks
 | 
						|
		[_] BUG: #URLs do not all work in the new index...
 | 
						|
		[_] BUG: loading a magazine with position set to 0 will align it incorrectly.
 | 
						|
		| needs testing with the rewritten fitNPages()...
 | 
						|
		[_] Editor: might be a good idea to prevent deleting the last page...
 | 
						|
		| this can be done in two ways:
 | 
						|
		| 	- deleting the last page actually replaces it with a blank
 | 
						|
		| 	- deleting the last page will also delete the empty article/magazine
 | 
						|
		[_] Editor: page marking and grouping...
 | 
						|
		| also edit the group properties...
 | 
						|
		[_] editor mode service page
 | 
						|
		| a virtual page at the end of the magazine with magazine-specific
 | 
						|
		| settings.
 | 
						|
		| similar to the current configuration demo page.
 | 
						|
		[_] 60% move some of the current configuration options to the magazine...
 | 
						|
			[X] page align
 | 
						|
			| global, magazine, article, page-set, page
 | 
						|
			[X] resize settings (.no-resize class)
 | 
						|
			| global, magazine, article, page-set, page
 | 
						|
			[_] default page/content size
 | 
						|
			| global, magazine, article
 | 
						|
			[X] fit page to view
 | 
						|
			| global, magazine, article
 | 
						|
			[_] drag full page
 | 
						|
			| global, magazine
 | 
						|
		[_] Editor: add basic control toolbars...
 | 
						|
		[_] Editor: add toggleEditiorMode to all editables in all versions...
 | 
						|
		| text areas, inputs, ...
 | 
						|
		[_] add global credits and copyright page...
 | 
						|
		| list and link all the used software and authors...
 | 
						|
		[_] add default empty state to viewer, magazine and article...
 | 
						|
		| use it to trigger a "New Magazine", "New Cover"/"New Article" and
 | 
						|
		| "New Cover"/"New Page" actions...
 | 
						|
		[_] Editor: make empty magazine and article visible in the editor...
 | 
						|
		[_] 57% add the following icons to buttons.svg
 | 
						|
			[X] magazine create
 | 
						|
			[_] magazine remove
 | 
						|
			[X] article create
 | 
						|
			[_] article remove
 | 
						|
			[X] article shift left
 | 
						|
			[X] article shift right
 | 
						|
			[X] page create
 | 
						|
			[_] page remove
 | 
						|
			[X] page shift left
 | 
						|
			[X] page shift right
 | 
						|
			[_] save
 | 
						|
			[X] bookmark
 | 
						|
			[X] < left
 | 
						|
			[X] > right
 | 
						|
			[_] (<) left
 | 
						|
			[_] (>) right
 | 
						|
			[X] (i) info
 | 
						|
			[_] (+) new
 | 
						|
			[_] (x) remove
 | 
						|
		[_] 0% populate an example issue
 | 
						|
			[_] template photo page
 | 
						|
			[_] template 3x3 grid
 | 
						|
			[_] template two column text
 | 
						|
		[_] make layer default state configurable...
 | 
						|
		| e.g. setting "shown"/"hidden" classes in HTML and adding 
 | 
						|
		| something like a page reset that will restore the default state,
 | 
						|
		| rather than the current "hideLayers"
 | 
						|
		[_] make #URLs magazine-specific...
 | 
						|
		[_] make #actions a configurable framework...
 | 
						|
		| rather than being hard-coded as they are now...
 | 
						|
		[_] JSON: add metadata section that can be downloaded separately...
 | 
						|
		[_] JSON: add page URLs as an alternative to direct content...
 | 
						|
		| use AJAX to get remote pages and their nested content
 | 
						|
		[_] 75% JSON: add the following fields to metadata section:
 | 
						|
			[_] issue URL
 | 
						|
			[X] authors
 | 
						|
			[X] title
 | 
						|
			[X] name
 | 
						|
		[_] BUG: browser history on internal links is broken...
 | 
						|
		| ...with both UPDATE_HASH_URL_POSITION and FULL_HISTORY_ENABLED false.
 | 
						|
		[_] BUG: as on android, on loading from json view does not reach cur page...
 | 
						|
		| likely due to animation/transition stopping for some reason....
 | 
						|
		[_] BUG: when #URL updates are off layer toggling breaks...
 | 
						|
		| will show but not hide layers...
 | 
						|
		[_] BUG: 3 fingers+ do not work on android...
 | 
						|
		[_] BUG: href to existing anchors will mess up layout...
 | 
						|
		| need to find out how can we disable anchor links from actually
 | 
						|
		| going to the anchor...
 | 
						|
		[_] 0% EXPERIMENT: Try using scroll instead of left of .magazine....
 | 
						|
			[_] try and get rid of .scroller
 | 
						|
			[_] try using the scroll event to see of we reached the limit...
 | 
						|
			| and move the limit accordingly
 | 
						|
			[_] BUG: scrool seems to do odd things on refresh...
 | 
						|
		[X] JSON load/save
 | 
						|
		[X] BUG: navigator indicator does not scroll
 | 
						|
		[X] check if scrollTo knows about element scaling...
 | 
						|
		| if not update the code....
 | 
						|
		[X] Editor: make the editor switchable...
 | 
						|
		| if it is imported it should be able to switch on and off on demand...
 | 
						|
		[X] BUG: togglePageView results in jumpy animation if USE_REAL_PAGE_SIZES is set
 | 
						|
		| this does not happen if USE_REAL_PAGE_SIZES is set and FIT_PAGE_TO_VIEW 
 | 
						|
		| is unset...
 | 
						|
		|
 | 
						|
		| the most likely cause is that there is some time passing between some
 | 
						|
		| edits to element parameters. these writes must be done in an as compact
 | 
						|
		| a burst as possible,
 | 
						|
		|
 | 
						|
		| see fitNPages(...) for resolution...
 | 
						|
		[X] 100% add two main page themes (global/local applicable):
 | 
						|
			[X] light
 | 
						|
			[X] dark
 | 
						|
		[X] add transition-duration editors to config page (a-la PAGES_IN_RIBBON)...
 | 
						|
		| will help tuning the system,,,
 | 
						|
		[X] BUG: jquery does not set background to none on detached elements...
 | 
						|
		| use transparent instead!!
 | 
						|
		[X] 100% add page sets..
 | 
						|
			[X] general page navigation
 | 
						|
			[X] serialization
 | 
						|
			[X] PROBLEM: cover is not found within the page-set
 | 
						|
			[X] PROBLEM: next/prev article navigation is broken
 | 
						|
		[X] add option to align page to right or left screen border
 | 
						|
		| now only centering is possible...
 | 
						|
		[X] make #URL updates optional...
 | 
						|
		[X] add click current page to full page view...
 | 
						|
		[X] 100% templates
 | 
						|
			[X] page number
 | 
						|
			[X] current page
 | 
						|
			| this is not really a template...
 | 
						|
			|
 | 
						|
			| XXX should this be a real template...
 | 
						|
			[X] magazine title
 | 
						|
		[X] Editor: decide weather to make the editor toolbar oriented or floating bars around context...
 | 
						|
		[X] add in-page live templates...
 | 
						|
		| elements that will get generated content, like page numbers etc.
 | 
						|
		[X] JSON: store format version in the JSON file...
 | 
						|
		[X] MINOR BUG: on loading a mag from JSON page widths get messed up...
 | 
						|
		| ...in cases where content elements have explicit widths pages do 
 | 
						|
		| not get stretched, this can be fixed by simply updating the view
 | 
						|
		[X] magazine loader and data format...
 | 
						|
		| this is simple, just use a restyled magazine viewer...
 | 
						|
		[X] localize magazine event handler setup to setupMagazineEvents function...
 | 
						|
		[X] JSON builder loader...
 | 
						|
		[X] do a better structure diagram...
 | 
						|
		[X] BUG: initial load on android does not center on the correct page...
 | 
						|
		| for some odd reason only one of the first and second pages are opened 
 | 
						|
		| correctly, any other page results in showing the second page and any 
 | 
						|
		| click focuses the correct page...
 | 
						|
		|
 | 
						|
		| CAUSE:
 | 
						|
		| the cause for this turned out to be the fact that the page is loaded
 | 
						|
		| allot faster than it is full alligned and rendered on android, so
 | 
						|
		| a fix for this is to set the page some 300ms later...
 | 
						|
		|
 | 
						|
		| XXX find a better solution!
 | 
						|
		[X] make corners clickable for bookmarking...
 | 
						|
		[X] bookmark active zone in upper-right corner of page...
 | 
						|
		[X] SVG icons and logo...
 | 
						|
		[X] add page numbers...
 | 
						|
		[X] 100% bookmarks
 | 
						|
			[X] add next/prev bookmark actions
 | 
						|
			[X] #bookmark anchor
 | 
						|
			[X] bookmark indicators in navigator
 | 
						|
			[X] bookmark indicators in thumbnails
 | 
						|
			[X] bookmark persistence
 | 
						|
			[X] set bookmark from keyboard...
 | 
						|
			[X] set bookmark touch control
 | 
						|
		[X] vanquish opacity effects
 | 
						|
		| they slow everything down considerably!
 | 
						|
		[X] add keyboard navigation...
 | 
						|
		[X] navigator -- indicate position in thumbnail mode...
 | 
						|
		[X] test for stability
 | 
						|
		[X] cleanup code
 | 
						|
		[X] add history #URLs..
 | 
						|
		[X] BUG: something odd going on with window.onResize event...
 | 
						|
		| on android it sometimes fires and sometimes does not -- rotating
 | 
						|
		| the screen does not always scale things correctly...
 | 
						|
		[X] examples for links and anchors...
 | 
						|
		[X] BUG: unstable page fitting.
 | 
						|
		| also broken for portrait layouts...
 | 
						|
		[X] try a slightly different layout...
 | 
						|
		| 
 | 
						|
		| 	+-page--------------+
 | 
						|
		| 	|+-content---+		|
 | 
						|
		| 	||			 |		|
 | 
						|
		| 	||			 |<---->|
 | 
						|
		| 	||			 |		|
 | 
						|
		| 	|+-----------+		|
 | 
						|
		| 	+-------------------+
 | 
						|
		|
 | 
						|
		|
 | 
						|
		|	Thumbnail view
 | 
						|
		|				 +------------+------+
 | 
						|
		|	+------------+\ - - +	   \	  \
 | 
						|
		|	 \			  \\     \		\	   \
 | 
						|
		|	  \			   \\     \		 \	    \
 | 
						|
		|	   \		    \+------------+------+
 | 
						|
		|		+------------+------+
 | 
						|
		|						^
 | 
						|
		|						+--- margin-right: -X
 | 
						|
		|
 | 
						|
		|	Full page view
 | 
						|
		|
 | 
						|
		|	+-screen------------+   +----
 | 
						|
		|	 \	+------------+---\--+\
 | 
						|
		|	--\-+\			  \   \  \\
 | 
						|
		|	   \ \\			   \   \  \\
 | 
						|
		|		+-------------------+  \+----
 | 
						|
		|		   \+------------+------+
 | 
						|
		|		----+
 | 
						|
		|
 | 
						|
		| NOTE: this is not a good idea if not all the pages have the 
 | 
						|
		| 		same BG...
 | 
						|
		|
 | 
						|
		|
 | 
						|
		| Here is another approach:
 | 
						|
		|
 | 
						|
		|	Thumbnail view
 | 
						|
		| 	+-page--------------+
 | 
						|
		| 	|+-content---+		|
 | 
						|
		| 	||			 |		|
 | 
						|
		| 	||			 |		|
 | 
						|
		| 	|+-----------+		|
 | 
						|
		| 	+-------------------+
 | 
						|
		|
 | 
						|
		|	Full page view
 | 
						|
		| 	+-page--------------+
 | 
						|
		| 	|   +-content---+	|
 | 
						|
		| 	|   |			|	|
 | 
						|
		| 	|   |			|	|
 | 
						|
		| 	|   +-----------+	|
 | 
						|
		| 	+-------------------+
 | 
						|
		|
 | 
						|
		|
 | 
						|
		[X] add two finger swipes to navigate between articles...
 | 
						|
		[X] add pinch events...
 | 
						|
		[X] #URL "layers"
 | 
						|
		| navigation to a hidden layer will show the layer, any other 
 | 
						|
		| navigation will hide it...
 | 
						|
		[X] something made phonegap version unhappy...
 | 
						|
		| likely the URL logic...
 | 
						|
		|
 | 
						|
		| try and make it optional...
 | 
						|
		[X] add page urls
 | 
						|
		[X] add state saving to local storage
 | 
						|
		[X] use modes (CSS) for thumbnail/page views...
 | 
						|
	[X] 100% stage 1 - basic features
 | 
						|
		[X] global navigation bar
 | 
						|
		[X] real magazine structure
 | 
						|
		[X] 100% basic article navigation
 | 
						|
			[X] next page
 | 
						|
			[X] prev page
 | 
						|
			[X] show previews
 | 
						|
			[X] go home
 | 
						|
			[X] go to prev article
 | 
						|
			[X] go to next article
 | 
						|
		[X] real previews
 | 
						|
		| use zoom to show a ribbon...
 | 
						|
	[_] 25% stage 2 - templates and examples
 | 
						|
		[_] 0% default cover templates
 | 
						|
		[_] 0% default page templates
 | 
						|
		| a template is a class and predefined content...
 | 
						|
			[_] template examples
 | 
						|
			| this should include CSS docs
 | 
						|
			[_] cover
 | 
						|
			[_] simgle image with caption
 | 
						|
				[_] Elements
 | 
						|
					[_] image fit to screen
 | 
						|
					[_] caption overlay
 | 
						|
			[_] grid of blocks
 | 
						|
			| might be good to use a table here...
 | 
						|
				[_] Elements
 | 
						|
					[_] list of blocks
 | 
						|
					[_] number of columns
 | 
						|
				[_] block types
 | 
						|
					[_] text
 | 
						|
					[_] viewable image
 | 
						|
					| on click show big version in overlay
 | 
						|
					[_] page
 | 
						|
					| a scaled version of a page...
 | 
						|
			[_] text with title
 | 
						|
			[_] text with image
 | 
						|
			[_] plain
 | 
						|
		[X] 100% default actions
 | 
						|
			[X] show/hide layer
 | 
						|
	[_] 33% stage 3 - editor and templating
 | 
						|
		[_] 0% template engine
 | 
						|
		[_] 66% edition editor / publisher
 | 
						|
			[X] create/delete magazine
 | 
						|
			[X] cover
 | 
						|
			[_] 33% article
 | 
						|
				[X] add
 | 
						|
				[_] delete
 | 
						|
				[_] move
 | 
						|
			[X] 100% page
 | 
						|
				[X] add
 | 
						|
				| from template
 | 
						|
				[X] delete
 | 
						|
				[X] move
 | 
						|
			[_] 0% fill template field
 | 
						|
				[_] image
 | 
						|
				[_] text
 | 
						|
	[_] 0% stage 4 - issue browser
 | 
						|
		[_] issue browser structure
 | 
						|
		[_] 0% issue navigation
 | 
						|
			[_] issue list
 | 
						|
			[_] 0% issue download
 | 
						|
				[_] whole edition dowload and update (primary mode)
 | 
						|
				[_] seporate issue download (secondary)
 | 
						|
	[_] 0% TouchSwipe issues...
 | 
						|
		[_] BUG: swipe-back does not cancel a swipe... (TouchSwipe)
 | 
						|
		| ...unless the finger is return to within the threshold of the 
 | 
						|
		| touchdown point.
 | 
						|
		[_] BUG: no drag threshold on excludedElements (TouchSwipe)
 | 
						|
		| stalled...
 | 
						|
	
 | 
						|
[_] 0% Low priority todo
 | 
						|
	[_] look into HPub ebook spec...
 | 
						|
	| https://github.com/Simbul/baker/wiki/hpub-specification
 | 
						|
	| https://github.com/Simbul/baker
 | 
						|
	| http://bakerframework.com/
 | 
						|
	[_] vertically scrollable pages....
 | 
						|
	[_] pages that are wider than the screen (aligned to ribbon)...
 | 
						|
	[_] make pages of different formats work...
 | 
						|
	[_] find a passive CSS-only way to size pages in different modes...
 | 
						|
	[_] time transitions
 | 
						|
	| the goal is for slow devices to seem not to have animations at
 | 
						|
	| all and faster ones to seem to have fast animations...
 | 
						|
	
 | 
						|
				
 | 
						|
 | 
						|
 | 
						|
.
 | 
						|
| vim:set spell :
 |