mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-10-31 03:10:07 +00:00 
			
		
		
		
	more refactoring....
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									41cf0fd5d2
								
							
						
					
					
						commit
						97f0cd3b1a
					
				| @ -1385,9 +1385,13 @@ var BrowseActionsActions = actions.Actions({ | |||||||
| 	// 		'System/' hidden...
 | 	// 		'System/' hidden...
 | ||||||
| 	alias: ['- System/', ''], | 	alias: ['- System/', ''], | ||||||
| 
 | 
 | ||||||
| 	// XXX this should sort the tree leaves???
 | 	// XXX this should also (optionally?):
 | ||||||
| 	// 		...if sorting then exclude priorities...
 | 	// 		- sort levels						- DONE
 | ||||||
| 	// XXX add option not to run checks...
 | 	// 			...remove sorting from .browseActions(..)
 | ||||||
|  | 	// 		- expand path patterns (???)
 | ||||||
|  | 	// 		- handle "*" listing (???)
 | ||||||
|  | 	// 		- handle visibility checks (???)
 | ||||||
|  | 	// XXX add option to run checks...
 | ||||||
| 	listActions: ['- System/', | 	listActions: ['- System/', | ||||||
| 		core.doc`List actions in action tree...
 | 		core.doc`List actions in action tree...
 | ||||||
| 
 | 
 | ||||||
| @ -1427,8 +1431,61 @@ var BrowseActionsActions = actions.Actions({ | |||||||
| 			var MARKER = RegExp(this.config['browse-actions-shortcut-marker'], 'g') | 			var MARKER = RegExp(this.config['browse-actions-shortcut-marker'], 'g') | ||||||
| 			MARKER = MARKER || RegExp(MARKER, 'g') | 			MARKER = MARKER || RegExp(MARKER, 'g') | ||||||
| 
 | 
 | ||||||
|  | 			// Sort tree level in-place...
 | ||||||
|  | 			//
 | ||||||
|  | 			// NOTE: this will remove the priority
 | ||||||
|  | 			// XXX should this also handle path patterns...
 | ||||||
|  | 			var sortTree = function(tree, raw_keys, shallow){ | ||||||
|  | 				var level = Object.keys(tree) | ||||||
|  | 				level | ||||||
|  | 					.slice() | ||||||
|  | 					// sort according to item priority: 'NN: <text>'
 | ||||||
|  | 					//	NN > 0		- is sorted above the non-prioritized
 | ||||||
|  | 					//					elements, the greater the number 
 | ||||||
|  | 					//					the higher the element
 | ||||||
|  | 					//	NN < 0		- is sorted below the non-prioritized
 | ||||||
|  | 					//					elements, the lower the number 
 | ||||||
|  | 					//					the lower the element
 | ||||||
|  | 					// other		- keep order
 | ||||||
|  | 					.sort(function(a, b){ | ||||||
|  | 						var ai = PRIORITY.exec(a) | ||||||
|  | 						ai = ai ? ai.pop()*1 : null | ||||||
|  | 						ai = ai > 0 ? -ai | ||||||
|  | 							: ai < 0 ? -ai + level.length | ||||||
|  | 							: 0 | ||||||
|  | 
 | ||||||
|  | 						var bi = PRIORITY.exec(b) | ||||||
|  | 						bi = bi ? bi.pop()*1 : null | ||||||
|  | 						bi = bi > 0 ? -bi | ||||||
|  | 							: bi < 0 ? -bi + level.length | ||||||
|  | 							: 0 | ||||||
|  | 
 | ||||||
|  | 						return ai == bi ?  | ||||||
|  | 							level.indexOf(a) - level.indexOf(b)  | ||||||
|  | 							: ai - bi | ||||||
|  | 					}) | ||||||
|  | 					.forEach(function(key){ | ||||||
|  | 						var text = !raw_keys ?  | ||||||
|  | 							key.replace(PRIORITY, '').trim() | ||||||
|  | 							: key  | ||||||
|  | 
 | ||||||
|  | 						// replace keys in order...
 | ||||||
|  | 						var value = tree[key] | ||||||
|  | 						delete tree[key] | ||||||
|  | 						tree[text] = value | ||||||
|  | 
 | ||||||
|  | 						// go down the tree...
 | ||||||
|  | 						!shallow  | ||||||
|  | 							&& value  | ||||||
|  | 							&& !(value instanceof Array) | ||||||
|  | 							&& sortTree(value, raw_keys, shallow) | ||||||
|  | 					})  | ||||||
|  | 				return tree | ||||||
|  | 			} | ||||||
|  | 
 | ||||||
| 			// Get item from tree level taking into account additional 
 | 			// Get item from tree level taking into account additional 
 | ||||||
| 			// syntax like prioority...
 | 			// syntax like prioority...
 | ||||||
|  | 			//
 | ||||||
| 			// returns:
 | 			// returns:
 | ||||||
| 			// 	[<existing-text>, <new-level>]
 | 			// 	[<existing-text>, <new-level>]
 | ||||||
| 			//
 | 			//
 | ||||||
| @ -1468,6 +1525,7 @@ var BrowseActionsActions = actions.Actions({ | |||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			// Tree builder...
 | 			// Tree builder...
 | ||||||
|  | 			//
 | ||||||
| 			// XXX normalize actions -- whitespace, '!', args...
 | 			// XXX normalize actions -- whitespace, '!', args...
 | ||||||
| 			// XXX should this do level sorting???
 | 			// XXX should this do level sorting???
 | ||||||
| 			var buildTree = function(path, leaf, action, mode, tree){ | 			var buildTree = function(path, leaf, action, mode, tree){ | ||||||
| @ -1533,6 +1591,10 @@ var BrowseActionsActions = actions.Actions({ | |||||||
| 
 | 
 | ||||||
| 					buildTree(path, leaf, action, mode, tree) | 					buildTree(path, leaf, action, mode, tree) | ||||||
| 				}) | 				}) | ||||||
|  | 
 | ||||||
|  | 				// sort the tree...
 | ||||||
|  | 				// XXX still needs to handle path patterns...
 | ||||||
|  | 				sortTree(tree, path == 'raw') | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			// return the raw tree...
 | 			// return the raw tree...
 | ||||||
| @ -1785,6 +1847,7 @@ var BrowseActionsActions = actions.Actions({ | |||||||
| 				} else { | 				} else { | ||||||
| 					var level = Object.keys(cur) | 					var level = Object.keys(cur) | ||||||
| 					level | 					level | ||||||
|  | 						/*/ XXX | ||||||
| 						.slice() | 						.slice() | ||||||
| 						// sort according to item priority: 'NN: <text>'
 | 						// sort according to item priority: 'NN: <text>'
 | ||||||
| 						//	NN > 0		- is sorted above the non-prioritized
 | 						//	NN > 0		- is sorted above the non-prioritized
 | ||||||
| @ -1811,9 +1874,13 @@ var BrowseActionsActions = actions.Actions({ | |||||||
| 								level.indexOf(a) - level.indexOf(b)  | 								level.indexOf(a) - level.indexOf(b)  | ||||||
| 								: ai - bi | 								: ai - bi | ||||||
| 						}) | 						}) | ||||||
|  | 						//*/
 | ||||||
| 						.forEach(function(key){ | 						.forEach(function(key){ | ||||||
| 							// remove the order...
 | 							// remove the order...
 | ||||||
| 							var text = key.replace(PRIORITY, '').trim() | 							// XXX remove this...
 | ||||||
|  | 							// 		...this is done by .listActions(..)
 | ||||||
|  | 							//var text = key.replace(PRIORITY, '').trim()
 | ||||||
|  | 							var text = key | ||||||
| 
 | 
 | ||||||
| 							// Item: action...
 | 							// Item: action...
 | ||||||
| 							if(cur[key] instanceof Array){ | 							if(cur[key] instanceof Array){ | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user