3988: Update crunch-job, arv-run-pipeline-instance and workbench to read/write
[arvados.git] / apps / workbench / app / views / application / _paging.html.erb
index f5677f77ceb79198c68e892c13daf32dc45dd4c9..df9d08d778c997fb641600eecb70c87fddb59ed1 100644 (file)
@@ -5,9 +5,31 @@ padding-left: 1em;
 padding-right: 1em;
 background-color: whitesmoke;
 }
+.paging-number {
+display: inline-block;
+min-width: 1.2em;
+}
 <% end %>
 
-<% if results.result_offset != nil and results.result_limit != nil and results.items_available != nil %>
+<% if results.respond_to? :result_offset and
+       results.respond_to? :result_limit and
+       results.respond_to? :items_available and
+       results.result_offset != nil and
+       results.result_limit != nil and
+       results.items_available != nil 
+%>
+<div class="index-paging">
+  Displaying <%= results.result_offset+1 %> &ndash; 
+  <%= if results.result_offset + results.result_limit > results.items_available 
+        results.items_available 
+      else 
+        results.result_offset + results.result_limit 
+      end %>
+ out of <%= results.items_available %>
+</div>
+
+<% if not (results.result_offset == 0 and results.items_available <= results.result_limit) %>
+  
 <div class="index-paging">
 
 <% if results.result_offset > 0 %>
@@ -21,7 +43,6 @@ background-color: whitesmoke;
 <% end %>
 
 <% this_offset = results.result_offset %>
-<% this_page = results.result_offset / results.result_limit %>
 
 <% if (results.result_offset + results.result_limit) < results.items_available %>
   <% next_offset = results.result_offset + results.result_limit %>
@@ -43,27 +64,42 @@ background-color: whitesmoke;
 <% end %>
 </span>
 
-<% n = this_page - 10 %>
-<% if n >= 0 %>
-  <% last = this_page + 10 %>
-  &hellip;
-<% else %>
-  <% n = 0 %>
-  <% last = 20 %>
+<% first = this_offset - (10 * results.result_limit) %>
+<% last = this_offset + (11 * results.result_limit) %>
+
+<% lastpage_offset = (results.items_available / results.result_limit) * results.result_limit %>
+
+<% if last > results.items_available %>
+  <% first -= (last - lastpage_offset) %>
+  <% last -= (last - results.items_available) %>
+<% end %>
+
+<% if first < 0 %>
+  <% d = -first %>
+  <% first += d %>
+  <% last += d %>
 <% end %>
 
-<% i = n * results.result_limit %>
-<% while i < results.items_available and n < last %>
-<% if n != this_page %>
-  <%= link_to "#{n+1}", {:id => @object, :offset => i, :limit => results.result_limit} %>
+<% last = results.items_available if last > results.items_available %>
+
+<% i = first %>
+<% n = first / results.result_limit %>
+
+<% if first > 0 %>
+&hellip;
+<% end %>
+
+<% while i < last %>
+<% if i != this_offset %>
+  <%= link_to "#{n+1}", {:id => @object, :offset => i, :limit => results.result_limit}, class: 'paging-number' %>
 <% else %>
-  <%= n+1 %>
+  <span class="paging-number" style="font-weight: bold;"><%= n+1 %></span>
 <% end %>
 <% i += results.result_limit %>
 <% n += 1 %>
 <% end %>
 
-<% if i < results.items_available %>
+<% if last < results.items_available %>
 &hellip;
 <% end %>
 
@@ -84,4 +120,7 @@ background-color: whitesmoke;
 </span>
 
 </div>
+
+<% end %>
+
 <% end %>