show images on click in search results

This commit is contained in:
Robin Appelman 2011-07-31 02:35:54 +02:00
parent 2c8b4da840
commit eb3526c9a6
2 changed files with 39 additions and 23 deletions

View File

@ -1,8 +1,6 @@
<?php <?php
if(OC_App::getCurrentApp()=='files'){ OC_Util::addScript( 'files_imageviewer', 'lightbox' );
OC_Util::addScript( 'files_imageviewer', 'lightbox' ); OC_Util::addStyle( 'files_imageviewer', 'lightbox' );
OC_Util::addStyle( 'files_imageviewer', 'lightbox' );
}
?> ?>

View File

@ -1,31 +1,48 @@
var lightBoxShown=false; var lightBoxShown=false;
$(document).ready(function() { $(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'){ 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){ FileActions.register('image','View','',function(filename){
var location='ajax/download.php?files='+filename+'&dir='+$('#dir').val(); viewImage($('#dir').val(),filename);
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]);
}
}); });
$( 'body' ).click(hideLightbox);
FileActions.setDefault('image','View'); 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){ function showLightbox(container,img){
var maxWidth = $( window ).width() - 50; var maxWidth = $( window ).width() - 50;
var maxHeight = $( window ).height() - 50; var maxHeight = $( window ).height() - 50;
@ -49,8 +66,9 @@ function showLightbox(container,img){
},100); },100);
} }
function hideLightbox(){ function hideLightbox(event){
if(lightBoxShown){ if(lightBoxShown){
event.stopPropagation();
$('#lightbox_overlay').hide(); $('#lightbox_overlay').hide();
$('#lightbox').hide(); $('#lightbox').hide();
lightBoxShown=false; lightBoxShown=false;