add hotkey navigationf or posts/pools
This commit is contained in:
@@ -2,7 +2,6 @@
|
|||||||
Danbooru.Paginator = {};
|
Danbooru.Paginator = {};
|
||||||
|
|
||||||
Danbooru.Paginator.next_page = function() {
|
Danbooru.Paginator.next_page = function() {
|
||||||
console.log("next");
|
|
||||||
if ($('.paginator li span').parent().next().length) {
|
if ($('.paginator li span').parent().next().length) {
|
||||||
window.location = $('.paginator li span').parent().next().find('a').attr('href');
|
window.location = $('.paginator li span').parent().next().find('a').attr('href');
|
||||||
}
|
}
|
||||||
@@ -16,7 +15,9 @@
|
|||||||
})();
|
})();
|
||||||
|
|
||||||
$(function() {
|
$(function() {
|
||||||
$(document).bind("keydown.right", Danbooru.Paginator.next_page);
|
if ($(".paginator").length) {
|
||||||
$(document).bind("keydown.left", Danbooru.Paginator.prev_page);
|
$(document).bind("keydown.right", Danbooru.Paginator.next_page);
|
||||||
|
$(document).bind("keydown.left", Danbooru.Paginator.prev_page);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
Danbooru.Post = {};
|
Danbooru.Post = {};
|
||||||
|
|
||||||
Danbooru.Post.pending_update_count = 0;
|
Danbooru.Post.pending_update_count = 0;
|
||||||
|
Danbooru.Post.scroll_top = 0;
|
||||||
|
|
||||||
Danbooru.Post.initialize_all = function() {
|
Danbooru.Post.initialize_all = function() {
|
||||||
this.initialize_titles();
|
this.initialize_titles();
|
||||||
@@ -21,6 +22,7 @@
|
|||||||
this.initialize_post_image_resize_to_window_link();
|
this.initialize_post_image_resize_to_window_link();
|
||||||
this.initialize_similar();
|
this.initialize_similar();
|
||||||
this.place_jlist_ads();
|
this.place_jlist_ads();
|
||||||
|
this.center_pool_nav();
|
||||||
|
|
||||||
if (Danbooru.meta("always-resize-images") === "true") {
|
if (Danbooru.meta("always-resize-images") === "true") {
|
||||||
$("#image-resize-to-window-link").click();
|
$("#image-resize-to-window-link").click();
|
||||||
@@ -60,6 +62,28 @@
|
|||||||
$("#post_tag_string").trigger("focus");
|
$("#post_tag_string").trigger("focus");
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$(document).bind("keydown.left", function(e) {
|
||||||
|
location.href = $("#pool-nav a.active[rel=prev]").attr("href");
|
||||||
|
e.preventDefault();
|
||||||
|
});
|
||||||
|
|
||||||
|
$(document).bind("keydown.right", function(e) {
|
||||||
|
location.href = $("#pool-nav a.active[rel=next]").attr("href");
|
||||||
|
e.preventDefault();
|
||||||
|
});
|
||||||
|
|
||||||
|
$(document).bind("keydown.space", function() {
|
||||||
|
Danbooru.Post.scroll_top = Danbooru.Post.scroll_top + 800;
|
||||||
|
|
||||||
|
if (Danbooru.Post.scroll_top > $("#image").height() + $("#image").offset().top + 100) {
|
||||||
|
location.href = $("#pool-nav a.active[rel=next]").attr("href");
|
||||||
|
}
|
||||||
|
|
||||||
|
$('html, body').animate({
|
||||||
|
scrollTop: Danbooru.Post.scroll_top
|
||||||
|
}, 500);
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -111,6 +135,7 @@
|
|||||||
Danbooru.Note.Box.scale_all();
|
Danbooru.Note.Box.scale_all();
|
||||||
$("#image-resize-notice").hide();
|
$("#image-resize-notice").hide();
|
||||||
Danbooru.Post.place_jlist_ads();
|
Danbooru.Post.place_jlist_ads();
|
||||||
|
Danbooru.Post.center_pool_nav();
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -139,6 +164,7 @@
|
|||||||
|
|
||||||
Danbooru.Note.Box.scale_all();
|
Danbooru.Note.Box.scale_all();
|
||||||
Danbooru.Post.place_jlist_ads()
|
Danbooru.Post.place_jlist_ads()
|
||||||
|
Danbooru.Post.center_pool_nav();
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -276,6 +302,17 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Danbooru.Post.center_pool_nav = function() {
|
||||||
|
var width = $("#image").width();
|
||||||
|
if (width > 1000) {
|
||||||
|
width = 1000;
|
||||||
|
}
|
||||||
|
if (width < 400) {
|
||||||
|
$("#pool-nav li").css("textAlign", "left");
|
||||||
|
}
|
||||||
|
$("#pool-nav").width(width);
|
||||||
|
}
|
||||||
})();
|
})();
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
|
|||||||
@@ -176,16 +176,16 @@ div#c-posts {
|
|||||||
}
|
}
|
||||||
|
|
||||||
div#a-show {
|
div#a-show {
|
||||||
|
.active {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
menu#post-sections {
|
menu#post-sections {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-size: $h3_size;
|
font-size: $h3_size;
|
||||||
|
|
||||||
li {
|
li {
|
||||||
padding: 0 1em 0 0;
|
padding: 0 1em 0 0;
|
||||||
|
|
||||||
&.active {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
div.share a {
|
div.share a {
|
||||||
@@ -204,6 +204,19 @@ div#c-posts {
|
|||||||
span.quick-mod {
|
span.quick-mod {
|
||||||
float: right;
|
float: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.pool-name {
|
||||||
|
margin: 0 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pool-nav {
|
||||||
|
margin: 1em 0;
|
||||||
|
|
||||||
|
li {
|
||||||
|
text-align: center;
|
||||||
|
height: 1.5em;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
div#quick-edit-div {
|
div#quick-edit-div {
|
||||||
|
|||||||
@@ -115,27 +115,31 @@ class PostPresenter < Presenter
|
|||||||
if options[:include_rel]
|
if options[:include_rel]
|
||||||
prev_rel = "prev"
|
prev_rel = "prev"
|
||||||
next_rel = "next"
|
next_rel = "next"
|
||||||
|
klass = "active"
|
||||||
else
|
else
|
||||||
prev_rel = nil
|
prev_rel = nil
|
||||||
next_rel = nil
|
next_rel = nil
|
||||||
|
klass = ""
|
||||||
end
|
end
|
||||||
|
|
||||||
if pool.neighbors(@post).previous
|
if pool.neighbors(@post).previous
|
||||||
pool_html << template.link_to("«prev".html_safe, template.post_path(pool.neighbors(@post).previous, :pool_id => pool.id), :rel => prev_rel)
|
pool_html << template.link_to("«prev".html_safe, template.post_path(pool.neighbors(@post).previous, :pool_id => pool.id), :rel => prev_rel, :class => klass)
|
||||||
match_found = true
|
match_found = true
|
||||||
else
|
else
|
||||||
pool_html << "«prev"
|
pool_html << "«prev"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
pool_html << ' <span class="pool-name ' + klass + '">'
|
||||||
|
pool_html << template.link_to("Pool: #{pool.pretty_name}", template.pool_path(pool))
|
||||||
|
pool_html << '</span> '
|
||||||
|
|
||||||
if pool.neighbors(@post).next
|
if pool.neighbors(@post).next
|
||||||
pool_html << template.link_to("next»".html_safe, template.post_path(pool.neighbors(@post).next, :pool_id => pool.id), :rel => next_rel)
|
pool_html << template.link_to("next»".html_safe, template.post_path(pool.neighbors(@post).next, :pool_id => pool.id), :rel => next_rel, :class => klass)
|
||||||
match_found = true
|
match_found = true
|
||||||
else
|
else
|
||||||
pool_html << "next»"
|
pool_html << "next»"
|
||||||
end
|
end
|
||||||
|
|
||||||
pool_html << " "
|
|
||||||
pool_html << template.link_to(pool.pretty_name, template.pool_path(pool))
|
|
||||||
pool_html << "</li>"
|
pool_html << "</li>"
|
||||||
|
|
||||||
if match_found
|
if match_found
|
||||||
|
|||||||
3
app/views/posts/partials/show/_pools.html.erb
Normal file
3
app/views/posts/partials/show/_pools.html.erb
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<section id="pool-nav">
|
||||||
|
<%= @post.presenter.pool_html(self) %>
|
||||||
|
</section>
|
||||||
@@ -5,13 +5,6 @@
|
|||||||
|
|
||||||
<%= render_advertisement("vertical") %>
|
<%= render_advertisement("vertical") %>
|
||||||
|
|
||||||
<% if @post.pools.active.any? %>
|
|
||||||
<section id="pool-sidebar">
|
|
||||||
<h1>Pools</h1>
|
|
||||||
<%= @post.presenter.pool_html(self) %>
|
|
||||||
</section>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<section id="tag-list">
|
<section id="tag-list">
|
||||||
<%= @post.presenter.split_tag_list_html(self) %>
|
<%= @post.presenter.split_tag_list_html(self) %>
|
||||||
</section>
|
</section>
|
||||||
@@ -45,7 +38,11 @@
|
|||||||
<div id="note-container"></div>
|
<div id="note-container"></div>
|
||||||
<%= @post.presenter.image_html(self) %>
|
<%= @post.presenter.image_html(self) %>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<% if @post.pools.active.any? %>
|
||||||
|
<%= render "posts/partials/show/pools", :post => @post %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
<menu id="post-sections">
|
<menu id="post-sections">
|
||||||
<li><a href="#comments">Comments</a></li>
|
<li><a href="#comments">Comments</a></li>
|
||||||
<li><a href="#edit" id="post-edit-link">Edit</a></li>
|
<li><a href="#edit" id="post-edit-link">Edit</a></li>
|
||||||
|
|||||||
Reference in New Issue
Block a user