All lists (included related lists) now send the order_by parameter to the API. Use the key: true attribute in the list definition to specify the default sorting field.

This commit is contained in:
Chris Houseknecht
2013-05-06 17:59:13 -04:00
parent d2dad90eb8
commit ccb732bd69
3 changed files with 27 additions and 9 deletions

View File

@@ -24,11 +24,13 @@ angular.module('SearchHelper', ['RestServices', 'Utilities', 'RefreshHelper'])
var set = params.set;
var defaultUrl = params.url;
var list = params.list;
var iterator = list.iterator;
var iterator = list.iterator;
var default_order;
// Set default values
for (fld in list.fields) {
if (list.fields[fld].key) {
default_order = fld;
scope[iterator + 'SearchField'] = fld
scope[iterator + 'SearchFieldLabel'] = list.fields[fld].label;
break;
@@ -63,15 +65,18 @@ angular.module('SearchHelper', ['RestServices', 'Utilities', 'RefreshHelper'])
// handle fields whose source is a related model e.g. inventories.organization
scope[iterator + 'SearchParams'] = '?' + list.fields[scope[iterator + 'SearchField']].sourceModel + '__' +
list.fields[scope[iterator + 'SearchField']].sourceField + '__' +
scope[iterator + 'SearchType'] + '=' + escape(scope[iterator + 'SearchValue']);
scope[iterator + 'SearchType'] + '=' + escape(scope[iterator + 'SearchValue']);
scope[iterator + 'SearchParams'] += (default_order) ? '&order_by=' + escape(default_order) : '';
}
else {
scope[iterator + 'SearchParams'] = '?' + scope[iterator + 'SearchField'] + '__' +
scope[iterator + 'SearchType'] + '=' + escape(scope[iterator + 'SearchValue']);
scope[iterator + 'SearchParams'] += (default_order) ? '&order_by=' + escape(default_order) : '';
}
}
else {
scope[iterator + 'SearchParams'] = '';
scope[iterator + 'SearchParams'] = '';
scope[iterator + 'SearchParams'] += (default_order) ? '?order_by=' + escape(default_order) : '';
}
Refresh({ scope: scope, set: set, iterator: iterator, url: url });
}