mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-11-03 04:40:10 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			218 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			218 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
/**********************************************************************
 | 
						|
* 
 | 
						|
*
 | 
						|
**********************************************************************/
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/**********************************************************************
 | 
						|
* Info & status...
 | 
						|
*/
 | 
						|
 | 
						|
// XXX do we need a full rewrite here, or will it be better to just fill
 | 
						|
// 		the slots...
 | 
						|
function updateGlobalImageInfo(image){
 | 
						|
	image = image == null ? getImage() : $(image)
 | 
						|
	image = image.length == 0 ? getImage() : image
 | 
						|
 | 
						|
	var elem = $('.global-image-info')
 | 
						|
	if(elem.length == 0){
 | 
						|
		elem = $('<div class="global-image-info"/>')
 | 
						|
	}
 | 
						|
 | 
						|
	// no image no update...
 | 
						|
	if(image.length == 0){
 | 
						|
		return elem
 | 
						|
	}
 | 
						|
 | 
						|
	var gid = getImageGID(image)
 | 
						|
	var r = getRibbonIndex(getRibbon(image))
 | 
						|
	var data = IMAGES[gid]
 | 
						|
	var date = new Date(data.ctime * 1000)
 | 
						|
 | 
						|
	var meta = []
 | 
						|
 | 
						|
	image.hasClass('bookmarked') ? meta.push(
 | 
						|
			'<span class="shown">B</span>'+
 | 
						|
			'<span class="hidden"><b>B</b>ookmarked</span>') : ''
 | 
						|
 | 
						|
	image.hasClass('marked') ? meta.push(
 | 
						|
			'<span class="shown">M</span>'+
 | 
						|
			'<span class="hidden"><b>M</b>arked</span>') : ''
 | 
						|
 | 
						|
	var orientation = data.orientation
 | 
						|
	orientation = orientation == null ? 0 : orientation
 | 
						|
	orientation != 0 ? meta.push(
 | 
						|
			'<span class="shown">R</span>'+
 | 
						|
			'<span class="hidden"><b>R</b>otated: '+orientation+'°CW</span>') : ''
 | 
						|
 | 
						|
	var flip = data.flipped
 | 
						|
	flip != null ? meta.push(
 | 
						|
				'<span class="shown">F</span>'+
 | 
						|
				'<span class="hidden"><b>F</b>lipped: '+
 | 
						|
					//flip.map(function(e){ return e[0].capitalize() }).join(', ')+
 | 
						|
					flip.map(function(e){ return e.capitalize() }).join(', ')+
 | 
						|
				'</span>') 
 | 
						|
			: ''
 | 
						|
 | 
						|
 | 
						|
	meta = meta.join(', ') 
 | 
						|
	meta = meta != '' ? '( '+ meta +' )' : ''
 | 
						|
 | 
						|
	return updateInfo(elem,
 | 
						|
			// path...
 | 
						|
			'<span class="expanding-text path">'+
 | 
						|
				'<span class="shown">'+
 | 
						|
					getImageFileName(gid) +
 | 
						|
				'</span>'+
 | 
						|
				'<span class="hidden" '+
 | 
						|
						'style="position:absolute;'+
 | 
						|
								'background: black;'+
 | 
						|
								'padding: 3px;'+
 | 
						|
								'top: 0px;'+
 | 
						|
								'left: 0px;'+
 | 
						|
								'width: 100%;'+
 | 
						|
								'height: 100%"'+
 | 
						|
						'>'+
 | 
						|
					normalizePath(data.path) +
 | 
						|
				'</span>'+ 
 | 
						|
			'</span> '+ 
 | 
						|
 | 
						|
			// metadata...
 | 
						|
			'<span class="secondary expanding-text metadata">'+
 | 
						|
				meta +
 | 
						|
			'</span> '+
 | 
						|
			'<span class="secondary expanding-text metadata">'+
 | 
						|
				// XXX do we need to display a short gid?
 | 
						|
				//gid +
 | 
						|
				'GID:'+
 | 
						|
				'<span class="shown">'+ 
 | 
						|
					gid.slice(gid.length-6) +
 | 
						|
				'</span>'+
 | 
						|
				'<span class="hidden"> '+
 | 
						|
					(gid.length >= 6 ? 
 | 
						|
					 	(gid.slice(0, gid.length-6) +'<b>'+ gid.slice(gid.length-6) +'</b>') 
 | 
						|
						: gid)+
 | 
						|
				'</span>'+
 | 
						|
			'</span> '+
 | 
						|
 | 
						|
			// date...
 | 
						|
			'<span class="secondary expanding-text date">'+
 | 
						|
				'<span class="shown">TS:' + date.toShortDate() + '</span>'+
 | 
						|
				'<span class="hidden"><b>' + date.toString() + '</b></span>'+
 | 
						|
			'</span>'+
 | 
						|
 | 
						|
			// position...
 | 
						|
			'<span class="float-right position">('+ 
 | 
						|
				(DATA.ribbons[r].indexOf(gid)+1) +'/'+ DATA.ribbons[r].length +
 | 
						|
			')<span/>')
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
function updateInlineImageInfo(image, target){
 | 
						|
	image = image == null ? getImage() : $(image)
 | 
						|
	image = image.length == 0 ? getImage() : image
 | 
						|
	target = target == null ? image : target
 | 
						|
 | 
						|
	var elem = $('.inline-image-info')
 | 
						|
	if(elem.length == 0){
 | 
						|
		elem = $('<div class="inline-image-info"/>')
 | 
						|
	}
 | 
						|
 | 
						|
	// no image no update...
 | 
						|
	if(image.length == 0){
 | 
						|
		return elem
 | 
						|
	}
 | 
						|
 | 
						|
 | 
						|
	var gid = getImageGID(image)
 | 
						|
	//var r = getRibbonIndex(getRibbon(image))
 | 
						|
	var data = IMAGES[gid]
 | 
						|
	var date = new Date(data.ctime * 1000)
 | 
						|
 | 
						|
	var orientation = data.orientation
 | 
						|
	orientation = orientation == null ? 0 : orientation
 | 
						|
 | 
						|
	return updateInfo(elem,
 | 
						|
			// name...
 | 
						|
			getImageFileName(gid) +'<br>'+
 | 
						|
 | 
						|
			// date...
 | 
						|
			'<span class="secondary expanding-text date">'+
 | 
						|
				//date.toShortDate() +
 | 
						|
				'<span class="shown">' + date.toShortDate() + '</span>'+
 | 
						|
				'<span class="hidden"><b>' + date.toString() + '</b></span>'+
 | 
						|
			'</span>'+
 | 
						|
			'',
 | 
						|
			target)
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
function inlineImageInfoHoverHandler(evt){
 | 
						|
	if($(evt.target).hasClass('current-marker')){
 | 
						|
		var img = getImage()
 | 
						|
		var target = $('.current-marker')
 | 
						|
	} else {
 | 
						|
		var img = $(evt.target).closest('.image')
 | 
						|
		var target = img
 | 
						|
	}
 | 
						|
	if(img.length > 0){
 | 
						|
		if(target.find('.inline-image-info:visible').length == 0){
 | 
						|
			updateInlineImageInfo(img, target)
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/*********************************************************************/
 | 
						|
function setupInfo(viewer){
 | 
						|
	console.log('Info: setup...')
 | 
						|
 | 
						|
	return viewer
 | 
						|
		// info...
 | 
						|
		.on('focusingImage',
 | 
						|
			function(){
 | 
						|
				showRibbonIndicator()
 | 
						|
			})
 | 
						|
		.on([
 | 
						|
				'focusedNextRibbon',
 | 
						|
				'focusedPrevRibbon'
 | 
						|
			].join(' '),
 | 
						|
			function(){
 | 
						|
				if(toggleSingleImageMode('?') == 'on'){
 | 
						|
					flashRibbonIndicator()
 | 
						|
				}
 | 
						|
			})
 | 
						|
		.on([
 | 
						|
				'rotatingLeft',
 | 
						|
				'rotateingRight',
 | 
						|
				'flippingVertical',
 | 
						|
				'flippingHorizontal'
 | 
						|
			].join(' '), 
 | 
						|
			function(evt, image){
 | 
						|
				updateGlobalImageInfo($(image))
 | 
						|
			})
 | 
						|
		.on([
 | 
						|
				'focusingImage',
 | 
						|
				'togglingMarks',
 | 
						|
				'togglingBookmarks',
 | 
						|
				'removeingAllMarks',
 | 
						|
				'removeingRibbonMarks',
 | 
						|
				'markingAll',
 | 
						|
				'markingRibbon',
 | 
						|
				'invertingMarks'
 | 
						|
			].join(' '), 
 | 
						|
			function(){
 | 
						|
				updateGlobalImageInfo()
 | 
						|
				updateContextIndicators()
 | 
						|
			})
 | 
						|
 | 
						|
 | 
						|
}
 | 
						|
SETUP_BINDINGS.push(setupInfo)
 | 
						|
 | 
						|
 | 
						|
/**********************************************************************
 | 
						|
* vim:set ts=4 sw=4 spell nowrap :                                   */
 |