]> source.dussan.org Git - nextcloud-server.git/commitdiff
show images on click in search results
authorRobin Appelman <icewind1991@gmail.com>
Sun, 31 Jul 2011 00:35:54 +0000 (02:35 +0200)
committerRobin Appelman <icewind1991@gmail.com>
Sun, 31 Jul 2011 00:35:54 +0000 (02:35 +0200)
apps/files_imageviewer/appinfo/app.php
apps/files_imageviewer/js/lightbox.js

index 6d32e2d628e482998231f5cc73ae68cef505a5cb..3dfbb76ceb09beea8395ffcee481c76794cb231c 100644 (file)
@@ -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' );
 
 ?>
index 318c764458e989dd440b26269c95ffd086411a01..847954d2f15bc7ca9dd2328a9d0733141d488af3 100644 (file)
@@ -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;