@@ -, +, @@ points --- Koha/REST/Plugin/Query.pm | 3 ++- api/v1/swagger/parameters.json | 2 +- koha-tmpl/intranet-tmpl/prog/js/datatables.js | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) --- a/Koha/REST/Plugin/Query.pm +++ a/Koha/REST/Plugin/Query.pm @@ -92,9 +92,10 @@ Generates the DBIC order_by attributes based on I<$params>, and merges into I<$a if ( defined $args->{params}->{_order_by} ) { my $order_by = $args->{params}->{_order_by}; + $order_by = [ split(/,/, $order_by) ] if ( index(',',$order_by) == -1); if ( reftype($order_by) and reftype($order_by) eq 'ARRAY' ) { my @order_by = map { _build_order_atom({ string => $_, result_set => $result_set }) } - @{ $args->{params}->{_order_by} }; + @{ $order_by }; $attributes->{order_by} = \@order_by; } else { --- a/api/v1/swagger/parameters.json +++ a/api/v1/swagger/parameters.json @@ -72,7 +72,7 @@ "required": false, "description": "Sorting criteria", "type": "array", - "collectionFormat": "pipes", + "collectionFormat": "csv", "items": { "type": "string" } --- a/koha-tmpl/intranet-tmpl/prog/js/datatables.js +++ a/koha-tmpl/intranet-tmpl/prog/js/datatables.js @@ -637,9 +637,9 @@ jQuery.fn.dataTable.ext.errMode = function(settings, note, message) { order.forEach(function (e,i) { var order_col = e.column; var order_by = options.columns[order_col].data; - order_by = order_by.split(':')[0]; + order_by = order_by.split(':'); var order_dir = e.dir == 'asc' ? '+' : '-'; - dataSet._order_by = order_dir + (!order_by.includes('.')?'me.'+order_by:order_by); + dataSet._order_by = order_by.map(x => order_dir + (!x.includes('.')?'me.'+x:x)).join(','); }); } --