mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-10-30 19:00:09 +00:00 
			
		
		
		
	added experimental .order_list to data (find a better name?)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									2ed83bbb4c
								
							
						
					
					
						commit
						12dcb83353
					
				| @ -9,6 +9,9 @@ define(function(require){ var module = {} | |||||||
| console.log('>>> data') | console.log('>>> data') | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | var formats = require('formats') | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| module.DATA_VERSION = '3.0' | module.DATA_VERSION = '3.0' | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @ -149,6 +152,19 @@ module.DataPrototype = { | |||||||
| 	//	 	NOTE: this list may contain gids not loaded at the moment, 
 | 	//	 	NOTE: this list may contain gids not loaded at the moment, 
 | ||||||
| 	//	 		a common case for this is when data is cropped.
 | 	//	 		a common case for this is when data is cropped.
 | ||||||
| 	//
 | 	//
 | ||||||
|  | 	//	.order_list	EXPERIMENTAL
 | ||||||
|  | 	//		Dict of named user defined order lists
 | ||||||
|  | 	//
 | ||||||
|  | 	//		format:
 | ||||||
|  | 	//			{ name: [ gid, .. ], .. }
 | ||||||
|  | 	//
 | ||||||
|  | 	//		reserved order names:
 | ||||||
|  | 	//			'last'		- stores the last order before cange
 | ||||||
|  | 	//			'manual'	- stores the last user-defined orderbefore 
 | ||||||
|  | 	//						  resort
 | ||||||
|  | 	//
 | ||||||
|  | 	//		NOTE: this attr is optional...
 | ||||||
|  | 	//
 | ||||||
| 	// 	.ribbon_order
 | 	// 	.ribbon_order
 | ||||||
| 	// 		List of ribbon gids setting the ribbon order.
 | 	// 		List of ribbon gids setting the ribbon order.
 | ||||||
| 	//
 | 	//
 | ||||||
| @ -823,6 +839,23 @@ module.DataPrototype = { | |||||||
| 		return this | 		return this | ||||||
| 	}, | 	}, | ||||||
| 
 | 
 | ||||||
|  | 	// XXX should these be here or in a pligin???
 | ||||||
|  | 	saveOrderAs: function(name, order){ | ||||||
|  | 		if(this.order_list == null){ | ||||||
|  | 			this.order_list = {} | ||||||
|  | 		} | ||||||
|  | 		this.order_list[name] = order != null ? order : this.order.slice() | ||||||
|  | 		return this | ||||||
|  | 	}, | ||||||
|  | 	loadOrder: function(name){ | ||||||
|  | 		var order = name.constructor.name == 'Array' ? name : this.order_list[name].slice() | ||||||
|  | 		if(order == null){ | ||||||
|  | 			return this | ||||||
|  | 		} | ||||||
|  | 		this.order = order | ||||||
|  | 		return this.sortImages() | ||||||
|  | 	}, | ||||||
|  | 
 | ||||||
| 	// Shift image...
 | 	// Shift image...
 | ||||||
| 	//
 | 	//
 | ||||||
| 	//	Shift image to target position:
 | 	//	Shift image to target position:
 | ||||||
| @ -1402,12 +1435,14 @@ module.DataPrototype = { | |||||||
| 	// Load data from JSON...
 | 	// Load data from JSON...
 | ||||||
| 	//
 | 	//
 | ||||||
| 	// NOTE: this loads in-place, use .fromJSON(..) to create new data...
 | 	// NOTE: this loads in-place, use .fromJSON(..) to create new data...
 | ||||||
|  | 	// XXX should this process defaults for unset values???
 | ||||||
| 	loadJSON: function(data){ | 	loadJSON: function(data){ | ||||||
| 		data = typeof(data) == typeof('str') ? JSON.parse(data) : data | 		data = typeof(data) == typeof('str') ? JSON.parse(data) : data | ||||||
| 		data = formats.updateData(data) | 		data = formats.updateData(data) | ||||||
| 		this.base = data.base | 		this.base = data.base | ||||||
| 		this.current = data.current | 		this.current = data.current | ||||||
| 		this.order = data.order.slice() | 		this.order = data.order.slice() | ||||||
|  | 		this.order_list = data.order_list != null ? JSON.parse(JSON.stringify(data.order_list)) : null | ||||||
| 		this.ribbon_order = data.ribbon_order.slice() | 		this.ribbon_order = data.ribbon_order.slice() | ||||||
| 		this.ribbons = {} | 		this.ribbons = {} | ||||||
| 		// make ribbons sparse...
 | 		// make ribbons sparse...
 | ||||||
| @ -1430,6 +1465,10 @@ module.DataPrototype = { | |||||||
| 			ribbon_order: this.ribbon_order.slice(), | 			ribbon_order: this.ribbon_order.slice(), | ||||||
| 			ribbons: {}, | 			ribbons: {}, | ||||||
| 		} | 		} | ||||||
|  | 		if(this.order_list != null && Object.keys(this.order_list).length > 0){ | ||||||
|  | 			// do a deep copy...
 | ||||||
|  | 			res.order_list = JSON.parse(JSON.stringify(this.order_list)) | ||||||
|  | 		} | ||||||
| 		// compact ribbons...
 | 		// compact ribbons...
 | ||||||
| 		for(var k in this.ribbons){ | 		for(var k in this.ribbons){ | ||||||
| 			res.ribbons[k] = this.ribbons[k].compact() | 			res.ribbons[k] = this.ribbons[k].compact() | ||||||
|  | |||||||
| @ -71,10 +71,11 @@ function(data, cmp){ | |||||||
| // 		the Data object...
 | // 		the Data object...
 | ||||||
| // NOTE: this uses require('data').Data().newGid(..) for ribbon gid 
 | // NOTE: this uses require('data').Data().newGid(..) for ribbon gid 
 | ||||||
| // 		generation...
 | // 		generation...
 | ||||||
|  | // XXX test...
 | ||||||
| //module.convertDataGen3 = 
 | //module.convertDataGen3 = 
 | ||||||
| module.VERSIONS['3.0'] = | module.VERSIONS['3.0'] = | ||||||
| function(data){ | function(data){ | ||||||
| 	data = data.version == null ? module.VERSIONS['2.0'](data) : data | 	data = data.version < '3.0' ? module.VERSIONS['2.0'](data) : data | ||||||
| 
 | 
 | ||||||
| 	// XXX is this the right way to go???
 | 	// XXX is this the right way to go???
 | ||||||
| 	var that = require('data').Data() | 	var that = require('data').Data() | ||||||
| @ -83,20 +84,41 @@ function(data){ | |||||||
| 	res.version = '3.0' | 	res.version = '3.0' | ||||||
| 	res.current = data.current | 	res.current = data.current | ||||||
| 	res.order = data.order.slice() | 	res.order = data.order.slice() | ||||||
| 	res.ribbon_order = [] | 	res.ribbon_order = data.ribbon_order == null ? [] : data.ribbon_order.slice() | ||||||
| 	res.ribbons = {}  | 	res.ribbons = {}  | ||||||
| 	// generate gids...
 | 	// generate gids...
 | ||||||
| 	data.ribbons.forEach(function(e){ | 	// NOTE: this will use the structures stored in data if available, 
 | ||||||
| 		var gid = that.newGid('R') | 	// 		otherwise new structures will be generated...
 | ||||||
|  | 	// NOTE: we need to do this anyway as we also need to deep-copy the 
 | ||||||
|  | 	// 		ribbons...
 | ||||||
|  | 	var keys = data.ribbon_order != null  | ||||||
|  | 		? data.ribbon_order  | ||||||
|  | 		: Object.keys(data.ribbons) | ||||||
|  | 	keys.forEach(function(k){ | ||||||
|  | 		var gid = k*1 == null ? k : that.newGid('R') | ||||||
| 		res.ribbon_order.push(gid) | 		res.ribbon_order.push(gid) | ||||||
| 		res.ribbons[gid] = e.slice() | 		res.ribbons[gid] = data.ribbons[k].slice() | ||||||
| 	}) | 	}) | ||||||
| 	// we set the base to the first ribbon...
 | 	// we set the base to the first ribbon...
 | ||||||
| 	res.base = res.ribbon_order[0] | 	res.base = data.base == null ? res.ribbon_order[0] : res.base | ||||||
| 	return res | 	return res | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  | // XXX EXPERIMENTAL...
 | ||||||
|  | module.VERSIONS['3.1'] = | ||||||
|  | function(data){ | ||||||
|  | 	res = module.VERSIONS['3.0'](data) | ||||||
|  | 
 | ||||||
|  | 	res.version = '3.1' | ||||||
|  | 	res.order_list = data.order_list != null ? JSON.parse(JSON.stringify(data.order_list)) : null | ||||||
|  | 
 | ||||||
|  | 	return res | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| // Get latest updater version...
 | // Get latest updater version...
 | ||||||
| //
 | //
 | ||||||
| module.getLatestUpdaterVersion = function(){ | module.getLatestUpdaterVersion = function(){ | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user