diff --git a/apps/files_imageviewer/appinfo/app.php b/apps/files_imageviewer/appinfo/app.php index 6d32e2d628e482998231f5cc73ae68cef505a5cb..3dfbb76ceb09beea8395ffcee481c76794cb231c 100644 --- a/apps/files_imageviewer/appinfo/app.php +++ b/apps/files_imageviewer/appinfo/app.php @@ -1,8 +1,6 @@ <?php -if(OC_App::getCurrentApp()=='files'){ - OC_Util::addScript( 'files_imageviewer', 'lightbox' ); - OC_Util::addStyle( 'files_imageviewer', 'lightbox' ); -} +OC_Util::addScript( 'files_imageviewer', 'lightbox' ); +OC_Util::addStyle( 'files_imageviewer', 'lightbox' ); ?> diff --git a/apps/files_imageviewer/js/lightbox.js b/apps/files_imageviewer/js/lightbox.js index 318c764458e989dd440b26269c95ffd086411a01..847954d2f15bc7ca9dd2328a9d0733141d488af3 100644 --- a/apps/files_imageviewer/js/lightbox.js +++ b/apps/files_imageviewer/js/lightbox.js @@ -1,31 +1,48 @@ var lightBoxShown=false; $(document).ready(function() { + images={};//image cache + var overlay=$('<div id="lightbox_overlay"/>'); + $( 'body' ).append(overlay); + var container=$('<div id="lightbox"/>'); + $( 'body' ).append(container); + $( 'body' ).click(hideLightbox); if(typeof FileActions!=='undefined'){ - images={};//image cache - var overlay=$('<div id="lightbox_overlay"/>'); - $( 'body' ).append(overlay); - var container=$('<div id="lightbox"/>'); - $( 'body' ).append(container); FileActions.register('image','View','',function(filename){ - var location='ajax/download.php?files='+filename+'&dir='+$('#dir').val(); - overlay.show(); - if(!images[location]){ - var img = new Image(); - img.onload = function(){ - images[location]=img; - showLightbox(container,img); - } - img.src = location; - }else{ - showLightbox(container,images[location]); - } + viewImage($('#dir').val(),filename); }); - $( 'body' ).click(hideLightbox); FileActions.setDefault('image','View'); } + OC.search.customResults.Images=function(row,item){ + var image=item.link.substr(item.link.indexOf('file=')+5); + var a=row.find('a'); + var container=$('<div id="lightbox"/>'); + a.attr('href','#'); + a.click(function(){ + var file=image.split('/').pop(); + var dir=image.substr(0,image.length-file.length-1); + viewImage(dir,file); + }); + } }); +function viewImage(dir,file){ + var location=OC.filePath('files','ajax','download.php')+'?files='+file+'&dir='+dir; + var overlay=$('#lightbox_overlay'); + var container=$('#lightbox'); + overlay.show(); + if(!images[location]){ + var img = new Image(); + img.onload = function(){ + images[location]=img; + showLightbox(container,img); + } + img.src = location; + }else{ + showLightbox(container,images[location]); + } +} + function showLightbox(container,img){ var maxWidth = $( window ).width() - 50; var maxHeight = $( window ).height() - 50; @@ -49,8 +66,9 @@ function showLightbox(container,img){ },100); } -function hideLightbox(){ +function hideLightbox(event){ if(lightBoxShown){ + event.stopPropagation(); $('#lightbox_overlay').hide(); $('#lightbox').hide(); lightBoxShown=false;