Add server filters to NGusers & enable filter first
This patch adds server side filters to current NG users panel it also enables the filter first functionality Look at:https://review.openstack.org/#/c/427794/ Partially-Implements: blueprint ng-users Implements: blueprint admin-views-filter-first Change-Id: If0a5e2b38b1076387fd4eb7ff2c01fadb06badc3 Depends-on: Ieeedffbc621291251d50e7d8f254d3ce4def896c
This commit is contained in:
parent
55d23e7dfd
commit
bed34722f3
@ -37,18 +37,18 @@
|
||||
|
||||
run.$inject = [
|
||||
'horizon.framework.conf.resource-type-registry.service',
|
||||
'horizon.app.core.openstack-service-api.keystone',
|
||||
'horizon.dashboard.identity.users.basePath',
|
||||
'horizon.dashboard.identity.users.resourceType',
|
||||
'horizon.dashboard.identity.users.service'
|
||||
];
|
||||
|
||||
function run(registry, keystone, basePath, userResourceType, usersService) {
|
||||
function run(registry, basePath, userResourceType, usersService) {
|
||||
registry.getResourceType(userResourceType)
|
||||
.setNames(gettext('User'), gettext('Users'))
|
||||
.setSummaryTemplateUrl(basePath + 'details/drawer.html')
|
||||
.setProperties(userProperties())
|
||||
.setListFunction(usersService.getUsersPromise)
|
||||
.setNeedsFilterFirstFunction(usersService.getFilterFirstSettingPromise)
|
||||
.tableColumns
|
||||
.append({
|
||||
id: 'name',
|
||||
@ -76,7 +76,8 @@
|
||||
.append({
|
||||
label: gettext('Name'),
|
||||
name: 'name',
|
||||
singleton: true
|
||||
singleton: true,
|
||||
isServer: true
|
||||
})
|
||||
.append({
|
||||
label: gettext('Email'),
|
||||
@ -86,12 +87,14 @@
|
||||
.append({
|
||||
label: gettext('ID'),
|
||||
name: 'id',
|
||||
singleton: true
|
||||
singleton: true,
|
||||
isServer: true
|
||||
})
|
||||
.append({
|
||||
label: gettext('Enabled'),
|
||||
name: 'enabled',
|
||||
singleton: true,
|
||||
isServer: true,
|
||||
options: [
|
||||
{label: gettext('Yes'), key: 'true'},
|
||||
{label: gettext('No'), key: 'false'}
|
||||
|
@ -22,18 +22,20 @@
|
||||
userService.$inject = [
|
||||
'$q',
|
||||
'horizon.app.core.openstack-service-api.keystone',
|
||||
'horizon.app.core.detailRoute'
|
||||
'horizon.app.core.detailRoute',
|
||||
'horizon.app.core.openstack-service-api.settings'
|
||||
];
|
||||
|
||||
/*
|
||||
* @ngdoc factory
|
||||
* @name horizon.dashboard.identity.users.service
|
||||
*/
|
||||
function userService($q, keystone, detailRoute) {
|
||||
function userService($q, keystone, detailRoute, settings) {
|
||||
return {
|
||||
getDetailsPath: getDetailsPath,
|
||||
getUserPromise: getUserPromise,
|
||||
getUsersPromise: getUsersPromise
|
||||
getUsersPromise: getUsersPromise,
|
||||
getFilterFirstSettingPromise: getFilterFirstSettingPromise
|
||||
};
|
||||
|
||||
/*
|
||||
@ -47,14 +49,15 @@
|
||||
return detailRoute + 'OS::Keystone::User/' + item.id;
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* @ngdoc function
|
||||
* @name getUsersPromise
|
||||
* @param params - query params
|
||||
* @description
|
||||
* Returns a promise for the users data.
|
||||
*/
|
||||
function getUsersPromise() {
|
||||
return keystone.getUsers();
|
||||
function getUsersPromise(params) {
|
||||
return keystone.getUsers(params);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -94,6 +97,22 @@
|
||||
return user;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @ngdoc function
|
||||
* @name getFilterFirstSettingPromise
|
||||
* @description Returns a promise for the FILTER_DATA_FIRST setting
|
||||
*
|
||||
*/
|
||||
function getFilterFirstSettingPromise() {
|
||||
return settings.getSetting('FILTER_DATA_FIRST', {'identity.users': false})
|
||||
.then(resolve);
|
||||
|
||||
function resolve(result) {
|
||||
return result['identity.users'];
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
})();
|
||||
|
@ -17,12 +17,13 @@
|
||||
"use strict";
|
||||
|
||||
describe('Identity user service', function() {
|
||||
var service, keystone, scope, $q, detailRoute;
|
||||
var service, keystone, scope, settings, $q, detailRoute;
|
||||
|
||||
beforeEach(module('horizon.dashboard.identity.users'));
|
||||
beforeEach(inject(function($injector, _$q_) {
|
||||
service = $injector.get('horizon.dashboard.identity.users.service');
|
||||
keystone = $injector.get('horizon.app.core.openstack-service-api.keystone');
|
||||
settings = $injector.get('horizon.app.core.openstack-service-api.settings');
|
||||
detailRoute = $injector.get('horizon.app.core.detailRoute');
|
||||
scope = $injector.get('$rootScope').$new();
|
||||
$q = _$q_;
|
||||
@ -106,5 +107,19 @@
|
||||
});
|
||||
});
|
||||
|
||||
describe('getFilterFirstSettingPromise', function() {
|
||||
|
||||
it('provides the setting value for identitty.users panel', function() {
|
||||
var deferredSetting = $q.defer();
|
||||
spyOn(settings, 'getSetting').and.returnValue(deferredSetting.promise);
|
||||
var result = service.getFilterFirstSettingPromise();
|
||||
deferredSetting.resolve({'identity.users': false});
|
||||
scope.$apply();
|
||||
expect(settings.getSetting).toHaveBeenCalled();
|
||||
expect(result.$$state.value).toBe(false);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
})();
|
||||
|
Loading…
Reference in New Issue
Block a user