From 7ad5e9ee2c6c912932e8c38c992c9b1194c9107a Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Tue, 16 Jun 2009 18:05:23 -0700 Subject: Move the show_full_size code into gallery/lib so that it's generally available to themes that want to use it. It should probably eventually be generalized away from just being for full sized images, but it's a step in the right direction. Fixes ticket #427. --- lib/gallery.show_full_size.js | 76 +++++++++++++++++++++++++++++++++++++ themes/default/js/fullsize.js | 76 ------------------------------------- themes/default/views/photo.html.php | 3 +- 3 files changed, 78 insertions(+), 77 deletions(-) create mode 100644 lib/gallery.show_full_size.js delete mode 100644 themes/default/js/fullsize.js diff --git a/lib/gallery.show_full_size.js b/lib/gallery.show_full_size.js new file mode 100644 index 00000000..b2895c23 --- /dev/null +++ b/lib/gallery.show_full_size.js @@ -0,0 +1,76 @@ +/** + * @todo Move inline CSS out to external style sheet (theme style sheet) + */ +var show_full_size = function(image_url, image_width, image_height) { + /* + * Calculate the size of the image panel based on the size of the image and the size of the + * window. Scale the image so the entire panel fits in the view port. + */ + function _auto_fit(imageWidth, imageHeight) { + // ui-dialog gives a padding of 2 pixels + var windowWidth = $(window).width() - 10; + var windowHeight = $(window).height() - 10; + + /* If the width is greater then scale the image width first */ + if (imageWidth > windowWidth) { + var ratio = windowWidth / imageWidth; + imageWidth *= ratio; + imageHeight *= ratio; + } + /* after scaling the width, check that the height fits */ + if (imageHeight > windowHeight) { + var ratio = windowHeight / imageHeight; + imageWidth *= ratio; + imageHeight *= ratio; + } + + // handle the case where the calculation is almost zero (2.14e-14) + return { + top: ((windowHeight - imageHeight) / 2).toFixed(2), + left: ((windowWidth - imageWidth) / 2).toFixed(2), + width: imageWidth.toFixed(2), + height: imageHeight.toFixed(2) + }; + } + + var width = $(document).width(); + var height = $(document).height(); + + $("body").append('
'); + + var image_size = _auto_fit(image_width, image_height); + + $("body").append('
' + + '
'); + + $("#gFullsize").append(''); + $("#gFullsizeClose").click(function() { + $("#gFullsizeOverlay*").remove(); + $("#gFullsize").remove(); + }); + $(window).resize(function() { + $("#gFullsizeOverlay").width($(document).width()); + $("#gFullsizeOverlay").height($(document).height()); + image_size = _auto_fit(image_width, image_height); + $("#gFullsize").height(image_size.height); + $("#gFullsize").width(image_size.width); + $("#gFullsize").css("top", image_size.top); + $("#gFullsize").css("left", image_size.left); + $("#gFullSizeImage").height(image_size.height); + $("#gFullSizeImage").width(image_size.width); + }); +}; diff --git a/themes/default/js/fullsize.js b/themes/default/js/fullsize.js deleted file mode 100644 index b2895c23..00000000 --- a/themes/default/js/fullsize.js +++ /dev/null @@ -1,76 +0,0 @@ -/** - * @todo Move inline CSS out to external style sheet (theme style sheet) - */ -var show_full_size = function(image_url, image_width, image_height) { - /* - * Calculate the size of the image panel based on the size of the image and the size of the - * window. Scale the image so the entire panel fits in the view port. - */ - function _auto_fit(imageWidth, imageHeight) { - // ui-dialog gives a padding of 2 pixels - var windowWidth = $(window).width() - 10; - var windowHeight = $(window).height() - 10; - - /* If the width is greater then scale the image width first */ - if (imageWidth > windowWidth) { - var ratio = windowWidth / imageWidth; - imageWidth *= ratio; - imageHeight *= ratio; - } - /* after scaling the width, check that the height fits */ - if (imageHeight > windowHeight) { - var ratio = windowHeight / imageHeight; - imageWidth *= ratio; - imageHeight *= ratio; - } - - // handle the case where the calculation is almost zero (2.14e-14) - return { - top: ((windowHeight - imageHeight) / 2).toFixed(2), - left: ((windowWidth - imageWidth) / 2).toFixed(2), - width: imageWidth.toFixed(2), - height: imageHeight.toFixed(2) - }; - } - - var width = $(document).width(); - var height = $(document).height(); - - $("body").append('
'); - - var image_size = _auto_fit(image_width, image_height); - - $("body").append('
' + - '
'); - - $("#gFullsize").append(''); - $("#gFullsizeClose").click(function() { - $("#gFullsizeOverlay*").remove(); - $("#gFullsize").remove(); - }); - $(window).resize(function() { - $("#gFullsizeOverlay").width($(document).width()); - $("#gFullsizeOverlay").height($(document).height()); - image_size = _auto_fit(image_width, image_height); - $("#gFullsize").height(image_size.height); - $("#gFullsize").width(image_size.width); - $("#gFullsize").css("top", image_size.top); - $("#gFullsize").css("left", image_size.left); - $("#gFullSizeImage").height(image_size.height); - $("#gFullSizeImage").width(image_size.width); - }); -}; diff --git a/themes/default/views/photo.html.php b/themes/default/views/photo.html.php index ddea75bc..1c3b81a7 100644 --- a/themes/default/views/photo.html.php +++ b/themes/default/views/photo.html.php @@ -1,7 +1,8 @@ item())): ?> - + +