mirror of
https://github.com/ansible/awx.git
synced 2026-01-13 19:10:07 -03:30
Add sort to users tokens list
This commit is contained in:
parent
8b2fc26219
commit
0aff1a2c75
@ -91,15 +91,15 @@ function ApplicationsRun ($stateExtender, strings) {
|
||||
controllerAs: 'vm'
|
||||
}
|
||||
},
|
||||
searchPrefix: 'application',
|
||||
params: {
|
||||
application_search: {
|
||||
value: {
|
||||
order_by: 'name',
|
||||
page_size: 10
|
||||
},
|
||||
page_size: 10,
|
||||
order_by: 'name'
|
||||
}
|
||||
}
|
||||
},
|
||||
searchPrefix: 'application',
|
||||
resolve: {
|
||||
resolvedModels: [
|
||||
'ApplicationModel',
|
||||
|
||||
@ -41,6 +41,11 @@ function TokensStrings (BaseString) {
|
||||
PERSONAL_ACCESS_TOKEN: t.s('Personal Access Token'),
|
||||
HEADER: appName => t.s('{{ appName }} Token', { appName }),
|
||||
};
|
||||
|
||||
ns.sort = {
|
||||
NAME_ASCENDING: t.s('Name (Ascending)'),
|
||||
NAME_DESCENDING: t.s('Name (Descending)')
|
||||
};
|
||||
}
|
||||
|
||||
TokensStrings.$inject = ['BaseStringService'];
|
||||
|
||||
@ -16,7 +16,6 @@ function ListTokensController (
|
||||
models
|
||||
) {
|
||||
const vm = this || {};
|
||||
|
||||
const { token } = models;
|
||||
|
||||
vm.strings = strings;
|
||||
@ -27,19 +26,61 @@ function ListTokensController (
|
||||
// smart-search
|
||||
const name = 'tokens';
|
||||
const iterator = 'token';
|
||||
const key = 'token_dataset';
|
||||
let paginateQuerySet = {};
|
||||
|
||||
$scope.list = { iterator, name, basePath: 'tokens' };
|
||||
$scope.collection = { iterator };
|
||||
$scope[key] = Dataset.data;
|
||||
vm.tokensCount = Dataset.data.count;
|
||||
$scope[name] = Dataset.data.results;
|
||||
$scope.$on('updateDataset', (e, dataset) => {
|
||||
$scope[key] = dataset;
|
||||
$scope[name] = dataset.results;
|
||||
vm.tokensCount = dataset.count;
|
||||
vm.token_dataset = Dataset.data;
|
||||
vm.tokens = Dataset.data.results;
|
||||
vm.list = { iterator, name, basePath: 'tokens' };
|
||||
vm.basePath = `${GetBasePath('users')}${$state.params.user_id}/tokens`;
|
||||
|
||||
$scope.$on('updateDataset', (e, dataset, queryset) => {
|
||||
vm.token_dataset = dataset;
|
||||
vm.tokens = dataset.results;
|
||||
paginateQuerySet = queryset;
|
||||
});
|
||||
|
||||
$scope.$watchCollection('$state.params', () => {
|
||||
setToolbarSort();
|
||||
});
|
||||
|
||||
const toolbarSortDefault = {
|
||||
label: `${strings.get('sort.NAME_ASCENDING')}`,
|
||||
value: 'application__name'
|
||||
};
|
||||
|
||||
vm.toolbarSortOptions = [
|
||||
toolbarSortDefault,
|
||||
{
|
||||
label: `${strings.get('sort.NAME_DESCENDING')}`,
|
||||
value: '-application__name'
|
||||
}
|
||||
];
|
||||
|
||||
function setToolbarSort () {
|
||||
const orderByValue = _.get($state.params, 'token_search.order_by');
|
||||
const sortValue = _.find(vm.toolbarSortOptions, (option) => option.value === orderByValue);
|
||||
if (sortValue) {
|
||||
vm.toolbarSortValue = sortValue;
|
||||
} else {
|
||||
vm.toolbarSortValue = toolbarSortDefault;
|
||||
}
|
||||
}
|
||||
|
||||
vm.onToolbarSort = (sort) => {
|
||||
vm.toolbarSortValue = sort;
|
||||
const queryParams = Object.assign(
|
||||
{},
|
||||
$state.params.token_search,
|
||||
paginateQuerySet,
|
||||
{ order_by: sort.value }
|
||||
);
|
||||
|
||||
// Update URL with params
|
||||
$state.go('.', {
|
||||
token_search: queryParams
|
||||
}, { notify: false, location: 'replace' });
|
||||
};
|
||||
|
||||
vm.getScopeString = str => {
|
||||
if (str === 'Read') {
|
||||
return vm.strings.get('add.SCOPE_READ_LABEL');
|
||||
|
||||
@ -2,11 +2,11 @@
|
||||
<smart-search
|
||||
class="at-List-search"
|
||||
django-model="tokens"
|
||||
base-path="tokens"
|
||||
base-path="{{ vm.basePath }}"
|
||||
iterator="token"
|
||||
list="list"
|
||||
dataset="token_dataset"
|
||||
collection="collection"
|
||||
list="vm.list"
|
||||
dataset="vm.token_dataset"
|
||||
collection="vm.tokens"
|
||||
search-tags="searchTags">
|
||||
</smart-search>
|
||||
<div class="at-List-toolbarAction">
|
||||
@ -20,9 +20,15 @@
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<at-list results="tokens">
|
||||
<at-row ng-repeat="token in tokens">
|
||||
<at-list-toolbar
|
||||
ng-if="vm.tokens.length > 0"
|
||||
sort-only="true"
|
||||
sort-value="vm.toolbarSortValue"
|
||||
sort-options="vm.toolbarSortOptions"
|
||||
on-sort="vm.onToolbarSort">
|
||||
</at-list-toolbar>
|
||||
<at-list results="vm.tokens">
|
||||
<at-row ng-repeat="token in vm.tokens">
|
||||
<div class="at-Row-items">
|
||||
<at-row-item
|
||||
header-value="{{ token.summary_fields.application.name ?
|
||||
@ -59,8 +65,8 @@
|
||||
</at-row>
|
||||
</at-list>
|
||||
<paginate
|
||||
collection="tokens"
|
||||
dataset="token_dataset"
|
||||
collection="vm.tokens"
|
||||
dataset="vm.token_dataset"
|
||||
iterator="token"
|
||||
base-path="tokens">
|
||||
base-path="{{ vm.basePath }}">
|
||||
</paginate>
|
||||
@ -39,8 +39,8 @@ export default {
|
||||
params: {
|
||||
token_search: {
|
||||
value: {
|
||||
page_size: 5,
|
||||
order_by: 'application'
|
||||
page_size: 10,
|
||||
order_by: 'application__name'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user