Get the note browse pages into a vaguely working state

This commit is contained in:
Tom Hughes 2011-08-13 13:25:41 +01:00
parent a693862371
commit 81a6c7b7be
6 changed files with 108 additions and 86 deletions

View file

@ -129,6 +129,10 @@ module ApplicationHelper
end end
end end
def friendly_date(date)
content_tag(:span, time_ago_in_words(date), :title => l(date, :format => :friendly))
end
private private
def javascript_strings_for_key(key) def javascript_strings_for_key(key)

View file

@ -42,6 +42,14 @@ module BrowseHelper
end end
end end
def note_author(object)
if object.author.nil?
h(object.author_name)
else
link_to h(object.author_name), :controller => "user", :action => "view", :display_name => object.author_name
end
end
private private
ICON_TAGS = [ ICON_TAGS = [

View file

@ -6,14 +6,14 @@
</iframe> </iframe>
<div id="browse_map"> <div id="browse_map">
<% if map.instance_of? Changeset or (map.instance_of? Node and map.version > 1) or map.visible %> <% if map.instance_of? Changeset or (map.instance_of? Node and map.version > 1) or map.visible? %>
<div id="small_map"> <div id="small_map">
</div> </div>
<span id="loading"><%= t 'browse.map.loading' %></span> <span id="loading"><%= t 'browse.map.loading' %></span>
<%= link_to(t("browse.map.larger.area"), { :controller => :site, :action => :index, :box => "yes" }, { :id => "area_larger_map", :class => "geolink bbox" }) %> <%= link_to(t("browse.map.larger.area"), { :controller => :site, :action => :index, :box => "yes" }, { :id => "area_larger_map", :class => "geolink bbox" }) %>
<br /> <br />
<%= link_to(t("browse.map.edit.area"), { :controller => :site, :action => :edit }, { :id => "area_edit", :class => "geolink bbox" }) %> <%= link_to(t("browse.map.edit.area"), { :controller => :site, :action => :edit }, { :id => "area_edit", :class => "geolink bbox" }) %>
<% unless map.instance_of? Changeset %> <% unless map.instance_of? Changeset or map.instance_of? Note %>
<br /> <br />
<%= link_to("", { :controller => :site, :action => :index }, { :id => "object_larger_map", :class => "geolink object" }) %> <%= link_to("", { :controller => :site, :action => :index }, { :id => "object_larger_map", :class => "geolink object" }) %>
<br /> <br />
@ -40,7 +40,7 @@
</ul> </ul>
</div> </div>
<% if map.instance_of? Changeset or (map.instance_of? Node and map.version > 1) or map.visible %> <% if map.instance_of? Changeset or (map.instance_of? Node and map.version > 1) or map.visible? %>
<script type="text/javascript"> <script type="text/javascript">
OpenLayers.Lang.setCode("<%= I18n.locale.to_s %>"); OpenLayers.Lang.setCode("<%= I18n.locale.to_s %>");
@ -105,9 +105,25 @@
setMapCenter(centre, 16); setMapCenter(centre, 16);
addMarkerToMap(centre); addMarkerToMap(centre);
var bbox = getMapExtent();
$("loading").style.display = "none"; $("loading").style.display = "none";
updatelinks(centre.lon, centre.lat, 16, null, null, null, null, null) $$("#browse_map .geolink").each(function (link) {
link.style.display = "inline";
});
$("remote_area_edit").observe("click", function (event) {
remoteEditHandler(event, bbox);
});
<% if preferred_editor == "remote" %>
$("area_edit").observe("click", function (event) {
remoteEditHandler(event, bbox);
});
<% end %>
updatelinks(centre.lon, centre.lat, 16, null, bbox.left, bbox.bottom, bbox.right, bbox.top)
<% else %> <% else %>
var obj_type = "<%= map.class.name.downcase %>"; var obj_type = "<%= map.class.name.downcase %>";
var obj_id = <%= map.id %>; var obj_id = <%= map.id %>;

View file

@ -1,83 +1,58 @@
<table width="100%"> <%= render :partial => "navigation" %>
<h2>
<%= image_tag "#{@note.status}_note_marker.png", :alt => @note.status %>
<%= t "browse.note.#{@note.status}_title", :note_name => @note.id %>
</h2>
<%= render :partial => "map", :object => @note %>
<table class="browse_details">
<tr> <tr>
<td width="100%"> <th><%= t "browse.note.opened" %></th>
<h2> <td><%= t "browse.note.at_by", :when => friendly_date(@note.created_at), :user => note_author(@note) %></td>
<% if @note.status == "closed" %> </tr>
<%= image_tag("closed_note_marker.png", :alt => 'closed') %>
<%= t 'browse.note.closed_title', :note_name => @note.id %> <% if @note.status == "closed" %>
<% else %> <tr>
<%= image_tag("open_note_marker.png", :alt => 'open') %> <th><%= t "browse.note.closed" %></th>
<%= t 'browse.note.open_title', :note_name => @note.id %> <td><%= t "browse.note.at_by", :when => friendly_date(@note.closed_at), :user => note_author(@note.comments.last) %></td>
<% end %> </tr>
</h2> <% elsif @note.comments.length > 1 %>
</td> <tr>
<td> <th><%= t "browse.note.last_modified" %></th>
<%= render :partial => "navigation" %> <td><%= t "browse.note.at_by", :when => friendly_date(@note.updated_at), :user => note_author(@note.comments.last) %></td>
</td> </tr>
<% end %>
<tr>
<th><%= t "browse.note.description" %></th>
<td><%= h(@note.comments.first.body) %></td>
</tr> </tr>
<tr valign="top">
<td>
<table>
<tr>
<th><%= t 'browse.note.created_at' %></th>
<td><%= l @note.created_at %></td>
</tr>
<tr>
<th><%= t 'browse.note.edited_at' %></th>
<td><%= l @note.updated_at %></td>
</tr>
<% if @note.status == "closed" %>
<tr>
<th><%= t 'browse.note.closed_at' %></th>
<td><%= l @note.closed_at %></td>
</tr>
<% end %>
<tr>
<th><%= t 'browse.note.opened_by' %></th>
<% if @note.author.nil? %>
<td> <%= @note.author_name %> </td>
<% else %>
<td><%= link_to h(@note.author_name), :controller => "user", :action => "view", :display_name => @note.author_name %></td>
<% end %>
</tr>
<tr>
<th><%= t 'browse.note.description' %></th>
<td><%= h(@note.comments.first.body) %></td>
</tr>
<tr>
<th><%= t 'browse.node_details.coordinates' %></th>
<td><div class="geo"><%= link_to ("<span class='latitude'>#{number_with_delimiter(@note.lat)}</span>, <span class='longitude'>#{number_with_delimiter(@note.lon)}</span>"), {:controller => 'site', :action => 'index', :lat => h(@note.lat), :lon => h(@note.lon), :zoom => "18"} %></div></td>
</tr>
</table>
<br /> <tr>
<th><%= t "browse.node_details.coordinates" %></th>
<% if @note.comments.length > 1 %> <td><div class="geo"><%= link_to ("<span class='latitude'>#{number_with_delimiter(@note.lat)}</span>, <span class='longitude'>#{number_with_delimiter(@note.lon)}</span>"), {:controller => 'site', :action => 'index', :lat => h(@note.lat), :lon => h(@note.lon), :zoom => "18"} %></div></td>
<table>
<tr>
<th width="20%"> <%= t 'browse.note.comment_by' %></th>
<th width="60%"> <%= t 'browse.note.comment' %></th>
<th width="20%"> <%= t 'browse.note.date' %></th>
</tr>
<% @note.comments[1..-1].each do |comment| %>
<tr>
<td>
<% if comment.author.nil? %>
<%= comment.author_name %>
<% else %>
<%= link_to h(comment.author.display_name), :controller => "user", :action => "view", :display_name => comment.author.display_name %>
<% end %>
</td>
<td> <%= h(comment.body) %> </td>
<td> <%= l comment.created_at %> </td>
</tr>
<% end %>
</table>
<% end %>
<hr />
</td>
<%= render :partial => "map", :object => @note %>
</tr> </tr>
<% if @note.comments.length > 1 %>
<tr valign="top">
<th><%= t "browse.note.comments" %></th>
<td class="browse_comments">
<table>
<% @note.comments[1..-1].each do |comment| %>
<tr>
<td>
<%= h(comment.body) %>
<br />
<span class="by"><%= t "browse.note.at_by", :when => friendly_date(comment.created_at), :user => note_author(comment) %></span>
</td>
</tr>
<% end %>
</table>
</td>
</tr>
<% end %>
</table> </table>

View file

@ -285,11 +285,13 @@ en:
note: note:
open_title: "Unresolved issue: %{note_name}" open_title: "Unresolved issue: %{note_name}"
closed_title: "Resolved issue: %{note_name}" closed_title: "Resolved issue: %{note_name}"
created_at: "Created at:" opened: "Opened:"
edited_at: "Edited at:" last_modified: "Last modified:"
closed_at: "Closed at:" closed: "Closed:"
opened_by: "Opened by:" at_by: "%{when} ago by %{user}"
description: "Description:" description: "Description:"
comments: "Comments:"
comment_by: "Comment by: " comment_by: "Comment by: "
comment: "Comment:" comment: "Comment:"
date: "Date:" date: "Date:"

View file

@ -651,6 +651,23 @@ table.browse_details th {
white-space: nowrap; white-space: nowrap;
} }
td.browse_comments {
padding: 0px;
}
td.browse_comments table {
border-collapse: collapse;
}
td.browse_comments table td {
padding-bottom: 10px;
}
td.browse_comments table td span.by {
font-size: small;
color: #999999;
}
#browse_map { #browse_map {
width: 250px; width: 250px;
} }