* Add back "Resize to window" link. * Add Z shortcut for resize to window link (mnemonic: Z for zoom image). * Resize images to screen width by default on both desktop and mobile. * Make it so that notes are nested directly inside the .image-container element with the image, instead of inside a separate .note-container element. This means .image-container and .note-container are now the same element. This is so that the size of the .note-container is driven by the size of the image, which ensures that notes are automatically resized as the image is resized.
182 lines
6.8 KiB
Plaintext
182 lines
6.8 KiB
Plaintext
<% page_title @post.presenter.humanized_essential_tag_string %>
|
|
<% meta_description "View this #{@post.image_width}x#{@post.image_height} #{number_to_human_size(@post.file_size)} image" %>
|
|
|
|
<% atom_feed_tag "Comments for post ##{@post.id}", comments_url(:atom, search: { post_id: @post.id }) %>
|
|
<%= render "posts/partials/common/secondary_links" %>
|
|
|
|
<% content_for(:sidebar) do %>
|
|
<%= render "posts/partials/common/search", :path => posts_path, :tags => params[:q], :tags_dom_id => "tags" %>
|
|
|
|
<%= render "posts/partials/index/blacklist" %>
|
|
|
|
<section id="tag-list">
|
|
<%= @post.presenter.split_tag_list_html(current_query: params[:q], show_extra_links: policy(@post).show_extra_links?) %>
|
|
</section>
|
|
|
|
<section id="post-information">
|
|
<h1>Information</h1>
|
|
<%= render "posts/partials/show/information", :post => @post %>
|
|
</section>
|
|
|
|
<% if Danbooru.config.addthis_key.present? %>
|
|
<section id="post-share">
|
|
<h1>Share</h1>
|
|
<%= render "posts/partials/show/share", post: @post %>
|
|
</section>
|
|
<% end %>
|
|
|
|
<section id="post-options">
|
|
<h1>Options</h1>
|
|
<%= render "posts/partials/show/options", :post => @post %>
|
|
</section>
|
|
|
|
<section id="post-history">
|
|
<h1>History</h1>
|
|
<ul>
|
|
<li id="post-history-tags"><%= link_to "Tags", post_versions_path(search: { post_id: @post.id }) %></li>
|
|
<li id="post-history-pools"><%= link_to "Pools", pool_versions_path(search: { post_id: @post.id }) %></li>
|
|
<li id="post-history-notes"><%= link_to "Notes", note_versions_path(search: { post_id: @post.id }) %></li>
|
|
<li id="post-history-moderation"><%= link_to "Moderation", post_events_path(@post.id) %></li>
|
|
<li id="post-history-commentary"><%= link_to "Commentary", artist_commentary_versions_path(search: { post_id: @post.id }) %></li>
|
|
<li id="post-history-replacements"><%= link_to "Replacements", post_replacements_path(search: {post_id: @post.id }) %></li>
|
|
</ul>
|
|
</section>
|
|
<% end %>
|
|
|
|
<% content_for(:content) do %>
|
|
<% if @post.presenter.has_nav_links?(self) %>
|
|
<%= render "posts/partials/show/nav_links", :post => @post, :position => "top" %>
|
|
<% end %>
|
|
|
|
<%= render "posts/partials/show/notices", :post => @post %>
|
|
|
|
<%= content_tag(:section, class: "image-container note-container", **PostPresenter.data_attributes(@post)) do -%>
|
|
<%= render "posts/partials/show/embedded", post: @post %>
|
|
<div id="note-preview"></div>
|
|
<% end -%>
|
|
|
|
<% if policy(Favorite).create? %>
|
|
<%= content_tag(:div, class: "fav-buttons fav-buttons-#{@post.is_favorited?}") do %>
|
|
<%= form_tag(favorites_path(post_id: @post.id), method: "post", id: "add-fav-button", "data-remote": true) do %>
|
|
<%= button_tag tag.i(class: "far fa-heart"), class: "ui-button ui-widget ui-corner-all", "data-disable-with": tag.i(class: "fas fa-spinner fa-spin") %>
|
|
<% end %>
|
|
|
|
<%= form_tag(favorite_path(@post.id), method: "delete", id: "remove-fav-button", "data-remote": true) do %>
|
|
<%= button_tag tag.i(class: "fas fa-heart"), class: "ui-button ui-widget ui-corner-all", "data-disable-with": tag.i(class: "fas fa-spinner fa-spin") %>
|
|
<% end %>
|
|
<% end %>
|
|
<% end %>
|
|
|
|
<section id="mark-as-translated-section" style="display: none;">
|
|
<%= form_tag(mark_as_translated_post_path(@post), :class => "simple_form", :method => :put) do |f| %>
|
|
<%= hidden_field_tag :tags_query, params[:q] %>
|
|
<%= hidden_field_tag :pool_id, params[:pool_id] %>
|
|
|
|
<fieldset>
|
|
<label for="post_check_translation">
|
|
<%= check_box "post", "check_translation", :checked => @post.has_tag?("check_translation") %>
|
|
Check translation
|
|
</label>
|
|
|
|
<label for="post_partially_translated">
|
|
<%= check_box "post", "partially_translated", :checked => @post.has_tag?("partially_translated") %>
|
|
Partially translated
|
|
</label>
|
|
</fieldset>
|
|
|
|
<div class="input">
|
|
<%= submit_tag "Mark as translated" %>
|
|
</div>
|
|
<% end %>
|
|
</section>
|
|
|
|
<% if @post.artist_commentary && @post.artist_commentary.any_field_present? %>
|
|
<div id="artist-commentary">
|
|
<%= render "artist_commentaries/show", :artist_commentary => @post.artist_commentary %>
|
|
</div>
|
|
<% end %>
|
|
|
|
<% if @post.presenter.has_nav_links?(self) %>
|
|
<%= render "posts/partials/show/nav_links", :post => @post, :position => "bottom" %>
|
|
<% end %>
|
|
|
|
<menu id="post-sections">
|
|
<li class="active"><a href="#comments">Comments</a></li>
|
|
|
|
<% if RecommenderService.available_for_post?(@post) %>
|
|
<li><a href="#recommended">Recommended</a></li>
|
|
<% end %>
|
|
|
|
<% if policy(@post).update? %>
|
|
<li><a href="#edit" id="post-edit-link" data-shortcut="e">Edit</a></li>
|
|
<% end %>
|
|
</menu>
|
|
|
|
<% if RecommenderService.available_for_post?(@post) %>
|
|
<section id="recommended" style="display: none;">
|
|
<p><em>Loading...</em></p>
|
|
</section>
|
|
<% end %>
|
|
|
|
<section id="comments">
|
|
<%= render "comments/partials/index/list", comments: @comments, post: @post, page: :post %>
|
|
</section>
|
|
|
|
<section id="notes" style="display: none;">
|
|
<% if @post.has_notes? %>
|
|
<% cache("p/#{@post.id}/n/#{@post.last_noted_at.to_i}") do %>
|
|
<%= render :partial => "notes/note", :collection => @post.notes.active %>
|
|
<% end %>
|
|
<% end %>
|
|
</section>
|
|
|
|
<% if policy(@post).update? %>
|
|
<section id="edit" style="display: none;">
|
|
<%= render "posts/partials/show/edit", :post => @post %>
|
|
</section>
|
|
<% end %>
|
|
<% end %>
|
|
|
|
<% if policy(Pool).create? %>
|
|
<div id="add-to-pool-dialog" title="Add to pool" style="display: none;">
|
|
<%= render "pool_elements/new" %>
|
|
</div>
|
|
<% end %>
|
|
|
|
<% if policy(ArtistCommentary).create_or_update? %>
|
|
<div id="add-commentary-dialog" title="Add artist commentary" style="display: none;">
|
|
<%= render "artist_commentaries/form", post: @post, artist_commentary: @post.artist_commentary || ArtistCommentary.new(post: @post) %>
|
|
</div>
|
|
<% end %>
|
|
|
|
<% if policy(FavoriteGroup).create? %>
|
|
<div id="add-to-favgroup-dialog" title="Add to favorite group" style="display: none;">
|
|
<%= render "favorite_groups/add_to_favgroup_dialog", :post => @post %>
|
|
</div>
|
|
<% end %>
|
|
|
|
<%= post_view_count_js %>
|
|
|
|
<% content_for(:html_header) do %>
|
|
<meta name="post-id" content="<%= @post.id %>">
|
|
<meta name="post-has-embedded-notes" content="<%= @post.has_embedded_notes? %>">
|
|
|
|
<% if policy(@post).visible? %>
|
|
<%= tag.meta name: "og:image", content: @post.open_graph_image_url %>
|
|
<% end %>
|
|
|
|
<%= tag.meta name: "canonical", content: post_url(@post, host: Danbooru.config.hostname, protocol: "https") %>
|
|
|
|
<% if @post.twitter_card_supported? %>
|
|
<meta name="twitter:card" content="summary_large_image">
|
|
|
|
<% if policy(@post).visible? %>
|
|
<%= tag.meta name: "twitter:image", content: @post.open_graph_image_url %>
|
|
<% end %>
|
|
<% end %>
|
|
|
|
<% if @post.rating == "e" %>
|
|
<meta name="rating" content="adult">
|
|
<% end %>
|
|
<% end %>
|