diff options
author | Byron Jones <glob@mozilla.com> | 2015-04-01 05:09:11 +0200 |
---|---|---|
committer | Byron Jones <glob@mozilla.com> | 2015-04-01 05:09:11 +0200 |
commit | ae43a6a2e60c07a474debe60c4a1f08753d42b35 (patch) | |
tree | 7bd2eef9ec1f78f09451c6fc3cbe2672c220cdcb /extensions/BugModal/web/bug_modal.js | |
parent | b527e84a026f0211391f93b487b33009f7cb0bce (diff) | |
download | bugzilla-ae43a6a2e60c07a474debe60c4a1f08753d42b35.tar.gz bugzilla-ae43a6a2e60c07a474debe60c4a1f08753d42b35.tar.xz |
Bug 1146777: use lightbox for images
Diffstat (limited to 'extensions/BugModal/web/bug_modal.js')
-rw-r--r-- | extensions/BugModal/web/bug_modal.js | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/extensions/BugModal/web/bug_modal.js b/extensions/BugModal/web/bug_modal.js index 2411f4c15..ec53c32c2 100644 --- a/extensions/BugModal/web/bug_modal.js +++ b/extensions/BugModal/web/bug_modal.js @@ -200,6 +200,15 @@ $(function() { }); } + // lightboxes + $('.lightbox, .comment-text .lightbox + span:first-of-type a:first-of-type') + .click(function(event) { + if (event.metaKey) + return; + event.preventDefault(); + lb_show(this); + }); + // // anything after this point is only executed for logged in users // @@ -725,6 +734,53 @@ function bugzilla_ajax(request, done_fn, error_fn) { }); } +// lightbox + +function lb_show(el) { + $(window).trigger('close'); + $(document).bind('keyup.lb', function(event) { + if (event.keyCode == 27) { + lb_close(event); + } + }); + var overlay = $('<div>') + .prop('id', 'lb_overlay') + .css({ opacity: 0 }) + .appendTo('body'); + var overlay2 = $('<div>') + .prop('id', 'lb_overlay2') + .css({ top: $(window).scrollTop() + 5 }) + .appendTo('body'); + var title = $('<div>') + .prop('id', 'lb_text') + .appendTo(overlay2); + var img = $('<img>') + .prop('id', 'lb_img') + .prop('src', el.href) + .prop('alt', 'Loading...') + .css({ opacity: 0 }) + .appendTo(overlay2) + .click(function(event) { + event.stopPropagation(); + window.location.href = el.href; + }); + var close_btn = $('<button>') + .prop('id', 'lb_close_btn') + .prop('type', 'button') + .addClass('minor') + .text('Close') + .appendTo(overlay2); + title.append(el.title); + overlay.add(overlay2).click(lb_close); + img.add(overlay).animate({ opacity: 1 }, 200); +} + +function lb_close(event) { + event.preventDefault(); + $(document).unbind('keyup.lb'); + $('#lb_overlay, #lb_overlay2, #lb_close_btn, #lb_img, #lb_text').remove(); +} + // no-ops function initHidingOptionsForIE() {} function showFieldWhen() {} |