Skip to content
Snippets Groups Projects
Commit eb3526c9 authored by Robin Appelman's avatar Robin Appelman
Browse files

show images on click in search results

parent 2c8b4da8
No related branches found
No related tags found
No related merge requests found
<?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' );
?>
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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment