diff options
author | Chad Kieffer <chad@2tbsp.com> | 2008-12-07 04:49:26 +0000 |
---|---|---|
committer | Chad Kieffer <chad@2tbsp.com> | 2008-12-07 04:49:26 +0000 |
commit | 36cda412f48ada1a059523685094687b9c02f3b8 (patch) | |
tree | 4ee21dd6d100a2b239352a56230e04bd8dba986b /themes/default/js/ui.init.js | |
parent | 9bfeb413abce88d9f47a819dea24d8526ec45a80 (diff) |
First go around at reusable modal dialogs. Moved jQuery UI CSS into screen.css, moved default theme JS to js folder. Named jQuery UI files to match the file names as they distribute them. Removed accordion, it's not used yet.
Diffstat (limited to 'themes/default/js/ui.init.js')
-rw-r--r-- | themes/default/js/ui.init.js | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/themes/default/js/ui.init.js b/themes/default/js/ui.init.js new file mode 100644 index 00000000..2b034dd4 --- /dev/null +++ b/themes/default/js/ui.init.js @@ -0,0 +1,75 @@ +/** + * Initialize jQuery UI and Plugin elements + */ +$("document").ready(function() { + + /** + * Reduce width of sized photo if it is wider than its parent container + * + * @requires jquery.dimensions + */ + if ($("#gItem").length) { + var containerWidth = $("#gItem").width(); + var oPhoto = $("#gItem img").filter(function() { + return this.id.match(/gPhotoID-/); + }) + if (containerWidth < oPhoto.width()) { + var proportion = containerWidth / oPhoto.width(); + oPhoto.width(containerWidth); + oPhoto.height(proportion * oPhoto.height()); + } + } + + /** + * Attach event listeners to open modal dialogs + */ + var dialogLinks = $(".gDialogLink"); + for (var i=0; i < dialogLinks.length; i++) { + $(dialogLinks[i]).bind("click", {element: dialogLinks[i]}, handleDialogEvent); + }; + +}); + +/** + * Fire openDialog() and prevent links from opening + * + * @see openDialog() + */ +function handleDialogEvent(event) { + openDialog(event.data.element); + event.preventDefault(); +} + +/** + * Display modal dialogs, populate dialog with trigger link's title and href + * + * @requires ui.core + * @requires ui.draggable + * @requires ui.resizable + * @requires ui.dialog + * @see handleDialogEvent() + * + * @todo Set dialog attributes dynamically (width, height, drag, resize) + */ +function openDialog(element) { + var url = $(element).attr("href"); + var dialog = '<div id="gDialog"></div>'; + $("body").append(dialog); + $("#gDialog").dialog({ + draggable: false, + height: '400px', + modal: true, + overlay: { + opacity: 0.7, + background: "black" + }, + resizable: true, + title: $(element).attr("title"), + width: '500px', + }); + $("#gDialog").html(url); + $.get(url, function(data) { + $("#gDialog").html(data); + }); + return false; +} |