openstreetmap-website/app/views/browse/changeset.html.erb
Andy Allan c233bec67b Use flexbox to position the close icon on the sidebars
This ensures that the text and the close icon don't overlap, regardless
of the length of the title. The title div grows to use all available
space, while ensuring the text breaks if necessary to prevent it from
pushing the close icon offscreen.
2020-10-21 17:11:28 +02:00

142 lines
6.1 KiB
Text

<% set_title(t(".title", :id => @changeset.id)) %>
<%= render "sidebar_header", :title => t(".title", :id => @changeset.id) %>
<div class="browse-section">
<p class="font-italic">
<%= linkify(@changeset.tags["comment"].to_s.presence || t("browse.no_comment")) %>
</p>
<div class="details"><%= changeset_details(@changeset) %></div>
<%= render :partial => "tag_details", :object => @changeset.tags.except("comment") %>
<h4 class="comments-header"><%= t(".discussion") %></h4>
<% if current_user %>
<div class="buttons clearfix subscribe-buttons">
<form action="#" class="standard-form">
<% if @changeset.subscribers.exists?(current_user.id) %>
<input class="action-button" type="submit" name="unsubscribe" value="<%= t("javascripts.changesets.show.unsubscribe") %>" data-method="POST" data-url="<%= changeset_unsubscribe_url(@changeset) %>" />
<% else %>
<input class="action-button" type="submit" name="subscribe" value="<%= t("javascripts.changesets.show.subscribe") %>" data-method="POST" data-url="<%= changeset_subscribe_url(@changeset) %>" />
<% end %>
</form>
</div>
<% end %>
<div class="clearfix"></div>
<% if @comments.length > 0 %>
<div class='changeset-comments'>
<form action="#" class="standard-form">
<ul class="list-unstyled">
<% @comments.each do |comment| %>
<% if comment.visible %>
<li id="c<%= comment.id %>">
<small class='text-muted'>
<%= t(".commented_by",
:when => friendly_date_ago(comment.created_at),
:exact_time => l(comment.created_at),
:user => link_to(comment.author.display_name, user_path(comment.author))).html_safe %>
<% if current_user and current_user.moderator? %>
— <span class="action-button deemphasize" data-comment-id="<%= comment.id %>" data-method="POST" data-url="<%= changeset_comment_hide_url(comment.id) %>"><%= t("javascripts.changesets.show.hide_comment") %></span>
<% end %>
</small>
<%= comment.body.to_html %>
</li>
<% elsif current_user and current_user.moderator? %>
<li id="c<%= comment.id %>">
<small class='text-muted'>
<%= t(".hidden_commented_by",
:when => friendly_date_ago(comment.created_at),
:exact_time => l(comment.created_at),
:user => link_to(comment.author.display_name, user_path(comment.author))).html_safe %>
— <span class="action-button deemphasize" data-comment-id="<%= comment.id %>" data-method="POST" data-url="<%= changeset_comment_unhide_url(comment.id) %>"><%= t("javascripts.changesets.show.unhide_comment") %></span>
</small>
<%= comment.body.to_html %>
</li>
<% end %>
<% end %>
</ul>
</form>
</div>
<% end %>
<% unless current_user %>
<div class="notice">
<%= link_to(t(".join_discussion"), :controller => "users", :action => "login", :referer => request.fullpath) %>
</div>
<% end %>
<% if current_user %>
<% unless @changeset.is_open? %>
<form action="#" class="standard-form">
<textarea class="comment" name="text" cols="40" rows="5"></textarea>
<div class="buttons clearfix">
<input type="submit" name="comment" value="<%= t("javascripts.changesets.show.comment") %>" data-changeset-id="<%= @changeset.id %>" data-method="POST" data-url="<%= changeset_comment_url(@changeset) %>" disabled="1" />
</div>
</form>
<% else %>
<div class="notice">
<%= t(".still_open") %>
</div>
<% end %>
<% end %>
<% unless @ways.empty? %>
<h4>
<%= type_and_paginated_count("way", @way_pages) %>
<%= render :partial => "paging_nav", :locals => { :pages => @way_pages, :page_param => "way_page" } %>
</h4>
<ul class="list-unstyled">
<% @ways.each do |way| %>
<li><%= link_to printable_name(way, true), { :action => "way", :id => way.way_id.to_s }, { :class => link_class("way", way), :title => link_title(way) } %></li>
<% end %>
</ul>
<% end %>
<% unless @relations.empty? %>
<h4>
<%= type_and_paginated_count("relation", @relation_pages) %>
<%= render :partial => "paging_nav", :locals => { :pages => @relation_pages, :page_param => "relation_page" } %>
</h4>
<ul class="list-unstyled">
<% @relations.each do |relation| %>
<li><%= link_to printable_name(relation, true), { :action => "relation", :id => relation.relation_id.to_s }, { :class => link_class("relation", relation), :title => link_title(relation) } %></li>
<% end %>
</ul>
<% end %>
<% unless @nodes.empty? %>
<h4>
<%= type_and_paginated_count("node", @node_pages) %>
<%= render :partial => "paging_nav", :locals => { :pages => @node_pages, :page_param => "node_page" } %>
</h4>
<ul class="list-unstyled">
<% @nodes.each do |node| %>
<li><%= link_to printable_name(node, true), { :action => "node", :id => node.node_id.to_s }, { :class => link_class("node", node), :title => link_title(node), :rel => link_follow(node) } %></li>
<% end %>
</ul>
<% end %>
</div>
<% if @next_by_user || @prev_by_user %>
<div class='secondary-actions'>
<% if @prev_by_user %>
<%= link_to "<< #{@prev_by_user.id}", :id => @prev_by_user.id %>
&middot;
<% end %>
<%= user = (@prev_by_user || @next_by_user).user.display_name
link_to tag.bdi(user), :controller => "changesets", :action => "index", :display_name => user %>
<% if @next_by_user %>
&middot;
<%= link_to "#{@next_by_user.id} >>", :id => @next_by_user.id %>
<% end %>
</div>
<% end %>
<div class='secondary-actions'>
<%= link_to(t(".changesetxml"), :controller => "api/changesets", :action => "show") %>
&middot;
<%= link_to(t(".osmchangexml"), :controller => "api/changesets", :action => "download") %>
</div>