diff -r 51acae6af8a3 -r ac6928e86d14 cms/app-client/mirage/serializers/theme.js --- a/cms/app-client/mirage/serializers/theme.js Fri Jul 08 18:41:32 2016 +0200 +++ b/cms/app-client/mirage/serializers/theme.js Sat Jul 09 00:59:32 2016 +0200 @@ -3,7 +3,28 @@ import _ from 'lodash/lodash'; export default JSONAPISerializer.extend({ - serialize(response) { - return _(response.models).map((theme) => { return [theme.id, {count: theme.count, label: theme.label}];}).object().value(); + + serialize: function(response, request) { + // Remove models with no name + response.models = response.models.filter(element => element.label); + // Alphabetical order + if(request.queryParams.sort === 'alphabetical') { + response.models.sort(function(a, b) { + var aLabel = a.label.toUpperCase(); + var bLabel = b.label.toUpperCase(); + if (aLabel < bLabel) return -1; + if (aLabel > bLabel) return 1; + return 0; + }); + // Descending order + } else if(request.queryParams.sort === 'descending') { + response.models.sort(function(a, b) { + return b.count - a.count; + }); + } + var index = request.queryParams.page * request.queryParams.limit; + var slice = response.models.slice(index, index + request.queryParams.limit); + return _(slice).map((theme) => { return [theme.id, {count: theme.count, label: theme.label}];}).object().value(); } + });