Skip to content

Commit

Permalink
Get the note browse pages into a vaguely working state
Browse files Browse the repository at this point in the history
  • Loading branch information
tomhughes committed Aug 13, 2011
1 parent a693862 commit 81a6c7b
Show file tree
Hide file tree
Showing 6 changed files with 107 additions and 85 deletions.
4 changes: 4 additions & 0 deletions app/helpers/application_helper.rb
Expand Up @@ -129,6 +129,10 @@ def preferred_editor
end
end

def friendly_date(date)
content_tag(:span, time_ago_in_words(date), :title => l(date, :format => :friendly))
end

private

def javascript_strings_for_key(key)
Expand Down
8 changes: 8 additions & 0 deletions app/helpers/browse_helper.rb
Expand Up @@ -42,6 +42,14 @@ def format_value(key, value)
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

ICON_TAGS = [
Expand Down
24 changes: 20 additions & 4 deletions app/views/browse/_map.html.erb
Expand Up @@ -6,14 +6,14 @@
</iframe>

<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>
<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" }) %>
<br />
<%= 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 />
<%= link_to("", { :controller => :site, :action => :index }, { :id => "object_larger_map", :class => "geolink object" }) %>
<br />
Expand All @@ -40,7 +40,7 @@
</ul>
</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">
OpenLayers.Lang.setCode("<%= I18n.locale.to_s %>");

Expand Down Expand Up @@ -105,9 +105,25 @@
setMapCenter(centre, 16);
addMarkerToMap(centre);

var bbox = getMapExtent();

$("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 %>
var obj_type = "<%= map.class.name.downcase %>";
var obj_id = <%= map.id %>;
Expand Down
129 changes: 52 additions & 77 deletions app/views/browse/note.html.erb
@@ -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>
<td width="100%">
<h2>
<% if @note.status == "closed" %>
<%= image_tag("closed_note_marker.png", :alt => 'closed') %>
<%= t 'browse.note.closed_title', :note_name => @note.id %>
<% else %>
<%= image_tag("open_note_marker.png", :alt => 'open') %>
<%= t 'browse.note.open_title', :note_name => @note.id %>
<% end %>
</h2>
</td>
<td>
<%= render :partial => "navigation" %>
</td>
</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>
<th><%= t "browse.note.opened" %></th>
<td><%= t "browse.note.at_by", :when => friendly_date(@note.created_at), :user => note_author(@note) %></td>
</tr>

<br />
<% if @note.status == "closed" %>
<tr>
<th><%= t "browse.note.closed" %></th>
<td><%= t "browse.note.at_by", :when => friendly_date(@note.closed_at), :user => note_author(@note.comments.last) %></td>
</tr>
<% elsif @note.comments.length > 1 %>
<tr>
<th><%= t "browse.note.last_modified" %></th>
<td><%= t "browse.note.at_by", :when => friendly_date(@note.updated_at), :user => note_author(@note.comments.last) %></td>
</tr>
<% end %>

<% if @note.comments.length > 1 %>
<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>
<tr>
<th><%= t "browse.note.description" %></th>
<td><%= h(@note.comments.first.body) %></td>
</tr>

<%= render :partial => "map", :object => @note %>
<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>

<% 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>
10 changes: 6 additions & 4 deletions config/locales/en.yml
Expand Up @@ -285,11 +285,13 @@ en:
note:
open_title: "Unresolved issue: %{note_name}"
closed_title: "Resolved issue: %{note_name}"
created_at: "Created at:"
edited_at: "Edited at:"
closed_at: "Closed at:"
opened_by: "Opened by:"
opened: "Opened:"
last_modified: "Last modified:"
closed: "Closed:"
at_by: "%{when} ago by %{user}"
description: "Description:"
comments: "Comments:"

comment_by: "Comment by: "
comment: "Comment:"
date: "Date:"
Expand Down
17 changes: 17 additions & 0 deletions public/stylesheets/common.css
Expand Up @@ -651,6 +651,23 @@ table.browse_details th {
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 {
width: 250px;
}
Expand Down

0 comments on commit 81a6c7b

Please sign in to comment.