| 
									
										
										
										
											2013-06-02 20:14:39 +04:00
										 |  |  | /********************************************************************** | 
					
						
							|  |  |  | *  | 
					
						
							|  |  |  | * | 
					
						
							|  |  |  | **********************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /********************************************************************** | 
					
						
							|  |  |  | * 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 = [] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-14 06:07:22 +04:00
										 |  |  | 	image.hasClass('bookmarked') ? meta.push( | 
					
						
							|  |  |  | 			'<span class="shown">B</span>'+ | 
					
						
							|  |  |  | 			'<span class="hidden"><b>B</b>ookmarked</span>') : '' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-02 20:14:39 +04:00
										 |  |  | 	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>') : '' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-04 22:26:37 +04:00
										 |  |  | 	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>')  | 
					
						
							|  |  |  | 			: '' | 
					
						
							| 
									
										
										
										
											2013-06-04 22:01:41 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-02 20:14:39 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	meta = meta.join(', ')  | 
					
						
							|  |  |  | 	meta = meta != '' ? '( '+ meta +' )' : '' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	return updateInfo(elem, | 
					
						
							|  |  |  | 			// path...
 | 
					
						
							|  |  |  | 			'<span class="expanding-text path">'+ | 
					
						
							|  |  |  | 				'<span class="shown">'+ | 
					
						
							| 
									
										
										
										
											2013-10-18 05:03:11 +04:00
										 |  |  | 					getImageFileName(gid) + | 
					
						
							| 
									
										
										
										
											2013-06-02 20:14:39 +04:00
										 |  |  | 				'</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">'+ | 
					
						
							| 
									
										
										
										
											2013-06-04 22:26:37 +04:00
										 |  |  | 				meta + | 
					
						
							|  |  |  | 			'</span> '+ | 
					
						
							|  |  |  | 			'<span class="secondary expanding-text metadata">'+ | 
					
						
							| 
									
										
										
										
											2013-06-02 20:14:39 +04:00
										 |  |  | 				// XXX do we need to display a short gid?
 | 
					
						
							|  |  |  | 				//gid +
 | 
					
						
							| 
									
										
										
										
											2013-06-04 22:26:37 +04:00
										 |  |  | 				'GID:'+ | 
					
						
							| 
									
										
										
										
											2013-06-02 20:14:39 +04:00
										 |  |  | 				'<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/>') | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-02 08:50:43 +04:00
										 |  |  | function updateInlineImageInfo(image, target){ | 
					
						
							| 
									
										
										
										
											2013-06-02 20:14:39 +04:00
										 |  |  | 	image = image == null ? getImage() : $(image) | 
					
						
							|  |  |  | 	image = image.length == 0 ? getImage() : image | 
					
						
							| 
									
										
										
										
											2013-12-02 08:50:43 +04:00
										 |  |  | 	target = target == null ? image : target | 
					
						
							| 
									
										
										
										
											2013-06-02 20:14:39 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	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) | 
					
						
							| 
									
										
										
										
											2013-06-05 00:42:41 +04:00
										 |  |  | 	//var r = getRibbonIndex(getRibbon(image))
 | 
					
						
							| 
									
										
										
										
											2013-06-02 20:14:39 +04:00
										 |  |  | 	var data = IMAGES[gid] | 
					
						
							|  |  |  | 	var date = new Date(data.ctime * 1000) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	var orientation = data.orientation | 
					
						
							|  |  |  | 	orientation = orientation == null ? 0 : orientation | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	return updateInfo(elem, | 
					
						
							|  |  |  | 			// name...
 | 
					
						
							| 
									
										
										
										
											2013-10-18 05:03:11 +04:00
										 |  |  | 			getImageFileName(gid) +'<br>'+ | 
					
						
							| 
									
										
										
										
											2013-06-02 20:14:39 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 			// date...
 | 
					
						
							|  |  |  | 			'<span class="secondary expanding-text date">'+ | 
					
						
							|  |  |  | 				//date.toShortDate() +
 | 
					
						
							|  |  |  | 				'<span class="shown">' + date.toShortDate() + '</span>'+ | 
					
						
							|  |  |  | 				'<span class="hidden"><b>' + date.toString() + '</b></span>'+ | 
					
						
							|  |  |  | 			'</span>'+ | 
					
						
							|  |  |  | 			'', | 
					
						
							| 
									
										
										
										
											2013-12-02 08:50:43 +04:00
										 |  |  | 			target) | 
					
						
							| 
									
										
										
										
											2013-06-02 20:14:39 +04:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function inlineImageInfoHoverHandler(evt){ | 
					
						
							| 
									
										
										
										
											2013-12-02 08:50:43 +04:00
										 |  |  | 	if($(evt.target).hasClass('current-marker')){ | 
					
						
							|  |  |  | 		var img = getImage() | 
					
						
							|  |  |  | 		var target = $('.current-marker') | 
					
						
							|  |  |  | 	} else { | 
					
						
							|  |  |  | 		var img = $(evt.target).closest('.image') | 
					
						
							|  |  |  | 		var target = img | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2013-06-02 20:14:39 +04:00
										 |  |  | 	if(img.length > 0){ | 
					
						
							| 
									
										
										
										
											2013-12-02 08:50:43 +04:00
										 |  |  | 		if(target.find('.inline-image-info:visible').length == 0){ | 
					
						
							|  |  |  | 			updateInlineImageInfo(img, target) | 
					
						
							| 
									
										
										
										
											2013-06-02 20:14:39 +04:00
										 |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-15 14:24:00 +04:00
										 |  |  | /*********************************************************************/ | 
					
						
							|  |  |  | 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', | 
					
						
							| 
									
										
										
										
											2014-01-20 06:18:36 +04:00
										 |  |  | 				'togglingMarks', | 
					
						
							| 
									
										
										
										
											2014-01-20 09:40:36 +04:00
										 |  |  | 				'togglingBookmarks', | 
					
						
							| 
									
										
										
										
											2013-12-15 14:24:00 +04:00
										 |  |  | 				'removeingAllMarks', | 
					
						
							|  |  |  | 				'removeingRibbonMarks', | 
					
						
							|  |  |  | 				'markingAll', | 
					
						
							|  |  |  | 				'markingRibbon', | 
					
						
							|  |  |  | 				'invertingMarks' | 
					
						
							|  |  |  | 			].join(' '),  | 
					
						
							|  |  |  | 			function(){ | 
					
						
							|  |  |  | 				updateGlobalImageInfo() | 
					
						
							|  |  |  | 				updateContextIndicators() | 
					
						
							|  |  |  | 			}) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | SETUP_BINDINGS.push(setupInfo) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-02 20:14:39 +04:00
										 |  |  | /********************************************************************** | 
					
						
							|  |  |  | * vim:set ts=4 sw=4 spell nowrap :                                   */ |