mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-10-30 19:00:09 +00:00 
			
		
		
		
	added relative path support + some minor stuff...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									b5011ffaa5
								
							
						
					
					
						commit
						d78fac69a7
					
				| @ -764,20 +764,20 @@ var FileSystemWriterActions = actions.Actions({ | |||||||
| 				prepared: file.prepareIndex(json, changes), | 				prepared: file.prepareIndex(json, changes), | ||||||
| 			} | 			} | ||||||
| 		}], | 		}], | ||||||
|  | 	 | ||||||
| 	// NOTE: with no arguments this will save index to .location.path
 | 	// NOTE: with no arguments this will save index to .location.path
 | ||||||
| 	// XXX should this return a promise??? ...a clean promise???
 | 	// XXX should this return a promise??? ...a clean promise???
 | ||||||
| 	saveIndex: ['- File/Save index', | 	saveIndex: ['- File/Save index', | ||||||
| 		function(path, logger){ | 		function(path, logger){ | ||||||
| 			var that = this | 			var that = this | ||||||
| 			// XXX this is a stub to make this compatible with makeBrowseProxy(..)
 |  | ||||||
| 			// 		...we do need a default here...
 |  | ||||||
| 			/* |  | ||||||
| 			if(path == null){ |  | ||||||
| 				return |  | ||||||
| 			} |  | ||||||
| 			*/ |  | ||||||
| 			path = path || this.location.path | 			path = path || this.location.path | ||||||
| 
 | 
 | ||||||
|  | 			// resolve relative paths...
 | ||||||
|  | 			if(/^(\.\.?[\\\/]|[^\\\/])/.test(path)){ | ||||||
|  | 				// XXX do we need to normalize???
 | ||||||
|  | 				path = this.location.path +'/'+ path | ||||||
|  | 			} | ||||||
|  | 
 | ||||||
| 			// XXX get a logger...
 | 			// XXX get a logger...
 | ||||||
| 			logger = logger || this.logger | 			logger = logger || this.logger | ||||||
| 
 | 
 | ||||||
| @ -798,18 +798,24 @@ var FileSystemWriterActions = actions.Actions({ | |||||||
| 
 | 
 | ||||||
| 	// Export current state as a full loadable index
 | 	// Export current state as a full loadable index
 | ||||||
| 	//
 | 	//
 | ||||||
| 	// XXX handle relative paths...
 | 	// XXX what sould happen if no path is given???
 | ||||||
| 	// XXX should this return a promise??? ...a clean promise???
 | 	// XXX should this return a promise??? ...a clean promise???
 | ||||||
| 	// XXX add preview selection...
 | 	// XXX add preview selection...
 | ||||||
| 	// XXX handle .image.path and other stack files...
 | 	// XXX handle .image.path and other stack files...
 | ||||||
| 	// XXX local collections???
 | 	// XXX local collections???
 | ||||||
| 	// XXX add a ui...
 |  | ||||||
| 	// 		- select path
 |  | ||||||
| 	// 		- select preview size
 |  | ||||||
| 	exportIndex: ['- File/Export index', | 	exportIndex: ['- File/Export index', | ||||||
| 		function(path, logger){ | 		function(path, logger){ | ||||||
| 			logger = logger || this.logger | 			logger = logger || this.logger | ||||||
| 
 | 
 | ||||||
|  | 			// XXX is this correct???
 | ||||||
|  | 			path = path || './exported' | ||||||
|  | 
 | ||||||
|  | 			// resolve relative paths...
 | ||||||
|  | 			if(/^(\.\.?[\\\/]|[^\\\/])/.test(path)){ | ||||||
|  | 				// XXX do we need to normalize???
 | ||||||
|  | 				path = this.location.path +'/'+ path | ||||||
|  | 			} | ||||||
|  | 
 | ||||||
| 			var json = this.json() | 			var json = this.json() | ||||||
| 
 | 
 | ||||||
| 			// get all loaded gids...
 | 			// get all loaded gids...
 | ||||||
| @ -894,12 +900,7 @@ var FileSystemWriterActions = actions.Actions({ | |||||||
| 			 | 			 | ||||||
| 		}], | 		}], | ||||||
| 	 | 	 | ||||||
| 	// XXX handle relative paths...
 | 	// XXX might also be good to save/load the export options to .ImageGrid-export.json
 | ||||||
| 	// XXX use options:
 |  | ||||||
| 	// 		- level dir name
 |  | ||||||
| 	// 		- size
 |  | ||||||
| 	// 		- filename pattern
 |  | ||||||
| 	// XXX might also be good to save/load the export state to .ImageGrid-export.json
 |  | ||||||
| 	// XXX make custom previews...
 | 	// XXX make custom previews...
 | ||||||
| 	// 		...should this be a function of .images.getBestPreview(..)???
 | 	// 		...should this be a function of .images.getBestPreview(..)???
 | ||||||
| 	exportDirs: ['File/Export as nested directories', | 	exportDirs: ['File/Export as nested directories', | ||||||
| @ -907,6 +908,13 @@ var FileSystemWriterActions = actions.Actions({ | |||||||
| 			logger = logger || this.logger | 			logger = logger || this.logger | ||||||
| 			var that = this | 			var that = this | ||||||
| 			var base_dir = this.location.path | 			var base_dir = this.location.path | ||||||
|  | 
 | ||||||
|  | 			// resolve relative paths...
 | ||||||
|  | 			if(/^(\.\.?[\\\/]|[^\\\/])/.test(path)){ | ||||||
|  | 				// XXX do we need to normalize???
 | ||||||
|  | 				path = base_dir +'/'+ path | ||||||
|  | 			} | ||||||
|  | 
 | ||||||
| 			var to_dir = path | 			var to_dir = path | ||||||
| 
 | 
 | ||||||
| 			// get/set the config data...
 | 			// get/set the config data...
 | ||||||
| @ -941,18 +949,28 @@ var FileSystemWriterActions = actions.Actions({ | |||||||
| 								// XXX get/form image name... 
 | 								// XXX get/form image name... 
 | ||||||
| 								// XXX might be a good idea to connect this to the info framework...
 | 								// XXX might be a good idea to connect this to the info framework...
 | ||||||
| 								var ext = pathlib.extname(img.name) | 								var ext = pathlib.extname(img.name) | ||||||
|  | 								var tags = that.data.getTags(gid) | ||||||
| 								var name = pattern | 								var name = pattern | ||||||
|  | 									// file name...
 | ||||||
| 									.replace(/%f/, img.name) | 									.replace(/%f/, img.name) | ||||||
| 									.replace(/%n/, img.name.replace(ext, '')) | 									.replace(/%n/, img.name.replace(ext, '')) | ||||||
| 									.replace(/%e/, ext) | 									.replace(/%e/, ext) | ||||||
|  | 
 | ||||||
|  | 									// gid...
 | ||||||
| 									.replace(/%gid/, gid) | 									.replace(/%gid/, gid) | ||||||
| 									// XXX get the correct length...
 | 									// XXX get the correct short gid length...
 | ||||||
| 									.replace(/%g/, gid.slice(-7, -1)) | 									.replace(/%g/, gid.slice(-7, -1)) | ||||||
| 									// XXX %()m marked...
 | 
 | ||||||
|  | 									// order...
 | ||||||
|  | 									.replace(/%i/, that.data.getImageOrder(gid)) | ||||||
|  | 									.replace(/%I/, that.data.getImageOrder(gid, 'global')) | ||||||
|  | 
 | ||||||
|  | 									// tags...
 | ||||||
|  | 									.replace(/%\((.*)\)m/, tags.indexOf('selected') >= 0 ? '$1' : '') | ||||||
|  | 									.replace(/%\((.*)\)b/, tags.indexOf('bookmark') >= 0 ? '$1' : '') | ||||||
|  | 
 | ||||||
|  | 									// metadata...
 | ||||||
| 									// XXX
 | 									// XXX
 | ||||||
| 									// XXX %()b bookmarked...
 |  | ||||||
| 									// XXX
 |  | ||||||
| 									// XXX EXIF...
 |  | ||||||
| 
 | 
 | ||||||
| 								var to = img_dir +'/'+ name | 								var to = img_dir +'/'+ name | ||||||
| 
 | 
 | ||||||
| @ -1223,8 +1241,7 @@ var FileSystemWriterUIActions = actions.Actions({ | |||||||
| 						'export-preview-size')) | 						'export-preview-size')) | ||||||
| 
 | 
 | ||||||
| 		}, | 		}, | ||||||
| 		// XXX make this editable on open and remove "new" from history...
 | 		// XXX BUG: history closing errors -- non-critical...
 | ||||||
| 		// XXX add "history" button...
 |  | ||||||
| 		'target_dir': function(actions, make, overlay){ | 		'target_dir': function(actions, make, overlay){ | ||||||
| 			var elem = make(['To: ',  | 			var elem = make(['To: ',  | ||||||
| 				function(){ return actions.config['export-path'] || './' }],  | 				function(){ return actions.config['export-path'] || './' }],  | ||||||
| @ -1247,13 +1264,13 @@ var FileSystemWriterUIActions = actions.Actions({ | |||||||
| 								overlay.focus() | 								overlay.focus() | ||||||
| 							}) | 							}) | ||||||
| 					}], | 					}], | ||||||
|  | 					// XXX BUG: closing this breaks on parant.focus()...
 | ||||||
| 					['histroy', widgets.makeNestedConfigListEditor(actions, overlay, | 					['histroy', widgets.makeNestedConfigListEditor(actions, overlay, | ||||||
| 						'export-paths', | 						'export-paths', | ||||||
| 						'export-path', | 						'export-path', | ||||||
| 						{ | 						{ | ||||||
|  | 							unique: true, | ||||||
| 							new_button: false, | 							new_button: false, | ||||||
| 							// XXX add 'edit' button...
 |  | ||||||
| 							//itemButtons: []
 |  | ||||||
| 						})], | 						})], | ||||||
| 				]}) | 				]}) | ||||||
| 				// XXX make this editable???
 | 				// XXX make this editable???
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user