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