diff options
author | Robin Appelman <icewind1991@gmail.com> | 2011-06-04 22:43:32 +0400 |
---|---|---|
committer | Robin Appelman <icewind1991@gmail.com> | 2011-06-04 22:48:53 +0400 |
commit | 4b9665a952e723075185b7ef8837c9e38432f63a (patch) | |
tree | c9d256b64cd3b96bf2fad524654714bcfb70bef8 /apps | |
parent | 1eb0faa2642babdd3031fdfa611ee10d1a3ccec5 (diff) |
image viewer plugin
Diffstat (limited to 'apps')
-rw-r--r-- | apps/files_imageviewer/appinfo/app.php | 6 | ||||
-rw-r--r-- | apps/files_imageviewer/appinfo/info.xml | 10 | ||||
-rw-r--r-- | apps/files_imageviewer/css/lightbox.css | 21 | ||||
-rw-r--r-- | apps/files_imageviewer/js/lightbox.js | 46 |
4 files changed, 83 insertions, 0 deletions
diff --git a/apps/files_imageviewer/appinfo/app.php b/apps/files_imageviewer/appinfo/app.php new file mode 100644 index 00000000000..bc0059b8b66 --- /dev/null +++ b/apps/files_imageviewer/appinfo/app.php @@ -0,0 +1,6 @@ +<?php + +OC_UTIL::addScript( 'files_imageviewer', 'lightbox' ); +OC_UTIL::addStyle( 'files_imageviewer', 'lightbox' ); + +?> diff --git a/apps/files_imageviewer/appinfo/info.xml b/apps/files_imageviewer/appinfo/info.xml new file mode 100644 index 00000000000..f658409be79 --- /dev/null +++ b/apps/files_imageviewer/appinfo/info.xml @@ -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>
\ No newline at end of file diff --git a/apps/files_imageviewer/css/lightbox.css b/apps/files_imageviewer/css/lightbox.css new file mode 100644 index 00000000000..225b11ff9a2 --- /dev/null +++ b/apps/files_imageviewer/css/lightbox.css @@ -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; +}
\ No newline at end of file diff --git a/apps/files_imageviewer/js/lightbox.js b/apps/files_imageviewer/js/lightbox.js new file mode 100644 index 00000000000..dd091aa0d77 --- /dev/null +++ b/apps/files_imageviewer/js/lightbox.js @@ -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(); +}
\ No newline at end of file |