mirror of
https://github.com/ansible/awx.git
synced 2026-03-23 03:45:01 -02:30
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:
@@ -23,13 +23,16 @@ angular.module('RefreshRelatedHelper', ['RestServices', 'Utilities'])
|
|||||||
var iterator = params.iterator;
|
var iterator = params.iterator;
|
||||||
var url = params.url;
|
var url = params.url;
|
||||||
|
|
||||||
|
url.replace(/page_size\=\d+/,''); //stop repeatedly appending page_size
|
||||||
|
|
||||||
Rest.setUrl(url);
|
Rest.setUrl(url);
|
||||||
Rest.get()
|
Rest.get({ params: { page_size: scope[iterator + 'PageSize'] }})
|
||||||
.success( function(data, status, headers, config) {
|
.success( function(data, status, headers, config) {
|
||||||
scope[set] = data['results'];
|
scope[set] = data['results'];
|
||||||
scope[iterator + 'NextUrl'] = data.next;
|
scope[iterator + 'NextUrl'] = data.next;
|
||||||
scope[iterator + 'PrevUrl'] = data.previous;
|
scope[iterator + 'PrevUrl'] = data.previous;
|
||||||
scope[iterator + 'Count'] = data.count;
|
scope[iterator + 'Count'] = data.count;
|
||||||
|
scope[iterator + 'PageCount'] = Math.ceil((data.count / scope[iterator + 'PageSize']));
|
||||||
scope[iterator + 'SearchSpin'] = false;
|
scope[iterator + 'SearchSpin'] = false;
|
||||||
})
|
})
|
||||||
.error ( function(data, status, headers, config) {
|
.error ( function(data, status, headers, config) {
|
||||||
|
|||||||
@@ -51,18 +51,28 @@ angular.module('RelatedSearchHelper', ['RestServices', 'Utilities','RefreshRelat
|
|||||||
|
|
||||||
scope.search = function(model) {
|
scope.search = function(model) {
|
||||||
scope[model + 'SearchSpin'] = true;
|
scope[model + 'SearchSpin'] = true;
|
||||||
var set, url, iterator;
|
var set, url, iterator, default_order;
|
||||||
for (var key in relatedSets) {
|
for (var key in relatedSets) {
|
||||||
if (relatedSets[key].iterator == model) {
|
if (relatedSets[key].iterator == model) {
|
||||||
set = key;
|
set = key;
|
||||||
iterator = relatedSets[key].iterator;
|
iterator = relatedSets[key].iterator;
|
||||||
url = relatedSets[key].url;
|
url = relatedSets[key].url;
|
||||||
break;
|
|
||||||
|
for (var fld in form.related[key].fields) {
|
||||||
|
if (form.related[key].fields[fld].key) {
|
||||||
|
default_order = fld;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (scope[model + 'SearchValue'] != '' && scope[model + 'SearchValue'] != undefined) {
|
if (scope[model + 'SearchValue'] != '' && scope[model + 'SearchValue'] != undefined) {
|
||||||
url += '?' + scope[model + 'SearchField'] +
|
url += '?' + scope[model + 'SearchField'] +
|
||||||
'__' + scope[model + 'SearchType'] + '=' + escape(scope[model + 'SearchValue']);
|
'__' + scope[model + 'SearchType'] + '=' + escape(scope[model + 'SearchValue']);
|
||||||
|
url += (default_order) ? '&order_by=' + escape(default_order) : '';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
url += (default_order) ? '?order_by=' + escape(default_order) : '';
|
||||||
}
|
}
|
||||||
RefreshRelated({ scope: scope, set: set, iterator: iterator, url: url });
|
RefreshRelated({ scope: scope, set: set, iterator: iterator, url: url });
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,10 +25,12 @@ angular.module('SearchHelper', ['RestServices', 'Utilities', 'RefreshHelper'])
|
|||||||
var defaultUrl = params.url;
|
var defaultUrl = params.url;
|
||||||
var list = params.list;
|
var list = params.list;
|
||||||
var iterator = list.iterator;
|
var iterator = list.iterator;
|
||||||
|
var default_order;
|
||||||
|
|
||||||
// Set default values
|
// Set default values
|
||||||
for (fld in list.fields) {
|
for (fld in list.fields) {
|
||||||
if (list.fields[fld].key) {
|
if (list.fields[fld].key) {
|
||||||
|
default_order = fld;
|
||||||
scope[iterator + 'SearchField'] = fld
|
scope[iterator + 'SearchField'] = fld
|
||||||
scope[iterator + 'SearchFieldLabel'] = list.fields[fld].label;
|
scope[iterator + 'SearchFieldLabel'] = list.fields[fld].label;
|
||||||
break;
|
break;
|
||||||
@@ -64,14 +66,17 @@ angular.module('SearchHelper', ['RestServices', 'Utilities', 'RefreshHelper'])
|
|||||||
scope[iterator + 'SearchParams'] = '?' + list.fields[scope[iterator + 'SearchField']].sourceModel + '__' +
|
scope[iterator + 'SearchParams'] = '?' + list.fields[scope[iterator + 'SearchField']].sourceModel + '__' +
|
||||||
list.fields[scope[iterator + 'SearchField']].sourceField + '__' +
|
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 {
|
else {
|
||||||
scope[iterator + 'SearchParams'] = '?' + scope[iterator + 'SearchField'] + '__' +
|
scope[iterator + 'SearchParams'] = '?' + scope[iterator + 'SearchField'] + '__' +
|
||||||
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 {
|
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 });
|
Refresh({ scope: scope, set: set, iterator: iterator, url: url });
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user