diff options
-rw-r--r-- | apps/files_imageviewer/appinfo/app.php | 6 | ||||
-rw-r--r-- | apps/files_imageviewer/js/lightbox.js | 56 |
2 files changed, 39 insertions, 23 deletions
diff --git a/apps/files_imageviewer/appinfo/app.php b/apps/files_imageviewer/appinfo/app.php index 6d32e2d628e..3dfbb76ceb0 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 318c764458e..847954d2f15 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; |