mirror of
https://github.com/ansible/awx.git
synced 2026-01-16 04:10:44 -03:30
Sort modules by built-in then custom
This commit is contained in:
parent
579ee6d721
commit
5f902a55fe
@ -2,32 +2,48 @@ var moduleConfig =
|
||||
{ 'packages':
|
||||
{ compareKey: ['release', 'version'],
|
||||
nameKey: 'name',
|
||||
displayType: 'flat'
|
||||
displayType: 'flat',
|
||||
sortKey: 1
|
||||
},
|
||||
'services':
|
||||
{ compareKey: ['state', 'source'],
|
||||
nameKey: 'name',
|
||||
displayType: 'flat'
|
||||
displayType: 'flat',
|
||||
sortKey: 2
|
||||
},
|
||||
'files':
|
||||
{ compareKey: ['size', 'mode', 'md5', 'mtime', 'gid', 'uid'],
|
||||
nameKey: 'path',
|
||||
displayType: 'flat'
|
||||
displayType: 'flat',
|
||||
sortKey: 3
|
||||
},
|
||||
'ansible':
|
||||
{ displayType: 'nested',
|
||||
sortKey: 4
|
||||
},
|
||||
'custom':
|
||||
{ displayType: 'nested'
|
||||
}
|
||||
};
|
||||
|
||||
function makeModule(option) {
|
||||
function makeModule(option, index) {
|
||||
var name = option[0];
|
||||
var displayName = option[1];
|
||||
var config = moduleConfig.hasOwnProperty(name) ?
|
||||
moduleConfig[name] : moduleConfig.custom;
|
||||
var modulesCount = _.keys(moduleConfig).length - 1;
|
||||
|
||||
config.name = name;
|
||||
config.displayName = displayName;
|
||||
|
||||
// Use index to sort custom modules,
|
||||
// offset by built-in modules since
|
||||
// they have a hardcoded sort key
|
||||
//
|
||||
if (_.isUndefined(config.sortKey)) {
|
||||
config.sortKey = (index - 1) + modulesCount;
|
||||
}
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
@ -39,7 +55,8 @@ function factory(hostId, rest, getBasePath, _) {
|
||||
rest.setUrl(url);
|
||||
return _(rest.options())
|
||||
.then(function(response) {
|
||||
return response.data.actions.GET.module.choices;
|
||||
var choices = response.data.actions.GET.module.choices;
|
||||
return _.sortBy(choices, '1');
|
||||
}).thenMap(makeModule);
|
||||
}
|
||||
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
'FactModuleFilter-module--isActive': module.isActive,
|
||||
}"
|
||||
ng-click="setActiveModule(module.name)"
|
||||
ng-repeat="module in modules">
|
||||
ng-repeat="module in modules | orderBy: 'sortKey'">
|
||||
{{module.displayName}}
|
||||
</button>
|
||||
</nav>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user