uuid: {
type: 'string', required: false, default: nil
},
+ # include_linked returns name links, which are obsolete, so
+ # remove it when clients have been migrated.
include_linked: {
type: 'boolean', required: false, default: false
},
def contents
# Set @objects:
+ # include_linked returns name links, which are obsolete, so
+ # remove it when clients have been migrated.
load_searchable_objects(owner_uuid: @object.andand.uuid,
include_linked: params[:include_linked])
sql = 'link_class=? and head_uuid in (?)'
# aggregate set.
limit_all = @limit
offset_all = @offset
+ # save the orders from the current request as determined by load_param,
+ # but otherwise discard them because we're going to be getting objects
+ # from many models
+ request_orders = @orders.clone
@orders = []
[Group,
end
end
- @objects = @objects.order("#{klass.table_name}.uuid")
+ # If the currently requested orders specifically match the table_name for the current klass, apply the order
+ request_order = request_orders && request_orders.find{ |r| r =~ /^#{klass.table_name}\./i }
+ if request_order
+ @objects = @objects.order(request_order)
+ else
+ # default to created_at desc, ignoring any currently requested ordering because it doesn't apply to this klass
+ @objects = @objects.order("#{klass.table_name}.created_at desc")
+ end
+
@limit = limit_all - all_objects.count
- apply_where_limit_order_params
+ apply_where_limit_order_params klass
klass_items_available = @objects.
except(:limit).except(:offset).
count(:id, distinct: true)