Adding pagination to the changesets, thus allowing you to browe large changesets, without MySQL complaining about memory. Probably needs some fine tuning. You currently can only page one of nodes, ways, and relations, without manually setting the relations. Fixing deprection notice for the classic_pagination plugin.
This commit is contained in:
parent
89bd962ff0
commit
2ed84e26cd
5 changed files with 47 additions and 13 deletions
|
@ -116,6 +116,9 @@ class BrowseController < ApplicationController
|
|||
def changeset
|
||||
begin
|
||||
@changeset = Changeset.find(params[:id])
|
||||
@node_pages, @nodes = paginate(:old_nodes, :conditions => {:changeset_id => @changeset.id}, :per_page => 20, :parameter => 'node_page')
|
||||
@way_pages, @ways = paginate(:old_ways, :conditions => {:changeset_id => @changeset.id}, :per_page => 20, :parameter => 'way_page')
|
||||
@relation_pages, @relations = paginate(:old_relations, :conditions => {:changeset_id => @changeset.id}, :per_page => 20, :parameter => 'relation_page')
|
||||
|
||||
@title = "Changeset | #{@changeset.id}"
|
||||
@next = Changeset.find(:first, :order => "id ASC", :conditions => [ "id > :id", { :id => @changeset.id }] )
|
||||
|
|
|
@ -1,2 +1,5 @@
|
|||
module BrowseHelper
|
||||
def link_to_page(page, page_param)
|
||||
return link_to(page, page_param => page)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -5,6 +5,11 @@
|
|||
<td><%= h(changeset_details.created_at) %></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th>Closed at:</th>
|
||||
<td><%= h(changeset_details.closed_at) %></td>
|
||||
</tr>
|
||||
|
||||
<% if changeset_details.user.data_public? %>
|
||||
<tr>
|
||||
<th>Belongs to:</th>
|
||||
|
@ -21,27 +26,33 @@
|
|||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<tr>
|
||||
<th>Tags</th>
|
||||
<td>There are no tags for this changeset</td>
|
||||
</tr>
|
||||
<% end %>
|
||||
|
||||
<% unless changeset_details.old_nodes.empty? %>
|
||||
<% unless @nodes.empty? %>
|
||||
<tr valign="top">
|
||||
<th>Has the following nodes:</th>
|
||||
<th>Has the following <%= @node_pages.item_count %> nodes:</th>
|
||||
<td>
|
||||
<table padding="0">
|
||||
<% changeset_details.old_nodes.each do |node| %>
|
||||
<% @nodes.each do |node| %>
|
||||
<tr><td><%= link_to "Node #{node.id.to_s}, version #{node.version.to_s}", :action => "node", :id => node.id.to_s %></td></tr>
|
||||
<% end %>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<%= render :partial => 'paging_nav', :locals => { :pages => @node_pages, :page_param => "node_page"} %>
|
||||
<% end %>
|
||||
|
||||
<% unless changeset_details.old_ways.empty? %>
|
||||
<% unless @ways.empty? %>
|
||||
<tr valign="top">
|
||||
<th>Has the following ways:</th>
|
||||
<th>Has the following <%= @way_pages.item_count %> ways:</th>
|
||||
<td>
|
||||
<table padding="0">
|
||||
<% changeset_details.old_ways.each do |way| %>
|
||||
<% @ways.each do |way| %>
|
||||
<tr><td><%= link_to "Way #{way.id.to_s}, version #{way.version.to_s}", :action => "way", :id => way.id.to_s %></td></tr>
|
||||
<% end %>
|
||||
<%=
|
||||
|
@ -49,20 +60,22 @@
|
|||
%>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tr>
|
||||
<%= render :partial => 'paging_nav', :locals => { :pages => @way_pages, :page_param => "way_page" } %>
|
||||
<% end %>
|
||||
|
||||
<% unless changeset_details.old_relations.empty? %>
|
||||
<% unless @relations.empty? %>
|
||||
<tr valign="top">
|
||||
<th>Has the following relations:</th>
|
||||
<th>Has the following <%= @relation_pages.item_count %> relations:</th>
|
||||
<td>
|
||||
<table padding="0">
|
||||
<% changeset_details.old_relations.each do |relation| %>
|
||||
<% @relations.each do |relation| %>
|
||||
<tr><td><%= link_to "Relation #{relation.id.to_s}, version #{relation.version.to_s}", :action => "relation", :id => relation.id.to_s %></td></tr>
|
||||
<% end %>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<%= render :partial => 'paging_nav', :locals => { :pages => @relation_pages, :page_param => "relation_page" } %>
|
||||
<% end %>
|
||||
|
||||
</table>
|
||||
|
|
15
app/views/browse/_paging_nav.rhtml
Normal file
15
app/views/browse/_paging_nav.rhtml
Normal file
|
@ -0,0 +1,15 @@
|
|||
<tr><td colspan='2'>
|
||||
<% current_page = pages.current_page %>
|
||||
|
||||
Showing page
|
||||
<%= current_page.number %> (<%= current_page.first_item %><%
|
||||
if (current_page.first_item < current_page.last_item) # if more than 1 trace on page
|
||||
%>-<%= current_page.last_item %><%
|
||||
end %>
|
||||
of <%= pages.item_count %>)
|
||||
|
||||
<% if pages.page_count > 1 %>
|
||||
| <%= pagination_links_each(pages, {}) { |n| link_to_page(n, page_param) } %>
|
||||
<% end %>
|
||||
</td>
|
||||
</tr>
|
|
@ -97,8 +97,8 @@ module ActionController
|
|||
"Unknown options: #{unknown_option_keys.join(', ')}" unless
|
||||
unknown_option_keys.empty?
|
||||
|
||||
options[:singular_name] ||= Inflector.singularize(collection_id.to_s)
|
||||
options[:class_name] ||= Inflector.camelize(options[:singular_name])
|
||||
options[:singular_name] ||= ActiveSupport::Inflector.singularize(collection_id.to_s)
|
||||
options[:class_name] ||= ActiveSupport::Inflector.camelize(options[:singular_name])
|
||||
end
|
||||
|
||||
# Returns a paginator and a collection of Active Record model instances
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue