mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-10-31 03:10:07 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			121 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			121 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
| /**********************************************************************
 | |
| * 
 | |
| *
 | |
| *
 | |
| **********************************************************************/
 | |
| 
 | |
| //var DEBUG = DEBUG != null ? DEBUG : true
 | |
| 
 | |
| 
 | |
| /*********************************************************************/
 | |
| 
 | |
| var BASE_URL_HISTORY = []
 | |
| var BASE_URL_LIMIT = 10
 | |
| 
 | |
| 
 | |
| 
 | |
| /**********************************************************************
 | |
| * URL history...
 | |
| */
 | |
| 
 | |
| // Setup history event handlers...
 | |
| //
 | |
| // NOTE: this will save history state to localStorage...
 | |
| function setupBaseURLHistory(){
 | |
| 	$('.viewer')
 | |
| 		.on('baseURLChanged', function(evt, old_url, new_url){
 | |
| 			var updated = false
 | |
| 
 | |
| 			// store the old and new urls in history unless they already
 | |
| 			// exist...
 | |
| 			if(BASE_URL_HISTORY.indexOf(old_url) < 0){
 | |
| 				BASE_URL_HISTORY.splice(0, 0, old_url)
 | |
| 				updated = true
 | |
| 			}
 | |
| 			if(BASE_URL_HISTORY.indexOf(new_url) < 0){
 | |
| 				BASE_URL_HISTORY.splice(0, 0, new_url)
 | |
| 				updated = true
 | |
| 			}
 | |
| 
 | |
| 			// truncate the history if needed...
 | |
| 			if(BASE_URL_HISTORY.length > BASE_URL_LIMIT){
 | |
| 				BASE_URL_HISTORY.splice(BASE_URL_LIMIT, BASE_URL_HISTORY.length)
 | |
| 				updated = true
 | |
| 			}
 | |
| 
 | |
| 			// XXX is this the right place for this???
 | |
| 			if(updated){
 | |
| 				saveLocalStorageBaseURLHistory()	
 | |
| 			}
 | |
| 		})
 | |
| }
 | |
| 
 | |
| 
 | |
| // Push a url to top of history...
 | |
| //
 | |
| // NOTE: this does not care if a url exists or not, all other instances 
 | |
| // 		will get removed...
 | |
| // NOTE: this will not do any loading...
 | |
| // NOTE: this will save history state to localStorage...
 | |
| function pushURLHistory(url){
 | |
| 	url = url == null ? BASE_URL : url
 | |
| 
 | |
| 	while(BASE_URL_HISTORY.indexOf(url) >= 0){
 | |
| 		BASE_URL_HISTORY.splice(BASE_URL_HISTORY.indexOf(url), 1)
 | |
| 	}
 | |
| 
 | |
| 	BASE_URL_HISTORY.splice(0, 0, url)
 | |
| 
 | |
| 	// XXX is this the right place for this???
 | |
| 	saveLocalStorageBaseURLHistory()	
 | |
| 
 | |
| 	return url
 | |
| }
 | |
| 
 | |
| 
 | |
| // Get current position in history...
 | |
| //
 | |
| function getURLHistoryPosition(){
 | |
| 	return BASE_URL_HISTORY.indexOf(BASE_URL)
 | |
| }
 | |
| 
 | |
| 
 | |
| // Get next/prev relative position in history...
 | |
| //
 | |
| function getURLHistoryNext(){
 | |
| 	var res = BASE_URL_HISTORY[ getURLHistoryPosition() - 1]
 | |
| 	return res == null ? BASE_URL : res
 | |
| }
 | |
| function getURLHistoryPrev(){
 | |
| 	var res = BASE_URL_HISTORY[ getURLHistoryPosition() + 1 ]
 | |
| 	return res == null ? BASE_URL : res
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| /**********************************************************************
 | |
| * Actions...
 | |
| */
 | |
| 
 | |
| // Make a history load action...
 | |
| //
 | |
| // NOTE: this will not affect history url order...
 | |
| function makeURLHistoryLoader(get, end_msg){
 | |
| 	return function(){
 | |
| 		var url = get()
 | |
| 		if(url != BASE_URL){
 | |
| 			statusNotify(loadDir(url))
 | |
| 		} else {
 | |
| 			showStatusQ('History: '+ end_msg +'...')
 | |
| 		}
 | |
| 		return url
 | |
| 	}
 | |
| }
 | |
| var loadURLHistoryNext = makeURLHistoryLoader(getURLHistoryNext, 'at last URL')
 | |
| var loadURLHistoryPrev = makeURLHistoryLoader(getURLHistoryPrev, 'at first URL')
 | |
| 
 | |
| 
 | |
| 
 | |
| /**********************************************************************
 | |
| * vim:set ts=4 sw=4 :                                                */
 |