parent
1eb0faa264
commit
4b9665a952
@ -0,0 +1,6 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
OC_UTIL::addScript( 'files_imageviewer', 'lightbox' ); |
||||||
|
OC_UTIL::addStyle( 'files_imageviewer', 'lightbox' ); |
||||||
|
|
||||||
|
?> |
@ -0,0 +1,10 @@ |
|||||||
|
<?xml version="1.0"?> |
||||||
|
<info> |
||||||
|
<id>files_imageview</id> |
||||||
|
<name>Imageviewer</name> |
||||||
|
<description>Simple image viewer for owncloud</description> |
||||||
|
<version>1.0</version> |
||||||
|
<licence>AGPL</licence> |
||||||
|
<author>Robin Appelman</author> |
||||||
|
<require>2</require> |
||||||
|
</info> |
@ -0,0 +1,21 @@ |
|||||||
|
#lightbox_overlay{ |
||||||
|
position:absolute; |
||||||
|
height:100%; |
||||||
|
width:100%; |
||||||
|
top:0px; |
||||||
|
left:0px; |
||||||
|
opacity:0.5; |
||||||
|
filter: alpha(opacity = 50); |
||||||
|
background-color:black; |
||||||
|
z-index:9999; |
||||||
|
} |
||||||
|
|
||||||
|
#lightbox{ |
||||||
|
position:absolute; |
||||||
|
max-height:90%; |
||||||
|
max-width:90%; |
||||||
|
top:10px; |
||||||
|
margin-left:auto; |
||||||
|
margin-right:auto; |
||||||
|
z-index:9999; |
||||||
|
} |
@ -0,0 +1,46 @@ |
|||||||
|
$(document).ready(function() { |
||||||
|
images={};//image cache
|
||||||
|
FileActions.register('image','View',function(filename){ |
||||||
|
var location='ajax/download.php?files='+filename+'&dir='+$('#dir').val(); |
||||||
|
var overlay=$('<div id="lightbox_overlay"/>'); |
||||||
|
$( 'body' ).append(overlay); |
||||||
|
var container=$('<div id="lightbox"/>'); |
||||||
|
$( 'body' ).append(container); |
||||||
|
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'); |
||||||
|
}); |
||||||
|
|
||||||
|
function showLightbox(container,img){ |
||||||
|
var maxWidth = $( window ).width() - 50; |
||||||
|
var maxHeight = $( window ).height() - 50; |
||||||
|
if( img.width > maxWidth || img.height > maxHeight ) { // One of these is larger than the window
|
||||||
|
var ratio = img.width / img.height; |
||||||
|
if( img.height >= maxHeight ) { |
||||||
|
img.height = maxHeight; |
||||||
|
img.width = maxHeight * ratio; |
||||||
|
} else { |
||||||
|
img.width = maxWidth; |
||||||
|
img.height = maxWidth * ratio; |
||||||
|
} |
||||||
|
} |
||||||
|
container.empty(); |
||||||
|
container.append(img); |
||||||
|
container.css('top',Math.round( ($( window ).height() - img.height)/2)); |
||||||
|
container.css('left',Math.round( ($( window ).width() - img.width)/2)); |
||||||
|
} |
||||||
|
|
||||||
|
function hideLightbox(){ |
||||||
|
$('#lightbox_overlay').remove(); |
||||||
|
$('#lightbox').remove(); |
||||||
|
} |
Loading…
Reference in new issue