mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-11-04 05:10:07 +00:00 
			
		
		
		
	added base-path saving to url history feature + some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									ecc79477bd
								
							
						
					
					
						commit
						86a77e5937
					
				@ -272,9 +272,9 @@ $(function(){
 | 
			
		||||
		.setEmptyMsg('Loading...')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	// load last url in history...
 | 
			
		||||
	// load last loaded path...
 | 
			
		||||
	if(a.url_history && Object.keys(a.url_history).length > 0){
 | 
			
		||||
		a.openURLFromHistory(0)
 | 
			
		||||
		a.loadLastSavedBasePath()
 | 
			
		||||
 | 
			
		||||
	// load some testing data...
 | 
			
		||||
	} else {
 | 
			
		||||
 | 
			
		||||
@ -277,6 +277,8 @@ actions.Actions({
 | 
			
		||||
	}],
 | 
			
		||||
 | 
			
		||||
	// XXX should this be here???
 | 
			
		||||
	// XXX should this use .load(..)
 | 
			
		||||
	// 		...note if we use this it breaks, need to rethink...
 | 
			
		||||
	loadURLs: ['File/Load a URL list',
 | 
			
		||||
		function(lst, base){
 | 
			
		||||
			this.clear()
 | 
			
		||||
@ -3607,12 +3609,23 @@ var FileSystemLoaderActions = actions.Actions({
 | 
			
		||||
 | 
			
		||||
			var that = this
 | 
			
		||||
 | 
			
		||||
			// NOTE: we set this before we start the load so as to let 
 | 
			
		||||
			// 		clients know what we are loading and not force them
 | 
			
		||||
			// 		to wait to find out...
 | 
			
		||||
			// XXX not sure if this is the way to go...
 | 
			
		||||
			this._base_path = path 
 | 
			
		||||
 | 
			
		||||
			glob(path + '/*+(jpg|jpeg|png|JPG|JPEG|PNG)')
 | 
			
		||||
				.on('error', function(err){
 | 
			
		||||
					console.log('!!!!', err)
 | 
			
		||||
				})
 | 
			
		||||
				.on('end', function(lst){ 
 | 
			
		||||
					that.loadURLs(lst
 | 
			
		||||
						.map(function(p){ return normalizePath(p) }), path)
 | 
			
		||||
 | 
			
		||||
					// XXX not sure if this is the way to go...
 | 
			
		||||
					// NOTE: we set it again because .loadURLs() does a clear
 | 
			
		||||
					// 		before it starts loading...
 | 
			
		||||
					// 		XXX is this a bug???
 | 
			
		||||
					that._base_path = path 
 | 
			
		||||
				})
 | 
			
		||||
		}],
 | 
			
		||||
@ -3696,9 +3709,6 @@ var FileSystemLoaderActions = actions.Actions({
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// XXX add load history to this...
 | 
			
		||||
// 		...might be good to add a generic history feature and use that...
 | 
			
		||||
// XXX is this a good name???
 | 
			
		||||
var FileSystemLoader = 
 | 
			
		||||
module.FileSystemLoader = ImageGridFeatures.Feature({
 | 
			
		||||
	title: '',
 | 
			
		||||
@ -3888,7 +3898,7 @@ var URLHistoryActions = actions.Actions({
 | 
			
		||||
		}
 | 
			
		||||
	}],
 | 
			
		||||
 | 
			
		||||
	setTopURLHistory: ['',
 | 
			
		||||
	setTopURLHistory: ['History/',
 | 
			
		||||
		function(url){
 | 
			
		||||
			var data = this.url_history[url]
 | 
			
		||||
 | 
			
		||||
@ -3899,7 +3909,7 @@ var URLHistoryActions = actions.Actions({
 | 
			
		||||
			delete this.url_history[url]
 | 
			
		||||
			this.url_history[url] = data
 | 
			
		||||
		}],
 | 
			
		||||
	pushURLToHistory: ['',
 | 
			
		||||
	pushURLToHistory: ['History/',
 | 
			
		||||
		function(url, open, check){
 | 
			
		||||
			var l = this.config['url-history-length'] || -1
 | 
			
		||||
 | 
			
		||||
@ -3932,7 +3942,7 @@ var URLHistoryActions = actions.Actions({
 | 
			
		||||
		}],
 | 
			
		||||
	// NOTE: url can be an index, 0 being the last url added to history;
 | 
			
		||||
	// 		negative values are also supported.
 | 
			
		||||
	dropURLFromHistory: ['', 
 | 
			
		||||
	dropURLFromHistory: ['History/', 
 | 
			
		||||
		function(url){
 | 
			
		||||
			this.url_history = this.url_history || {}
 | 
			
		||||
 | 
			
		||||
@ -3944,7 +3954,7 @@ var URLHistoryActions = actions.Actions({
 | 
			
		||||
				delete this.url_history[url]
 | 
			
		||||
			}
 | 
			
		||||
		}],
 | 
			
		||||
	checkURLFromHistory: ['',
 | 
			
		||||
	checkURLFromHistory: ['History/',
 | 
			
		||||
		function(url){
 | 
			
		||||
			this.url_history = this.url_history || {}
 | 
			
		||||
 | 
			
		||||
@ -3968,7 +3978,7 @@ var URLHistoryActions = actions.Actions({
 | 
			
		||||
				return true
 | 
			
		||||
			}
 | 
			
		||||
		}],
 | 
			
		||||
	openURLFromHistory: ['',
 | 
			
		||||
	openURLFromHistory: ['History/',
 | 
			
		||||
		function(url){
 | 
			
		||||
			this.url_history = this.url_history || {}
 | 
			
		||||
 | 
			
		||||
@ -3987,7 +3997,7 @@ var URLHistoryActions = actions.Actions({
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}],
 | 
			
		||||
	clearURLHistory: ['', 
 | 
			
		||||
	clearURLHistory: ['History/', 
 | 
			
		||||
		function(){ this.url_history = null }],
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
@ -4008,6 +4018,7 @@ module.URLHistory = ImageGridFeatures.Feature({
 | 
			
		||||
var URLHistoryLocalStorageActions = actions.Actions({
 | 
			
		||||
	config: {
 | 
			
		||||
		'url-history-local-storage-key': 'url-history',
 | 
			
		||||
		'url-history-loaded-local-storage-key': 'url-history-loaded',
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	__url_history: null,
 | 
			
		||||
@ -4026,7 +4037,12 @@ var URLHistoryLocalStorageActions = actions.Actions({
 | 
			
		||||
			if(this.config && key){
 | 
			
		||||
				var history = localStorage[key]
 | 
			
		||||
				if(history){
 | 
			
		||||
					try{
 | 
			
		||||
						this.__url_history = JSON.parse(history)
 | 
			
		||||
 | 
			
		||||
					} catch(e) {
 | 
			
		||||
						delete localStorage[key]
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
@ -4047,20 +4063,38 @@ var URLHistoryLocalStorageActions = actions.Actions({
 | 
			
		||||
	clone: [function(){
 | 
			
		||||
		return function(res){
 | 
			
		||||
			res.config['url-history-local-storage-key'] = null
 | 
			
		||||
			res.config['url-history-loaded-local-storage-key'] = null
 | 
			
		||||
		}
 | 
			
		||||
	}],
 | 
			
		||||
 | 
			
		||||
	saveURLHistory: ['',
 | 
			
		||||
	saveURLHistory: ['History/',
 | 
			
		||||
		function(){
 | 
			
		||||
			var key = this.config['url-history-local-storage-key']
 | 
			
		||||
 | 
			
		||||
			if(key == null){
 | 
			
		||||
				return
 | 
			
		||||
			var history = this.config['url-history-local-storage-key']
 | 
			
		||||
			if(history != null){
 | 
			
		||||
				localStorage[history] = 
 | 
			
		||||
					JSON.stringify(this.url_history) 
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			localStorage[key] = 
 | 
			
		||||
				JSON.stringify(this.url_history) 
 | 
			
		||||
			this.saveBasePath()
 | 
			
		||||
		}],
 | 
			
		||||
	saveBasePath: ['History/',
 | 
			
		||||
		function(){
 | 
			
		||||
			var loaded = this.config['url-history-loaded-local-storage-key']
 | 
			
		||||
			if(loaded != null){
 | 
			
		||||
				localStorage[loaded] = this.base_path
 | 
			
		||||
			}
 | 
			
		||||
		}],
 | 
			
		||||
		loadLastSavedBasePath: ['History/',
 | 
			
		||||
			function(){
 | 
			
		||||
				var loaded = this.config['url-history-loaded-local-storage-key']
 | 
			
		||||
 | 
			
		||||
				if(loaded && localStorage[loaded]){
 | 
			
		||||
					this.openURLFromHistory(localStorage[loaded])
 | 
			
		||||
 | 
			
		||||
				} else {
 | 
			
		||||
					this.openURLFromHistory(0)
 | 
			
		||||
				}
 | 
			
		||||
			}]
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
var URLHistoryLocalStorage = 
 | 
			
		||||
@ -4078,6 +4112,9 @@ module.URLHistoryLocalStorage = ImageGridFeatures.Feature({
 | 
			
		||||
 | 
			
		||||
	// NOTE: loading is done by the .url_history prop...
 | 
			
		||||
	handlers: [
 | 
			
		||||
		// XXX not sure if we need this...
 | 
			
		||||
		['load loadURLs', 
 | 
			
		||||
			function(){ this.base_path && this.saveBasePath() }],
 | 
			
		||||
		// save...
 | 
			
		||||
		['pushURLToHistory dropURLFromHistory setTopURLHistory', 
 | 
			
		||||
			function(){ 
 | 
			
		||||
@ -4088,9 +4125,14 @@ module.URLHistoryLocalStorage = ImageGridFeatures.Feature({
 | 
			
		||||
			function(){
 | 
			
		||||
				delete this.__url_history
 | 
			
		||||
 | 
			
		||||
				var key = this.config['url-history-local-storage-key']
 | 
			
		||||
				if(key){
 | 
			
		||||
					delete localStorage[this.config['url-history-local-storage-key']]
 | 
			
		||||
				var history = this.config['url-history-local-storage-key']
 | 
			
		||||
				if(history){
 | 
			
		||||
					delete localStorage[history]
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				var loaded = this.config['url-history-loaded-local-storage-key']
 | 
			
		||||
				if(loaded){
 | 
			
		||||
					delete localStorage[loaded]
 | 
			
		||||
				}
 | 
			
		||||
			}],
 | 
			
		||||
	],
 | 
			
		||||
@ -4113,7 +4155,7 @@ var URLHistoryUIActions = actions.Actions({
 | 
			
		||||
	// 			...possibly connected with restoring after .preventClosing(..)
 | 
			
		||||
	// XXX need to check items...
 | 
			
		||||
	// XXX use svg icons for buttons...
 | 
			
		||||
	listURLHistory: ['File/History',
 | 
			
		||||
	listURLHistory: ['History|File/Show history',
 | 
			
		||||
		function(){
 | 
			
		||||
			var that = this
 | 
			
		||||
			var parent = this.preventClosing ? this.preventClosing() : null
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user