diff --git a/internal/js/view_support.js b/internal/js/view_support.js index 12439ba..ae97ab0 100644 --- a/internal/js/view_support.js +++ b/internal/js/view_support.js @@ -182,86 +182,96 @@ function ViewImageOrVideo() } } +var offsetX,offsetY; -$(document).ready( function() +function reOffset() { - -var cw=$('#canvas').width; -var ch=$('#canvas').height; -function reOffset(){ var BB=$('#canvas').get(0).getBoundingClientRect(); offsetX=BB.left; offsetY=BB.top; } -var offsetX,offsetY; -reOffset(); + window.onscroll=function(e){ reOffset(); } window.onresize=function(e){ reOffset(); } -$.contextMenu({ - selector: '#canvas', - build: function($triggerElement, e) { - - // get mouse position relative to the canvas - var x=parseInt(e.clientX-offsetX); - var y=parseInt(e.clientY-offsetY); - - item_list = { not_a_face: { name: "Not a face" } } - - for( i=0; i', { text:m[i], 'data-fn':i, }).appendTo($menu[0]); - } - */ -} + var cw=$('#canvas').width; + var ch=$('#canvas').height; + reOffset(); + window.onscroll=function(e){ reOffset(); } + window.onresize=function(e){ reOffset(); } + $.contextMenu({ + selector: '#canvas', + trigger: 'left', + hideOnSecondTrigger: true, + build: function($triggerElement, e) { + reOffset(); + // get mouse position relative to the canvas (left-click uses page*) + var x=parseInt(e.pageX-offsetX); + var y=parseInt(e.pageY-offsetY); + + item_list = { not_a_face: { name: "Not a face", which_face: '-1' } } + + for( i=0; i= fx && x <= fx+fw && y >= fy && y <= fy+fh ) + { + if( objs[current].faces[i].who ) + item_list['match']={ 'name': objs[current].faces[i].who, 'which_face': i } + else + { + item_list['no_match_new_person']={ 'name': 'Add as reference image to NEW person', 'which_face': i } + item_list['no_match_new_refimg']={ 'name': 'Add as reference image to EXISTING person', 'which_face': i } + item_list['no_match_override_match']={ 'name': 'Manually match to existing person', 'which_face': i } + item_list['no_match_no_face']={ 'name': 'Mark as not a face', 'which_face': i } + item_list['no_match_too_young']={ 'name': 'Mark as face too young', 'which_face': i } + item_list['no_match_ignore']={ 'name': 'Ignore this face', 'which_face': i } + item_list['remove_override']={ 'name': 'Remove override for this face', 'which_face': i } + } + delete item_list['not_a_face'] + $('#canvas').prop('menu_item', item_list ) + break + } + } + return { + callback: function( key, options) { + if( key == 'not_a_face' ) { return true } + item=$('#canvas').prop( 'menu_item' ); + FaceDBox( key, item ) + }, + items: item_list + }; + } + } ) } ); + + +function FaceDBox(key, item) +{ + div ='

' + div+='Face #' + item[key]['which_face'] + div+='

' + if ( key == 'no_match_new_person' ) + { + div+='
create new person' + } + if ( key == 'no_match_new_refimg' || key == 'no_match_override_match' ) + { + div+='
search for existing person' + } + if ( key == 'no_match_no_face' || key == 'no_match_too_young' || key == 'no_match_ignore' ) + { + div+='
just track this against face#' + item[key]['which_face'] + } + $('#dbox-title').html(item[key]['name']) + $('#dbox-content').html(div) + $('#dbox').modal('show') +}