fixes #2692: Rework bookmarklet preview
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
})();
|
||||
|
||||
@@ -14,6 +14,6 @@
|
||||
<li><strong>Referrer:</strong> <%= params[:ref] %></li>
|
||||
<% end %>
|
||||
|
||||
<li id="scale"></li>
|
||||
<li><span id="scale"></span> (<%= link_to "toggle size", "#", :id => "image-resize-to-window-link" %>)</li>
|
||||
</ul>
|
||||
<% end %>
|
||||
|
||||
Reference in New Issue
Block a user