Commit bcb82c8022595f078df0de822a88b9e8910f46ae

Authored by Victor Costa
1 parent dd846d23

virtuoso: added pagination for triples templates

plugins/virtuoso/lib/virtuoso_plugin/triples_template.rb
@@ -28,7 +28,7 @@ class VirtuosoPlugin::TriplesTemplate < Article @@ -28,7 +28,7 @@ class VirtuosoPlugin::TriplesTemplate < Article
28 def to_html(options = {}) 28 def to_html(options = {})
29 article = self 29 article = self
30 proc do 30 proc do
31 - render :file => 'content_viewer/triples_template', :locals => {:article => article} 31 + render :file => 'content_viewer/triples_template', :locals => {:article => article, :page => params[:npage]}
32 end 32 end
33 end 33 end
34 34
@@ -36,11 +36,17 @@ class VirtuosoPlugin::TriplesTemplate < Article @@ -36,11 +36,17 @@ class VirtuosoPlugin::TriplesTemplate < Article
36 @plugin ||= VirtuosoPlugin.new(self) 36 @plugin ||= VirtuosoPlugin.new(self)
37 end 37 end
38 38
  39 + attr_reader :results
  40 +
39 def template_content(page=1) 41 def template_content(page=1)
40 begin 42 begin
41 - results = plugin.virtuoso_readonly_client.query(query).paginate({:per_page => per_page, :page => page}) 43 + @results ||= plugin.virtuoso_readonly_client.query(query).paginate({:per_page => per_page, :page => page})
42 liquid_template = Liquid::Template.parse(template) 44 liquid_template = Liquid::Template.parse(template)
43 - rendered_template = liquid_template.render('results' => results) 45 + rendered_template = liquid_template.render('results' => results,
  46 + 'total_pages' => results.total_pages,
  47 + 'current_page' => results.current_page,
  48 + 'per_page' => results.per_page,
  49 + 'total_entries' => results.total_entries)
44 transform_html(rendered_template) 50 transform_html(rendered_template)
45 rescue => ex 51 rescue => ex
46 logger.info ex.to_s 52 logger.info ex.to_s
plugins/virtuoso/views/content_viewer/triples_template.html.erb
@@ -3,5 +3,7 @@ @@ -3,5 +3,7 @@
3 </div> 3 </div>
4 4
5 <div class="results"> 5 <div class="results">
6 - <%= article.template_content %> 6 + <%= article.template_content(page) %>
7 </div> 7 </div>
  8 +
  9 +<%= will_paginate(article.results, :param_name => 'npage')%>