From 1717d638fc69d38ac5ed848847c7b01601c910dc Mon Sep 17 00:00:00 2001 From: "Endi S. Dewata" Date: Thu, 23 Jun 2011 11:44:44 -0500 Subject: Added record count into association facet tabs. The details and association facets have been modified to show the number of records in each association in the corresponding facet tab. Ticket #1386 --- install/ui/association.js | 50 +++++++++++++++++++++------------------ install/ui/details.js | 36 +++++++++++++---------------- install/ui/entity.js | 59 ++++++++++++++++++++++++++++++++--------------- install/ui/ipa.css | 4 ++-- install/ui/search.js | 10 +------- 5 files changed, 88 insertions(+), 71 deletions(-) diff --git a/install/ui/association.js b/install/ui/association.js index ad8d84795..54a8f6ae2 100644 --- a/install/ui/association.js +++ b/install/ui/association.js @@ -1011,7 +1011,7 @@ IPA.association_facet = function (spec) { that.table.current_page_input.val(that.table.current_page); that.table.total_pages_span.text(that.table.total_pages); - var pkeys = that.record[that.get_attribute_name()]; + var pkeys = that.data[that.get_attribute_name()]; if (!pkeys || !pkeys.length) { that.table.empty(); that.table.summary.text('No entries.'); @@ -1087,6 +1087,22 @@ IPA.association_facet = function (spec) { batch.execute(); }; + that.load = function(data) { + that.facet_load(data); + + var pkeys = that.data[that.get_attribute_name()]; + if (pkeys) { + that.table.total_pages = + Math.ceil(pkeys.length / that.table.page_length); + } else { + that.table.total_pages = 1; + } + + that.table.current_page = 1; + + that.table.refresh(); + }; + that.refresh = function() { if (that.association_type == 'direct') { @@ -1099,31 +1115,21 @@ IPA.association_facet = function (spec) { if (that.remove_button) that.remove_button.css('display', 'none'); } - function on_success(data, text_status, xhr) { - that.record = data.result.result; - - that.table.current_page = 1; - - var pkeys = that.record[that.get_attribute_name()]; - if (pkeys) { - that.table.total_pages = - Math.ceil(pkeys.length / that.table.page_length); - } else { - that.table.total_pages = 1; - } - - that.table.refresh(); - } - var pkey = IPA.get_entity(that.entity_name).get_primary_key(); - IPA.command({ + var command = IPA.command({ entity: that.entity_name, method: 'show', - args: pkey, - on_success: on_success, - on_error: that.on_error - }).execute(); + args: pkey + }); + + command.on_success = function(data, text_status, xhr) { + that.load(data.result.result); + }; + + command.on_error = that.on_error; + + command.execute(); }; that.association_facet_init = that.init; diff --git a/install/ui/details.js b/install/ui/details.js index 2db80fbaa..3b73e5b49 100644 --- a/install/ui/details.js +++ b/install/ui/details.js @@ -321,14 +321,14 @@ IPA.details_facet = function(spec) { var pkey = IPA.get_entity(that.entity_name).get_primary_key_prefix(); - if (from_url){ + if (from_url) { pkey.push(that.pkey); - }else{ + } else { var pkey_name = IPA.metadata.objects[that.entity_name].primary_key; - var pkey_val = that.record[pkey_name]; - if (pkey_val instanceof Array){ - pkey.push( pkey_val[0]); - }else{ + var pkey_val = that.data[pkey_name]; + if (pkey_val instanceof Array) { + pkey.push(pkey_val[0]); + } else { pkey.push(pkey_val); } } @@ -528,12 +528,13 @@ IPA.details_facet = function(spec) { return false; }; - that.load = function(record) { - that.record = record; + that.load = function(data) { + that.facet_load(data); + var sections = that.sections.values; for (var i=0; i'+error_thrown.message+'

'); }; - that.redirect_on_error = function(){ - var current_entity = that.entity; - while (current_entity.containing_entity){ - current_entity = current_entity.containing_entity; + that.redirect = function() { + var entity = that.entity; + while (entity.containing_entity) { + entity = entity.containing_entity; } + IPA.nav.show_page( - current_entity.name, + entity.name, that.entity.redirect_facet); }; @@ -157,11 +160,10 @@ IPA.facet = function (spec) { /*If the error is in talking to the server, don't attempt to redirect, as there is nothing any other facet can do either. */ - if (that.entity.redirect_facet ) - { - for (var i =0; i < redirect_errors.length; i += 1){ - if (error_thrown.name === redirect_errors[i]){ - that.redirect_on_error(); + if (that.entity.redirect_facet) { + for (var i=0; i', { + name: other_facet.name, title: other_facet.name, click: function() { if (li.hasClass('entity-facet-disabled')) { @@ -273,11 +277,12 @@ IPA.facet_header = function(spec) { that.create_facet_group = function(container, facet_group) { var section = $('', { + name: facet_group.name, 'class': 'facet-group' }).appendTo(container); $('
', { - 'class': 'facet-group-name', + 'class': 'facet-group-label', text: facet_group.label }).appendTo(section); @@ -308,12 +313,7 @@ IPA.facet_header = function(spec) { $('', { text: that.facet.back_link_text, click: function() { - var current_entity = that.facet.entity; - while(current_entity.containing_entity){ - current_entity = current_entity.containing_entity; - } - - IPA.nav.show_page(current_entity.name, 'search'); + that.facet.redirect(); return false; } }).appendTo(that.back_link); @@ -347,6 +347,29 @@ IPA.facet_header = function(spec) { } }; + that.load = function(data) { + if (!that.facet.disable_facet_tabs) { + var facet_groups = that.facet.entity.facet_groups.values; + for (var i=0; i