more work on image info display...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2013-05-30 15:04:16 +04:00
parent 9b215d7d03
commit f0c1c816e9
3 changed files with 81 additions and 64 deletions

View File

@ -299,43 +299,31 @@ function shiftImage(direction, image, force_create_ribbon){
// just fill that. // just fill that.
// //
// XXX revise... // XXX revise...
function updateInfo(elem, target, info, force_new){ function updateInfo(elem, data, target){
var viewer = $('.viewer') var viewer = $('.viewer')
target = target == null ? viewer : $(target) target = target == null ? viewer : $(target)
elem = elem == null ? $('.overlay-info') : $(elem)
if(target.hasClass('overlay-info')){ if(elem.length == 0){
info = target elem = $('<div/>')
} else if(info == null) {
var info = $('.overlay-info')
if(force_new || info.length == 0){
info = $('<div/>')
//.click(function(){ hideInfo(info) })
.appendTo(viewer)
}
info
//.attr({
//class: '',
//style: '',
//})
.addClass('overlay-info')
.appendTo(target)
} }
info elem
.addClass('overlay-info')
.html('') .html('')
if(typeof(elem) == typeof('abc')){ if(typeof(data) == typeof('abc')){
info.html(elem) elem.html(data)
} else { } else {
info.append(elem) elem.append(data)
} }
return info return elem
.appendTo(target)
} }
function showInfo(elem){ function showInfo(elem, data, target){
elem = elem == null ? $('.overlay-info') : elem elem = elem == null ? $('.overlay-info') : elem
elem = data == null ? elem : updateInfo(elem, data, traget)
return elem.fadeIn() return elem.fadeIn()
} }
function hideInfo(elem){ function hideInfo(elem){

View File

@ -566,25 +566,6 @@ function updateImage(image, gid, size){
orientation: img_data.orientation == null ? 0 : img_data.orientation, orientation: img_data.orientation == null ? 0 : img_data.orientation,
}) })
// image info...
if(IMAGE_INFO){
var info = image.find('.info')
if(info.length == 0){
info = $('<div/>')
.addClass('info')
.appendTo(image)
}
info.html(
'Image: ' + name +
'<br>Order: ' + DATA.order.indexOf(gid) +
'<br>GID: '+ gid +
(window.DEBUG ? '<br>Preview size:'+ preview.size : '') +
''
)
} else {
image.find('.info').remove()
}
// marks... // marks...
if(MARKED.indexOf(gid) != -1){ if(MARKED.indexOf(gid) != -1){
image.addClass('marked') image.addClass('marked')
@ -1215,8 +1196,9 @@ function openImage(){
* Actions * Actions
*/ */
// XXX show date... // XXX do we need a full rewrite here, or will it be better to just fill
function updateImageInfo(image){ // the slots...
function updateGlobalImageInfo(image){
image = image == null ? getImage() : $(image) image = image == null ? getImage() : $(image)
var gid = getImageGID(image) var gid = getImageGID(image)
@ -1239,10 +1221,15 @@ function updateImageInfo(image){
meta = meta.join(', ') meta = meta.join(', ')
meta = meta != '' ? '( '+ meta +' )' : '' meta = meta != '' ? '( '+ meta +' )' : ''
var elem = $('.global-image-info')
if(elem.length == 0){
elem = $('<div class="global-image-info"/>')
}
return updateInfo( return updateInfo(elem,
// path... // path...
'<span class="expanding-text">'+ '<span class="expanding-text path">'+
'<span class="shown">'+ '<span class="shown">'+
data.path.split('/').pop() + data.path.split('/').pop() +
'</span>'+ '</span>'+
@ -1252,7 +1239,7 @@ function updateImageInfo(image){
'</span> '+ '</span> '+
// metadata... // metadata...
'<span class="secondary expanding-text">'+ '<span class="secondary expanding-text metadata">'+
meta + ' GID:'+ meta + ' GID:'+
// XXX do we need to display a short gid? // XXX do we need to display a short gid?
//gid + //gid +
@ -1267,18 +1254,49 @@ function updateImageInfo(image){
'</span> '+ '</span> '+
// date... // date...
'<span class="secondary expanding-text">'+ '<span class="secondary expanding-text date">'+
'<span class="shown">TS:' + date.toShortDate() + '</span>'+ '<span class="shown">TS:' + date.toShortDate() + '</span>'+
'<span class="hidden"><b>' + date.toString() + '</b></span>'+ '<span class="hidden"><b>' + date.toString() + '</b></span>'+
'</span>'+ '</span>'+
// position... // position...
'<span class="float-right">('+ '<span class="float-right position">('+
(DATA.ribbons[r].indexOf(gid)+1) +'/'+ DATA.ribbons[r].length + (DATA.ribbons[r].indexOf(gid)+1) +'/'+ DATA.ribbons[r].length +
')<span/>') ')<span/>')
} }
function updateInlineImageInfo(image){
image = image == null ? getImage() : $(image)
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
var elem = $('.inline-image-info')
if(elem.length == 0){
elem = $('<div class="inline-image-info"/>')
}
return updateInfo(elem,
// name...
data.path.split('/').pop() +'<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>'+
'',
image)
}
/********************************************************************** /**********************************************************************
* Setup * Setup
@ -1427,7 +1445,7 @@ function setupDataBindings(viewer){
image = $(image) image = $(image)
DATA.current = getImageGID(image) DATA.current = getImageGID(image)
updateImageInfo(image) updateGlobalImageInfo(image)
}) })
@ -1445,7 +1463,7 @@ function setupDataBindings(viewer){
} }
}) })
updateImageInfo(image) updateGlobalImageInfo(image)
}) })
@ -1463,7 +1481,7 @@ function setupDataBindings(viewer){
MARKED.splice(MARKED.indexOf(gid), 1) MARKED.splice(MARKED.indexOf(gid), 1)
} }
updateImageInfo(img) updateGlobalImageInfo(img)
}) })
.on('removeingRibbonMarks', function(evt, ribbon){ .on('removeingRibbonMarks', function(evt, ribbon){
$.each(DATA.ribbons[getRibbonIndex(ribbon)], function(_, e){ $.each(DATA.ribbons[getRibbonIndex(ribbon)], function(_, e){

View File

@ -246,7 +246,7 @@ body {
/* Image info */ /* Image info */
.image .info { .image .inline-image-info {
display: none; display: none;
position: absolute; position: absolute;
@ -261,17 +261,18 @@ body {
-ms-user-select: auto; -ms-user-select: auto;
user-select: auto; user-select: auto;
} }
.image .info::selection { .image .inline-image-info::selection {
color: white; color: white;
background: red; background: red;
} }
.image-info-visible.viewer .image:hover .info { .image-info-visible.viewer .global-image-info,
.image-info-visible.viewer .image:hover .inline-image-info {
display: block; display: block;
} }
.single-image-mode.viewer .image .info { .single-image-mode.viewer .image:hover .inline-image-info {
display: none; display: none;
} }
.image[orientation="90"] .info { .image[orientation="90"] .inline-image-info {
top: auto; top: auto;
left: 100%; left: 100%;
@ -285,7 +286,7 @@ body {
-ms-transform: rotate(-90deg); -ms-transform: rotate(-90deg);
transform: rotate(-90deg); transform: rotate(-90deg);
} }
.image[orientation="180"] .info { .image[orientation="180"] .inline-image-info {
top: 0px; top: 0px;
bottom: auto; bottom: auto;
@ -295,7 +296,7 @@ body {
-ms-transform: rotate(180deg); -ms-transform: rotate(180deg);
transform: rotate(180deg); transform: rotate(180deg);
} }
.image[orientation="270"] .info { .image[orientation="270"] .inline-image-info {
top: auto; top: auto;
left: auto; left: auto;
right: 100%; right: 100%;
@ -310,6 +311,7 @@ body {
-ms-transform: rotate(90deg); -ms-transform: rotate(90deg);
transform: rotate(90deg); transform: rotate(90deg);
} }
.overlay-info { .overlay-info {
display: none; display: none;
position: absolute; position: absolute;
@ -346,9 +348,6 @@ body {
color: white; color: white;
background: red; background: red;
} }
.image-info-visible.viewer .overlay-info {
display: block;
}
@ -579,6 +578,18 @@ $(function(){
function(k){ function(k){
window.DEBUG && console.log(k) window.DEBUG && console.log(k)
})) }))
.on('mouseover', function(evt){
var img = $(evt.target).closest('.image')
if(img.length > 0){
if(IMAGE_INFO){
if(img.find('.inline-image-info:visible').length == 0){
updateInlineImageInfo(img)
}
} else {
img.find('.inline-image-info').remove()
}
}
})
setupDataBindings() setupDataBindings()