diff options
author | Petr Vobornik <pvoborni@redhat.com> | 2013-07-18 16:17:40 +0200 |
---|---|---|
committer | Martin Kosek <mkosek@redhat.com> | 2013-07-23 13:14:02 +0200 |
commit | 881290b0109aa1f52a34d31505b9ebf73b991a00 (patch) | |
tree | 24d9eb886a3f2d80311b913c06456d6c34a24cd0 /install/ui/src/freeipa | |
parent | b7f10d9fe677e16bf669c8af2aeee2c0af86f14d (diff) | |
download | freeipa-881290b0109aa1f52a34d31505b9ebf73b991a00.tar.gz freeipa-881290b0109aa1f52a34d31505b9ebf73b991a00.tar.xz freeipa-881290b0109aa1f52a34d31505b9ebf73b991a00.zip |
Web UI search optimization
This patch optimizes options used in commands executed by search pages.
1) Removed --all from _find and _show commands used by search pages. All displayed attributes should be already included in default attributes.
2) Removed search_all_attributes - Not needed since introduction of paging.
3) Added --no-members options to search _show commmands. Members are not displayed on search pages and such change drastically improves performance. It reduces computations on server and amount of data transferred to Web UI.
https://fedorahosted.org/freeipa/ticket/3706
Diffstat (limited to 'install/ui/src/freeipa')
-rw-r--r-- | install/ui/src/freeipa/entity.js | 14 | ||||
-rw-r--r-- | install/ui/src/freeipa/facet.js | 11 | ||||
-rw-r--r-- | install/ui/src/freeipa/hbac.js | 1 | ||||
-rw-r--r-- | install/ui/src/freeipa/search.js | 5 | ||||
-rw-r--r-- | install/ui/src/freeipa/selinux.js | 1 |
5 files changed, 21 insertions, 11 deletions
diff --git a/install/ui/src/freeipa/entity.js b/install/ui/src/freeipa/entity.js index 22efd47af..eef58d1a4 100644 --- a/install/ui/src/freeipa/entity.js +++ b/install/ui/src/freeipa/entity.js @@ -217,6 +217,20 @@ exp.entity = IPA.entity = function(spec) { return that; }; + that.has_members = function() { + var members = that.metadata.attribute_members; + var has = false; + if (members) { + for (var member in members) { + if (members.hasOwnProperty(member)) { + has = true; + break; + } + } + } + return has; + }; + that.builder = spec.builder || IPA.entity_builder(that); that.entity_init = that.init; diff --git a/install/ui/src/freeipa/facet.js b/install/ui/src/freeipa/facet.js index 166203a93..37106e22f 100644 --- a/install/ui/src/freeipa/facet.js +++ b/install/ui/src/freeipa/facet.js @@ -1082,7 +1082,6 @@ exp.table_facet = IPA.table_facet = function(spec, no_init) { that.pagination = spec.pagination === undefined ? true : spec.pagination; that.search_all_entries = spec.search_all_entries; - that.search_all_attributes = spec.search_all_attributes; that.sort_enabled = spec.sort_enabled === undefined ? true : spec.sort_enabled; that.selectable = spec.selectable === undefined ? true : spec.selectable; that.select_changed = IPA.observer(); @@ -1312,7 +1311,7 @@ exp.table_facet = IPA.table_facet = function(spec, no_init) { that.create_get_records_command = function(pkeys, on_success, on_error) { - var batch = IPA.batch_command({ + var batch = IPA.batch_command({ name: that.get_records_command_name(), on_success: on_success, on_error: on_error @@ -1324,10 +1323,13 @@ exp.table_facet = IPA.table_facet = function(spec, no_init) { var command = IPA.command({ entity: that.table.entity.name, method: 'show', - args: [ pkey ], - options: { all: true } + args: [pkey] }); + if (that.table.entity.has_members()) { + command.set_options({no_members: true}); + } + batch.add_command(command); } @@ -1353,7 +1355,6 @@ exp.table_facet = IPA.table_facet = function(spec, no_init) { label: entity.metadata.label, entity: entity, pagination: true, - search_all_attributes: that.search_all_attributes, scrollable: true, selectable: that.selectable && !that.read_only }); diff --git a/install/ui/src/freeipa/hbac.js b/install/ui/src/freeipa/hbac.js index dc29fad55..e977b4d26 100644 --- a/install/ui/src/freeipa/hbac.js +++ b/install/ui/src/freeipa/hbac.js @@ -44,7 +44,6 @@ var spec = { { $type: 'search', row_enabled_attribute: 'ipaenabledflag', - search_all_attributes: true, columns: [ 'cn', { diff --git a/install/ui/src/freeipa/search.js b/install/ui/src/freeipa/search.js index 03ec0b12a..c2e678a35 100644 --- a/install/ui/src/freeipa/search.js +++ b/install/ui/src/freeipa/search.js @@ -239,10 +239,7 @@ IPA.search_facet = function(spec, no_init) { name: that.get_search_command_name(), entity: that.managed_entity.name, method: 'find', - args: args, - options: { - all: that.search_all_attributes - } + args: args }); if (that.pagination) { diff --git a/install/ui/src/freeipa/selinux.js b/install/ui/src/freeipa/selinux.js index 4eb5fbee5..8a308b434 100644 --- a/install/ui/src/freeipa/selinux.js +++ b/install/ui/src/freeipa/selinux.js @@ -42,7 +42,6 @@ var spec = { { $type: 'search', row_enabled_attribute: 'ipaenabledflag', - search_all_attributes: true, columns: [ 'cn', 'ipaselinuxuser', |