diff options
Diffstat (limited to 'install/ui/search.js')
-rw-r--r-- | install/ui/search.js | 65 |
1 files changed, 18 insertions, 47 deletions
diff --git a/install/ui/search.js b/install/ui/search.js index 493edb7f..221aa553 100644 --- a/install/ui/search.js +++ b/install/ui/search.js @@ -48,22 +48,9 @@ IPA.search_facet = function(spec) { that.managed_entity = IPA.get_entity(that.managed_entity_name); - var columns = that.columns.values; - for (var i=0; i<columns.length; i++) { - var column = columns[i]; - - var metadata = IPA.get_entity_param(that.managed_entity_name, column.name); - column.primary_key = metadata && metadata.primary_key; - column.link = column.primary_key; - } - that.init_table(that.managed_entity); }; - that.create_content = function(container) { - that.table.create(container); - }; - that.create_header = function(container) { that.facet_create_header(container); @@ -124,7 +111,6 @@ IPA.search_facet = function(spec) { }).appendTo(that.controls); }; - that.show = function() { that.facet_show(); @@ -178,45 +164,24 @@ IPA.search_facet = function(spec) { IPA.nav.push_state(state); }; - that.load_pkeys = function(result) { - that.pkeys = []; + that.get_pkeys = function(data) { + var result = data.result.result; + var pkey_name = that.managed_entity.metadata.primary_key; + var pkeys = []; for (var i=0; i<result.length; i++) { var record = result[i]; - var values = record[that.managed_entity.metadata.primary_key]; - that.pkeys.push(values[0]); + var values = record[pkey_name]; + pkeys.push(values[0]); } - return that.pkeys; - }; - - that.on_error = function(xhr, text_status, error_thrown) { - that.report_error(error_thrown); + return pkeys; }; that.get_search_command_name = function() { - return that.managed_entity.name + '_find' + (that.pagination ? "_pkeys" : ""); + return that.managed_entity.name + '_find' + (that.pagination ? '_pkeys' : ''); }; that.refresh = function() { - function on_success(data, text_status, xhr) { - - that.load(data.result.result); - - if (data.result.truncated) { - var message = IPA.messages.search.truncated; - message = message.replace('${counter}', data.result.count); - that.table.summary.text(message); - } else { - that.table.summary.text(data.result.summary); - } - - that.table.current_page_input.val(that.table.current_page); - that.table.total_pages_span.text(that.table.total_pages); - - that.filter.focus(); - that.select_changed(); - } - var filter = []; var current_entity = that.managed_entity; filter.unshift(IPA.nav.get_state(current_entity.name+'-filter')); @@ -233,9 +198,7 @@ IPA.search_facet = function(spec) { args: filter, options: { all: that.search_all - }, - on_success: on_success, - on_error: that.on_error + } }); if (that.pagination) { @@ -243,6 +206,15 @@ IPA.search_facet = function(spec) { command.set_option('sizelimit', 0); } + command.on_success = function(data, text_status, xhr) { + that.filter.focus(); + that.load(data); + }; + + command.on_error = function(xhr, text_status, error_thrown) { + that.report_error(error_thrown); + }; + command.execute(); }; @@ -260,7 +232,6 @@ IPA.search_facet = function(spec) { init(); // methods that should be invoked by subclasses - that.search_facet_create_content = that.create_content; that.search_facet_refresh = that.refresh; return that; |