diff --git a/app/assets/javascripts/notes.js b/app/assets/javascripts/notes.js index 10307532e..166501282 100644 --- a/app/assets/javascripts/notes.js +++ b/app/assets/javascripts/notes.js @@ -176,6 +176,9 @@ Danbooru.Note = { scale_all: function() { var container = document.getElementById('note-container'); + if (container === null) { + return; + } // Hide notes while rescaling, to prevent unnecessary reflowing var was_visible = container.style.display != 'none'; if (was_visible) { diff --git a/app/assets/javascripts/posts.js b/app/assets/javascripts/posts.js index 03a9fef4d..a335a23b8 100644 --- a/app/assets/javascripts/posts.js +++ b/app/assets/javascripts/posts.js @@ -115,10 +115,6 @@ $tag_string.css({"resize": "none", "width": "100%"}); $tag_string.focus().selectEnd().height($tag_string[0].scrollHeight); - - var $image = $("#c-uploads .ui-wrapper #image, #c-uploads .ui-wrapper:has(#image)"); - $image.height($image.resizable("option", "maxHeight")); - $image.width($image.resizable("option", "maxWidth")); } Danbooru.Post.close_edit_dialog = function(e, ui) { @@ -351,33 +347,35 @@ } } - Danbooru.Post.initialize_post_image_resize_to_window_link = function() { - $("#image-resize-to-window-link").click(function(e) { - var $img = $("#image"); - - if (($img.data("scale-factor") === 1) || ($img.data("scale-factor") === undefined)) { - if ($(window).width() > 660) { - var client_width = $(window).width() - $("#sidebar").width() - 75; - } else { - var client_width = $(window).width() - 30; - } - var client_height = $(window).height(); - - if ($img.width() > client_width) { - var ratio = client_width / $img.data("original-width"); - $img.data("scale-factor", ratio); - $img.css("width", $img.data("original-width") * ratio); - $img.css("height", $img.data("original-height") * ratio); - Danbooru.Post.resize_ugoira_controls(); - } + Danbooru.Post.resize_image_to_window = function($img) { + if (($img.data("scale-factor") === 1) || ($img.data("scale-factor") === undefined)) { + if ($(window).width() > 660) { + var client_width = $(window).width() - $("#sidebar").width() - 75; } else { - $img.data("scale-factor", 1); - $img.width($img.data("original-width")); - $img.height($img.data("original-height")); + var client_width = $(window).width() - 30; + } + var client_height = $(window).height(); + + if ($img.width() > client_width) { + var ratio = client_width / $img.data("original-width"); + $img.data("scale-factor", ratio); + $img.css("width", $img.data("original-width") * ratio); + $img.css("height", $img.data("original-height") * ratio); Danbooru.Post.resize_ugoira_controls(); } + } else { + $img.data("scale-factor", 1); + $img.width($img.data("original-width")); + $img.height($img.data("original-height")); + Danbooru.Post.resize_ugoira_controls(); + } - Danbooru.Note.Box.scale_all(); + Danbooru.Note.Box.scale_all(); + } + + Danbooru.Post.initialize_post_image_resize_to_window_link = function() { + $("#image-resize-to-window-link").click(function(e) { + Danbooru.Post.resize_image_to_window($("#image")); e.preventDefault(); }); } diff --git a/app/assets/javascripts/uploads.js b/app/assets/javascripts/uploads.js index 8161eff19..284f60f3b 100644 --- a/app/assets/javascripts/uploads.js +++ b/app/assets/javascripts/uploads.js @@ -107,32 +107,27 @@ $("#source-info ul").show(); } + Danbooru.Upload.update_scale = function() { + var $image = $("#image"); + var ratio = $image.data("scale-factor"); + if (ratio < 1) { + $("#scale").html("Scaled " + parseInt(100 * ratio) + "% (original: " + $image.data("original-width") + "x" + $image.data("original-height") + ")"); + } else { + $("#scale").html("Original: " + $image.data("original-width") + "x" + $image.data("original-height")); + } + } + Danbooru.Upload.initialize_image = function() { var $image = $("#image"); if ($image.length) { - var height = $image.height(); var width = $image.width(); - if (height > 400) { - var ratio = 400.0 / height; - $image.height(height * ratio); - $image.width(width * ratio); - $("#scale").html("Scaled " + parseInt(100 * ratio) + "% (original: " + width + "x" + height + ")"); - $image.resizable({ - maxHeight: height, - maxWidth: width, - aspectRatio: width/height, - handles: "e, s, se", - resize: function( event, ui ){ - var origin_width = ui.element.resizable("option","maxWidth"); - var origin_height = ui.element.resizable("option","maxHeight"); - var height = ui.size.height; - var ratio = height/origin_height; - $("#scale").html("Scaled " + parseInt(100 * ratio) + "% (original: " + origin_width + "x" + origin_height + ")"); - } - }); - } else { - $("#scale").html("(original: " + width + "x" + height + ")"); - } + var height = $image.height(); + $image.data("original-width", width); + $image.data("original-height", height); + Danbooru.Post.resize_image_to_window($image); + Danbooru.Post.initialize_post_image_resize_to_window_link(); + Danbooru.Upload.update_scale(); + $("#image-resize-to-window-link").click(Danbooru.Upload.update_scale); } } })(); diff --git a/app/views/uploads/_image.html.erb b/app/views/uploads/_image.html.erb index 6af397405..42a1e6994 100644 --- a/app/views/uploads/_image.html.erb +++ b/app/views/uploads/_image.html.erb @@ -14,6 +14,6 @@
  • Referrer: <%= params[:ref] %>
  • <% end %> -
  • +
  • (<%= link_to "toggle size", "#", :id => "image-resize-to-window-link" %>)
  • <% end %>