mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-10-31 03:10:07 +00:00 
			
		
		
		
	split out ui progress reporting...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									53d1ececc4
								
							
						
					
					
						commit
						a7734d00b4
					
				| @ -21,6 +21,7 @@ require('features/ui') | |||||||
| require('features/ui-partial-ribbons') | require('features/ui-partial-ribbons') | ||||||
| require('features/ui-single-image') | require('features/ui-single-image') | ||||||
| require('features/ui-chrome') | require('features/ui-chrome') | ||||||
|  | require('features/ui-progress') | ||||||
| require('features/keyboard') | require('features/keyboard') | ||||||
| require('features/ui-status') | require('features/ui-status') | ||||||
| require('features/ui-marks') | require('features/ui-marks') | ||||||
|  | |||||||
| @ -366,6 +366,7 @@ var FileSystemLoaderActions = actions.Actions({ | |||||||
| 			var that = this | 			var that = this | ||||||
| 			// XXX get a logger...
 | 			// XXX get a logger...
 | ||||||
| 			logger = logger || this.logger | 			logger = logger || this.logger | ||||||
|  | 			logger = logger && logger.push('Load') | ||||||
| 
 | 
 | ||||||
| 			if(path == null){ | 			if(path == null){ | ||||||
| 				return | 				return | ||||||
| @ -570,6 +571,7 @@ var FileSystemLoaderActions = actions.Actions({ | |||||||
| 
 | 
 | ||||||
| 			// XXX get a logger...
 | 			// XXX get a logger...
 | ||||||
| 			logger = logger || this.logger | 			logger = logger || this.logger | ||||||
|  | 			//logger = logger && logger.push('getImagesInPath')
 | ||||||
| 
 | 
 | ||||||
| 			var that = this | 			var that = this | ||||||
| 			path = util.normalizePath(path) | 			path = util.normalizePath(path) | ||||||
| @ -641,6 +643,7 @@ var FileSystemLoaderActions = actions.Actions({ | |||||||
| 				return | 				return | ||||||
| 			} | 			} | ||||||
| 			logger = logger || this.logger | 			logger = logger || this.logger | ||||||
|  | 			logger = logger && logger.push('Load images') | ||||||
| 
 | 
 | ||||||
| 			var that = this | 			var that = this | ||||||
| 			path = util.normalizePath(path) | 			path = util.normalizePath(path) | ||||||
| @ -692,6 +695,7 @@ var FileSystemLoaderActions = actions.Actions({ | |||||||
| 
 | 
 | ||||||
| 			var that = this | 			var that = this | ||||||
| 			logger = logger || this.logger | 			logger = logger || this.logger | ||||||
|  | 			logger = logger && logger.push('Load new images') | ||||||
| 			path = util.normalizePath(path) | 			path = util.normalizePath(path) | ||||||
| 
 | 
 | ||||||
| 			// cache the loaded images...
 | 			// cache the loaded images...
 | ||||||
| @ -1105,6 +1109,7 @@ var FileSystemCommentsActions = actions.Actions({ | |||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			logger = logger || this.logger | 			logger = logger || this.logger | ||||||
|  | 			logger = logger && logger.push('saveComments') | ||||||
| 
 | 
 | ||||||
| 			var path = this.location.path | 			var path = this.location.path | ||||||
| 			var comments_dir = this.config['index-dir'] +'/comments' | 			var comments_dir = this.config['index-dir'] +'/comments' | ||||||
| @ -1126,6 +1131,7 @@ var FileSystemCommentsActions = actions.Actions({ | |||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			logger = logger || this.logger | 			logger = logger || this.logger | ||||||
|  | 			logger = logger && logger.push('Load comments') | ||||||
| 
 | 
 | ||||||
| 			var that = this | 			var that = this | ||||||
| 			var loaded = this.location.loaded | 			var loaded = this.location.loaded | ||||||
| @ -1746,6 +1752,7 @@ var FileSystemWriterActions = actions.Actions({ | |||||||
| 			var that = this | 			var that = this | ||||||
| 			// XXX get a logger...
 | 			// XXX get a logger...
 | ||||||
| 			logger = logger || this.logger | 			logger = logger || this.logger | ||||||
|  | 			logger = logger && logger.push('Save') | ||||||
| 
 | 
 | ||||||
| 			path = path || this.location.loaded | 			path = path || this.location.loaded | ||||||
| 			path = path && path.length == 1 ? path[0] : path  | 			path = path && path.length == 1 ? path[0] : path  | ||||||
| @ -1830,6 +1837,7 @@ var FileSystemWriterActions = actions.Actions({ | |||||||
| 	exportIndex: ['- File/Export/Export index', | 	exportIndex: ['- File/Export/Export index', | ||||||
| 		function(path, max_size, include_orig, logger){ | 		function(path, max_size, include_orig, logger){ | ||||||
| 			logger = logger || this.logger | 			logger = logger || this.logger | ||||||
|  | 			logger = logger && logger.push('Export index') | ||||||
| 
 | 
 | ||||||
| 			max_size = parseInt(max_size || this.config['export-preview-size-limit']) || null | 			max_size = parseInt(max_size || this.config['export-preview-size-limit']) || null | ||||||
| 			// XXX make this dependant on max_size....
 | 			// XXX make this dependant on max_size....
 | ||||||
| @ -1953,7 +1961,8 @@ var FileSystemWriterActions = actions.Actions({ | |||||||
| 					index_path,  | 					index_path,  | ||||||
| 					index.date, | 					index.date, | ||||||
| 					this.config['index-filename-template'],  | 					this.config['index-filename-template'],  | ||||||
| 					logger || this.logger) | 					logger) | ||||||
|  | 					//logger || this.logger)
 | ||||||
| 				// set hidden file attribute on Windows...
 | 				// set hidden file attribute on Windows...
 | ||||||
| 				.then(function(){ | 				.then(function(){ | ||||||
| 					typeof(process) != 'undefined'  | 					typeof(process) != 'undefined'  | ||||||
| @ -1996,6 +2005,7 @@ var FileSystemWriterActions = actions.Actions({ | |||||||
| 	exportDirs: ['- File/Export/Export ribbons as directories', | 	exportDirs: ['- File/Export/Export ribbons as directories', | ||||||
| 		function(path, pattern, level_dir, size, logger){ | 		function(path, pattern, level_dir, size, logger){ | ||||||
| 			logger = logger || this.logger | 			logger = logger || this.logger | ||||||
|  | 			logger = logger && logger.push('Export dirs') | ||||||
| 			var that = this | 			var that = this | ||||||
| 			var base_dir = this.location.path | 			var base_dir = this.location.path | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -81,6 +81,7 @@ core.ImageGridFeatures.Feature('viewer-testing', [ | |||||||
| 	'external-editor', | 	'external-editor', | ||||||
| 
 | 
 | ||||||
| 	// chrome...
 | 	// chrome...
 | ||||||
|  | 	'ui-progress', | ||||||
| 	'ui-status-log', | 	'ui-status-log', | ||||||
| 	'ui-scale', | 	'ui-scale', | ||||||
| 	'ui-animation', | 	'ui-animation', | ||||||
|  | |||||||
							
								
								
									
										162
									
								
								ui (gen4)/features/ui-progress.js
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										162
									
								
								ui (gen4)/features/ui-progress.js
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,162 @@ | |||||||
|  | /********************************************************************** | ||||||
|  | *  | ||||||
|  | * | ||||||
|  | * | ||||||
|  | **********************************************************************/ | ||||||
|  | ((typeof define)[0]=='u'?function(f){module.exports=f(require)}:define)( | ||||||
|  | function(require){ var module={} // makes module AMD/node compatible...
 | ||||||
|  | /*********************************************************************/ | ||||||
|  | 
 | ||||||
|  | var actions = require('lib/actions') | ||||||
|  | var features = require('lib/features') | ||||||
|  | 
 | ||||||
|  | var core = require('features/core') | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | /*********************************************************************/ | ||||||
|  | 
 | ||||||
|  | var ProgressActions = actions.Actions({ | ||||||
|  | 	config: { | ||||||
|  | 		'progress-fade-duration': 200, | ||||||
|  | 		'progress-done-delay': 1000, | ||||||
|  | 	}, | ||||||
|  | 
 | ||||||
|  | 	// Progress bar widget...
 | ||||||
|  | 	//
 | ||||||
|  | 	// 	Create progress bar...
 | ||||||
|  | 	// 	.testProgress('text')
 | ||||||
|  | 	//
 | ||||||
|  | 	// 	Update progress bar (value, max, msg)...
 | ||||||
|  | 	// 	.testProgress('text', 0, 10)
 | ||||||
|  | 	// 	.testProgress('text', 10, 50, 'message')
 | ||||||
|  | 	//
 | ||||||
|  | 	// 	Update progress bar value (has no effect if max is not set)...
 | ||||||
|  | 	// 	.testProgress('text', 10)
 | ||||||
|  | 	//
 | ||||||
|  | 	// 	Close progress bar...
 | ||||||
|  | 	// 	.testProgress('text', 'close')
 | ||||||
|  | 	//
 | ||||||
|  | 	// 	Relative progress modification...
 | ||||||
|  | 	// 	.testProgress('text', '+1')
 | ||||||
|  | 	// 	.testProgress('text', '+0', '+1')
 | ||||||
|  | 	//
 | ||||||
|  | 	//
 | ||||||
|  | 	// XXX move configuration to .config
 | ||||||
|  | 	// XXX should we report errors and stoppages??? (error state??)
 | ||||||
|  | 	// XXX multiple containers...
 | ||||||
|  | 	// XXX shorten the nested class names...
 | ||||||
|  | 	// XXX revise styles...
 | ||||||
|  | 	showProgress: ['- Interface/Show progress bar...', | ||||||
|  | 		function(text, value, max){ | ||||||
|  | 			var viewer = this.ribbons.viewer | ||||||
|  | 			var that = this | ||||||
|  | 
 | ||||||
|  | 			var msg = text instanceof Array ? text.slice(1).join(': ') : null | ||||||
|  | 			text = text instanceof Array ? text[0] : text | ||||||
|  | 
 | ||||||
|  | 			// container...
 | ||||||
|  | 			var container = viewer.find('.progress-container') | ||||||
|  | 			container = container.length == 0 ? | ||||||
|  | 				$('<div/>') | ||||||
|  | 					.addClass('progress-container') | ||||||
|  | 					.appendTo(viewer) | ||||||
|  | 				: container | ||||||
|  | 
 | ||||||
|  | 			// widget...
 | ||||||
|  | 			var widget = container.find('.progress-bar[name="'+text+'"]') | ||||||
|  | 			// close action...
 | ||||||
|  | 			if(value == 'close'){ | ||||||
|  | 				widget.trigger('progressClose') | ||||||
|  | 				return | ||||||
|  | 			} | ||||||
|  | 			widget = widget.length == 0 ? | ||||||
|  | 				$('<div/>') | ||||||
|  | 					.addClass('progress-bar') | ||||||
|  | 					.attr('name', text) | ||||||
|  | 					.text(text) | ||||||
|  | 					// close button...
 | ||||||
|  | 					.append($('<span class="close">×</span>') | ||||||
|  | 						.on('click', function(){ widget.trigger('progressClose') })) | ||||||
|  | 					// state...
 | ||||||
|  | 					.append($('<span/>') | ||||||
|  | 						.addClass('progress-details')) | ||||||
|  | 					// bar...
 | ||||||
|  | 					.append($('<progress/>')) | ||||||
|  | 					// events...
 | ||||||
|  | 					.on('progressClose', function(){  | ||||||
|  | 						widget | ||||||
|  | 							.fadeOut(that.config['progress-fade-duration'] || 200, function(){ | ||||||
|  | 								$(this).remove()  | ||||||
|  | 							}) | ||||||
|  | 					}) | ||||||
|  | 					.appendTo(container) | ||||||
|  | 				: widget | ||||||
|  | 
 | ||||||
|  | 			// reset closing timeout...
 | ||||||
|  | 			var timeout = widget.attr('close-timeout') | ||||||
|  | 			timeout && clearTimeout(JSON.parse(timeout)) | ||||||
|  | 
 | ||||||
|  | 			// get the widget parts we are updating...
 | ||||||
|  | 			var bar = widget.find('progress') | ||||||
|  | 			var state = widget.find('.progress-details') | ||||||
|  | 
 | ||||||
|  | 			// XXX stub???
 | ||||||
|  | 			// normalize max and value...
 | ||||||
|  | 			max = max != null ?  | ||||||
|  | 					(typeof(max) == typeof('str') && /[+-][0-9]+/.test(max) ?  | ||||||
|  | 						parseInt(bar.attr('max') || 0) + parseInt(max) | ||||||
|  | 					: parseInt(max)) | ||||||
|  | 				: bar.attr('max') | ||||||
|  | 			value = value != null ?  | ||||||
|  | 					(typeof(value) == typeof('str') && /[+-][0-9]+/.test(value) ?  | ||||||
|  | 						parseInt(bar.attr('value') || 0) + parseInt(value) | ||||||
|  | 					: parseInt(value)) | ||||||
|  | 				: bar.attr('value') | ||||||
|  | 
 | ||||||
|  | 			// format the message...
 | ||||||
|  | 			msg = msg ? ': '+msg : '' | ||||||
|  | 			msg = ' '+ msg  | ||||||
|  | 				//+ (value && value >= (max || 0) ? ' ('+value+' done)' 
 | ||||||
|  | 				+ (value && value >= (max || 0) ? ' (done)'  | ||||||
|  | 					: value && max && value != max ? ' ('+ value +' of '+ max +')' | ||||||
|  | 					: '...') | ||||||
|  | 
 | ||||||
|  | 			// update widget...
 | ||||||
|  | 			bar.attr({ | ||||||
|  | 				value: value || '', | ||||||
|  | 				max: max || '', | ||||||
|  | 			}) | ||||||
|  | 			state.text(msg) | ||||||
|  | 
 | ||||||
|  | 			// auto-close...
 | ||||||
|  | 			// XXX make this optional... 
 | ||||||
|  | 			if(value && value >= (max || 0)){ | ||||||
|  | 				widget.attr('close-timeout',  | ||||||
|  | 					JSON.stringify(setTimeout(function(){  | ||||||
|  | 						widget.trigger('progressClose')  | ||||||
|  | 					}, this.config['progress-done-delay'] || 1000))) | ||||||
|  | 			} | ||||||
|  | 
 | ||||||
|  | 			// XXX what should we return??? (state, self, controller?)
 | ||||||
|  | 		}], | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | var Progress =  | ||||||
|  | module.Progress = core.ImageGridFeatures.Feature({ | ||||||
|  | 	title: '', | ||||||
|  | 	doc: '', | ||||||
|  | 
 | ||||||
|  | 	tag: 'ui-progress', | ||||||
|  | 	depends: [ | ||||||
|  | 		'ui', | ||||||
|  | 	], | ||||||
|  | 
 | ||||||
|  | 	actions: ProgressActions,  | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | /********************************************************************** | ||||||
|  | * vim:set ts=4 sw=4 :                               */ return module }) | ||||||
| @ -1111,121 +1111,6 @@ var WidgetTestActions = actions.Actions({ | |||||||
| 		})], | 		})], | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 	// Progress bar widget...
 |  | ||||||
| 	//
 |  | ||||||
| 	// 	Create progress bar...
 |  | ||||||
| 	// 	.testProgress('text')
 |  | ||||||
| 	//
 |  | ||||||
| 	// 	Update progress bar (value, max, msg)...
 |  | ||||||
| 	// 	.testProgress('text', 0, 10)
 |  | ||||||
| 	// 	.testProgress('text', 10, 50, 'message')
 |  | ||||||
| 	//
 |  | ||||||
| 	// 	Update progress bar value (has no effect if max is not set)...
 |  | ||||||
| 	// 	.testProgress('text', 10)
 |  | ||||||
| 	//
 |  | ||||||
| 	// 	Close progress bar...
 |  | ||||||
| 	// 	.testProgress('text', 'close')
 |  | ||||||
| 	//
 |  | ||||||
| 	// 	Relative progress modification...
 |  | ||||||
| 	// 	.testProgress('text', '+1')
 |  | ||||||
| 	// 	.testProgress('text', '+0', '+1')
 |  | ||||||
| 	//
 |  | ||||||
| 	//
 |  | ||||||
| 	// XXX should we report errors and stoppages??? (error state??)
 |  | ||||||
| 	// XXX multiple containers...
 |  | ||||||
| 	// XXX shorten the nested class names...
 |  | ||||||
| 	// XXX revise styles...
 |  | ||||||
| 	showProgress: ['- Interface/Show progress bar...', |  | ||||||
| 		function(text, value, max){ |  | ||||||
| 			var viewer = this.ribbons.viewer |  | ||||||
| 
 |  | ||||||
| 			var msg = text instanceof Array ? text.slice(1).join(': ') : null |  | ||||||
| 			text = text instanceof Array ? text[0] : text |  | ||||||
| 
 |  | ||||||
| 			// container...
 |  | ||||||
| 			var container = viewer.find('.progress-container') |  | ||||||
| 			container = container.length == 0 ? |  | ||||||
| 				$('<div/>') |  | ||||||
| 					.addClass('progress-container') |  | ||||||
| 					.appendTo(viewer) |  | ||||||
| 				: container |  | ||||||
| 
 |  | ||||||
| 			// widget...
 |  | ||||||
| 			var widget = container.find('.progress-bar[name="'+text+'"]') |  | ||||||
| 			// close action...
 |  | ||||||
| 			if(value == 'close'){ |  | ||||||
| 				widget.trigger('progressClose') |  | ||||||
| 				return |  | ||||||
| 			} |  | ||||||
| 			widget = widget.length == 0 ? |  | ||||||
| 				$('<div/>') |  | ||||||
| 					.addClass('progress-bar') |  | ||||||
| 					.attr('name', text) |  | ||||||
| 					.text(text) |  | ||||||
| 					// close button...
 |  | ||||||
| 					.append($('<span class="close">×</span>') |  | ||||||
| 						.on('click', function(){ widget.trigger('progressClose') })) |  | ||||||
| 					// state...
 |  | ||||||
| 					.append($('<span/>') |  | ||||||
| 						.addClass('progress-details')) |  | ||||||
| 					// bar...
 |  | ||||||
| 					.append($('<progress/>')) |  | ||||||
| 					// events...
 |  | ||||||
| 					.on('progressClose', function(){  |  | ||||||
| 						widget |  | ||||||
| 							.fadeOut(200, function(){ |  | ||||||
| 								$(this).remove()  |  | ||||||
| 							}) |  | ||||||
| 					}) |  | ||||||
| 					.appendTo(container) |  | ||||||
| 				: widget |  | ||||||
| 
 |  | ||||||
| 			// reset closing timeout...
 |  | ||||||
| 			var timeout = widget.attr('close-timeout') |  | ||||||
| 			timeout && clearTimeout(JSON.parse(timeout)) |  | ||||||
| 
 |  | ||||||
| 			// get the widget parts we are updating...
 |  | ||||||
| 			var bar = widget.find('progress') |  | ||||||
| 			var state = widget.find('.progress-details') |  | ||||||
| 
 |  | ||||||
| 			// XXX stub???
 |  | ||||||
| 			// normalize max and value...
 |  | ||||||
| 			max = max != null ?  |  | ||||||
| 					(typeof(max) == typeof('str') && /[+-][0-9]+/.test(max) ?  |  | ||||||
| 						parseInt(bar.attr('max') || 0) + parseInt(max) |  | ||||||
| 					: parseInt(max)) |  | ||||||
| 				: bar.attr('max') |  | ||||||
| 			value = value != null ?  |  | ||||||
| 					(typeof(value) == typeof('str') && /[+-][0-9]+/.test(value) ?  |  | ||||||
| 						parseInt(bar.attr('value') || 0) + parseInt(value) |  | ||||||
| 					: parseInt(value)) |  | ||||||
| 				: bar.attr('value') |  | ||||||
| 
 |  | ||||||
| 			// format the message...
 |  | ||||||
| 			msg = msg ? ': '+msg : '' |  | ||||||
| 			msg = ' '+ msg  |  | ||||||
| 				+ (value && value >= (max || 0) ? ' ('+value+' done)'  |  | ||||||
| 					: value && max && value != max ? ' ('+ value +' of '+ max +')' |  | ||||||
| 					: ' (ready)') |  | ||||||
| 
 |  | ||||||
| 			// update widget...
 |  | ||||||
| 			bar.attr({ |  | ||||||
| 				value: value || '', |  | ||||||
| 				max: max || '', |  | ||||||
| 			}) |  | ||||||
| 			state.text(msg) |  | ||||||
| 
 |  | ||||||
| 			// auto-close...
 |  | ||||||
| 			// XXX make this optional... 
 |  | ||||||
| 			if(value && value >= (max || 0)){ |  | ||||||
| 				widget.attr('close-timeout',  |  | ||||||
| 					JSON.stringify(setTimeout(function(){  |  | ||||||
| 						widget.trigger('progressClose')  |  | ||||||
| 					}, 1000))) |  | ||||||
| 			} |  | ||||||
| 
 |  | ||||||
| 			// XXX what should we return??? (state, self, controller?)
 |  | ||||||
| 		}], |  | ||||||
| 	testProgress: ['Test/Demo progress bar...', | 	testProgress: ['Test/Demo progress bar...', | ||||||
| 		function(text){ | 		function(text){ | ||||||
| 			var done = 0 | 			var done = 0 | ||||||
|  | |||||||
| @ -40,6 +40,8 @@ var INDEX_DIR = '.ImageGrid' | |||||||
| // Skip nested indexes from tree...
 | // Skip nested indexes from tree...
 | ||||||
| //
 | //
 | ||||||
| var skipNested = function(paths, index_dir, logger){ | var skipNested = function(paths, index_dir, logger){ | ||||||
|  | 	logger = logger && logger.push('Skipping nested') | ||||||
|  | 
 | ||||||
| 	paths = paths | 	paths = paths | ||||||
| 		.map(function(p){ return p.split(index_dir).shift() }) | 		.map(function(p){ return p.split(index_dir).shift() }) | ||||||
| 		.sort(function(a, b){ return a.length - b.length }) | 		.sort(function(a, b){ return a.length - b.length }) | ||||||
| @ -107,6 +109,8 @@ function(base, index_dir){ | |||||||
| var getIndexes = | var getIndexes = | ||||||
| module.getIndexes =  | module.getIndexes =  | ||||||
| function(base, index_dir, logger){ | function(base, index_dir, logger){ | ||||||
|  | 	logger = logger && logger.push('Searching') | ||||||
|  | 
 | ||||||
| 	return new Promise(function(resolve, reject){ | 	return new Promise(function(resolve, reject){ | ||||||
| 		listIndexes(base, index_dir) | 		listIndexes(base, index_dir) | ||||||
| 			.on('error', function(err){ | 			.on('error', function(err){ | ||||||
| @ -243,6 +247,8 @@ function(list){ | |||||||
| var groupByKeyword =  | var groupByKeyword =  | ||||||
| module.groupByKeyword =  | module.groupByKeyword =  | ||||||
| function(list, from_date, logger){ | function(list, from_date, logger){ | ||||||
|  | 	logger = logger && logger.push('Grouping by keyword') | ||||||
|  | 
 | ||||||
| 	var index = {} | 	var index = {} | ||||||
| 	var queued = 0 | 	var queued = 0 | ||||||
| 
 | 
 | ||||||
| @ -328,6 +334,8 @@ function(list, from_date, logger){ | |||||||
| var loadSaveHistoryList = | var loadSaveHistoryList = | ||||||
| module.loadSaveHistoryList = | module.loadSaveHistoryList = | ||||||
| function(path, index_dir, logger){ | function(path, index_dir, logger){ | ||||||
|  | 	logger = logger && logger.push('Save history') | ||||||
|  | 
 | ||||||
| 	path = util.normalizePath(path) | 	path = util.normalizePath(path) | ||||||
| 	index_dir = index_dir || INDEX_DIR | 	index_dir = index_dir || INDEX_DIR | ||||||
| 
 | 
 | ||||||
| @ -467,6 +475,8 @@ function(path, index_dir, logger){ | |||||||
| var loadIndex = | var loadIndex = | ||||||
| module.loadIndex =  | module.loadIndex =  | ||||||
| function(path, index_dir, from_date, logger){ | function(path, index_dir, from_date, logger){ | ||||||
|  | 	logger = logger && logger.push('Index') | ||||||
|  | 
 | ||||||
| 	path = util.normalizePath(path) | 	path = util.normalizePath(path) | ||||||
| 
 | 
 | ||||||
| 	if(index_dir && index_dir.emit != null){ | 	if(index_dir && index_dir.emit != null){ | ||||||
| @ -921,6 +931,8 @@ var FILENAME = '${DATE}-${KEYWORD}.${EXT}' | |||||||
| var writeIndex = | var writeIndex = | ||||||
| module.writeIndex =  | module.writeIndex =  | ||||||
| function(json, path, date, filename_tpl, logger){ | function(json, path, date, filename_tpl, logger){ | ||||||
|  | 	logger = logger && logger.push('Index') | ||||||
|  | 
 | ||||||
| 	path = util.normalizePath(path) | 	path = util.normalizePath(path) | ||||||
| 	filename_tpl = filename_tpl || FILENAME | 	filename_tpl = filename_tpl || FILENAME | ||||||
| 	// XXX for some reason this gets the unpatched node.js Date, so we 
 | 	// XXX for some reason this gets the unpatched node.js Date, so we 
 | ||||||
|  | |||||||
| @ -143,19 +143,44 @@ $(function(){ | |||||||
| 		ig.features.features.length,  | 		ig.features.features.length,  | ||||||
| 		ig.features.features) | 		ig.features.features) | ||||||
| 
 | 
 | ||||||
| 	ig.logger = ig.logger || {emit: function(e, v){  | 	// XXX STUB...
 | ||||||
| 		console.log('    ', e, v)  | 	ig.logger = ig.logger || { | ||||||
|  | 		root: true, | ||||||
|  | 		message: null, | ||||||
| 
 | 
 | ||||||
| 		// XXX HACK -- need meaningful status...
 | 		emit: function(e, v){  | ||||||
| 		if(e == 'queued'  | 			var msg = this.message | ||||||
| 				|| e == 'found'){ |  | ||||||
| 			ig.showProgress('Progress', '+0', '+1') |  | ||||||
| 
 | 
 | ||||||
| 		} else if(e == 'loaded' || e == 'done' || e == 'written'  | 			// console...
 | ||||||
| 				|| e == 'skipping' || e == 'index'){ | 			console.log('    '+ ((msg && msg.concat('')) || []).join(': '), e, v)  | ||||||
| 			ig.showProgress('Progress', '+1') | 			 | ||||||
| 		} | 			// progress...
 | ||||||
| 	}} | 			// XXX HACK -- need meaningful status...
 | ||||||
|  | 			if(e == 'queued'  | ||||||
|  | 					|| e == 'found'){ | ||||||
|  | 				ig.showProgress(msg || ['Progress', e], '+0', '+1') | ||||||
|  | 
 | ||||||
|  | 			} else if(e == 'loaded' || e == 'done' || e == 'written'  | ||||||
|  | 					|| e == 'skipping' || e == 'index'){ | ||||||
|  | 				ig.showProgress(msg || ['Progress', e], '+1') | ||||||
|  | 			} | ||||||
|  | 		}, | ||||||
|  | 
 | ||||||
|  | 		push: function(msg){ | ||||||
|  | 			if(msg == null){ | ||||||
|  | 				return this | ||||||
|  | 			} | ||||||
|  | 
 | ||||||
|  | 			var logger = Object.create(this) | ||||||
|  | 			logger.root = false | ||||||
|  | 			logger.message = logger.message == null ? [msg] : logger.message.concat([msg]) | ||||||
|  | 
 | ||||||
|  | 			return logger | ||||||
|  | 		}, | ||||||
|  | 		pop: function(){ | ||||||
|  | 			return !this.__proto__.root ? this.__proto__ : this	 | ||||||
|  | 		}, | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 	// setup the viewer...
 | 	// setup the viewer...
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user