mirror of
https://github.com/ansible/awx.git
synced 2026-03-22 11:25:08 -02:30
Sort modules by built-in then custom
This commit is contained in:
@@ -2,32 +2,48 @@ var moduleConfig =
|
|||||||
{ 'packages':
|
{ 'packages':
|
||||||
{ compareKey: ['release', 'version'],
|
{ compareKey: ['release', 'version'],
|
||||||
nameKey: 'name',
|
nameKey: 'name',
|
||||||
displayType: 'flat'
|
displayType: 'flat',
|
||||||
|
sortKey: 1
|
||||||
},
|
},
|
||||||
'services':
|
'services':
|
||||||
{ compareKey: ['state', 'source'],
|
{ compareKey: ['state', 'source'],
|
||||||
nameKey: 'name',
|
nameKey: 'name',
|
||||||
displayType: 'flat'
|
displayType: 'flat',
|
||||||
|
sortKey: 2
|
||||||
},
|
},
|
||||||
'files':
|
'files':
|
||||||
{ compareKey: ['size', 'mode', 'md5', 'mtime', 'gid', 'uid'],
|
{ compareKey: ['size', 'mode', 'md5', 'mtime', 'gid', 'uid'],
|
||||||
nameKey: 'path',
|
nameKey: 'path',
|
||||||
displayType: 'flat'
|
displayType: 'flat',
|
||||||
|
sortKey: 3
|
||||||
|
},
|
||||||
|
'ansible':
|
||||||
|
{ displayType: 'nested',
|
||||||
|
sortKey: 4
|
||||||
},
|
},
|
||||||
'custom':
|
'custom':
|
||||||
{ displayType: 'nested'
|
{ displayType: 'nested'
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
function makeModule(option) {
|
function makeModule(option, index) {
|
||||||
var name = option[0];
|
var name = option[0];
|
||||||
var displayName = option[1];
|
var displayName = option[1];
|
||||||
var config = moduleConfig.hasOwnProperty(name) ?
|
var config = moduleConfig.hasOwnProperty(name) ?
|
||||||
moduleConfig[name] : moduleConfig.custom;
|
moduleConfig[name] : moduleConfig.custom;
|
||||||
|
var modulesCount = _.keys(moduleConfig).length - 1;
|
||||||
|
|
||||||
config.name = name;
|
config.name = name;
|
||||||
config.displayName = displayName;
|
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;
|
return config;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -39,7 +55,8 @@ function factory(hostId, rest, getBasePath, _) {
|
|||||||
rest.setUrl(url);
|
rest.setUrl(url);
|
||||||
return _(rest.options())
|
return _(rest.options())
|
||||||
.then(function(response) {
|
.then(function(response) {
|
||||||
return response.data.actions.GET.module.choices;
|
var choices = response.data.actions.GET.module.choices;
|
||||||
|
return _.sortBy(choices, '1');
|
||||||
}).thenMap(makeModule);
|
}).thenMap(makeModule);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
'FactModuleFilter-module--isActive': module.isActive,
|
'FactModuleFilter-module--isActive': module.isActive,
|
||||||
}"
|
}"
|
||||||
ng-click="setActiveModule(module.name)"
|
ng-click="setActiveModule(module.name)"
|
||||||
ng-repeat="module in modules">
|
ng-repeat="module in modules | orderBy: 'sortKey'">
|
||||||
{{module.displayName}}
|
{{module.displayName}}
|
||||||
</button>
|
</button>
|
||||||
</nav>
|
</nav>
|
||||||
|
|||||||
Reference in New Issue
Block a user