mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-10-30 19:00:09 +00:00 
			
		
		
		
	added data.clear(..) to data.js...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									a4449b88d0
								
							
						
					
					
						commit
						2f2a6a0045
					
				| @ -253,6 +253,114 @@ module.DataPrototype = { | ||||
| 		return gid | ||||
| 	}, | ||||
| 	 | ||||
| 	// Clear elements from data...
 | ||||
| 	//
 | ||||
| 	// 	Clear all data:
 | ||||
| 	// 	.clear('*')
 | ||||
| 	// 	.clear('all')
 | ||||
| 	// 		-> data
 | ||||
| 	//
 | ||||
| 	// 	Clear empty ribbons:
 | ||||
| 	// 	.clear('empty')
 | ||||
| 	// 		-> data
 | ||||
| 	//
 | ||||
| 	// 	Clear gid(s) form data:
 | ||||
| 	// 	.clear(gid)
 | ||||
| 	// 	.clear([gid, gid, ..])
 | ||||
| 	// 		-> data
 | ||||
| 	//
 | ||||
| 	//
 | ||||
| 	// Two extra argumants are considered:
 | ||||
| 	// 	- deep		- if set to true (default), when cleared a ribbon all
 | ||||
| 	// 				  images within that ribbon will also be cleared.
 | ||||
| 	// 	- clear_empty
 | ||||
| 	// 				- if true (default), empty ribbons will be removed 
 | ||||
| 	// 				  after all gids are cleared.
 | ||||
| 	// 				  this is equivalent to calling:
 | ||||
| 	// 				  	.clear('empty')
 | ||||
| 	//
 | ||||
| 	//
 | ||||
| 	// NOTE: at this point this will not set .base and .current but this
 | ||||
| 	// 		will reset them to null if a base ribbon or current image is
 | ||||
| 	// 		cleared...
 | ||||
| 	// 		thus setting appropriate .base and .current values is the 
 | ||||
| 	// 		responsibility of the caller.
 | ||||
| 	//
 | ||||
| 	// XXX not sure this should be here...
 | ||||
| 	// XXX should this reset .base and .current to appropriate values 
 | ||||
| 	// 		other than null?
 | ||||
| 	// XXX should this return this or the removed gids???
 | ||||
| 	clear: function(gids, deep, clear_empty){ | ||||
| 		// defaults...
 | ||||
| 		deep = deep == null ? true : false | ||||
| 		clear_empty = clear_empty == null ? true : false  | ||||
| 
 | ||||
| 		if(gids == null){ | ||||
| 			return this | ||||
| 		} | ||||
| 
 | ||||
| 		// clear all data...
 | ||||
| 		if(gids == '*' || gids == 'all'){ | ||||
| 			this._reset() | ||||
| 
 | ||||
| 		// clear empty ribbons only...
 | ||||
| 		} else if(gids == 'empty'){ | ||||
| 			for(var r in this.ribbons){ | ||||
| 				if(this.ribbons[r].len() == 0){ | ||||
| 					this.clear(r) | ||||
| 				} | ||||
| 			} | ||||
| 
 | ||||
| 		// clear gids...
 | ||||
| 		} else { | ||||
| 			gids = gids.constructor === Array ? gids : [gids] | ||||
| 			var that = this | ||||
| 			gids.forEach(function(gid){ | ||||
| 				var r = that.ribbon_order.indexOf(gid) | ||||
| 				var i = that.order.indexOf(gid) | ||||
| 				// gid is a ribbon...
 | ||||
| 				if(r >= 0){ | ||||
| 					// clear from order...
 | ||||
| 					that.ribbon_order.splice(r, 1) | ||||
| 
 | ||||
| 					// clear from ribbons...
 | ||||
| 					var images = that.ribbons[gid] | ||||
| 					delete that.ribbons[gid] | ||||
| 
 | ||||
| 					// remove ribbon images...
 | ||||
| 					if(deep){ | ||||
| 						images.forEach(function(gid){ that.clear(gid) }) | ||||
| 					} | ||||
| 
 | ||||
| 					if(that.base == gid){ | ||||
| 						that.base = null | ||||
| 					} | ||||
| 
 | ||||
| 				// gid is an image...
 | ||||
| 				} else if(i >= 0) { | ||||
| 					// remove from order...
 | ||||
| 					that.order.splice(i, 1) | ||||
| 
 | ||||
| 					// remove from ribbons...
 | ||||
| 					Object.keys(that.ribbons).forEach(function(r){ | ||||
| 						that.ribbons[r].splice(i, 1) | ||||
| 					}) | ||||
| 
 | ||||
| 					if(that.current == gid){ | ||||
| 						that.current = null | ||||
| 					} | ||||
| 				} | ||||
| 			}) | ||||
| 
 | ||||
| 			// cleanup...
 | ||||
| 			if(clear_empty){ | ||||
| 				this.clear('empty') | ||||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 		return this | ||||
| 	}, | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 	/*********************************************** Introspection ***/ | ||||
|  | ||||
| @ -472,6 +472,7 @@ actions.Actions(Client, { | ||||
| 			// 		is resized and recentered...
 | ||||
| 			this.ribbons.preventTransitions() | ||||
| 
 | ||||
| 			// XXX should we use this.reload() here???
 | ||||
| 			return function(){ | ||||
| 				// XXX do a partial load...
 | ||||
| 				// XXX
 | ||||
| @ -484,8 +485,14 @@ actions.Actions(Client, { | ||||
| 		}], | ||||
| 	reload: [ | ||||
| 		function(){ | ||||
| 			this.ribbons.preventTransitions() | ||||
| 
 | ||||
| 			return function(){ | ||||
| 				this.ribbons.updateData(this.data) | ||||
| 				this.focusImage() | ||||
| 
 | ||||
| 				this.ribbons.restoreTransitions() | ||||
| 			} | ||||
| 		}], | ||||
| 	clear: [ | ||||
| 		// XXX do we need to delete the ribbons???
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user