Use items_available in API response instead of retrieving all items.
[arvados.git] / apps / workbench / app / models / arvados_resource_list.rb
index c8e6de6302863dd8082cdeee7fd8882f46aad527..72495cfdb99caec2269d5fc681e5cbb3944cea6f 100644 (file)
@@ -15,6 +15,11 @@ class ArvadosResourceList
     self
   end
 
+  def order(orderby_spec)
+    @orderby_spec = orderby_spec
+    self
+  end
+
   def where(cond)
     cond = cond.dup
     cond.keys.each do |uuid_key|
@@ -46,6 +51,7 @@ class ArvadosResourceList
     }
     api_params[:eager] = '1' if @eager
     api_params[:limit] = @limit if @limit
+    api_params[:order] = @orderby_spec if @orderby_spec
     res = $arvados_api_client.api @resource_class, '', api_params
     @results = $arvados_api_client.unpack_api_response res
     self
@@ -98,4 +104,8 @@ class ArvadosResourceList
   def empty?
     results.empty?
   end
+
+  def items_available
+    results.items_available if results.respond_to? :items_available
+  end
 end