trashed_items
if @objects.any?
- @objects = @objects.sort_by { |obj| obj.created_at }.reverse
+ @objects = @objects.sort_by { |obj| obj.trash_at }.reverse
@next_page_filters = next_page_filters('<=')
@next_page_href = url_for(partial: :trash_rows,
filters: @next_page_filters.to_json)
@next_page_href
end
+ def next_page_filters nextpage_operator
+ next_page_filters = @filters.reject do |attr, op, val|
+ (attr == 'trash_at' and op == nextpage_operator) or
+ (attr == 'uuid' and op == 'not in')
+ end
+
+ if @objects.any?
+ last_trash_at = @objects.last.trash_at
+
+ last_uuids = []
+ @objects.each do |obj|
+ last_uuids << obj.uuid if obj.trash_at.eql?(last_trash_at)
+ end
+
+ next_page_filters += [['trash_at', nextpage_operator, last_trash_at]]
+ next_page_filters += [['uuid', 'not in', last_uuids]]
+ end
+
+ next_page_filters
+ end
+
def trashed_items
# API server index doesn't return manifest_text by default, but our
# callers want it unless otherwise specified.
</td>
<td>
<%= if !obj.name.blank? then obj.name else obj.uuid end %>
- <td>
- <%= render_localized_date(obj.created_at) if obj.created_at %>
<td>
<%= render_localized_date(obj.trash_at) if obj.trash_at %>
+ <td>
+ <%= render_localized_date(obj.created_at) if obj.created_at %>
</td>
<td>
<%= link_to_if_arvados_object obj.owner_uuid, friendly_name: true %>